[PATCH 1/3] dm: core: Add DM_FLAG_PROBE_AFTER_BIND flag

Marek Vasut marex at denx.de
Sat Apr 23 01:07:21 CEST 2022


On 4/23/22 00:45, Sean Anderson wrote:
> On 4/22/22 9:52 AM, Marek Vasut wrote:
>> On 4/22/22 15:49, Sean Anderson wrote:
>>> On 4/22/22 9:15 AM, Marek Vasut wrote:
>>>> Introduce DM_FLAG_PROBE_AFTER_BIND flag, which can be set by driver or
>>>> uclass in .bind(), to indicate such driver instance should be probe()d
>>>> once binding of all devices is complete.
>>>>
>>>> This is useful in case the driver determines that hardware 
>>>> initialization
>>>> is mandatory on boot, and such initialization happens only in probe().
>>>> This also solves the inability to call device_probe() from .bind().
>>>
>>> So why not add an init_leds function to init_sequence_r?
>>
>> Because this flag is generic solution and not hack specific to LEDs.
> 
> Isn't init_sequence_r the generic solution?

No, init_sequence_r is just a list of functions that gets called early 
on during boot to bring U-Boot up. One of the functions is initr_dm(), 
DM init, which brings up the driver model. The init_sequence_r has 
nothing to do with driver binding or probing though, that's the DM job.

> Every device gets probed that way (or directly as a result of a command).

No device probe gets triggered via init_sequence_r. There are many 
ad-hoc device_probe() calls in the various init_sequence_r function 
implementation, but that's all there because there is no better way to 
implement that within the DM framework so far. Now there is, with this 
flag, so those workarounds can also be cleaned up.


More information about the U-Boot mailing list