devm_regmap_init_i2c将config写入regmap系统。 structregmap*__devm_regmap_init_i2c(structi2c_client*i2c,conststructregmap_config*config,structlock_class_key*lock_key,constchar*lock_name){conststructregmap_bus*bus=regmap_get_i2c_bus(i2c,config);if(IS_ERR(bus))returnERR_CAST(bus);return__devm_r...
// drivers/base/regmap/regmap-i2c.cstructregmap *regmap_init_i2c(structi2c_client *i2c,conststructregmap_config *config){// regmap_bus 定位了对应总线的读写函数。conststructregmap_bus*bus=regmap_get_i2c_bus(i2c, config);if(IS_ERR(bus))returnERR_CAST(bus);returnregmap_init(&i2c->dev, bus...
regmap_get_i2c_bus 对于普通I2C设备,regmap_bus为: // drivers/base/regmap/regmap-i2c.cstaticconststructregmap_bus*regmap_get_i2c_bus(structi2c_client*i2c,conststructregmap_config*config){if(i2c_check_functionality(i2c->adapter,I2C_FUNC_I2C))return®map_i2c;// ...returnERR_PTR(-ENOTSUPP);}...
//传入configstructlock_class_key *lock_key,//NULLconstchar*lock_name)//NULL{conststructregmap_bus *bus =regmap_get_i2c_bus(i2c, config);if(IS_ERR(bus))returnERR_CAST(bus);return__devm_regmap_init(&i2c->dev, bus, &i2c->dev, config,...
"regmap_i2c:99:config->lock");\}) \ ) 1. 2. 3. 4. 5. 6. 7. 6. 看看__devm_regmap_init_i2c的执行路径 __devm_regmap_init_i2c -> regmap_get_i2c_bus -> __devm_regmap_init -> devres_alloc -> __regmap_init 7. 重点分析__regmap_init ...
* bus or through a peripheral bus like I2C, SPI. */ int regmap_write(struct regmap *map, uint offset, uint val); int regmap_read(struct regmap *map, uint offset, uint *valp); #define regmap_write32(map, ptr, member, val) \ regmap_write(map, (uint32_t *)(ptr)->member - (...
const struct regmap_bus *bus = regmap_get_i2c_bus(i2c, config); if (IS_ERR(bus)) return ERR_CAST(bus); return devm_regmap_init(&i2c->dev, bus, &i2c->dev, config); return __devm_regmap_init(&i2c->dev, bus, &i2c->dev, config, lock_key, lock_name); } EXPORT_SYMBOL_GPL(de...
*/ struct regmap *__regmap_init(struct device *dev, const struct regmap_bus *bus, void *bus_context, const struct regmap_config *config, struct lock_class_key *lock_key, const char *lock_name); struct regmap *__regmap_init_i2c(struct i2c_client *i2c, const struct regmap_config *confi...
/ include / linux / regmap.h v6 v5 v4 v4.20 v4.19 v4.18 v4.17 v4.16 v4.15 v4.14 v4.13 v4.12 v4.11 v4.10 v4.9 v4.9.337 v4.9.336 v4.9.335 v4.9.334 v4.9.333 v4.9.332 v4.9.331 v4.9.330 v4.9.329 v4.9.328 v4.9.327 v4.9.326 v4.9.325 v4.9...
。本周开始我们学习下regmap子系统的架构。本系统专栏主要涉及如下几个子章节: 一、regmap子系统概述 二、regmap子系统数据结构分析 三、regmap子系统接口说明 四、regmap bus实例说明(以i2c为例) 本章我们主要对regmap子系统做一个简单的说明。涉及的...