// 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...
/* if set, the regmap core can sleep */ boolcan_sleep; }; 使用regmap_init_xxxxx等接口函数,根据regmap_config和bus结构体的数据来初始化regmap结构体。 3.2 regmap_config结构体 // include/linux/regmap.h structregmap_config{ constchar*name;// 可选,寄存器名字 intreg_bits;// 寄存器地址位宽,必须...
struct regmap_bus是描述物理总线在Regmap中的特性。 structregmap_config {constchar*name;intreg_bits;--寄存器地址位宽。intreg_stride;--寄存器地址步进。intpad_bits;intval_bits;--寄存器数据位宽。...booldisable_locking; regmap_locklock; regmap_unlock unlock;void*lock_arg;int(*reg_read)(void*context,...
配置初始化函数devm_regmap_init_i2c(struct i2c_client *client, const struct regmap_config),第一个参数传入i2c的client,此结构体从i2c_driver的probe传入,第二个参数为regmap_config结构体。 staticconststructregmap_configlt9611_regmap_config={.reg_bits=8,//子设备寄存器的位数.val_bits=8,//子设备寄存器...
ret = regmap_write(adc->map, ADC_ARB_USRP_AMUX_CNTRL, val);if(ret)gotounlock;/* Set up ratiometric scale value, mask off all bits except these */rsvmask = (ADC_ARB_USRP_RSV_RST | ADC_ARB_USRP_RSV_DTEST0 | ADC_ARB_USRP_RSV_DTEST1 | ADC_ARB_USRP_RSV_OP);if(adc->variant-...
*/ int regmap_update_bits(struct regmap *map, uint offset, uint mask, uint val); /** * regmap_init_mem() - Set up a new register map that uses memory access * 0 comments on commit 7ad3d56 Please sign in to comment. Footer...
3.10版本开始出现了regmap的接口,这个regmap将i2c、spi、mmio、irq都抽象出统一的接口regmap_read、regmap_write、regmap_update_bits等接口 例如对于i2c接口 devm_regmap_init_i2c(i2c, ®map_i2c);或者使用 devm_regmap_init(&i2c->dev, ®map_i2c, &i2c->dev, config) ...
staticintrockchip_pmu_set_idle_request(struct rockchip_pm_domain *pd,boolidle){conststructrockchip_domain_info*pd_info=pd->info;structrockchip_pmu*pmu=pd->pmu;unsignedintval;if(pd_info->req_mask ==0)return0; regmap_update_bits(pmu->regmap, pmu->info->req_offset, ...
方法介绍: Kernel驱动程序主要通过I2C/ SPI / SPMI等总线操作外部设备的寄存器, KernelRegmap提供了非常方便的总线操作接口集,其中,regmap_update_bits() /regmap_write_bits()就是用于简化按位操作外部设备的寄存器的通用接口。regmap_update_bits() /regmap_write_bits()调用的 ...
...\n"); axp_regmap_set_bits(axp22x_pm_power->regmap, AXP22X_OFF_CTL, 0x80); } return count;...函数,读数据使用的是axp_regmap_read函数而且在axp22x.h头文件中定义了: #define AXP22X_OFF_CTL (0x32) 所以可以模仿着写,即可...: axp_regmap_set_bits(axp22x_pm_power->regmap, AXP...