Hi Wolfram,
Thank you for your quick response, really appreciate.
You're saying "You supply i2c_board_info in your board init code and when
the
i2c adapter is initialized", but I'm quite sure there won't be a such
static i2c_board_info in the board init code.
And I'm just wonder if there is a dynamic detect method to go?
Here is my proposed code, can you please help to correct it if I'm wrong?
static const unsigned short normal_i2c[] = { DEVICE_ADDRESS, I2C_CLIENT_END
};
I2C_CLIENT_INSMOD(foo);
static int foo_detect(struct i2c_client *client, int kind,
struct i2c_board_info *info)
{
/* Things here */
return 0;
}
static int foo_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
/* Things here */
return 0;
}
static int foo_remove(struct i2c_client *client)
{
/* Things here */
return 0;
}
static const struct i2c_device_id foo_id[] = {
{ "foo", 0 },
{ }
};
static struct i2c_driver foo_driver = {
.driver = {
.name = "foo",
},
.probe = foo_probe,
.remove = foo_remove,
.id_table = foo_id,
.class = I2C_CLASS_CAM_DIGITAL,
.detect = foo_detect,
.address_data = &addr_data,
};
Best Regards
Wen
_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c