// 1.构建regmap_config结构staticconststructregmap_configmlx90632_regmap={// 寄存器地址位宽.reg_bits=16,// 寄存器值的位宽,必须填写.val_bits=16,// 可选,判断寄存器是否可写,可读,是否可缓冲等回调.volatile_table=&mlx90632_volatile_regs_tbl,.rd_table=&mlx90632_readable_regs_tbl,.wr_table=&mlx9...
regmap_unlock unlock;void*lock_arg;//读操作int(*reg_read)(void*context,unsignedintreg,unsignedint*val);//写操作int(*reg_write)(void*context,unsignedintreg,unsignedintval);boolfast_io;//快速 I/O,使用 spinlock 替代 mutex 来提升锁性能。unsignedintmax_register;//有效的最大寄存器地址conststructreg...
创建regmap配置结构体:接下来,你需要创建一个regmap配置结构体,其中包含了寄存器地址、值和其他相关信息。例如: structregmap_configmy_regmap_config={.reg_bits=8,.val_bits=8,.max_register=0xFF,.cache_type=REGCACHE_RBTREE,.reg_defaults=my_reg_defaults,.num_reg_defaults=ARRAY_SIZE(my_reg_defaults)...
// 1.构建regmap_config结构staticconststructregmap_configmlx90632_regmap={// 寄存器地址位宽.reg_bits =16,// 寄存器值的位宽,必须填写.val_bits =16,// 可选,判断寄存器是否可写,可读,是否可缓冲等回调.volatile_table = &mlx90632_volatile_regs_tbl, .rd_table = &mlx90632_readable_regs_tbl, .wr_...
14. int num_reg_defaults_raw; 15. u8 read_flag_mask; 16. u8 write_flag_mask; 17. }; 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 1 初始化regmap 1. regmap_init_i2c(struct i2c_client *i2c, struct regmap_config *config); ...
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, size_t val_len); //从reg中读取val_len长度的数据,保存在val中 ...
#include<linux/regmap.h> static const struct regmap_config my_device_regmap_config = { .reg_bits = 32, .val_bits = 32, .max_register = 0xFF, .cache_type = REGCACHE_NONE, .reg_defaults = my_device_reg_defaults, .num_reg_defaults = ARRAY_SIZE(my_device_reg_defaults), }; 复制代...
第385行num_reg_defaults:默认寄存器表中的元素个数。 第390行read_flag_mask:读标志掩码。 第391行write_flag_mask:写标志掩码。 关于regmap_config 结构体成员变量就介绍这些,其他没有介绍的自行查阅Linux内核中的相关描述。 Regmap操作函数 Regmap申请与初始化 ...
.cache_type = REGCACHE_RBTREE, .use_single_rw = true, .use_single_read = true, .use_single_write = true, }; static const u32 lm95245_chip_config[] = {3 changes: 2 additions & 1 deletion 3 drivers/hwmon/tmp102.c Original file line numberDiff line numberDiff line change @@ ...
你所需要做的就是:1)配置好struct regmap_config,包括reg_bits(寄存器地址宽度)、val_bits(寄存器值宽度)、num_reg_defaults(寄存器数⽬)等等信息;2)注册接⼝时,根据接⼝类型使⽤不同的函数,I2C⽤regmap_init_i2c(),SPI⽤regmap_init_spi()。除了使⽤⽅便以外,还可以在线调试,只要你...