2. 请看devm_regmap_init_i2c (include/linux/regmap.h) /** * devm_regmap_init_i2c() - Initialise managed register map * * @i2c: Device that will be interacted with * @config: Configuration for register map * * The return value will be an ERR_PTR() on error or a valid pointer * ...
2. 请看devm_regmap_init_i2c (include/linux/regmap.h) /** * devm_regmap_init_i2c() - Initialise managed register map * * @i2c: Device that will be interacted with * @config: Configuration for register map * * The return value will be an ERR_PTR() on error or a valid pointer * ...
注意: i2c_transfer函数本身不具备驱动适配器物理硬件完成消息交互的能力,它只是寻找到 i2c_adapter 对应的 i2c_algorithm,并使用 i2c_algorithm 的 master_xfer函数真正驱动硬件流程。 2.2 Linux I2C 适配器驱动 通过上面的介绍我们知道了I2C驱动主要分为三个部分,上面我们已经介绍了I2C核心这一部分,现在我们来介绍一...
* devm_regmap_init_i2c() - Initialise managed register map * * @i2c: Device that will be interacted with * @config: Configuration for register map * * The return value will be an ERR_PTR() on error or a valid pointer * to a struct regmap. The regmap will be automatically freed by ...
compatible = “rockchip,rk809”匹配到i2c驱动module_i2c_driver(rk808_i2c_driver),会调用rk808_probe,该函数会继续i2c设备初始化等操作,其中会调用devm_mfd_add_devices函数,添加mfd(multi-function device,多功能设备)设备,会添加rk808-regulator平台设备,该设备会和平台驱动rk808_regulator_driver匹配,最后在...
struct regmap *devm_regmap_init_i2c(struct i2c_client *i2c, const struct regmap_config *config) 读写I2C: int regmap_read(struct regmap *map, unsigned int reg, unsigned int *val);//读取reg中的值,保存在val中 int regmap_raw_read(struct regmap *map, unsigned int reg, void *val, ...
一、Linux I2C设备体系 Linux源码中I2C驱动目录介绍: Linux I2C的设备体系主要分为3个部分: 1.I2C核心 I2C核心提供了I2C总线驱动和设备驱动注册、注销函数,I2C通信函数、探测设备、检测设备地址函数等。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 ...
Linux内核⾥,I2C驱动框架可以分为两层,adapter驱动和deivce驱动。Adapter驱动也可以理解为I2C总线驱动,指的是SOC⾥的I2C控制器驱动。⼀个SOC可能包含多个I2C控制器,⽽每个控制器的使⽤⽅式是相同的(寄存器参数、收发数据的⽅法等),因此多个控制器可以共⽤⼀套adapter驱动;Deivce驱动,对应的是SOC...
base = devm_ioremap_resource(dev, res); if (IS_ERR(base)) return PTR_ERR(base); pc->pwm_regmap = devm_regmap_init_mmio(dev, base, &pwm_regmap_config); #endif pc->chip.dev = &pdev->dev; pc->chip.ops = &msxbo_pwm_ops; pc->chip.of_xlate = of_pwm_xlate_with...
devm_regmap_init_i2c(i2c, config) regmap_exit()是Regmap的注销函数。 regmap_read()/regmap_write()是Regmap读写函数。 其中map是Regmap注册返回的strcut regmap结构体,在Regmap内部表示一个已经注册的Regmap。 intregmap_write(structregmap *map, unsignedintreg, unsignedintval)intregmap_read(structregmap *map...