新手求解决i2c字符设备驱动怎么写

huaxiong_ID 2016-04-07 11:56:10
最近被安排写一个i2c设备驱动,这个芯片没有i2c接口,后来同事帮模拟了i2c接口,现在要我写芯片的i2c驱动(字符设备方式),我实现了i2c_add_driver()和my_probe()函数,在probe里初始化了字符设备,但是到了字符设备这些就不太懂了,open函数里需要做些什么,是否需要做获得适配器,设备号等等之类的工作,这些真的一头雾水,求各位大神帮忙指点一二
...全文
1093 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
小菜小白 2016-06-22
  • 打赏
  • 举报
回复
linux内核中自带的I2C驱动去看看,看看ioctr那边有读写数据的函数。 检查下/dev目录下面有没放出设备,没有的话还需要去版级文件配出来,然后根据你的从设备时序直接在应用层完成即可。
qq_35137660 2016-05-27
  • 打赏
  • 举报
回复
最近也在搞I²C驱动的东西,也不是很懂,想和各位交流交流,楼主我们一起讨论讨论吧? 这个地方可以留QQ号码吗? 我的QQ: 10109231
hanshuaiboya 2016-05-25
  • 打赏
  • 举报
回复
第一步先配置设备信息,一般该信息在设备树中配置,如从设备地址,clk ,ldo,中断 第二步写probe初始化函数,一般需要先验证通信是否ok,一般使用linux专用的api检测该功能,然后通过iic初始化你的设备,申请中断。 第三步如果你是input设备还需要申请input子系统,如果不是那就注册iic设备就ok了,然后写一下中断处理函数,函数中做你的功能。 当然我说这些是基于有设备树的linux,大约是3.x以上的一定是如此的. that is all .
fly 100% 2016-05-24
  • 打赏
  • 举报
回复
具体参考kernel 中driver/rtc/pcf8563.c 基本流程是找到adapter 初始化msg
gomogomono 2016-05-24
  • 打赏
  • 举报
回复
引用 2 楼 wenxy1 的回复:
既然是新手,推荐看三本书:LKD, LDD, ULK。
新手估计都不理解什么是LKD, LDD, ULK: LKD,linux内核设计与实现 LDD,linux设备驱动程序 ULK,深入理解linux内核
Wenxy1 2016-05-22
  • 打赏
  • 举报
回复
既然是新手,推荐看三本书:LKD, LDD, ULK。
qq_30221567 2016-04-26
  • 打赏
  • 举报
回复
open可以什么都不做,直接返回0即可,当然,这里可以完成一些初始化的工作。

1,318

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧