i2c_client结构体 1. 基本概念 i2c_client结构体在Linux内核中用于描述连接到I2C总线上的一个I2C从设备。它是I2C设备驱动中非常重要的一个数据结构,记录了从设备的相关信息,如设备地址、所依附的I2C适配器等。 2. 主要成员变量 i2c_client结构体包含多个成员变量,以下是一些主要的成员变量: ...
这样注册之后,i2c_adapter注册的时候就会扫描所有的已注册的i2c_board_info,并为连接自己的i2c设备实例化一个i2c_client。 这样一来,i2c_driver注册的时候,i2c_client就会和i2c_driver绑定了(注册的NAME必须一致),i2c_driver的probe函数被调用。 二、枚举设备 使用i2c_new_device()或者i2c_new_probed_device()在设...
static struct i2c_client *ap3216c_client; /* Addresses to scan */ static const unsigned short normal_i2c[] = {0x1e, I2C_CLIENT_END}; static int __init i2c_client_ap3216c_init(void) { struct i2c_adapter *adapter; struct i2c_board_info board_info; memset(&board_info, 0, sizeof(s...
程序中并不是直接创建的i2c_client结构体,而是创建了i2c_board_info结构体,i2c_board_info和i2c_client两个结构体内容是相似的,最大的区别在于i2c_board_info没有I2C设备具体挂载到哪一个I2C 适配器的结构体i2c_adapter,那Linux在没有使用设备树的前提下是怎样解决i2c_board_info无法描述挂载的哪一个I2C 适配器这...
第172章 使用C文件编写I2C client代码 首先我们来回顾一下前面讲解的平台总线相关知识,平台总线将驱动分为了platform driver和platform device两个部分,而最终设备树取代了platform device部分,而为了对I2C子系统框架有一个更深刻的认识,在本章节将使用platform device重新编写I2C client代码并与上一章中的I2C driver部分...
* struct i2c_client - represent an I2C slave device * @flags: I2C_CLIENT_TEN indicates the device uses a ten bit chip address; * I2C_CLIENT_PEC indicates it uses SMBus Packet Error Checking * @addr: Address used on the I2C bus connected to the parent adapter. ...
API Explorer SDK中心 软件开发生产线 AI开发生产线 数据治理生产线 数字内容生产线 开发者Programs Huawe...
* struct i2c_msg - an I2C transaction segment beginning with START * @addr: Slave address, either seven or ten bits. When this is a ten * bit address, I2C_M_TEN must be set in @flags and the adapter * must support I2C_FUNC_10BIT_ADDR. ...
1. I2C总线-设备-驱动模型 2. 编译i2c_driver 3. 编写测试程序 4. 多种方法生成i2c_client并测试 4.1 在用户态生成 示例: 代码语言:javascript 复制 // 在I2C BUS0下创建i2c_client# echo ap3216c0x1e>/sys/bus/i2c/devices/i2c-0/new_device// 删除i2c_client# echo0x1e>/sys/bus/i2c/devices/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_cli...