在目录/sys/bus/i2c/devices下能发现系统中的I2C设备,如下:
这些设备就是系统中存在的设备。
这些设备是怎么来的?
在你对应的machine配置里会执行“i2c_register_board_info”一个函数,它会将一个i2c_board_info的结构体注册进系统,
这个i2c_board_info的结构体里就描述了板载的所有I2C设备信息,如下例:
可以发现,在目录/sys/bus/i2c/devices下的设备就是这个i2c_board_info结构体里所描述的I2C设备,
而/sys/bus/i2c/devices下的设备名字就是根据i2c_board_info结构体中定义的I2C Address来命名的。
所以添加一个I2C设备时,除了需要编写这个I2C设备的驱动之外,还需要在machine里面加入I2C设备的i2c_board_info内容。