@@ -21,6 +21,17 @@ struct rk8xx_i2c_platform_data {
2121 int variant ;
2222};
2323
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+
2435static bool rk808_is_volatile_reg (struct device * dev , unsigned int reg )
2536{
2637 /*
@@ -121,6 +132,14 @@ static const struct regmap_config rk805_regmap_config = {
121132 .volatile_reg = rk808_is_volatile_reg ,
122133};
123134
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+
124143static const struct regmap_config rk808_regmap_config = {
125144 .reg_bits = 8 ,
126145 .val_bits = 8 ,
@@ -150,6 +169,11 @@ static const struct rk8xx_i2c_platform_data rk805_data = {
150169 .variant = RK805_ID ,
151170};
152171
172+ static const struct rk8xx_i2c_platform_data rk806_data = {
173+ .regmap_cfg = & rk806_regmap_config ,
174+ .variant = RK806_ID ,
175+ };
176+
153177static const struct rk8xx_i2c_platform_data rk808_data = {
154178 .regmap_cfg = & rk808_regmap_config ,
155179 .variant = RK808_ID ,
@@ -201,6 +225,7 @@ static SIMPLE_DEV_PM_OPS(rk8xx_i2c_pm_ops, rk8xx_suspend, rk8xx_resume);
201225
202226static const struct of_device_id rk8xx_i2c_of_match [] = {
203227 { .compatible = "rockchip,rk805" , .data = & rk805_data },
228+ { .compatible = "rockchip,rk806" , .data = & rk806_data },
204229 { .compatible = "rockchip,rk808" , .data = & rk808_data },
205230 { .compatible = "rockchip,rk809" , .data = & rk809_data },
206231 { .compatible = "rockchip,rk816" , .data = & rk816_data },
0 commit comments