IIC(4) | FreeBSD Kernel Interfaces Manual | IIC(4) |
名称
iic — I2C 一般的な I/O デバイスドライバ書式
device iic
#include < dev/iicbus/iic.h>
解説
iic デバイスドライバは、あらゆる iicbus(4) のインスタンスへの一般的な I/O を提供しています。 I2C デバイスを制御するために、次の ioctl で /dev/iic? で使用します:- I2CSTART
- ( struct iiccmd) slave 要素によって指定されるスレーブへの開始状態 (start condition) をバスに送信します。他のすべての要素は、無視されます。
- I2CRPTSTART
- ( struct iiccmd) slave 要素によって指定されるスレーブへの開始状態 (start condition) を繰り返しバスに送信します。他のすべての要素は、無視されます。
- I2CSTOP
- 引数は、渡されません。停止状態 (stop condition) をバスに送信します。これは、現在のトランザクションを終了します。
- I2CRSTCARD
- ( struct iiccmd) バスをリセットします。引数は、完全に無視されます。
- I2CWRITE
- ( struct iiccmd) iicbus(4) にデータを書き込みます。バスは、既に開始されているはずです。 slave 要素は、無視されます。 count 要素は、書き込むバイト数です。 last 要素は、ブール値のフラグです。追加の書き込みコマンドが続くとき、それは、0 以外です。 buf 要素は、バスに書き込むデータへのポインタです。
- I2CREAD
- ( struct iiccmd) iicbus(4) から、データを読み込みます。バスは、既に開始されているはずです。 slave 要素は、無視されます。 count 要素は、書き込むバイトの数です。 last の要素は、ブール値のフラグです。追加の書き込みコマンドが続くとき、それは、0 以外です。 buf 要素は、バスから読み込まれたデータを格納する場所へのポインタです。バスでの短い読み込みは、未定義の結果をもたらします。
- I2CRDWR
- ( struct iic_rdwr_data) 一般的な、読み込み/書き込み (read/write) インタフェース。任意の数のコマンドをバスの任意の数のデバイスに送信できます。読み込み転送は、 IIC_M_RD が flags に設定されているなら、指定されます。そうでなければ、転送は、書き込み転送です。 slave 要素は、転送のための 7 ビットのアドレスを指定します。 len 要素は、データの長さです。 buf 要素は、そのデータのためのバッファです。この ioctl は、 Linux との互換性となることを目的としています。
次のデータ構造体は、 < dev/iicbus/iic.h> で定義されて、上記を参照しています:
struct iiccmd { u_char slave; int count; int last; char *buf; }; /* linux の struct i2c_msg と互換性となるように設計されています */ struct iic_msg { uint16_t slave; uint16_t flags; #define IIC_M_RD 0x0001 /* read 対 write */ uint16_t len; /* メッセージ長 */ uint8_t * buf; }; struct iic_rdwr_data { struct iic_msg *msgs; uint32_t nmsgs; };
また、読み込み/書き込み (read/write) ルーチンを使用することができ、次に I2C 開始/停止 (start/stop) ハンドシェイクは、 iicbus(4) システムによって管理されます。しかしながら、読み込み/書き込みルーチンのために使用されるアドレスは、このデバイスへの最後の I2CSTART ioctl(2) に渡されたものです。
歴史
iic マニュアルページは、 FreeBSD 3.0 ではじめて登場しました。作者
このマニュアルページは、 と によって書かれました。September 6, 2006 | FreeBSD |