栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

I2C设备linux驱动程序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

I2C设备linux驱动程序

感谢大伙们。几个小时前我已经找到了想要的东西。因此,正如我所看到的,有三种类型的驱动程序。应该将其中一个插入内核,然后需要重建内核才能使用它们。您还可以通过

sysfs
using设备属性使用驱动程序(它们显示在中
/sys/bus/i2c/driver/your_driver/
)。第三,我的类型-
看起来像字符设备的驱动程序。实际上,您可以将它们结合起来。

因此,如果要使用最后一种类型的设备,将很难找到正确的示例,因为几乎所有示例都专门针对前两种类型的驱动程序。无论如何,如果要创建字符设备,则需要从

file_operations
结构中描述功能。但是所有函数都像
i2c_transfer
i2c_smbus_read_byte
。等(完整列表)为必填项
struct i2c_adapter
structi2c_client
。还有两个问题,如何到达那里的结构,以及如何将驱动程序连接到适当的i2c总线,例如i2c-2?

因此,有是没有描述的功能在这里:

i2c_get_adapter
。作为参数,您需要传递i2c总线号。它返回到
i2c_adapter
结构的链接。该
i2c_client
结构可以用得到
i2c_new_dummy
的功能传球
i2c_adapter
和从地址到它作为参数。

在此之后,你可以使用的功能,例如

i2c_transfer
i2c_smbus_read_byte
等等。最后,你可以描述
file_operations
的结构功能,并释放驱动程序,代表您的I2C设备,而无需使用的sysfs和重建你的内核。

结果代码如下:

u8 ret; struct i2c_client * my_client; struct i2c_adapter * my_adap = i2c_get_adapter(1); // 1 means i2c-1 busmy_client = i2c_new_dummy (my_adap, 0x69); // 0x69 - slave address on i2c busi2c_smbus_write_byte(my_client, 0x0f); ret = i2c_smbus_read_byte(my_client);

您可以在函数中的file_operations结构中直接使用此代码。

希望此信息对像我这样的初学者有用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/381578.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号