]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
regulator: fp9931: Fix VPOS/VNEG voltage selector table
authorRobby Cai <robby.cai@nxp.com>
Fri, 24 Jul 2026 10:34:40 +0000 (18:34 +0800)
committerMark Brown <broonie@kernel.org>
Fri, 31 Jul 2026 17:40:28 +0000 (18:40 +0100)
commit66694b5f90f3876fccb87bbd02b453cdc33b3ae4
tree2b7d02fd1a23c8d67a00b06cc76150e815c25ee1
parent8d62dd89736f09a3e093b1490ceb075472abec6c
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: 12d821bd13d4 ("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>
drivers/regulator/fp9931.c