[U-Boot] [RFT 1/8] exynos: Redo detection of revision when all resources are ready

Krzysztof Kozlowski krzk at kernel.org
Mon Feb 11 08:17:25 UTC 2019


On Mon, 11 Feb 2019 at 09:14, Lukasz Majewski <lukma at denx.de> wrote:
>
> Hi Krzysztof,
>
> > On Mon, 11 Feb 2019 at 08:20, Lukasz Majewski <lukma at denx.de> wrote:
> > >
> > > Hi Krzysztof,
> > >
> > > > Detection of board type is done early - before power setup.  In
> > > > case of Odroid XU3/XU4/HC1 family, the detection is done using
> > > > ADC which is supplied by LDO4/VDD_ADC regulator.  This regulator
> > > > could be turned off (e.g. by kernel before reboot);  If ADC is
> > > > used early, the regulators are not yet available and the
> > > > detection won't work.
> > > >
> > > > Try to detect the revision again, once power is brought up.
> > > >
> > > > This is necessary to fix the detection of Odroid HC1 after
> > > > reboot, if kernel turned off the LDO4 regulator.  Otherwise the
> > > > board is not detected....
> > >
> > > But such approach seems not to be the optimal one (as we perform
> > > detection twice - with default LDO4 enabled after power on and after
> > > soft reset).
> > >
> > > I would expect to enable the LDO4 regulator in the early code (I2C
> > > would be probably necessary) and then read ADC value properly once.
> > >
> > > (I also guess that the "work-by-chance" approach is caused by
> > > default settings of PMIC after power on).
> >
> > So basically you want to move the board detection after the
> > exynos_power_init()... maybe it is possible. The other way is to split
> > set_board_type() into OF part (for compatible and main board
> > difference) and revision detection (requiring ADC). Maybe it is
> > possible, but isn't it used before?
>
> I do want to avoid making the detection twice;
>
> First time when we have the LDO4 enabled by default and the second time
> when it may happen that we do a soft reset from Linux (which disabled
> LDO4).

This I understand but isn't the board type used BEFORE the power init?
Power init cannot be moved early as it depends on having proper
resources (as I wrote in commit msg)... so only board detection can be
moved later. But if setting up resources (e.g. regulators) requires
board type then it is circular dependency... so I asked - isn't board
type used before power init?

Best regards,
Krzysztof


More information about the U-Boot mailing list