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

関連情報