私のLinuxデバイスに接続したい2つのI2Cデバイスがあります。温度センサTMP117を作成し、追加の加速度計/sys/bus/i2c/devices/i2c-x/new_device
ADXL343を追加したいと思います。ところで、TMP117のような方法を使用すると、割り込みのdmesg
GPIOが見つからないというエラーが発生します。これは、私のアプリケーションに割り込み信号が必要なGPIO拡張にも影響します。
追加の信号(割り込みなど)を使用してI2Cデバイスを動的に追加できますか?
ベストアンサー1
~からhttps://www.kernel.org/doc/Documentation/i2c/instantiating-devices次にできることはただI²C アドレスを引数として渡します。もしそうなら、カーネルは割り込みラインがどのGPIOラインに接続されているのかをどうやって知ることができますか?
したがって、I²Cデバイスよりも多くのハードウェアを含む複雑なドライバはこの方法では使用できません。
起動時にハードウェアの場所を知っている場合(または知らなくても、最近は実行時にデバイスツリーを変更できます)、「正しい」方法はおそらくデバイスツリーエントリ(上記のドキュメントの1b)を作成することです。 。これがオプションでない場合は、カーネルモジュールを作成する必要があります。
しかし、良いニュース:ADIのMichael Hennerich(いい人、会ったらコーヒー一杯買ってください)が書きました。adxl34x
ドライバー(アップストリームLinuxに含まれています)これは、実際にADXL34xを見つけるI²Cバスのアドレスと受信する割り込みラインをカーネルに通知します(再びデバイスツリーを介して)。