Driver load order

Sascha Hauer sha at
Thu May 19 04:54:50 PDT 2022

Hi Frank,

On Thu, May 19, 2022 at 12:59:35PM +0200, Frank Wunderlich wrote:
> Hi,
> I try to create a basic driver for rk808 pmic/iodomains. I've noticed
> that first the iodomain driver is probed and then the rk808 on,but i
> need it reversed as rk808 registers regulators linked in iodomain via
> devicetree.
> How can i defer iodomain probing till rk808 is ready (regulators
> available defined as phandles in iodomain dt node)? Currently i get
> always ENODEV (property does not exist or regulator is not ready
> yet)....

Your board has deep probe enabled. The idea with deep probe is that the
devices for a specific device node are registered on demand instead of
any particular order. Basically this means that once you do a
regulator_get() the regulator will be registered automatically for you
without having to mess with the probe order.

That said I'm not sure if that works properly with regulators yet. For
deep probe to work there must be a device registered for the device node
representing the regulator. Currently this is not the case, there will
only be a device for the "rockchip,rk808" device node, but not for the
regulator child nodes.

I haven't found a suitable test setup to have a deeper look. If you
could bring your rk808 driver up to a point where it actually registers
the regulators then I could add the missing pieces in the regulator core
for you.


Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       |  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

More information about the barebox mailing list