Regmap
主要目的是减少慢速I/O
驱动上的重复逻辑,提供一种通用的接口来操作底层硬件上的寄存器.Regmap
除了能做到统一的I/O
接口,还可以在驱动和硬件IC
之间做一层缓存,从而能减少底层I/O
的操作次数
Regmap拓扑结构
首先看一下硬件表达
/*
* 该数据结构表示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 *