以下是一些 i2c_get_adapter 函数的常见用法: 1. 使用i2c_get_adapter 函数来获取默认的 I2C 适配器,代码示例如下: structi2c_adapter*adapter; adapter=i2c_get_adapter(0); 这段代码将获取默认的 I2C 适配器,并将其赋值给 adapter 变量。 2. 使用i2c_get_adapter 函数来获取指定编号的 I2C 适配器,代码...
而i2c_get_adapter()接口的参数为硬件i2c控制器的num,通常,一个单板上不止一个i2c控制器,这个num指定了i2c控制器的序号。 在驱动程序源码实现中,并不需要i2c_adapter的相关实现,那么,可以确定的是,i2c底层数据收发已经集成到了系统中,只需要用户去选择使用哪一个adapter即可。 那么,它到底是怎么工作的呢? 办法很...
I2C控制器节点创建 节点创建 i2c_add_adapter、i2c_add_numbered_adapter 是注册 i2c_adapter,这两个 API 最终是调用 i2c_register_adapter 2023-07-22 15:42:23 Linux的I2C驱动架构 就会被调用。在其中可以遍历系统中的每个i2c总线驱动,探测想要访问的设备:static int tuner_probe(struct i2c_adapter *adap){...
struct i2c_adapter *i2c_adap; i2c_adap = i2c_get_adapter(0); at24cxx_client = i2c_new_device(i2c_adap, &at24cxx_info); i2c_put_adapter(i2c_adap); 先定义一个i2c_adapter结构指针存放i2c_get_adapter(0)的返回值,此函数的参数为0,表示第0条总线,i2c_new_device调用完后要调用 i2c_put_ad...
ad=i2c_get_adapter(2); //自己填充board_info strcpy(inf.type,"xxxxx"); info.flags=0; //动态创建i2c_client并且注册 i2c_new_probed_device(ad,&info,addr_list,NULL); i2c_put_adapter(ad); */ /*注销*/ void i2c_unregister_device(struct i2c_client *pclt) ...
通过i2c_get_adapter函数获取I2C适配器,参数是I2C适配器编号; 调用i2c_new_device进行I2C从设备的注册,将I2C从设备关联到当前I2C适配器上; 调用i2c_put_adapter将添加完设备的结构体放回去, 1.4 at24c08_drv.c 创建文件at24c08_drv.c: #include <linux/init.h>#include<linux/module.h>#include<linux/stat.h>...
i2c_put_adapter(adap); if (err >= 0) return 0; return err; } 从上面的代码可以看出,sx1_i2c_write_byte主要完成了以下功能: 1、通过调用i2c_get_adapter(0)函数获取指定索引的I2C适配器对象并赋值给adap变量。 2、初始化一个struct i2c_msg类型的数组msg,该数组包含一个元素用于I2C消息的传输。
int i2c_add_adapter(struct i2c_adapter *adapter) { int id, res = 0; retry: if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0) return -ENOMEM; mutex_lock(&core_lists); /* "above" here means "above or equal to", sigh */ ...
static DEFINE_IDR(i2c_adapter_idr); 2. 使用idr_pre_get(&i2c_adapter_idr, GFP_KERNEL)为该结构分配空间; 3. 使用res = idr_get_new_above(&i2c_adapter_idr, adapter, __i2c_first_dynamic_bus_num, &id); 把我们的指针adapter与int型变量id对应起来。
(2)I2C总线驱动(I2Cadapter):I2C总线驱动是I2C适配器的软件实现,提供I2C适配器与从设备间完成数据通信的能力。I2C总线驱动由i2c_adapter和i2c_algorithm来描述 I2C适配器是SoC中内置i2c控制器的软件抽象,可以理解为他所代表的是一个I2C主机。 (3)I2C设备驱动(I2Cclient driver):包括两部分:设备的注册和设备驱动的注...