Как получить доступ к узлу драйвера устройства i2c - PullRequest
1 голос
/ 19 мая 2011

Ситуация 1:

У меня есть драйвер микросхемы i2c как часть ядра Linux.Я могу убедиться, что драйвер чипа i2c находится в ядре из сообщений о загрузке ядра (мой драйвер чипа mma8450)

dmesg:

mma8450 0-001c: uevent

Я также вижу этот драйвер в (0x1c - i2cадрес чипа)

cat /sys/bus/i2c/devices/0-001c/name
mma8450

Я не вижу этот узел драйвера в интерфейсе / dev.У меня вопрос, как я могу создать узел этого устройства в / dev, чтобы я мог получить доступ к этому устройству в пользовательской программе?

Ситуация 2:

Я создаю модуль с тем же драйвером чипаи не делает его частью ядра.Я могу загрузить этот модуль с помощью insmod mma8450, как я могу создать узел этого устройства, так как у меня нет его старших / младших номеров?(Я не вижу старшие и младшие номера, назначенные этому драйверу в исходном коде mma8450)

Любая помощь приветствуется

С уважением

Ответы [ 3 ]

3 голосов
/ 01 мая 2013

Загрузить модуль ядра:

modprobe i2c-dev

ls /dev/i2*

/dev/i2c-0  
/dev/i2c-10  
/dev/i2c-12  
/dev/i2c-14  
/dev/i2c-3  
/dev/i2c-5  
/dev/i2c-7  
/dev/i2c-9
/dev/i2c-1  
/dev/i2c-11  
/dev/i2c-13  
/dev/i2c-2   
/dev/i2c-4  
/dev/i2c-6  
/dev/i2c-8
3 голосов
/ 03 июня 2011

Найдите старшие / младшие номера для вашего устройства:

cat /proc/devices

Вы должны увидеть устройство для шины i2c и одно для самого устройства i2c.

Создайте узел устройства длядрайвер устройства i2c:

mknod /dev/[device name] [type] [major] [minor]
1 голос
/ 29 января 2019

Это 3-осевой акселерометр.Linux регистрирует его как драйвер для типа input_polled_dev.

Вы можете получить доступ к нему, используя узел устройства / dev / i2c-x bus (controller), но нет особого смысла использовать его таким образом непосредственно из пользовательского пространства.

I2C-клиенты не предназначены для использования с узлами устройства / dev.Они должны быть зарегистрированы в платформе Kernel I2C и использоваться через API более высоких уровней.

Существует пример программы для чтения аналогичных регистров MMA7455L x, y, z из пространства пользователя с использованием узла устройства шины / dev / i2c-X.

Чтение акселерометра с I²C

...