Как получить доступ к зарегистрированному устройству I2C в ядре Linux из пространства пользователя

Я хочу иметь возможность изменять регистры в ведомом устройстве I2C. Устройство имеет драйвер в ядре, и драйвер регистрирует клиента I2C по адресу.

Драйвер очень прост и выводит все функции устройства. Я хочу получить доступ к регистрам из пространства пользователя, но когда я пытаюсь получить доступ к нему с помощью I2C-dev, я получаю сообщение об ошибке - устройство или ресурс занят.

Я не хочу добавлять функциональность к драйверу, и я предпочитаю писать приложение в пространстве пользователя для изменения регистров устройства.

Как можно использовать I2C-dev для изменения регистров в таком случае?

1 ответ

Так что после исследования I2C-dev мне удалось преодолеть проблему. Я заметил флаг I2C_SLAVE_FORCE внутри функции ioctl. При установленном флаге функция игнорирует, если адрес I2C уже зарегистрирован.

Другие вопросы по тегам