How does probe()
call gets called? Who calls it? As per my understanding, __init()
registers driver
and then somehow probe()
is called to register
the device data and irq
etc. How exactly it happens?
I am working on touchscreen driver and its __init
registers itself to i2c driver
. Then probe expect i2c_clien
t data which returns null. I want to track where it gets filled.
Long story short: the probe() function of the driver is called as a result of calling the register_driver
for that specific bus. More precisely, it's called by the probe()
of that bus_type
structure. In your case: i2c_bus_type
.
Here's the call chain in your I2C case: