Skip to content

Commit 6fc9bb8

Browse files
cazoulag-linaro
authored andcommitted
mfd: rk8xx: Add support for rk806 on i2c bus
The ArmSoM Sige 5 board connects the rk806 PMIC on an i2c bus. Signed-off-by: Detlev Casanova <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Lee Jones <[email protected]>
1 parent 0d078d4 commit 6fc9bb8

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

drivers/mfd/rk8xx-i2c.c

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
2435
static 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+
124143
static 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+
153177
static 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

202226
static 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

Comments
 (0)