码迷,mamicode.com
首页 > 系统相关 > 详细

linux I2C_client产生方法一

时间:2017-10-25 16:44:51      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:set   new   color   map   加载   probe   方式   linux   oid   

\arch\arm\mach-omap2/board-am335xevm.c

static struct i2c_board_info am335x_i2c2_boardinfo[] = {
 {
  I2C_BOARD_INFO("rx8803", 0x64),
 },
...
};

static void __init am335x_evm_i2c_init(void)

{

     setup_pin_mux(i2c2_pin_mux);  

  omap_register_i2c_bus(3, 100, am335x_i2c2_boardinfo,   ARRAY_SIZE(am335x_i2c2_boardinfo));

  }

  • 到这里我们可以说就完成了第一种方式的实例化。

  • 使用i2c_register_board_info去实例化必须知道我们使用的I2C设备是挂载到哪个总线上,并知道设备的地址。

  • 在Linux启动的时候会将信息进行收集,i2c适配器会扫描已经静态注册的i2c_board_info,通过调用i2c_register_board_info函数将包含所有I2C设备的i2c_board_info信息的i2c_devinfo变量加入到__i2c_board_list链表中,并调用i2c_new_device为其实例化一个i2c_client。

  • 在驱动加载的时候遇到同名的i2c_board_info就会将i2c_client和driver绑定,并且执行driver的probe函数。

linux I2C_client产生方法一

标签:set   new   color   map   加载   probe   方式   linux   oid   

原文地址:http://www.cnblogs.com/xihong2014/p/7729387.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!