Hi: Priit Laes <pl...@plaes.org> 于2018年11月22日周四 上午2:06写道:
> This is a resend/v2 of a "Stop AXP from crashing when enabling LDO3" > series, > posted by Olliver Schinagl in March 2017. Unfortunately it never got past > initial discussion [1], but most Olimex Lime2 boards are still running > into this bug. > > When powering up an AXP209, the default value for LDO3 output is enabled. > This > works fine. However if for whatever reason, LDO3 is disabled, for example > by OS > during reboot and u-boot enables LDO3 again, the PMIC shuts down (without > setting an interrupt) causing the board to hang. This behavior has been > seen > from Linux as well, u-boot disables LDO3 as a default value, the kernel > enables > it per its DTS, the kernel hangs as the PMIC gets shut down. > > The root cause is that some boards have too high capacitance on the LDO3 > output > port causing inrush currents exceeding the maximum of the AXP209. > > The fix is to turn on the LDO3 at the lowest possible voltage and then set > the > final voltage. > > If the capacitance is really big (due to a connected device for example) > the > AXP209 also features VRC, or Voltage Rate Control, allowing voltage to > ramp up > even slower. > > Similar changes need to be also implemented in the operating system driver > side when driver needs to toggle power for the ALDO3 regulator. > > This patch series implements the above with a few tiny cleanups. > > The initial discussion with some scope screenshots can be found in the > linux-sunxi mailing list [0]. > > And the initial series were posted to u-boot mailing list [1]. > > Signed-off-by: Olliver Schinagl <oli...@schinagl.nl> > Signed-off-by: Priit Laes <pl...@plaes.org> > > [0] https://groups.google.com/forum/m/#!topic/linux-sunxi/EDvEsbHHqQI > [1] https://lists.denx.de/pipermail/u-boot/2017-March/282789.html > > -- > Changes since v2: > - Collected Acked-by tags, patches 1,3-5 are now ripe for picking. > - Olliver fixed wrong code in patch 2, thanks for Maxime for spotting > - Fixed checkpatch error in patch 5 > - Expanded commit message for patch 6 > > Changes from initial submission: > - Rebased on top of latest master and fixed conflicts > - Added comments about datasheet errors for patch 6 > - Fixed some typos and checkpatch errors > - Added patch to Olimex Lime2 eMMC board > > Olliver Schinagl (8): > sunxi: board: Print error after power initialization fails > sunxi: pmic_bus: Decrease boot time by not writing duplicate data > power: axp209: Use BIT() macro > power: axp209: Define the chip version mask > power: axp209: Reduce magic values by adding defines for LDO[234] > power: axp209: Add support for voltage rate control on LDO3 > power: axp209: Limit inrush current for broken boards > arm: sunxi: Reduce inrush current on Olimex OLinuXino-A20-Lime2 > > Priit Laes (1): > arm: sunxi: Reduce inrush current on Olimex OLinuXino-A20-Lime2-eMMC > > arch/arm/mach-sunxi/pmic_bus.c | 6 ++- > board/sunxi/board.c | 18 +++--- > configs/A20-OLinuXino-Lime2-eMMC_defconfig | 2 +- > configs/A20-OLinuXino-Lime2_defconfig | 2 +- > drivers/power/Kconfig | 43 ++++++++++++++- > drivers/power/axp209.c | 66 ++++++++++++++++++---- > include/axp209.h | 70 +++++++++++++++++------ > 7 files changed, 172 insertions(+), 35 deletions(-) > > base-commit: a3e1653ddeb02f39481eba572275016171e9670c > I also play with a Lime2-eMMC board(rev K) these days, but I found this board could do reboot whatevery in u-boot or kernel when it boot from emmc. But it reboot well when it boot from sdcard. root@lime2:~# root@lime2:~# root@lime2:~# root@lime2:~# reboot [ 2089.632091] reboot: Restarting system Can't see any further reboot log. unless i replug the power jack. When I do reset from u-boot , it failed too: Boot SPL 2018.05-armbian (Nov 28 2018 - 14:39:04 +0800) DRAM: 3/2/2 Trying to boot from MMC2 U-ready DRAM: 1 GiB MMC: SUNXI MMC: 1 Loading Environment from EXT4... MMC: no card present ** Bad device mmc 0 ** In: serial Out: serial Err: serial Allwinner mUSB OTG (Peripheral) SCSI: SATA link 0 timeout. A: ethernet@01c50000 Warning: usb_ether using MAC address from ROM , eth1: usb_ether MMC: no card present ** Bad device mmc 0 ** us 0 for devices... 1 USB Device(s) found scan1 USB Device(s) found scaswitch to partitions #0, OK mmc1(part MMC: no card present => <INTERRUPT> => => reset resetting ... I post these here hope to know if anyone meet the same situtation. -- > git-series 0.9.1 > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > https://lists.denx.de/listinfo/u-boot > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot