Linuxカーネルの内部に依存する非常に基本的なレベルのI2Cを知っていますが、基本的なI2Cドライバーを実装する手掛かりはありません。
I2Cデバイスドライバーで移動しようとしています。ソースコードをマッピングした初心者向けのチュートリアルを提案していただけませんか!
linux-source/Documentation/i2c /には、必要な情報がたくさんあります。 .../writing-clients.txtから始めるのが良いでしょう。
オンライン版を見てください:
https://www.kernel.org/doc/Documentation/i2c/writing-clients
大丈夫な種類のチュートリアルがあります:
http://renjucnair.blogspot.ca/2012/01/writing-i2c-client-driver.html
以下は、i2cドライバーを書いている誰かについての良い解説であり、それにチュートリアルの感触があります:
http://www.embedded-bits.co.uk/2009/i2c-in-the-2632-linux-kernel/
ここにいくつかのサンプルコードがあります:
http://code.google.com/p/ldd-templates/source/browse/drivers/i2c/sample-i2c-client.c
I2Cドライバーは、Linuxカーネルのプラットフォームドライバーとして実装されているため、まずプラットフォームデバイスのLinuxモデルを理解する必要があります。
プラットフォームデバイス用のLinuxカーネルの下にある以下のドキュメントを参照してください。 https://www.kernel.org/doc/Documentation/driver-model/platform.txt
Linuxカーネルのバス構造も理解する必要があります。以下のリンクを参照してください。 http://www.mjmwired.net/kernel/Documentation/driver-model/bus.txt
これで、I2Cドライバーをググって、さらに勉強することができます。