diff options
| -rw-r--r-- | drivers/regulator/tps51632-regulator.c | 41 |
1 files changed, 36 insertions, 5 deletions
diff --git a/drivers/regulator/tps51632-regulator.c b/drivers/regulator/tps51632-regulator.c index ab21133e6784..b96fb0e15a82 100644 --- a/drivers/regulator/tps51632-regulator.c +++ b/drivers/regulator/tps51632-regulator.c | |||
| @@ -205,18 +205,49 @@ skip_pwm_config: | |||
| 205 | return ret; | 205 | return ret; |
| 206 | } | 206 | } |
| 207 | 207 | ||
| 208 | static bool rd_wr_reg(struct device *dev, unsigned int reg) | 208 | static bool is_volatile_reg(struct device *dev, unsigned int reg) |
| 209 | { | 209 | { |
| 210 | if ((reg >= 0x8) && (reg <= 0x10)) | 210 | switch (reg) { |
| 211 | case TPS51632_OFFSET_REG: | ||
| 212 | case TPS51632_FAULT_REG: | ||
| 213 | case TPS51632_IMON_REG: | ||
| 214 | return true; | ||
| 215 | default: | ||
| 211 | return false; | 216 | return false; |
| 212 | return true; | 217 | } |
| 218 | } | ||
| 219 | |||
| 220 | static bool is_read_reg(struct device *dev, unsigned int reg) | ||
| 221 | { | ||
| 222 | switch (reg) { | ||
| 223 | case 0x08 ... 0x0F: | ||
| 224 | return false; | ||
| 225 | default: | ||
| 226 | return true; | ||
| 227 | } | ||
| 228 | } | ||
| 229 | |||
| 230 | static bool is_write_reg(struct device *dev, unsigned int reg) | ||
| 231 | { | ||
| 232 | switch (reg) { | ||
| 233 | case TPS51632_VOLTAGE_SELECT_REG: | ||
| 234 | case TPS51632_VOLTAGE_BASE_REG: | ||
| 235 | case TPS51632_VMAX_REG: | ||
| 236 | case TPS51632_DVFS_CONTROL_REG: | ||
| 237 | case TPS51632_POWER_STATE_REG: | ||
| 238 | case TPS51632_SLEW_REGS: | ||
| 239 | return true; | ||
| 240 | default: | ||
| 241 | return false; | ||
| 242 | } | ||
| 213 | } | 243 | } |
| 214 | 244 | ||
| 215 | static const struct regmap_config tps51632_regmap_config = { | 245 | static const struct regmap_config tps51632_regmap_config = { |
| 216 | .reg_bits = 8, | 246 | .reg_bits = 8, |
| 217 | .val_bits = 8, | 247 | .val_bits = 8, |
| 218 | .writeable_reg = rd_wr_reg, | 248 | .writeable_reg = is_write_reg, |
| 219 | .readable_reg = rd_wr_reg, | 249 | .readable_reg = is_read_reg, |
| 250 | .volatile_reg = is_volatile_reg, | ||
| 220 | .max_register = TPS51632_MAX_REG - 1, | 251 | .max_register = TPS51632_MAX_REG - 1, |
| 221 | .cache_type = REGCACHE_RBTREE, | 252 | .cache_type = REGCACHE_RBTREE, |
| 222 | }; | 253 | }; |
