驱动编程之 Regmap

Regmap主要目的是减少慢速I/O驱动上的重复逻辑,提供一种通用的接口来操作底层硬件上的寄存器.Regmap除了能做到统一的I/O接口,还可以在驱动和硬件IC之间做一层缓存,从而能减少底层I/O的操作次数

Regmap拓扑结构

驱动编程之 Regmap_第1张图片

首先看一下硬件表达

/*
 * 该数据结构表示rk808芯片
 * 用这个结构体定义的变量名为chip
 */
struct rk808 {
	struct i2c_client *i2c;
	struct regmap_irq_chip_data *irq_data;
	struct regmap *regmap;
	int hold_gpio;
	int stby_gpio;
};

struct rk808_reg_data {
	int addr;
	int mask;
	int value;
};

/*
 * 该结构体表示芯片的硬件平台数据
 * 这个结构体定义的变量名为pdata
 */
struct rk8xx_power_data {
	char *name;
	const struct rk808_reg_data *rk8xx_pre_init_reg;
	int reg_num;
	const struct regmap_config *rk8x

你可能感兴趣的:(子类__I2C,驱动编程)