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

regulator: lm363x: Fix n_voltages setting for lm36274

According to the datasheet http://www.ti.com/lit/ds/symlink/lm36274.pdf:
Table 23. VPOS Bias Register Field Descriptions VPOS[5:0]:
VPOS voltage (50-mV steps): VPOS = 4 V + (Code × 50 mV), 6.5 V max
000000 = 4 V
000001 = 4.05 V
:
011110 = 5.5 V (Default)
:
110010 = 6.5 V
110011 to 111111 map to 6.5 V

So the LM36274_LDO_VSEL_MAX should be 0b110010 (0x32).
The valid selectors are 0 ... LM36274_LDO_VSEL_MAX, n_voltages should be
LM36274_LDO_VSEL_MAX + 1. Similarly, the n_voltages should be
LM36274_BOOST_VSEL_MAX + 1 for LM36274_BOOST.

Fixes: bff5e8071533 ("regulator: lm363x: Add support for LM36274")
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Link: https://lore.kernel.org/r/20190626132632.32629-2-axel.lin@ingics.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Axel Lin and committed by
Mark Brown
962f170d 1e2cc8c5

+4 -4
+4 -4
drivers/regulator/lm363x-regulator.c
··· 36 36 37 37 /* LM36274 */ 38 38 #define LM36274_BOOST_VSEL_MAX 0x3f 39 - #define LM36274_LDO_VSEL_MAX 0x34 39 + #define LM36274_LDO_VSEL_MAX 0x32 40 40 #define LM36274_VOLTAGE_MIN 4000000 41 41 42 42 /* Common */ ··· 226 226 .of_match = "vboost", 227 227 .id = LM36274_BOOST, 228 228 .ops = &lm363x_boost_voltage_table_ops, 229 - .n_voltages = LM36274_BOOST_VSEL_MAX, 229 + .n_voltages = LM36274_BOOST_VSEL_MAX + 1, 230 230 .min_uV = LM36274_VOLTAGE_MIN, 231 231 .uV_step = LM363X_STEP_50mV, 232 232 .type = REGULATOR_VOLTAGE, ··· 239 239 .of_match = "vpos", 240 240 .id = LM36274_LDO_POS, 241 241 .ops = &lm363x_regulator_voltage_table_ops, 242 - .n_voltages = LM36274_LDO_VSEL_MAX, 242 + .n_voltages = LM36274_LDO_VSEL_MAX + 1, 243 243 .min_uV = LM36274_VOLTAGE_MIN, 244 244 .uV_step = LM363X_STEP_50mV, 245 245 .type = REGULATOR_VOLTAGE, ··· 254 254 .of_match = "vneg", 255 255 .id = LM36274_LDO_NEG, 256 256 .ops = &lm363x_regulator_voltage_table_ops, 257 - .n_voltages = LM36274_LDO_VSEL_MAX, 257 + .n_voltages = LM36274_LDO_VSEL_MAX + 1, 258 258 .min_uV = LM36274_VOLTAGE_MIN, 259 259 .uV_step = LM363X_STEP_50mV, 260 260 .type = REGULATOR_VOLTAGE,