C言語でのI2Cデバイスプログラミングについて簡単にまとめました。 LinuxのI2Cデバイスドライバ 個別デバイスドライバ LinuxでのI2Cデバイスへのアクセスは、それぞれ個別のドライバを作成して行うというのが基本的なポリシーとなっています。 例えば drivers/hwmon/lm75.c などのような形ですね。このドライバの内部で i2c_smbus_read_byte_data() のようなI2Cバス共通I/Fを呼んでいます。 i2c-dev 一方で、直接I2Cバストランザクションを発行するためのi2c-devドライバというものもあります。 こちらは特定のデバイス用ではなく、上に出てきた i2c_smbus_read_byte_data() のような関数を アプリケーションからドライバI/Fを介して叩けるような機能が提供されます。 これを利用すれば個別のドライバを作成しなくても