然后调用read,调用regmap_read进行读操作,这里每次都只读取一个byte,不需要用到regmap_bulk_read.
如果要清除寄存器的 bit4 和 bit7,那么 mask 应该设置为 0X10010000,val 的 bit4 和 bit7 设置为 0,也就是 0X0xx0xxxx。 接下来看一下 regmap_bulk_read 函数,此函数用于读取多个寄存器的值,函数原型如下: intregmap_bulk_read(structregmap*map,unsignedintreg,void*val,size_tval_count) 函数参数和返回...
int regmap_bulk_read (structregmap* map , unsigned int reg, void *val, size_t val_count) 函数参数和返回值含义如下: map:要操作的 regmap。 reg:要读取的第一个寄存器。 val:读取到的数据缓冲区。 val_count:要读取的寄存器数量。 返回值:0,写成功;其他值,读失败。 另外也有多个寄存器写函数 regmap...
regmap_read(struct regmap *map,int reg,int *val);// 读取reg的数据到val中 regmap_raw_read(struct regmap *map,int reg,void *val,size_t val_len);// 读取reg中指定长度的数据 regmap_bulk_read(struct regmap *map,int reg,void *val,size_t val_count);// 读取从reg开始之后val_count个寄存器...
5. regmap_bulk_read(struct regmap *map, int reg, void *val, size_t val_count); // 读取从reg开始之后val_count个寄存器的数据到val中 6. regmap_update_bits(struct regmap *map, int reg, int mask, int val); // 更新reg寄存器中mask指定的位 ...
intregmap_bulk_read(struct regmap*map,unsigned int reg,void*val,size_t val_count) 函数参数和返回值含义如下: map:要操作的 regmap。 reg:要读取的第一个寄存器。 val:读取到的数据缓冲区。 val_count:要读取的寄存器数量。 返回值:0,写成功;其他值,读失败。
_regmap_read: _regmap_read 先拿到context,在以后的map->reg_read会用到 如果不是bypass的,调用regcache_read从cache中读 如果不能从cache中read到,调用map->reg_read regmap_config原型 在regmap_config,定义了寄存器的各种信息,比如寄存器地址长度,寄存器值的长度,读写寄存器的地址范围的信息,寄存器地址和值的大...
这些函数包括regmap_read、regmap_write、regmap_bulk_read、regmap_bulk_write等。以下是一个简单的例子: #include<linux/regmap.h> // Reading a register unsignedint int0x10 // Writing to a register 0x200xFF 1 有时,你可能需要一次性读写多个寄存器,regmap提供了相应的函数支持。例如,regmap_bulk_read...
and add bulk reads only if needed */ for (i = 0; i < chip->num_main_regs; i++) { ret = regmap_read(map, chip->main_status + (i * map->reg_stride * data->irq_reg_stride), &data->main_status_buf[i]); if (ret) {...
int(*reg_read)(void*context,unsignedintreg,unsignedint*val); int(*reg_write)(void*context,unsignedintreg,unsignedintval); int(*reg_update_bits)(void*context,unsignedintreg, unsignedintmask,unsignedintval); /* Bulk read/write */ int(*read)(void*context,constvoid*reg_buf,size_treg_size, ...