[U-Boot] [PATCH v4 0/9] arm: exynos: Fix reboot on Odroid HC1

Krzysztof Kozlowski krzk at kernel.org
Wed Mar 6 07:29:37 UTC 2019


On Wed, 6 Mar 2019 at 08:03, Minkyu Kang <mk7.kang at samsung.com> wrote:
>
> Dear Krzysztof Kozlowski,
>
> On 06/03/2019 04:57, Krzysztof Kozlowski wrote:
> > Hi,
> >
> > Changes since v3
> > ================
> > 1. Add accumulated review and test tags.
> > 2. Patch 6: Add "ramp" keyword to new function (as discussed with
> >    Torsten Duwe).
> > 3. Rebased on v2019.04-rc3.
> >
> >
> > Changes since v2
> > ================
> > 1. Add Lukasz review tags.
> > 2. Patch 7: Return on error, as suggested by Simon.
> > 2. Patch 3: Use IS_ENABLED() to run revision detection only
> >    once - either during late display board or misc_init_r.
> >
> > Changes since v1
> > ================
> > 1. Move fixes to beginning of patchset.
> > 2. Patch 3: Rework the idea - split revision detection to be executed later.
> > 3. Patch 4: New patch.
> > 4. Patch 6: Apply Simon's comments.
> > 5. Patch 6: Do not delay when changing voltage if regulator is disabled.
> > 6. 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:
> > 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.
> >
> > 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'

Indeed, I need to update other boards as well.
I'll fix it.

Best regards,
Krzysztof


More information about the U-Boot mailing list