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

Minkyu Kang mk7.kang at samsung.com
Mon Feb 11 11:06:44 UTC 2019


On 11/02/2019 17:17, Krzysztof Kozlowski wrote:
> 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;

I agreed.
And if you want to move set_board_type, then please use proper function such as a board_late_init or a misc_init. set_board_type doesn't have any relation with power_init

>>
>> 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?
> 

I'm not sure but, it looks that can be moved to after power_init.
But, please verify carefully before you re-post.

Thanks,
Minkyu Kang.



More information about the U-Boot mailing list