]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mfd: axp20x: Set explicit ID for AXP313 regulator
authorChen-Yu Tsai <wens@csie.org>
Thu, 19 Jun 2025 17:32:07 +0000 (01:32 +0800)
committerLee Jones <lee@kernel.org>
Thu, 24 Jul 2025 10:27:04 +0000 (11:27 +0100)
On newer boards featuring the A523 SoC, the AXP323 (related to the
AXP313) is paired with the AXP717 and serves as a secondary PMIC
providing additional regulator outputs. However the MFD cells are all
registered with PLATFORM_DEVID_NONE, which causes the regulator cells
to conflict with each other.

Commit e37ec3218870 ("mfd: axp20x: Allow multiple regulators") attempted
to fix this by switching to PLATFORM_DEVID_AUTO so that the device names
would all be different, however that broke IIO channel mapping, which is
also tied to the device names. As a result the change was later reverted.

Instead, here we attempt to make sure the AXP313/AXP323 regulator cell
does not conflict by explicitly giving it an ID number. This was
previously done for the AXP809+AXP806 pair used with the A80 SoC.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Link: https://lore.kernel.org/r/20250619173207.3367126-1-wens@kernel.org
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/mfd/axp20x.c

index e9914e8a29a33c5da561bdce76c72c745f779451..25c639b348cd69a58efc5199aaf7e2cdfe6d2d5d 100644 (file)
@@ -1053,7 +1053,8 @@ static const struct mfd_cell axp152_cells[] = {
 };
 
 static struct mfd_cell axp313a_cells[] = {
-       MFD_CELL_NAME("axp20x-regulator"),
+       /* AXP323 is sometimes paired with AXP717 as sub-PMIC */
+       MFD_CELL_BASIC("axp20x-regulator", NULL, NULL, 0, 1),
        MFD_CELL_RES("axp313a-pek", axp313a_pek_resources),
 };