Commit 270c0551 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'regulator-fix-v5.12-rc2' of...

Merge tag 'regulator-fix-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator

Pull regulator fixes from Mark Brown:
 "A small collection fo driver specific fixes that have arrived since
  the merge window"

* tag 'regulator-fix-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
  regulator: mt6315: Fix off-by-one for .n_voltages
  regulator: rt4831: Fix return value check in rt4831_regulator_probe()
  regulator: pca9450: Clear PRESET_EN bit to fix BUCK1/2/3 voltage setting
  regulator: qcom-rpmh: Use correct buck for S1C regulator
  regulator: qcom-rpmh: Correct the pmic5_hfsmps515 buck
  regulator: pca9450: Fix return value when failing to get sd-vsel GPIO
  regulator: mt6315: Return REGULATOR_MODE_INVALID for invalid mode
parents 8d9d53de d450293c
...@@ -41,7 +41,7 @@ struct mt6315_chip { ...@@ -41,7 +41,7 @@ struct mt6315_chip {
.type = REGULATOR_VOLTAGE, \ .type = REGULATOR_VOLTAGE, \
.id = _bid, \ .id = _bid, \
.owner = THIS_MODULE, \ .owner = THIS_MODULE, \
.n_voltages = 0xbf, \ .n_voltages = 0xc0, \
.linear_ranges = mt_volt_range1, \ .linear_ranges = mt_volt_range1, \
.n_linear_ranges = ARRAY_SIZE(mt_volt_range1), \ .n_linear_ranges = ARRAY_SIZE(mt_volt_range1), \
.vsel_reg = _vsel, \ .vsel_reg = _vsel, \
...@@ -69,7 +69,7 @@ static unsigned int mt6315_map_mode(u32 mode) ...@@ -69,7 +69,7 @@ static unsigned int mt6315_map_mode(u32 mode)
case MT6315_BUCK_MODE_LP: case MT6315_BUCK_MODE_LP:
return REGULATOR_MODE_IDLE; return REGULATOR_MODE_IDLE;
default: default:
return -EINVAL; return REGULATOR_MODE_INVALID;
} }
} }
......
...@@ -797,6 +797,14 @@ static int pca9450_i2c_probe(struct i2c_client *i2c, ...@@ -797,6 +797,14 @@ static int pca9450_i2c_probe(struct i2c_client *i2c,
return ret; return ret;
} }
/* Clear PRESET_EN bit in BUCK123_DVS to use DVS registers */
ret = regmap_clear_bits(pca9450->regmap, PCA9450_REG_BUCK123_DVS,
BUCK123_PRESET_EN);
if (ret) {
dev_err(&i2c->dev, "Failed to clear PRESET_EN bit: %d\n", ret);
return ret;
}
/* Set reset behavior on assertion of WDOG_B signal */ /* Set reset behavior on assertion of WDOG_B signal */
ret = regmap_update_bits(pca9450->regmap, PCA9450_REG_RESET_CTRL, ret = regmap_update_bits(pca9450->regmap, PCA9450_REG_RESET_CTRL,
WDOG_B_CFG_MASK, WDOG_B_CFG_COLD_LDO12); WDOG_B_CFG_MASK, WDOG_B_CFG_COLD_LDO12);
...@@ -814,7 +822,7 @@ static int pca9450_i2c_probe(struct i2c_client *i2c, ...@@ -814,7 +822,7 @@ static int pca9450_i2c_probe(struct i2c_client *i2c,
if (IS_ERR(pca9450->sd_vsel_gpio)) { if (IS_ERR(pca9450->sd_vsel_gpio)) {
dev_err(&i2c->dev, "Failed to get SD_VSEL GPIO\n"); dev_err(&i2c->dev, "Failed to get SD_VSEL GPIO\n");
return ret; return PTR_ERR(pca9450->sd_vsel_gpio);
} }
dev_info(&i2c->dev, "%s probed.\n", dev_info(&i2c->dev, "%s probed.\n",
......
...@@ -726,8 +726,8 @@ static const struct rpmh_vreg_hw_data pmic5_ftsmps510 = { ...@@ -726,8 +726,8 @@ static const struct rpmh_vreg_hw_data pmic5_ftsmps510 = {
static const struct rpmh_vreg_hw_data pmic5_hfsmps515 = { static const struct rpmh_vreg_hw_data pmic5_hfsmps515 = {
.regulator_type = VRM, .regulator_type = VRM,
.ops = &rpmh_regulator_vrm_ops, .ops = &rpmh_regulator_vrm_ops,
.voltage_range = REGULATOR_LINEAR_RANGE(2800000, 0, 4, 16000), .voltage_range = REGULATOR_LINEAR_RANGE(320000, 0, 235, 16000),
.n_voltages = 5, .n_voltages = 236,
.pmic_mode_map = pmic_mode_map_pmic5_smps, .pmic_mode_map = pmic_mode_map_pmic5_smps,
.of_map_mode = rpmh_regulator_pmic4_smps_of_map_mode, .of_map_mode = rpmh_regulator_pmic4_smps_of_map_mode,
}; };
...@@ -901,7 +901,7 @@ static const struct rpmh_vreg_init_data pm8350_vreg_data[] = { ...@@ -901,7 +901,7 @@ static const struct rpmh_vreg_init_data pm8350_vreg_data[] = {
}; };
static const struct rpmh_vreg_init_data pm8350c_vreg_data[] = { static const struct rpmh_vreg_init_data pm8350c_vreg_data[] = {
RPMH_VREG("smps1", "smp%s1", &pmic5_hfsmps510, "vdd-s1"), RPMH_VREG("smps1", "smp%s1", &pmic5_hfsmps515, "vdd-s1"),
RPMH_VREG("smps2", "smp%s2", &pmic5_ftsmps510, "vdd-s2"), RPMH_VREG("smps2", "smp%s2", &pmic5_ftsmps510, "vdd-s2"),
RPMH_VREG("smps3", "smp%s3", &pmic5_ftsmps510, "vdd-s3"), RPMH_VREG("smps3", "smp%s3", &pmic5_ftsmps510, "vdd-s3"),
RPMH_VREG("smps4", "smp%s4", &pmic5_ftsmps510, "vdd-s4"), RPMH_VREG("smps4", "smp%s4", &pmic5_ftsmps510, "vdd-s4"),
......
...@@ -153,9 +153,9 @@ static int rt4831_regulator_probe(struct platform_device *pdev) ...@@ -153,9 +153,9 @@ static int rt4831_regulator_probe(struct platform_device *pdev)
int i, ret; int i, ret;
regmap = dev_get_regmap(pdev->dev.parent, NULL); regmap = dev_get_regmap(pdev->dev.parent, NULL);
if (IS_ERR(regmap)) { if (!regmap) {
dev_err(&pdev->dev, "Failed to init regmap\n"); dev_err(&pdev->dev, "Failed to init regmap\n");
return PTR_ERR(regmap); return -ENODEV;
} }
/* Configure DSV mode to normal by default */ /* Configure DSV mode to normal by default */
......
...@@ -147,6 +147,9 @@ enum { ...@@ -147,6 +147,9 @@ enum {
#define BUCK6_FPWM 0x04 #define BUCK6_FPWM 0x04
#define BUCK6_ENMODE_MASK 0x03 #define BUCK6_ENMODE_MASK 0x03
/* PCA9450_REG_BUCK123_PRESET_EN bit */
#define BUCK123_PRESET_EN 0x80
/* PCA9450_BUCK1OUT_DVS0 bits */ /* PCA9450_BUCK1OUT_DVS0 bits */
#define BUCK1OUT_DVS0_MASK 0x7F #define BUCK1OUT_DVS0_MASK 0x7F
#define BUCK1OUT_DVS0_DEFAULT 0x14 #define BUCK1OUT_DVS0_DEFAULT 0x14
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment