将 I2C 客户端驱动程序升级到更新的绑定模型

将 I2C 客户端驱动程序升级到更新的绑定模型

我正在尝试移植我为其他内核编写的一些 I2C 设备驱动程序,以使用较新的 I2C 绑定模型。内核文档详细介绍了执行此操作的步骤:http://www.mjmwired.net/kernel/Documentation/i2c/upgrading-clients

我不明白的是,当使用这种新模型时,如何指定设备的 I2C 地址?以前是这样做的:

static unsigned short normal_i2c[] = { 0x67, I2C_CLIENT_END };

I2C_CLIENT_INSMOD;

我认为我的总线/设备不支持检测。

答案1

我最终将所有 I2C 设备注册为平台设备。 Board 文件中的条目类似于:

static struct i2c_board_info __initdata my_i2c_device = {
        I2C_BOARD_INFO("my_i2c_device", 0x60)
};

(其中 I2C 地址 = 0x60)

if (i2c_register_board_info(I2C_MY_BUS_ID, &my_i2c_device, 1) < 0) {
    printk(KERN_ERR "i2c_init: cannot register my I2C device\n");
}

http://www.mjmwired.net/kernel/Documentation/driver-model/platform.txt

相关内容