diff options
author | Trent Piepho <tpiepho@impinj.com> | 2019-04-04 21:52:04 +0000 |
---|---|---|
committer | Stefano Babic <sbabic@denx.de> | 2019-06-11 10:42:48 +0200 |
commit | d3eaf95ec67c8a7897052812ca30367cdf764c17 (patch) | |
tree | 79537a6d55793746afeb315e181c33f196f7aaf0 /drivers | |
parent | 15bae9a86d16b1e35a71bb745e5b91d8de0dfd34 (diff) | |
download | u-boot-d3eaf95ec67c8a7897052812ca30367cdf764c17.tar.gz |
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')
-rw-r--r-- | drivers/power/regulator/pfuze100.c | 4 |
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; } |