Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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 <detlev.casanova@collabora.com>
Link: https://lore.kernel.org/r/20240802134736.283851-1-detlev.casanova@collabora.com
Signed-off-by: Lee Jones <lee@kernel.org>

authored by

Detlev Casanova and committed by
Lee Jones
6fc9bb82 0d078d47

+25
+25
drivers/mfd/rk8xx-i2c.c
··· 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 /* ··· 132 121 .volatile_reg = rk808_is_volatile_reg, 133 122 }; 134 123 124 + static const struct regmap_config rk806_regmap_config = { 125 + .reg_bits = 8, 126 + .val_bits = 8, 127 + .max_register = RK806_BUCK_RSERVE_REG5, 128 + .cache_type = REGCACHE_MAPLE, 129 + .volatile_reg = rk806_is_volatile_reg, 130 + }; 131 + 135 132 static const struct regmap_config rk808_regmap_config = { 136 133 .reg_bits = 8, 137 134 .val_bits = 8, ··· 167 148 static const struct rk8xx_i2c_platform_data rk805_data = { 168 149 .regmap_cfg = &rk805_regmap_config, 169 150 .variant = RK805_ID, 151 + }; 152 + 153 + static const struct rk8xx_i2c_platform_data rk806_data = { 154 + .regmap_cfg = &rk806_regmap_config, 155 + .variant = RK806_ID, 170 156 }; 171 157 172 158 static const struct rk8xx_i2c_platform_data rk808_data = { ··· 225 201 226 202 static const struct of_device_id rk8xx_i2c_of_match[] = { 227 203 { .compatible = "rockchip,rk805", .data = &rk805_data }, 204 + { .compatible = "rockchip,rk806", .data = &rk806_data }, 228 205 { .compatible = "rockchip,rk808", .data = &rk808_data }, 229 206 { .compatible = "rockchip,rk809", .data = &rk809_data }, 230 207 { .compatible = "rockchip,rk816", .data = &rk816_data },