中断驱动的SPI或I2C驱动程序

时间:2017-10-01 23:15:19

标签: linux linux-kernel linux-device-driver beagleboneblack i2c

我正在开发一个用户应用程序,它依赖于与beaglebone板连接的I2C或SPI设备。 我的应用程序在用户空间中运行。现在,只要I2c设备发生中断,我的应用程序就应该从I2c设备获取数据。

我的问题是如何同步所有这些。我是否需要编写一个设备驱动程序来从I2c设备获取数据或触发另一个设备驱动程序从I2c读取数据以及它如何触发我的用户应用程序来获取数据?

1 个答案:

答案 0 :(得分:1)

您需要了解三件事:i2c驱动程序,spi驱动程序和输入子系统。

对于i2c驱动程序,搜索struct i2c_drivermodule_i2c_driver辅助宏的内核代码,以便注册和取消注册驱动程序。

同样,struct spi_drivermodule_spi_driver代表spi。

对于输入子系统,搜索struct input_dev。除此之外,您还需要通过设置相关事件位并实现input_event事件处理程序来“挂钩”到有趣的事件中。

更新:忘记提及,输入子系统的目标是帮助处理来自i2c或spi设备的输入事件。