[PATCH 3/4] doc: driver-model: state that of_to_plat() must not probe or claim
Mehmet Fide <[email protected]>
| Newsgroups | org.u-boot-project.lists.u-boot |
|---|---|
| Message-ID | <[email protected]> |
From: Mehmet Fide <[email protected]> The design document says decoding the devicetree belongs in of_to_plat(), but not what the method must not do. Spell out the rule that has always been implied by the phase separation: no probing of other devices and no claiming of resources, and point at the parse-now-request-later GPIO helpers as the pattern to follow. Signed-off-by: Mehmet Fide <[email protected]> --- doc/develop/driver-model/design.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/develop/driver-model/design.rst b/doc/develop/driver-model/design.rst index 633545944d1..7f60c75f4d5 100644 --- a/doc/develop/driver-model/design.rst +++ b/doc/develop/driver-model/design.rst @@ -759,6 +759,15 @@ The steps are: 6. The device is marked 'plat valid'. +The of_to_plat() method must only read the devicetree. It must not probe +other devices or claim resources such as GPIOs or clocks: ofdata is read +before the device's pinctrl state is applied, so a pin claimed here can have +its configuration undone a moment later, and probing another device from this +method defeats the lazy-probing model. When a resource is named in the +devicetree, read its description into the platform data here - for a GPIO, +gpio_parse_by_name() - and claim it in probe(), for a GPIO with +gpio_request_parsed(). + Note that ofdata reading is always done (for a child and all its parents) before probing starts. Thus devices go through two distinct states when probing: reading platform data and actually touching the hardware to bring -- 2.54.0