I2C
文章平均质量分 81
Ernest_lsf
这个作者很懒,什么都没留下…
展开
-
一、创建 _i2c_board_list 和 platform_device
开始前先熟悉i2c_board_info 结构体以及 I2C_BOARD_INFO 宏。/** * struct i2c_board_info - template for devicecreation * @type: 芯片类型,用于初始化i2c_client.name * @flags: 用于初始化i2c_client.flags * @addr: 存储于i2c_clien原创 2013-02-14 11:12:24 · 1713 阅读 · 0 评论 -
三、创建 i2c_adapter 和 i2c_client
// kernel/drivers/i2c/busses/i2c-sc8810.c/* sc8810_i2c_probe * * called by the bus driver when a suitabledevice is found*/static int sc8810_i2c_probe(struct platform_device *pdev){原创 2013-02-14 11:41:24 · 1085 阅读 · 0 评论 -
二、注册 platform_driver
// kernel/drivers/i2c/busses/i2c_sc8810.cstatic int __init i2c_adap_sc8810_init(void){ printk(KERN_INFO"I2c:sc8810 driver$Revision:1.0 $\n"); return platform_driver_regist原创 2013-02-14 11:31:01 · 623 阅读 · 0 评论 -
前言
前一段时间在调试展讯平台外设驱动的时候,顺便看了一下 Linu I2C 架构,现将自己的学习心得与大家分享。由于本人能力有限,文中还有很多不懂以及错误的地方,希望大家多多指正!原创 2013-02-14 11:04:14 · 303 阅读 · 0 评论 -
四、注册 i2c_driver
前三步跟平台相关,从这里开始就只与具体的设备驱动相关了,这里我选取FLD00060光距感的驱动进行说明。 // 3rdparty/lsensor/fld60/special/driver/FLD60.cstatic int __init fld60_pls_init(void){ int temp=0; printk("baker :%s\n",原创 2013-02-14 11:52:19 · 604 阅读 · 0 评论