Linuxのi2c devインタフェースを使用しているユーザー空間プログラムがi2cデバイスを登録(インスタンス化)できる方法が混乱しています。この読み取ることで私の理解からLinux - i2cデバイスを使用する前に登録(インスタンス化)する必要がありますか?
:https://www.kernel.org/doc/Documentation/i2c/instantiating-devicesを、私たちはどちらかを行う必要がありそうです:
)(i2c_register_board_infoを行い、I2C デバイスの名前と住所をi2c_board_info構造体を定義し
-
i2c1: [email protected] { /* ... master properties skipped ... */ clock-frequency = <100000>; [email protected] { compatible = "atmel,24c256"; reg = <0x50>; }; pca9532: [email protected] { compatible = "nxp,pca9532"; gpio-controller; #gpio-cells = <2>; reg = <0x60>; }; };
インスタンス化デ:
は、このようなdevicetreeエントリを持っていますi2c_board_info構造体を定義することによって明示的にVIEで、その後、I2Cデバイスドライバ
の初期化にi2c_new_device()を呼び出ししかし、これは、ここでhttps://www.kernel.org/doc/Documentation/i2c/dev-interface説明I2C-devのインターフェイスを使用してユーザー空間のプログラムのためにどのように行われていますか?
私はdevicetreeエントリを持っていませんし、i2c_board_info、i2c_register_board_info()、またはi2c_new_device()のコードをgrepすると何も見つかりません。しかし、下のコードはまだ動作します、どのように?
i2cデバイスを使用するためにデバイスを登録(インスタンス化)する必要はありませんか?これは、i2cドライバとi2c-devインタフェースを使用するユーザスペースプログラムの両方に適用されますか?
I2C devは特殊な汎用ドライバです。これを生のデバイスアクセスと見なします。 – 0andriy