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 i2c@lm-sensors.org http://lists.lm-sensors.org/mailman/listinfo/i2c