linux/drivers/regulator
Robby Cai 66694b5f90
regulator: fp9931: Fix VPOS/VNEG voltage selector table
The VPOSNEG_table[] mapping does not match the FP9931 datasheet.

The datasheet defines the VPOS/VNEG voltage mapping as:

  00h-04h ->  7.04V (-7.04V)
  05h     ->  7.26V (-7.26V)
  06h     ->  7.49V (-7.49V)
  ...
  28h-3Fh -> 15.06V (-15.06V)

However, VPOSNEG_table[] has two issues:

1. Selector 0x00~0x04 should all map to 7.04V (5 entries), but the
   table has 6 entries of 7.04V, causing all subsequent entries to be
   shifted by one position.

2. Selectors 0x29~0x3F should all clamp to 15.06V (23 entries), but
   the table has only 41 entries. Any selector value above 0x28
   would result in an out-of-bounds table access.

Fix both issues by removing the duplicate 7.04V entry and appending
the missing 23 clamped 15.06V entries, bringing the table to the
correct size of 64 entries (0x00~0x3F).

Fixes: 12d821bd13 ("regulator: Add FP9931/JD9930 driver")
Signed-off-by: Robby Cai <robby.cai@nxp.com>
Link: https://patch.msgid.link/20260724103441.800522-2-robby.cai@oss.nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-07-31 18:40:28 +01:00
..
88pg86x.c
88pm800-regulator.c
88pm886-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
88pm8607.c regulator: Drop unused assignment of platform_device_id driver data 2026-06-02 16:09:23 +01:00
aat2870-regulator.c
ab8500-ext.c
ab8500.c
act8865-regulator.c regulator: act8865-regulator: switch psy_cfg from of_node to fwnode 2025-06-22 01:39:51 +02:00
act8945a-regulator.c regulator: act8945a: fix OF node reference imbalance 2026-04-09 20:19:34 +01:00
ad5398.c regulator: ad5398: Fix incorrect power down bit mask 2025-02-06 11:27:24 +00:00
adp5055-regulator.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
anatop-regulator.c
arizona-ldo1.c regulator: Switch back to struct platform_driver::remove() 2024-11-12 13:08:35 +00:00
arizona-micsupp.c ASoC: arizona-micsupp: convert to snd_soc_dapm_xxx() 2025-11-17 00:14:20 +00:00
as3711-regulator.c
as3722-regulator.c
atc260x-regulator.c
aw37503-regulator.c
axp20x-regulator.c regulator: axp20x: AXP717: dcdc4 doesn't have delay 2025-03-19 12:28:26 +00:00
bcm590xx-regulator.c regulator: bcm590xx: Add support for BCM59054 regulators 2025-05-22 10:57:46 +01:00
bd718x7-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
bd9571mwv-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
bd9576-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
bd71815-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
bd71828-regulator.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
bd96801-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
bq257xx-regulator.c regulator: bq257xx: drop confusing configuration of_node 2026-06-04 16:59:39 +01:00
core.c regulator: core: clamp voltage constraints before applying apply_uV 2026-07-21 22:35:08 +01:00
cpcap-regulator.c regulator: cpcap-regulator: add support for Mot regulators 2026-02-26 18:55:37 +00:00
cros-ec-regulator.c regulator: cros-ec: Add regulator supply 2026-03-23 22:38:55 +00:00
da903x-regulator.c regulator: Fix typos in the comment 2024-09-10 12:40:38 +01:00
da9052-regulator.c regulator: da9052: Constify static data 2024-09-10 12:44:03 +01:00
da9055-regulator.c regulator: da9055: Constify static data 2024-09-10 12:44:04 +01:00
da9062-regulator.c
da9063-regulator.c regulator: da9063: kzalloc + kcalloc to kzalloc 2026-03-12 23:16:17 +00:00
da9121-regulator.c regulator: da9121: Use subvariant ids in the I2C table 2026-06-24 12:56:37 +01:00
da9121-regulator.h
da9210-regulator.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
da9210-regulator.h
da9211-regulator.c regulator: da9211: Constify struct regulator_desc 2024-09-09 18:27:02 +01:00
da9211-regulator.h
db8500-prcmu.c regulator: Switch back to struct platform_driver::remove() 2024-11-12 13:08:35 +00:00
dbx500-prcmu.c
dbx500-prcmu.h
devres.c regulator: devres: Use enum regulator_get_type in internal functions 2026-03-30 15:44:06 +01:00
dummy.c regulator: dummy, make dummy_regulator_driver static 2026-01-12 16:23:16 +00:00
dummy.h
event.c
fan53555.c regulator: fan53555: add enable_time support and soft-start times 2025-06-16 13:26:23 +01:00
fan53880.c
fixed-helper.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
fixed.c regulator: fixed: remove unused macro 2026-03-23 16:19:53 +00:00
fp9931.c regulator: fp9931: Fix VPOS/VNEG voltage selector table 2026-07-31 18:40:28 +01:00
gpio-regulator.c regulator: gpio: Fix the out-of-bounds access to drvdata::gpiods 2025-07-03 12:22:35 +01:00
helpers.c regulator: update some comments ([gs]et_voltage_vsel vs [gs]et_voltage_sel) 2024-09-13 14:57:08 +01:00
hi655x-regulator.c regulator: Unify usage of space and comma in platform_device_id arrays 2026-06-02 16:09:25 +01:00
hi6421-regulator.c regulator: Unify usage of space and comma in platform_device_id arrays 2026-06-02 16:09:25 +01:00
hi6421v530-regulator.c regulator: Unify usage of space and comma in platform_device_id arrays 2026-06-02 16:09:25 +01:00
hi6421v600-regulator.c regulator: Unify usage of space and comma in platform_device_id arrays 2026-06-02 16:09:25 +01:00
internal.h regulator: Add devres version of of_regulator_get_optional() 2024-09-30 01:11:41 +02:00
irq_helpers.c regulator: irq_helper: replace use of system_wq with system_dfl_wq 2025-11-07 09:37:49 +00:00
isl6271a-regulator.c regulator: isl6271a: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-09-30 01:11:42 +02:00
isl9305.c regulator: isl9305: convert to use maple tree register cache 2024-03-25 00:48:18 +00:00
Kconfig regulator: Updates for v7.2 2026-06-16 07:50:31 +05:30
lm363x-regulator.c
lochnagar-regulator.c
lp872x.c
lp873x-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
lp3971.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
lp3972.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
lp8755.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
lp8788-buck.c regulator: lp8788-buck: fix copy and paste bug in lp8788_dvs_gpio_request() 2024-03-06 14:03:32 +00:00
lp8788-ldo.c
lp87565-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
ltc3589.c
ltc3676.c regulator: ltc3676: Fix incorrect IRQSTAT bit offsets 2026-07-16 16:19:07 +01:00
Makefile regulator: remove used pcap regulator driver 2026-05-28 15:52:44 +01:00
max1586.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
max5970-regulator.c regulator: max5970: Drop unused structs 2024-10-10 12:16:58 +01:00
max8649.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
max8660.c
max8893.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
max8907-regulator.c
max8925-regulator.c
max8952.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
max8973-regulator.c regulator: max8973: Use irq_get_trigger_type() helper 2024-09-13 14:57:07 +01:00
max8997-regulator.c regulator: Drop unused assignment of platform_device_id driver data 2026-06-02 16:09:23 +01:00
max8998.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
max14577-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
max20086-regulator.c regulator: max20086: Fix refcount leak in max20086_parse_regulators_dt() 2025-06-08 23:29:48 +01:00
max20411-regulator.c regulator: max20411: show failure on register 2026-03-05 19:03:51 +00:00
max77503-regulator.c regulator: max77503: remove unused struct 'max77503_dev' 2024-05-29 11:24:22 +01:00
max77541-regulator.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
max77620-regulator.c regulator: Unify usage of space and comma in platform_device_id arrays 2026-06-02 16:09:25 +01:00
max77650-regulator.c regulator: max77650: fix OF node reference imbalance 2026-04-09 20:19:32 +01:00
max77675-regulator.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
max77686-regulator.c regulator: Drop unused assignment of platform_device_id driver data 2026-06-02 16:09:23 +01:00
max77693-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
max77802-regulator.c regulator: Drop unused assignment of platform_device_id driver data 2026-06-02 16:09:23 +01:00
max77826-regulator.c regulator: max77826: Constify static data 2024-09-10 12:44:11 +01:00
max77838-regulator.c regulator: max77838: add max77838 regulator driver 2025-09-15 19:27:50 +01:00
max77857-regulator.c regulator: max77857: Make max77857_id static 2024-08-01 12:50:10 +01:00
mc13xxx-regulator-core.c
mc13xxx.h
mc13783-regulator.c
mc13892-regulator.c
mcp16502.c regulator: mcp16502: Add supplier for regulators 2024-08-13 12:41:44 +01:00
mp886x.c regulator: mp886x: Fix ID table driver_data 2025-06-30 16:06:40 +01:00
mp5416.c regulator: mp5416: Constify struct regulator_desc 2024-09-09 18:27:01 +01:00
mp8859.c regulator: mp8859: Implement set_current_limit() 2024-02-26 13:46:55 +00:00
mpq7920.c
mpq7920.h
mt6311-regulator.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
mt6311-regulator.h
mt6315-regulator.c regulator: mt6315: Add regulator supplies 2026-03-30 15:45:37 +01:00
mt6316-regulator.c regulator: mt6316: add missing MODULE_DEVICE_TABLE() 2026-07-08 19:31:41 +01:00
mt6323-regulator.c regulator: Drop unused assignment of platform_device_id driver data 2026-06-02 16:09:23 +01:00
mt6331-regulator.c regulator: Drop unused assignment of platform_device_id driver data 2026-06-02 16:09:23 +01:00
mt6332-regulator.c regulator: Drop unused assignment of platform_device_id driver data 2026-06-02 16:09:23 +01:00
mt6357-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
mt6358-regulator.c regulator: mt6358: use regmap helper to read fixed LDO calibration 2026-07-20 17:32:39 +01:00
mt6359-regulator.c regulator: mt6359: Fix vbbck default internal supply name 2026-06-09 19:00:42 +01:00
mt6360-regulator.c regulator: Drop unused assignment of platform_device_id driver data 2026-06-02 16:09:23 +01:00
mt6363-regulator.c regulator: mt6363: add missing MODULE_DEVICE_TABLE() 2026-07-08 19:32:24 +01:00
mt6370-regulator.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
mt6380-regulator.c regulator: Drop unused assignment of platform_device_id driver data 2026-06-02 16:09:23 +01:00
mt6397-regulator.c regulator: Drop unused assignment of platform_device_id driver data 2026-06-02 16:09:23 +01:00
mtk-dvfsrc-regulator.c regulator: mtk-dvfsrc: Add support for MediaTek MT8196 DVFSRC 2025-06-23 13:12:31 +01:00
of_regulator.c Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
palmas-regulator.c regulator: palmas: Move MODULE_DEVICE_TABLE next to the table itself 2026-05-05 21:10:01 +09:00
pbias-regulator.c
pca9450-regulator.c regulator: pca9450: Correct default t_off_deb for PCA9451A/PCA9452 2026-06-19 18:13:48 +01:00
pf8x00-regulator.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
pf530x-regulator.c regulator: pf530x: Add a driver for the NXP PF5300 Regulator 2025-09-05 14:20:37 +01:00
pf0900-regulator.c regulator: pf0900: Make regu_irqs variable static const 2026-02-22 23:53:49 +00:00
pf1550-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
pf9453-regulator.c regulator: pf9453: Allow shared IRQ 2026-03-02 16:56:59 +00:00
pfuze100-regulator.c regulator: pfuze100: Constify static data 2024-09-10 12:44:14 +01:00
pv88060-regulator.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
pv88060-regulator.h
pv88080-regulator.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
pv88080-regulator.h
pv88090-regulator.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
pv88090-regulator.h
pwm-regulator.c regulator: pwm-regulator: Use dev_err_probe() for error paths in .probe() 2024-02-19 16:59:34 +00:00
qcom_rpm-regulator.c
qcom_smd-regulator.c regulator: qcom_smd-regulator: Add PM8019 2026-06-09 22:46:05 +01:00
qcom_spmi-regulator.c regulator: qcom_spmi: Constify struct spmi_voltage_range 2025-05-19 11:41:48 +01:00
qcom_usb_vbus-regulator.c
qcom-labibb-regulator.c regulator: qcomm-labibb: replace use of system_wq with system_dfl_wq 2025-11-20 17:29:07 +00:00
qcom-pm8008-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
qcom-refgen-regulator.c regulator: remove unneeded 'fast_io' parameter in regmap_config 2025-08-13 19:06:29 +01:00
qcom-rpmh-regulator.c regulator: qcom-rpmh: Add support for PM8350B 2026-07-28 19:54:27 +01:00
raa215300.c
rc5t583-regulator.c
regnl.h
renesas-usb-vbus-regulator.c regulator: renesas-usb-vbus-regulator: Remove unused headers 2025-11-18 18:55:22 +00:00
rk808-regulator.c regulator: rk808: fix OF node reference imbalance 2026-04-09 20:19:31 +01:00
rn5t618-regulator.c
rohm-regulator.c regulator: rohm-regulator: warn if unsupported voltage is set 2024-05-16 13:36:42 +01:00
rpi-panel-attiny-regulator.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
rpi-panel-v2-regulator.c regulator: rpi-panel-v2: Add shutdown hook 2025-06-17 12:50:30 +01:00
rt4801-regulator.c
rt4803.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
rt4831-regulator.c regulator: Drop unused assignment of platform_device_id driver data 2026-06-02 16:09:23 +01:00
rt5033-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
rt5120-regulator.c regulator: Drop unused assignment of platform_device_id driver data 2026-06-02 16:09:23 +01:00
rt5133-regulator.c regulator: rt5133: Fix IS_ERR() vs NULL bug in rt5133_validate_vendor_info() 2025-08-19 16:52:47 +01:00
rt5190a-regulator.c
rt5739.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
rt5759-regulator.c
rt6160-regulator.c regulator: rt6160: Add rt6166 vout min_uV setting for compatible 2025-07-16 11:15:26 +01:00
rt6190-regulator.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
rt6245-regulator.c
rt8092.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
rtmv20-regulator.c regulator: rtmv20: convert to use maple tree register cache 2024-03-25 00:48:23 +00:00
rtq2134-regulator.c
rtq2208-regulator.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
rtq6752-regulator.c regulator: rtq6752: make const read-only array fault_mask static 2025-03-17 17:35:52 +00:00
s2dos05-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
s2mpa01.c regulator: Drop unused assignment of platform_device_id driver data 2026-06-02 16:09:23 +01:00
s2mps11.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
s5m8767.c regulator: Drop unused assignment of platform_device_id driver data 2026-06-02 16:09:23 +01:00
sc2731-regulator.c
scmi-regulator.c regulator: scmi: fix of_node refcount leak in scmi_regulator_probe() 2026-06-02 16:06:18 +01:00
sgm3804-regulator.c regulator: add SGM3804 Dual Output driver 2026-05-24 23:35:38 +01:00
sky81452-regulator.c
slg51000-regulator.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
slg51000-regulator.h
spacemit-p1.c regulator: spacemit-p1: Update supply names 2026-02-22 23:53:44 +00:00
stm32-booster.c
stm32-pwr.c regulator: stm32-pwr: add support of STM32MP13 2024-05-27 01:32:22 +01:00
stm32-vrefbuf.c regulator: stm32-vrefbuf: Remove redundant pm_runtime_mark_last_busy() calls 2025-07-04 13:09:53 +01:00
stpmic1_regulator.c
stw481x-vmmc.c
sun20i-regulator.c regulator: sun20i: Add Allwinner D1 LDOs driver 2024-05-09 17:44:01 +02:00
sy7636a-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
sy8106a-regulator.c regulator: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 01:32:50 +01:00
sy8824x.c regulator: sy8824x: Fix ID table driver_data 2025-06-30 16:06:39 +01:00
sy8827n.c regulator: sy8827n: make enable gpio NONEXCLUSIVE 2025-07-07 23:32:39 +01:00
ti-abb-regulator.c regulator: ti-abb: don't use devm_platform_ioremap_resource_byname for shared interrupt register 2024-01-23 15:05:13 +00:00
tps6105x-regulator.c
tps6286x-regulator.c regulator: tps6286x-regulator: Fix a copy & paste error 2025-07-14 14:44:05 +01:00
tps6287x-regulator.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
tps6507x-regulator.c
tps6524x-regulator.c regulator: tps6524x: Remove unnecessary memset 2025-08-11 14:08:52 +01:00
tps6586x-regulator.c
tps6594-regulator.c regulator: tps6594-regulator: Remove unneeded semicolon 2025-08-11 14:08:51 +01:00
tps51632-regulator.c regulator: tps51632: convert to use maple tree register cache 2024-03-25 00:48:25 +00:00
tps62360-regulator.c regulator: tps62360: convert to use maple tree register cache 2024-03-25 00:48:26 +00:00
tps65023-regulator.c regulator: tps65023: Constify static data 2024-09-10 12:44:09 +01:00
tps65086-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
tps65090-regulator.c
tps65132-regulator.c regulator: tps65132: Add of_match table 2024-03-25 19:28:27 +00:00
tps65185.c regulator: tps65185: check devm_kzalloc() result in probe 2026-02-23 14:52:16 +00:00
tps65217-regulator.c
tps65218-regulator.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
tps65219-regulator.c regulator: Use named initializers for platform_device_id arrays 2026-06-02 16:09:24 +01:00
tps65910-regulator.c
tps65912-regulator.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
tps68470-regulator.c
twl-regulator.c
twl6030-regulator.c
uniphier-regulator.c regulator: Switch back to struct platform_driver::remove() 2024-11-12 13:08:35 +00:00
userspace-consumer.c regulator: Switch back to struct platform_driver::remove() 2024-11-12 13:08:35 +00:00
vctrl-regulator.c
vexpress-regulator.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
virtual.c regulator: Switch back to struct platform_driver::remove() 2024-11-12 13:08:35 +00:00
vqmmc-ipq4019-regulator.c regulator: vqmmc-ipq4019: fix module autoloading 2024-04-10 18:48:59 +01:00
wm831x-dcdc.c
wm831x-isink.c regulator: wm831x-isink: Convert comma to semicolon 2024-07-29 01:19:04 +01:00
wm831x-ldo.c
wm8350-regulator.c regulator: Switch back to struct platform_driver::remove() 2024-11-12 13:08:35 +00:00
wm8400-regulator.c regulator: wm8400: Constify struct regulator_desc 2024-09-09 21:08:42 +01:00
wm8994-regulator.c