
Hi,
Odroid HC1 does not reboot properly (at least from SD card but I do not expect difference on eMMC), if LDO4/VDD_ADC was turned off by Linux kernel. This condition is so far always, because Linux kernel did not enable ADC on ODroid HC1, therefore the VDD_ADC regulator was turned off as unused.
The issue is in detection of revision which later is used to load proper DTB.
The revision is obtained by ADC read of a voltage depending on VDD_ADC. Therefore: 1. VDD_ADC has to be turned on (but board detection happens before power is initialized), 2. Turning VDD_ADC should wait with ramp delay, 3. Reading the value from ADC should wait for it to stabilize.
I must admit I did not test it on other boards because latest U-Boot does not boot from SD card.
Commends and testing are welcomed.
Best regards, Krzysztof
Krzysztof Kozlowski (8): exynos: Redo detection of revision when all resources are ready exynos: Wait till ADC stabilizes before checking Odroid HC1 revision adc: exynos-adc: Fix wrong bit operation used to stop the ADC regulator: Add support for ramp delay power: regulator: s2mps11: Fix step for LDO27 and LDO35 power: regulator: s2mps11: Add enable delay arm: dts: exynos: Add supply for ADC block to Odroid XU3 family arm: dts: exynos: Add ramp delay property to LDO regulators to Odroid XU3 family
arch/arm/dts/exynos5422-odroidxu3.dts | 20 +++++++++ board/samsung/common/board.c | 19 ++++++++- board/samsung/common/exynos5-dt-types.c | 34 +++++++++++++++- drivers/adc/exynos-adc.c | 2 +- drivers/power/regulator/regulator-uclass.c | 45 ++++++++++++++++++++- drivers/power/regulator/s2mps11_regulator.c | 13 +++++- include/power/regulator.h | 2 + 7 files changed, 129 insertions(+), 6 deletions(-)