i2c_client

i2c_client的生成方式

在用户态生成

// 在I2C BUS0下创建i2c_client
# echo ap3216c 0x1e > /sys/bus/i2c/devices/i2c-0/new_device

// 删除i2c_client
# echo 0x1e > /sys/bus/i2c/devices/i2c-0/delete_device

编写代码

  • i2c_new_device

  • i2c_new_probed_device

  • i2c_register_board_info

    • 内核没有EXPORT_SYMBOL(i2c_register_board_info)

    • 使用这个函数的驱动必须编进内核里去


使用设备树生成

在某个I2C控制器的节点下,添加如下代码:

&i2c1 {
		ap3216c@1e {
			compatible = "lite-on,ap3216c";
			reg = <0x1e>;
		};
};

注意:设备树里i2c1就是I2C BUS0。