问个带I2C操作的字符设备驱动问题

发布于 2022-09-18 18:20:57 字数 240 浏览 9 评论 0

一个设备IC驱动既有I2C串口操作,又有并口操作。
要如何组织其驱动架构?
1.如果像driver/i2c/ships/下的文件那样写,那么它的并口操作又如何完成?
2.如果把它写一个字符设备,如何把I2C操作嵌入到这个字符设备中?在内核模块里有I2C导出的符号吗?它如何探测它的地址之类的?

谢谢!
目前的思路是把它写成一个字符设备驱动,当中嵌入I2C操作,但是这个I2C操作不知如何完成,请高手指点下。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

要走干脆点 2022-09-25 18:20:57

字符设备,在操作读写的时候,驱动实现改为操作I2C设备

指尖上得阳光 2022-09-25 18:20:57

是既有并口操作也有I2C操作,I2C操作要先
i2c_add_driver(&my_driver)

platform_driver_register(&my_i2c_driver) 等等的。

兄弟,我的目标就是要在字符设备里实现I2C操作,但是不知如何下手啊,在内核里也没有找到相关的代码可以参
考的,你有没有相关的代码是这样操作的?给参考下。。谢谢啊!
同时也这个设备也有一个8位并口操作的。

无人接听 2022-09-25 18:20:57

你这个设备, 硬件上I2C和并口是否独立?  你可以做成两个驱动阿。

软件上, 好像你要先驱动I2C,然后驱动并口, 是吗

别想她 2022-09-25 18:20:57

是独立的。我有想做成两个独立的驱动,但是在字符模块里有I2C的一些初始化操作。这样的话,在应用程序里只要打开一个文件描述就可以了。如果是两个,我怕同步会有问题。
所以想问下如何把I2C模块中的读写导出到字符模块中去。
thx

灼痛 2022-09-25 18:20:57

两个模块通信

疾风者 2022-09-25 18:20:57

在I2C模块里通过EXPORT_SYMBOL()宏,把对I2C的读写导出到另一个模块。但是读写函数涉及到struct i2c_client 这个结构,而这个结构是在I2C里模块里注册的。所以只有在I2C模块里再对这个读写进行一次封装,只把基地址和数据传送。希望这个方法可以用,唯一担心的就是,字符模块能不能访问I2C模块里注册的资源?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文