driver_probe_device never called for nested device

Mathieu Malaterre mathieu.malaterre at
Thu Sep 7 03:41:12 EDT 2017

Hi all,

I am trying to understand the mechanism for driver_probe_device for my
specific setup. It seems that I cannot bind the driver to the device
in the following case (nested node):

cgu: jz4780-cgu at 10000000 {
compatible = "ingenic,jz4780-cgu", "syscon";
rng: rng at d8 {
compatible = "ingenic,jz4780-rng";

Using CONFIG_DEBUG_DRIVER=y, all I can see in the log is:

Sep  6 22:06:36 ci20 kernel: [    0.180304] bus: 'platform': add
driver jz4780-rng

While I would have expected something like:

Sep  6 22:30:57 ci20 kernel: [    0.167017] bus: 'platform': add
driver jz4780-rng
Sep  6 22:30:57 ci20 kernel: [    0.167033] bus: 'platform':
driver_probe_device: matched device 100000d8.rng with driver
Sep  6 22:30:57 ci20 kernel: [    0.167038] bus: 'platform':
really_probe: probing driver jz4780-rng with device 100000d8.rng

Did I miss something from the documentation about nested node ? I
failed to understand the code in drivers/base/bus.c &
drivers/base/dd.c to understand how the device tree is traversed (for
instance: which bus is not considered).

For reference:


Thanks for help,

More information about the Kernelnewbies mailing list