在初始化好regmap之后,就可以调用regmap提供的read/write/update等操作了。 intregmap_write(structregmap *map,intreg,intval);//向单个reg写入valintregmap_raw_write(structregmap *map,intreg,void*val,size_tval_len);//向单个reg写入指定长度的数据,数据存放在val中intregmap_bulk_write(structregmap *map,uns...
接下来看一下regmap_bulk_read 函数,此函数用于读取多个寄存器的值,函数原型如下: int regmap_bulk_read (structregmap* map , unsigned int reg, void *val, size_t val_count) 函数参数和返回值含义如下: map:要操作的 regmap。 reg:要读取的第一个寄存器。 val:读取到的数据缓冲区。 val_count:要读取的...
接下来看一下 regmap_bulk_read 函数,此函数用于读取多个寄存器的值,函数原型如下: intregmap_bulk_read(structregmap*map,unsignedintreg,void*val,size_tval_count) 函数参数和返回值含义如下: map:要操作的 regmap。 reg:要读取的第一个寄存器。 val:读取到的数据缓冲区。 val_count:要读取的寄存器数量。 返回...
//val_count:要读写的寄存器数量intregmap_bulk_read(structregmap *map,unsignedintreg,void*val,size_tval_count);intregmap_bulk_write(structregmap *map,unsignedintreg,constvoid*val,size_tval_count) 3.3 regmap_config 掩码设置 结构体regmap_config里面有三个关于掩码的成员变量:read_flag_mask和write_flag...
intregmap_bulk_read(struct regmap*map,unsigned int reg,void*val,size_t val_count) 函数参数和返回值含义如下: map:要操作的 regmap。 reg:要读取的第一个寄存器。 val:读取到的数据缓冲区。 val_count:要读取的寄存器数量。 返回值:0,写成功;其他值,读失败。
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指定的位 ...
第390行read_flag_mask:读标志掩码。 第391行write_flag_mask:写标志掩码。 关于regmap_config 结构体成员变量就介绍这些,其他没有介绍的自行查阅Linux内核中的相关描述。 Regmap操作函数 Regmap申请与初始化 regmap支持多种物理总线,比如I2C和SPI,需要根据所使用的接口来选择合适的regmap初始化函数。Linux内核提供了针...
result = regmap_bulk_read(dev->regmap, reg + ind, (u8 *)&d, 2); if (result) return -EINVAL; *val = (short)be16_to_cpup(&d); return IIO_VAL_INT; } /* * @description : 读取 ICM20608 陀螺仪、加速度计、温度通道值 * @param - indio_dev : iio 设备 ...
[4]; int err; err = regmap_bulk_read(pcf8563->regmap, PCF8563_REG_AMN, buf, sizeof(buf)); if (err < 0) return err; dev_dbg(dev, "%s: raw data is min=%02x, hr=%02x, mday=%02x, wday=%02x\n", __func__, buf[0], buf[1], buf[2], buf[3]); tm->time.tm_sec = 0...
Linux引入regmap是为了统一管理内核的i2c,spi等总线,将i2c、spi驱动做了一次重构,把I/O读写的重复逻辑在regmap中实现。只需初始化时指定总线类型、寄存器位宽等关键参数,即可通过regmap模型接口来操作器件寄存器。 将i2c、spi、mmio、irq等抽象出统一接口regmap_read,regmap_write,regmap_update_bits等接口,从而提高代码...