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_client 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_driverfor that specific bus. More precisely, it’s called by theprobe()of thatbus_typestructure. In your case:i2c_bus_type.Here’s the call chain in your I2C case: