summaryrefslogtreecommitdiff
path: root/drivers/power
diff options
context:
space:
mode:
authorTrent Piepho <tpiepho@impinj.com>2019-04-04 21:52:04 +0000
committerStefano Babic <sbabic@denx.de>2019-06-11 10:42:48 +0200
commitd3eaf95ec67c8a7897052812ca30367cdf764c17 (patch)
tree79537a6d55793746afeb315e181c33f196f7aaf0 /drivers/power
parent15bae9a86d16b1e35a71bb745e5b91d8de0dfd34 (diff)
power: pfuze100: Fix off by one error in voltage table handling
The code that sets a regulator by looking up the voltage in a table had an off by one error. vsel_mask is a bitmask, not the number of table entries, so a vsel_mask value of 0x7 indicates there are 8, not 7, entries in the table. Cc: Peng Fan <Peng.Fan@freescale.com> Cc: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Trent Piepho <tpiepho@impinj.com>
Diffstat (limited to 'drivers/power')
-rw-r--r--drivers/power/regulator/pfuze100.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/power/regulator/pfuze100.c b/drivers/power/regulator/pfuze100.c
index 99073d6018..d6d35f3a39 100644
--- a/drivers/power/regulator/pfuze100.c
+++ b/drivers/power/regulator/pfuze100.c
@@ -482,11 +482,11 @@ static int pfuze100_regulator_val(struct udevice *dev, int op, int *uV)
debug("Set voltage for REGULATOR_TYPE_FIXED regulator\n");
return -EINVAL;
} else if (desc->volt_table) {
- for (i = 0; i < desc->vsel_mask; i++) {
+ for (i = 0; i <= desc->vsel_mask; i++) {
if (*uV == desc->volt_table[i])
break;
}
- if (i == desc->vsel_mask) {
+ if (i == desc->vsel_mask + 1) {
debug("Unsupported voltage %u\n", *uV);
return -EINVAL;
}