driver_probe_device never called for nested device
Mathieu Malaterre
mathieu.malaterre at gmail.com
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
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
More information about the Kernelnewbies
mailing list