linux I2C_client产生方法一

Posted xihong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux I2C_client产生方法一相关的知识,希望对你有一定的参考价值。

\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产生方法一的主要内容,如果未能解决你的问题,请参考以下文章

编写设备驱动之i2c_client

RK3399平台开发系列讲解(I2C子系统)4.45如何生成i2c_client

linux内核I2C子系统学习

linux驱动之i2c学习

解决SSH连接linux时长时间不操作自动断开

使用TFTP进行文件传输,arm系统移植