]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
regulator: spacemit-p1: Fix n_voltages for BUCK and LDO regulators
authorGuodong Xu <guodong@riscstar.com>
Thu, 22 Jan 2026 09:43:42 +0000 (17:43 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 26 Jan 2026 11:26:41 +0000 (11:26 +0000)
commit41399c5d476156635c9a58de870d39318e22fa09
tree17fc2b07d16015d93346405a86b1df38f29e7cb2
parent63804fed149a6750ffd28610c5c1c98cce6bd377
regulator: spacemit-p1: Fix n_voltages for BUCK and LDO regulators

Higher voltage settings were unusable due to incorrect n_voltages values
causing registration failures. For example, setting aldo4 to 3.3V failed
with -EINVAL because the required selector (123) exceeded the allowed
range (n_voltages=117).

Fix by aligning n_voltages with the hardware register widths per the P1
datasheet [1]:
- BUCK: 255 (was 254), allows selectors 0-254, selector 255 is reserved
- LDO: 128 (was 117), allows selectors 0-127, selectors 0-10 are for
  suspend mode, valid operational range is 11-127

This enables the full voltage range supported by the hardware.

Fixes: 8b84d712ad84 ("regulator: spacemit: support SpacemiT P1 regulators")
Link: https://developer.spacemit.com/documentation
Signed-off-by: Guodong Xu <guodong@riscstar.com>
Link: https://patch.msgid.link/20260122-spacemit-p1-v1-1-309be27fbff9@riscstar.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/spacemit-p1.c