Неблокирующее чтение i2c из пространства пользователя - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь читать и записывать данные с i2c в подчиненном режиме и нашел несколько примеров, чтобы сделать это в пользовательском пространстве, включая этот наиболее актуальный из NXP (я использую iMX8MQ): https://source.codeaurora.org/external/imx/imx-test/tree/test/mxc_i2c_slave_test/mxc_i2c_slave_test.c?h=imx_4.14.78_1.0.0_ga

Однако, похоже, что если я хочу прочитать данные, это будет реализация на основе опроса, поскольку похоже, что i2c-dev не обеспечивает способ регистрации обратных вызовов пользовательского пространства, когда доступны данные i2c.Даже не уверен, что драйверы устройств Linux вообще позволяют это делать.Правильно ли я полагаю, что не существует неблокирующего и асинхронного способа чтения i2c из пространства пользователя в подчиненном режиме?

Я не очень знаком с написанием драйверов устройств, поэтому даже если бы я хотел реализовать свойсобственный, похожий на этот: https://github.com/torvalds/linux/blob/master/drivers/i2c/i2c-slave-eeprom.c это хорошая идея для вызова функции пользовательского пространства, когда данные стали доступны (например, когда драйвер получил I2C_SLAVE_STOP)?

...