如何从用户空间访问Linux内核中的已注册I2C设备

时间:2015-05-19 06:23:11

标签: linux linux-kernel driver i2c userspace

我希望能够修改I2C从设备中的寄存器。 设备在内核中有一个驱动程序,驱动程序使用其地址注册I2C客户端。

驱动程序非常基本,可以输出所有设备功能。 我想从用户空间访问寄存器,但是当我尝试使用I2C-dev访问它时,我收到错误 - 设备或资源繁忙。

我不想为驱动程序添加功能,我更喜欢编写用户空间应用程序来修改设备寄存器。

在这种情况下如何使用I2C-dev修改寄存器?

1 个答案:

答案 0 :(得分:1)

因此,在调查了I2C-dev之后,我设法克服了这个问题。我注意到ioctl函数中的标志I2C_SLAVE_FORCE。设置标志后,如果I2C地址已经注册,该函数将忽略。