?-о的个人空间 https://www.eechina.com/space-uid-133975.html [收藏] [复制] [分享] [RSS]

博客

Linux I2C 驱动编程

热度 10已有 909 次阅读2019-12-20 13:54 | 加密芯片

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

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

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

(1) 编写 lkt4306_dev.c 文件

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

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

 

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

 

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

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


 

写函数功能类似。

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


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

 

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


路过

鸡蛋

鲜花

握手

雷人

全部作者的其他最新博客

发表评论 评论 (18 个评论)

回复 kessy1 2019-12-23 14:20
楼主文中例举的4306 应该是一款功能很强的I2C接口加密芯片吧,但对市面上普通的I2C接口芯片有其它要求吗?
回复 zntsbkhhh 2019-12-23 15:17
文章写的很清楚,如果有4306的配套手册就更好了
回复 陌小凯 2019-12-24 13:34
受教了,所有的IIC接口的芯片都支持吗?
回复 ?-о 2019-12-24 22:57
各个版本内核不一定都试用
回复 wang0327 2019-12-25 10:56
Linux?i2c驱动原来内核已经封好很多接口函数,原来实现这么方便
回复 Test_wf 2019-12-25 20:28
文章写的很详细,学习了
回复 mingmei123 2019-12-26 09:04
I2C都是采用Platform驱动实现形式?
回复 miniminimini 2019-12-26 09:34
他们家还有其他IIC芯片吗?编程方式一样吗?安全性哪个更加好?
回复 QL87 2019-12-26 14:08
我听朋友提起过 LKT系列产品很多 功能和安全性也各有所长  不过具体的还是得咨询一下专业人士
回复 wang0327 2019-12-26 14:41
LKT?第一次听说,很高端吗?看你们聊得好像他家很有知名度啊?
回复 tyl20100 2019-12-26 16:36
不错正想找linux下IIC的类似驱动,先保存了。
回复 Test_wf 2019-12-26 17:31
他们家很不错的,具体你可以百度一下,去他家官网看看,产品很多!
回复 陌小凯 2019-12-27 09:11
适合Android平台下的IIC驱动移植吗?
回复 明亮的光 2019-12-27 09:36
厉害了,对我帮助很大,有没有源码?能不能发出来看看
回复 mingmei123 2019-12-27 12:41
硬件环境 JZ2440开发板是不是也得是凌科芯安的才行?
回复 miniminimini 2019-12-27 13:27
楼主有凌科的lkt4306的详细资料吗???
回复 zntsbkhhh 2019-12-27 13:36
求楼主推荐一款支持iic通讯的加密芯片?我想详细的了解一下
回复 QL87 2019-12-27 18:49
幸亏看到这个帖子,讲的好详细啊,已转给我们技术部看了

facelist

您需要登录后才可以评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
返回顶部