Jinghua

Linux I2C 驱动编程

0
阅读(564) 评论(20)

1。 Linux 系统已经将I2C驱动的功能基本完成,我们只需要将相关的结构体补充,完成注册就可以正常使用,具体 I2C驱动的知识不在做说明。

2. 测试环境 Linux-3.4 内核,硬件环境 JZ2440开发板

3。 开发过程:由于I2C采用类似于Platform驱动实现形式,所以此处采用设备和驱动分开,以lkt4306为例

(1) 编写 lkt4306_dev.c 文件

① 定义芯片名称 和 地址,使用如下结构体实现

图片1.png 

 

② 在adapter 适配器上创建设备信息,在static int lkt4306_dev_init() 函数中实现。由于JZ2440只有一个I2C接口,所以i2c_get_adapter(0),可以根据实际的挂载的总线确定adapter。具体实现如下

图片2.png 

 

以上完成lkt4306_dev.c基本功能实现。

 

 

(2) .编写lkt4306_drv.c文件完成设备驱动具体实现

① 编写读写lkt4306函数功能,通过i2c_transfer 函数实现如下图所示

图片3.png

 

写函数功能类似。

② 完成file_operations 结构体,便于调用read 和write函数调用

图片4.png

③ 通过编写 probe 和remove 函数完成 字符设备号的注册 和删除

 

以上操作后基本完成了。Linux下 I2C驱动的开发,完整的驱动程序可以通过网上查找I2C驱动相关的介绍或者咨询凌科芯安了解详细的开发源码


  1. 幸亏看到这个帖子,讲的好详细啊,已转给我们技术部看了

  2. 求楼主推荐一款支持iic通讯的加密芯片?我想详细的了解一下

  3. 楼主有凌科的lkt4306的详细资料吗???

  4. 专业性好强的文章,当做技术储备,希望楼主能够详细的再具体介绍一些

  5. 硬件环境 JZ2440开发板是不是也得是凌科芯安的才行?


  6. 厉害了,对我帮助很大,有没有源码?能不能发出来看看

  7. 适合Android平台下的IIC驱动移植吗?

  8. 他们家很不错的,具体你可以百度一下,去他家官网看看,产品很多!

  9. 不错正想找linux下IIC的类似驱动,先保存了。

  10. LKT?第一次听说,很高端吗?看你们聊得好像他家很有知名度啊?


  11. 我听朋友提起过 LKT系列产品很多 功能和安全性也各有所长  不过具体的还是得咨询一下专业人士

  12. 他们家还有其他IIC芯片吗?编程方式一样吗?安全性哪个更加好?

  13. I2C都是采用Platform驱动实现形式?

  14. 文章写的很详细,学习了


  15. Linux?i2c驱动原来内核已经封好很多接口函数,原来实现这么方便

秒速时时彩 欢乐生肖 澳洲幸运10开奖结果 秒速时时彩 澳门最有名彩票网站 吉林快3 山东11选5开奖 欢乐生肖 秒速时时彩 三分PK拾平台