• linux I2C_client产生方法一


    archarmmach-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函数。

  • 相关阅读:
    ubuntu防火墙设置通过某端口
    pandas入门
    pyplot入门
    numpy教程
    跨域请求 spring boot
    spring boot 启动流程
    代理配置访问
    AOP,拦截器
    spring boot 启动不连接数据库
    Python 3.x 连接数据库(pymysql 方式)
  • 原文地址:https://www.cnblogs.com/xihong2014/p/7729387.html
Copyright © 2020-2023  润新知