
Dear Krzysztof Kozlowski,
On 06/03/2019 04:57, Krzysztof Kozlowski wrote:
Hi,
Changes since v3
- Add accumulated review and test tags.
- Patch 6: Add "ramp" keyword to new function (as discussed with Torsten Duwe).
- Rebased on v2019.04-rc3.
Changes since v2
- Add Lukasz review tags.
- Patch 7: Return on error, as suggested by Simon.
- Patch 3: Use IS_ENABLED() to run revision detection only once - either during late display board or misc_init_r.
Changes since v1
- Move fixes to beginning of patchset.
- Patch 3: Rework the idea - split revision detection to be executed later.
- Patch 4: New patch.
- Patch 6: Apply Simon's comments.
- Patch 6: Do not delay when changing voltage if regulator is disabled.
- Patch 6: Do not delay when disabling the regulator.
Description
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 happens 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:
- VDD_ADC has to be turned on (but board detection happens before power is initialized),
- Turning VDD_ADC should wait with ramp delay,
- Reading the value from ADC should wait for it to stabilize.
Tested on Odroid XU3-Lite and Odroid HC1.
Comments and testing are welcomed.
Best regards, Krzysztof
Krzysztof Kozlowski (9): adc: exynos-adc: Fix wrong bit operation used to stop the ADC power: regulator: s2mps11: Fix step for LDO27 and LDO35 arm: exynos: Detect revision later, when all resources are ready arm: exynos: odroid-xu3: Display info late to have proper type arm: exynos: Wait till ADC stabilizes before checking Odroid HC1 revision regulator: Add support for ramp delay 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 | 24 ++++++++- board/samsung/common/exynos5-dt-types.c | 54 +++++++++++++++++-- board/samsung/odroid/odroid.c | 8 +++ configs/odroid-xu3_defconfig | 2 + .../regulator/regulator.txt | 2 + drivers/adc/exynos-adc.c | 2 +- drivers/power/regulator/regulator-uclass.c | 47 +++++++++++++++- drivers/power/regulator/s2mps11_regulator.c | 15 +++++- include/power/regulator.h | 2 + include/samsung/misc.h | 1 + 11 files changed, 167 insertions(+), 10 deletions(-)
Build was failed after apply your patch on trats, trats2 and s5pc210_universal. Please check.
board/samsung/common/built-in.o: In function `misc_init_r': /home/share/Work/u-boot-samsung/board/samsung/common/board.c:307: undefined reference to `set_board_revision'
Thanks, Minkyu Kang.