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@10000000 { compatible = "ingenic,jz4780-cgu", "syscon"; (...) rng: rng@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 jz4780-rng 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: * https://github.com/torvalds/linux/blob/master/arch/mips/boot/dts/ingenic/jz4780.dtsi#L37-L45 * https://github.com/torvalds/linux/blob/master/drivers/clk/ingenic/jz4780-cgu.c#L733 Thanks for help, -- Mathieu _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies