当一个驱动被注册后,我们就可以通过创建设备节点,对设备节点进操作来操作设备.
操作一个设备节点的第一步就是打开设备文件.由第一步中可以,此时调用open函数,实则是调用i2cdev_fops中的i2cdev_fops大家可以打开这个函数对应着看.
第一个有用的语句是:i2c_dev =
i2c_dev_get_by_minor(minor);
这个语句通过设备节点所对应的次设备号,去轮询
i2c_dev_list,这是一个
i2c_dev的链表,这个链表中每个i2c_dev 结构的adap成员对应一个次设备号,也就对应一个.上面所用到的函数就是通过对比次设备号,来判断并取得对应i2c从设备的i2c_dev.然后通这个结构是否为空来判断对应节点是否对应真实的设备.
第二个有用的语句是:adap = (i2c_dev->adap->nr);
通过这个函数取得要操作的设备所在的适配器结构.
实际上这个open函数的主要作用除了判断设备是否真实存在之外,还要为设备生成一个i2c_client结构.下面部分就是生成了这样一个结构,并且把这个结构的一此信息进行添充.
如图:
i2c设备驱打开文件
阅读(204) | 评论(0) | 转发(0) |