@@ -21,6 +21,17 @@ struct rk8xx_i2c_platform_data {
21
21
int variant ;
22
22
};
23
23
24
+ static bool rk806_is_volatile_reg (struct device * dev , unsigned int reg )
25
+ {
26
+ switch (reg ) {
27
+ case RK806_POWER_EN0 ... RK806_POWER_EN5 :
28
+ case RK806_DVS_START_CTRL ... RK806_INT_MSK1 :
29
+ return true;
30
+ }
31
+
32
+ return false;
33
+ }
34
+
24
35
static bool rk808_is_volatile_reg (struct device * dev , unsigned int reg )
25
36
{
26
37
/*
@@ -121,6 +132,14 @@ static const struct regmap_config rk805_regmap_config = {
121
132
.volatile_reg = rk808_is_volatile_reg ,
122
133
};
123
134
135
+ static const struct regmap_config rk806_regmap_config = {
136
+ .reg_bits = 8 ,
137
+ .val_bits = 8 ,
138
+ .max_register = RK806_BUCK_RSERVE_REG5 ,
139
+ .cache_type = REGCACHE_MAPLE ,
140
+ .volatile_reg = rk806_is_volatile_reg ,
141
+ };
142
+
124
143
static const struct regmap_config rk808_regmap_config = {
125
144
.reg_bits = 8 ,
126
145
.val_bits = 8 ,
@@ -150,6 +169,11 @@ static const struct rk8xx_i2c_platform_data rk805_data = {
150
169
.variant = RK805_ID ,
151
170
};
152
171
172
+ static const struct rk8xx_i2c_platform_data rk806_data = {
173
+ .regmap_cfg = & rk806_regmap_config ,
174
+ .variant = RK806_ID ,
175
+ };
176
+
153
177
static const struct rk8xx_i2c_platform_data rk808_data = {
154
178
.regmap_cfg = & rk808_regmap_config ,
155
179
.variant = RK808_ID ,
@@ -201,6 +225,7 @@ static SIMPLE_DEV_PM_OPS(rk8xx_i2c_pm_ops, rk8xx_suspend, rk8xx_resume);
201
225
202
226
static const struct of_device_id rk8xx_i2c_of_match [] = {
203
227
{ .compatible = "rockchip,rk805" , .data = & rk805_data },
228
+ { .compatible = "rockchip,rk806" , .data = & rk806_data },
204
229
{ .compatible = "rockchip,rk808" , .data = & rk808_data },
205
230
{ .compatible = "rockchip,rk809" , .data = & rk809_data },
206
231
{ .compatible = "rockchip,rk816" , .data = & rk816_data },
0 commit comments