最近做一个项目的时候,发现usb port口插入usb camera ,就会造成Board的power down,系统会stuck。
当再次启动Board的时候,发现了这个Bootloader(XBL)report:PM: OCP Occured: PMIC: 0; LDO: 12 。这个就是说在PMIC regulator-0 L12d发生了over current protection。
为了解决这个电流过载的问题,首先需要了解regulator所初始化的模式, 然后再决定是不是需要进行电流负载的累加。
1.Regulator 的devicetree

可以看出USB phy 使用的regulator的点默认初始化的mode 是LPM(低功耗)的,并且设置了allow set load。这就意味着所有的shared 这个regulator点的consumer都可以设置电流的负载。但是这个里面有一个问题,可以分析一下。
假设有两个consumer使用这个regulator的点, 但是刚开始的regulator点初始化的时候是LPM。同时share这个regulator的是UFS和USB PHY。在kernel 初始化的过程,首先UFS会进行初始化的工作,会set 电流的load。此时的ldo12 上是有设置电流的负载的。如果此时USB PHY去初始化这个连接在PHY上的USB camera的时候,会产生一定的电流经过,此时是可以承受的。
但不排除一种情况,如果在USB PHY初始化之前,我们的UFS 已经要suspend并且会去disable regulator 去remove 掉这个电流load,此时对于ldo12来讲,这时候的电流负载为0。USB PHY现在去初始化USB camera,会因为电流过载而有宕机掉电的风险。
2.regulator set load
为了解决上

最低0.47元/天 解锁文章
1393

被折叠的 条评论
为什么被折叠?



