// 1.构建regmap_config结构staticconststructregmap_configmlx90632_regmap={// 寄存器地址位宽.reg_bits=16,// 寄存器值的位宽,必须填写.val_bits=16,// 可选,判断寄存器是否可写,可读,是否可缓冲等回调.volatile_table=&mlx90632_volatile_regs_tbl,.rd_table=&
* regmap_field_update_bits_base(): * Perform a read/modify/write cycle on the register field * with change, async, force option * regmap_field_update_bits_base() - Perform a read/modify/write cycle a * register field. * * @field: Register field to write to * @mask: Bitmask to ch...
* @pad_bits: Number of bits of padding between register and value. * @val_bits: Number of bits in a register value, mandatory. * * @writeable_reg: Optional callback returning true if the register * can be written to. If this field is NULL but wr_table * (see below) is not, the...
// include/linux/regmap.hstructregmap_config{constchar*name;// 可选,寄存器名字intreg_bits;// 寄存器地址位宽,必须填写intreg_stride;// 寄存器操作宽度,比如为1时,所有寄存器可操作,为2时,只有2^n可操作intpad_bits;intval_bits;// 寄存器值的位宽,必须填写// 可选,判断寄存器是否可写,可读,是否可缓冲...
Regmap就是对i2c/spi/spmi等总线的一层封装,同时利用了缓存及压缩技术, 以期达到操作总线更简单、操作效率更高的目标。(个人认为对IO性能优化有限)一、关于...regmap_update_bits() ,regmap_write_bits()接口很方便对按位操作寄存器。Regmap操作i2c例子:Regmap总结: 使用确实更简单,效率提升有限。
+ return regmap_update_bits(field->regmap, field->reg, + field->mask, val << field->shift); +} +EXPORT_SYMBOL_GPL(regmap_field_write); + /* * regmap_bulk_write(): Write multiple registers to the device * @@ -1532,6 +1610,32 @@ int regmap_raw_read(struct regmap *map, unsign...