Драйвер I2C в Linux

Я знаю I2C на очень базовом уровне, который опирается на ядро ​​Linux, но не имеет понятия, чтобы реализовать базовый драйвер I2C.

Попытка перейти к началу работы в драйвере I2C. не могли бы вы предложить любой учебник для начинающих с отображением исходного кода?

Ответ 1

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

Ответ 2

Драйвер 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

Теперь вы можете использовать Google для драйверов I2C и продолжить изучение.

Ответ 3

Посмотрите модули smbus, доступные для многих языков программирования... затем напишите драйвер для вашего устройства i2c.