博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux I2C 驱动之----i2c_client 的注册
阅读量:3519 次
发布时间:2019-05-20

本文共 952 字,大约阅读时间需要 3 分钟。

       我们知道,linux的设备模型将设备分成了driver,device两大部分,driver即是设备的驱动,device即是硬件设备的具体描述,比如说:设备所拥有的中断,地址等,这里分析一下I2C驱动中device,也即i2c_client的注册。

       (注:这里所说明的是linux 系统i2c设备新采用的方法。)

        在注册i2c驱动的时候,会去linux系统中的全局变量_i2c_board_list链表中去匹配i2c_client,匹配的条件是:名字和i2c的地址。所以,在注册i2c设备驱动的时候要先注册好i2c设备。注册的方法如下:

        首先,定义一个 i2c_board_info 的变量,i2c_board_info 是i2c系统定义的一个结构体,其定义如下:(include\linux\i2c.h)

                       struct i2c_board_info {

                                char  type[I2C_NAME_SIZE];
                                unsigned short flags;
                                unsigned short addr;
                                void  *platform_data;
                                struct dev_archdata *archdata;
                                struct device_node *of_node;
                                int  irq;
                       };

其中最重要是type和addr,前者是名字,后者是地址,至于其他的不需要的话可以不用管他,给一个例子:struct i2c_board_info __initdata xxx_ls_cm3212 =

                              {
                                      I2C_BOARD_INFO("cm3212",0x90), 

                             // I2C_BOARD_INFO是个简单的宏:.type="cm3212",.addr=0x90.

                              };

        然后,在板级系统初始化的时候注册:

   i2c_register_board_info(int busnum,struct i2c_board_info const *info, unsigned len)

其中busnum表示你对应系统的那个 i2c 控制(adapter),len表示你注册的info的个数。

        这样,系统中就存在了一个名字为type,地址为addr的i2c_client,当注册对应的驱动时,就会匹配成功,从而调用驱动的probe函数。

转载地址:http://hyhqj.baihongyu.com/

你可能感兴趣的文章
JS操作数组常用实用方法
查看>>
java实现MD5多次进行加密加盐操作
查看>>
springboot实现CAS的server服务器端的搭建,并实现链接mysql数据库,自定义加密算法
查看>>
Python超详细的安装教程
查看>>
小甲鱼Python第一讲(我和Python的第一次亲密接触)
查看>>
小甲鱼Python第三讲(小插曲之变量和字符串)
查看>>
小甲鱼Python第十一讲(一个打了激素的数组2)
查看>>
小甲鱼Python第十三讲(戴上了枷锁的列表)
查看>>
小甲鱼Python第十四讲(各种奇葩的内置方法)
查看>>
小甲鱼Python第十五讲(格式化)
查看>>
小甲鱼Python第十七讲(Python的乐高积木)
查看>>
小甲鱼Python第十八讲(函数:灵活即强大)
查看>>
小甲鱼Python第十九讲(函数,我的地盘听我的)
查看>>
小甲鱼python第二十讲(内嵌函数和闭包)
查看>>
小甲鱼Python第二十一讲(lambda表达式)
查看>>
小甲鱼Python第二十二讲(递归)
查看>>
小甲鱼Python第二十三讲、第二十四讲(递归-这帮小兔崽子、汉诺塔)
查看>>
小甲鱼Python第二十五讲、第二十六讲(字典)
查看>>
小甲鱼Python第二十七讲(集合)
查看>>
2020光学期刊一区二区影响因子发布(科睿唯安)
查看>>