0

SOC用のI2Cアダプタドライバを書いています。このアダプターは現在システムに存在し、RTC ドライバーは .master_xfer を介して動作します。

/dev/i2c 経由でアプリケーションから IOCTL を送信したいと考えています。i2c_dev とすべてのモジュールをロードしました。IOCTL を送信した後、次のようになります。

#i2ccmd read 0
i2cdev_open[382]
i2c_dev_get_by_minor[54]
i2c_get_adapter[896]
i2cdev_ioctl[186]
ioctl, cmd=0x03, arg=0x00
i2c_control[731]
i2cdev_release[420]
i2c_put_adapter[910]

i2cdev_ioctl メソッドは I2C_RDWR IOCT'L をアダプタ ドライバに送信しません。これらの IOCTL を i2c-rt3352.c に転送するにはどうすればよいですか?

4

2 に答える 2

0

私は自分の IOCTL を渡す方法を見つけました: i2c_algorithm 構造体の .algo_control 関数ポインターは、特別な ioctl を処理します。

i2cdev_ioctl -> (デフォルト) -> i2c_control -> (デフォルト) -> (adap->algo->algo_control)

于 2011-08-23T06:58:24.497 に答える
0

出力では、IOCTL 0x03 を送信していることがわかります。これは何ですか? これはカスタム コマンドですか? 書き込み/読み取りの方法の 1 つは、I2C_RDWR ioctl コマンドです。アプリケーションで i2c_msgs をビルドし、ioctl を使用して I2C_RDWR コマンドを発行する必要があります。I2C_RDWR は i2c-dev ドライバーのみが認識し、アダプター転送関数を呼び出します。

IOCTL コマンドはアダプター ドライバーに渡されません。i2c-dev ドライバー インターフェイスを使用している場合、IOCTL を使用してアダプター ドライバーと対話する方法はありません。

于 2011-08-18T11:35:35.907 に答える