]> git.ipfire.org Git - thirdparty/linux.git/commit
regulator: Add FP9931/JD9930 driver
authorAndreas Kemnade <andreas@kemnade.info>
Sat, 15 Nov 2025 06:50:51 +0000 (07:50 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 20 Nov 2025 16:29:17 +0000 (16:29 +0000)
commit12d821bd13d42e6de3ecb1c13918b1f06a3ee213
treec510f67c2d6588b5342180ad85ba12a79f72b3ab
parent80bbdefdfb4174ff7e5d4f17658c845ef8f0b623
regulator: Add FP9931/JD9930 driver

Add a driver for the FP9931/JD9930 regulator. Implement handling of the PG
(power good), TS_EN (temperature sensor enable), and EN (enable regulators)
pins. Implement the pair of symmetric LDOs as a single regulator because
they share a single voltage set register. For simplicity, just add the
temperature sensor (depending on external NTC) directly.

Limitations:
- As these regulators are controlled together with the VCOM regulator via
  the EN pin, some kind of management must be in place. As the enable op
  is not called when the regulator is already enabled, simple refcounting
  seems not to work to avoid clearing EN when one regulator is still
  enabled. As these regulators are typically used together, this
  limitation should not hurt hard, just provide the is_enabled op.
- As the VCOM step is quite odd (5V/255 steps), rounding is needed.
  Due to some limitations in the regulator core, the max/min voltages in
  the devicetree must match the idea of the driver how to round things
  exactly.
- Night mode is not implemented, so only the FP9931 compatible is needed in
  the driver, there is no REGULATOR_MODE_NIGHT and no clear definition in
  the datasheet what it does, also the XON pin which seems to be an input
  related to that night mode is not used.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Link: https://patch.msgid.link/20251115-fp9931-submit-v3-3-92f5d0772b68@kemnade.info
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/Kconfig
drivers/regulator/Makefile
drivers/regulator/fp9931.c [new file with mode: 0644]