i2c中i2c_add_driver中的一系列问题
static struct i2c_driver pca953x_driver = {
.driver = {
.name= "pca953x",
},
.probe= pca953x_probe, //当有i2c_client和i2c_driver匹配时调用
.remove= pca953x_remove,//注销时调用
.id_table= pca953x_id,//匹配规则
};
i2c_add_driver()中加的是pca953x_driver类型的结构体指针,请问是当i2c_client->dev.platform_data和pca953x_id匹配的时候才调用pca953x_probe函数吗?pca953x_probe函数是否在设备驱动加载的过程中只调用一次?
假如真的是这样的话i2c_client->dev.platform_data是如何在client初始化的时候赋值的?
pca953x_probe(struct i2c_client *, const struct i2c_device_id *)函数中两个形参又是哪里来的呢?