Hi, In order to improve my understanding of Linux i2c layer, I read the source code. I read i2c-core.c and I try to anderstand why my clients wasn't created.
The problem is in the i2c_register_adapter function : /* create pre-declarated device nodes for new-style drivers */ if (adap->nr < __i2c_first_dynamic_bus_num) i2c_scan_static_board_info(adap); The test is NEVER true. So my clients are not created. I read that __i2c_first_dynamic_bus_num is set to 1. It does not seems to change. And that adap->nr refers to "Dynamic Bus Number". My first bus register with adap->nr=1. The second register with adap->nr=2. That's why the test fails. So, I have had an idea to fix the problem. I change : i2c_add_adapter(adap); with adap->nr = 0; i2c_add_numbered_adapter(adap); But, it make new problems : - I can't manage two busses - I definitly don't anderstand how I2C_BOARD_INFO macro can associate a client to a specified bus - I don't anderstand what I am writing, and I really dislike it :c So many questions :) Thanks for help. Best regards, Légion. _______________________________________________ i2c mailing list [email protected] http://lists.lm-sensors.org/mailman/listinfo/i2c
