[Armadillo:03900] armadillo-500 sysfs経由でI2Cドライバ制御

g-kihara email@hidden
2009年 1月 14日 (水) 17:46:51 JST


木原です。
いつもお世話になっています。

【目的】

armadillo-500ボードのI2C1モジュールに接続したセンサとI2C通信
を行うソフトを作成しようとしています。
その際、sysfs経由でI2Cドライバ制御を行いたいとおもっています。
以前ご紹介いただいた、drivers/i2c/chips/tlv320aic.cを
参考に作成しようと思っています。

【質問】

下記のように書き換え,まずi2c_probe()が正しく行われるか
確認しました。
デバイスドライバをinsmodし、動作テストしたところ、
i2ctest_attach( )は呼ばれるものの、
i2c_probe( )の返り値が0以外の値となっており、
i2c_probe()に失敗していることがわかりました。
構造体変数i2ctest_driverのメンバidには、
i2c-id.hで定義されているI2C_DRIVERID以外の
値を与えたのですが、 これだけではスキャンしてくれない
ようです。他になにか必要な設定があるのでしょうか?
ご教示宜しくお願い申し上げます。




#define ID_I2CTEST 102

・・・・・

static int
i2ctest_attach(struct i2c_adapter *adap)
{
 int ret;

 DEBUG_FUNC();

 printk("i2ctest_attach is called\n");

 ret = i2c_probe(adap, &addr_data, i2ctest_probe);

printk("i2c_probe=%d\n");

}

・・・・・

static struct i2c_driver i2ctest_driver = {
 .driver = {
    .name = DRIVER_NAME,
 },
 .id  = ID_I2CTEST,
 .attach_adapter = i2ctest_attach,
 .detach_client = i2ctest_detach,
 //.command = i2ctest_command,
};

・・・・・


以上





armadillo メーリングリストの案内