diff options
| -rw-r--r-- | drivers/regulator/ltc3676.c | 20 | ||||
| -rw-r--r-- | drivers/regulator/max8998.c | 3 |
2 files changed, 20 insertions, 3 deletions
diff --git a/drivers/regulator/ltc3676.c b/drivers/regulator/ltc3676.c index 662ee05ea44d..9dec1609ff66 100644 --- a/drivers/regulator/ltc3676.c +++ b/drivers/regulator/ltc3676.c | |||
| @@ -52,6 +52,7 @@ | |||
| 52 | #define LTC3676_CLIRQ 0x1F | 52 | #define LTC3676_CLIRQ 0x1F |
| 53 | 53 | ||
| 54 | #define LTC3676_DVBxA_REF_SELECT BIT(5) | 54 | #define LTC3676_DVBxA_REF_SELECT BIT(5) |
| 55 | #define LTC3676_DVBxB_PGOOD_MASK BIT(5) | ||
| 55 | 56 | ||
| 56 | #define LTC3676_IRQSTAT_PGOOD_TIMEOUT BIT(3) | 57 | #define LTC3676_IRQSTAT_PGOOD_TIMEOUT BIT(3) |
| 57 | #define LTC3676_IRQSTAT_UNDERVOLT_WARN BIT(4) | 58 | #define LTC3676_IRQSTAT_UNDERVOLT_WARN BIT(4) |
| @@ -123,6 +124,23 @@ static int ltc3676_set_suspend_mode(struct regulator_dev *rdev, | |||
| 123 | mask, val); | 124 | mask, val); |
| 124 | } | 125 | } |
| 125 | 126 | ||
| 127 | static int ltc3676_set_voltage_sel(struct regulator_dev *rdev, unsigned selector) | ||
| 128 | { | ||
| 129 | struct ltc3676 *ltc3676 = rdev_get_drvdata(rdev); | ||
| 130 | struct device *dev = ltc3676->dev; | ||
| 131 | int ret, dcdc = rdev_get_id(rdev); | ||
| 132 | |||
| 133 | dev_dbg(dev, "%s id=%d selector=%d\n", __func__, dcdc, selector); | ||
| 134 | |||
| 135 | ret = regmap_update_bits(ltc3676->regmap, rdev->desc->vsel_reg + 1, | ||
| 136 | LTC3676_DVBxB_PGOOD_MASK, | ||
| 137 | LTC3676_DVBxB_PGOOD_MASK); | ||
| 138 | if (ret) | ||
| 139 | return ret; | ||
| 140 | |||
| 141 | return regulator_set_voltage_sel_regmap(rdev, selector); | ||
| 142 | } | ||
| 143 | |||
| 126 | static inline unsigned int ltc3676_scale(unsigned int uV, u32 r1, u32 r2) | 144 | static inline unsigned int ltc3676_scale(unsigned int uV, u32 r1, u32 r2) |
| 127 | { | 145 | { |
| 128 | uint64_t tmp; | 146 | uint64_t tmp; |
| @@ -166,7 +184,7 @@ static const struct regulator_ops ltc3676_linear_regulator_ops = { | |||
| 166 | .disable = regulator_disable_regmap, | 184 | .disable = regulator_disable_regmap, |
| 167 | .is_enabled = regulator_is_enabled_regmap, | 185 | .is_enabled = regulator_is_enabled_regmap, |
| 168 | .list_voltage = regulator_list_voltage_linear, | 186 | .list_voltage = regulator_list_voltage_linear, |
| 169 | .set_voltage_sel = regulator_set_voltage_sel_regmap, | 187 | .set_voltage_sel = ltc3676_set_voltage_sel, |
| 170 | .get_voltage_sel = regulator_get_voltage_sel_regmap, | 188 | .get_voltage_sel = regulator_get_voltage_sel_regmap, |
| 171 | .set_suspend_voltage = ltc3676_set_suspend_voltage, | 189 | .set_suspend_voltage = ltc3676_set_suspend_voltage, |
| 172 | .set_suspend_mode = ltc3676_set_suspend_mode, | 190 | .set_suspend_mode = ltc3676_set_suspend_mode, |
diff --git a/drivers/regulator/max8998.c b/drivers/regulator/max8998.c index 3027e7ce100b..6a2b61c012b5 100644 --- a/drivers/regulator/max8998.c +++ b/drivers/regulator/max8998.c | |||
| @@ -309,8 +309,7 @@ static int max8998_set_voltage_buck_sel(struct regulator_dev *rdev, | |||
| 309 | unsigned selector) | 309 | unsigned selector) |
| 310 | { | 310 | { |
| 311 | struct max8998_data *max8998 = rdev_get_drvdata(rdev); | 311 | struct max8998_data *max8998 = rdev_get_drvdata(rdev); |
| 312 | struct max8998_platform_data *pdata = | 312 | struct max8998_platform_data *pdata = max8998->iodev->pdata; |
| 313 | dev_get_platdata(max8998->iodev->dev); | ||
| 314 | struct i2c_client *i2c = max8998->iodev->i2c; | 313 | struct i2c_client *i2c = max8998->iodev->i2c; |
| 315 | int buck = rdev_get_id(rdev); | 314 | int buck = rdev_get_id(rdev); |
| 316 | int reg, shift = 0, mask, ret, j; | 315 | int reg, shift = 0, mask, ret, j; |
