Re: [PATCH v6 00/10] mfd: bcm590xx: Add support for BCM59054

Lee Jones
2025-03-13T13:21:42Z

On Tue, 04 Mar 2025, Artur Weber wrote:

> Add support for the BCM59054 MFD to the bcm590xx driver and fix a
> couple of small bugs in it that also affected the already supported
> BCM59056.
>
> While we're at it - convert the devicetree bindings to YAML format
> and drop the bcm59056 DTS in favor of describing the PMU in users'
> DTS files, as is done for most other MFDs.
>
> The BCM59054 is fairly similar to the BCM59056, with the primary
> difference being the different number and layout of regulators.
> It is primarily used in devices using the BCM21664 and BCM23550
> chipsets.
>
> This patchset has been tested on a Samsung Galaxy Grand Neo
> (baffinlite rev02; DTS not in mainline yet) with a BCM59054 PMIC.
> Testing on a BCM59056 would be appreciated.
>
> Signed-off-by: Artur Weber <aweber.kernel@gmail.com>
> ---
> Changes in v6:
> - Rename mfd/brcm,bcm590xx.yaml to mfd/brcm,bcm59056.yaml again
> - Use PMU ID value as device type
> - Rename rev_dig and rev_ana to rev_digital and rev_analog
> - Link to v5: https://lore.kernel.org/r/20250221-bcm59054-v5-0-065f516a9042@gmail.com
>
> Changes in v5:
> - Make regulator binding descriptions reference mfd/brcm,bcm590xx.yaml
> instead of mfd/brcm,bcm59056.yaml
> - Move regmap type enum to common MFD header
> - Link to v4: https://lore.kernel.org/r/20250215-bcm59054-v4-0-dbfb2d76a855@gmail.com
>
> Changes in v4:
> - Fix yamllint warnings in DT bindings
> - Address miscelaneous review comments related to DT bindings
> - Note that I did not end up moving the regulator refs from
> allOf compatible matches; I explained my reasoning in [1].
> [1] https://lore.kernel.org/lkml/ab853605-859d-44c6-8cbd-44391cd677e6@gmail.com/
> - Add PMU ID/revision parsing to MFD driver
> - Fix instances of regulator data not matching vendor kernel for
> BCM59054
> - Use different voltage table for BCM59054 VSR reg based on PMU
> revision
> - Link to v3: https://lore.kernel.org/r/20250131-bcm59054-v3-0-bbac52a84787@gmail.com
>
> Changes in v3:
> - Split out regulator DT bindings into separate YAML
> - Use tables of regulator info instead of get_XXX_register, reg_is_XXX
> functions
> - Drop "regulator: bcm590xx: Add proper handling for PMMODE registers";
> it adds unnecessary noise to the series and will be submitted separately
> - Link to v2: https://lore.kernel.org/r/20231030-bcm59054-v2-0-5fa4011aa5ba@gmail.com
>
> Changes in v2:
> - Fixed BCM59054 ID being passed to BCM59056 function in the
> regulator driver
> - Dropped linux-rpi-kernel from the CC list
> - Link to v1: https://lore.kernel.org/r/20231030-bcm59054-v1-0-3517f980c1e3@gmail.com
>
> ---
> Artur Weber (10):
> dt-bindings: mfd: brcm,bcm59056: Convert to YAML
> dt-bindings: mfd: brcm,bcm59056: Add compatible for BCM59054
> ARM: dts: Drop DTS for BCM59056 PMU
> mfd: bcm590xx: Drop unused "id" member of bcm590xx MFD struct
> mfd: bcm590xx: Add support for multiple device types + BCM59054 compatible
> mfd: bcm590xx: Add PMU ID/revision parsing function
> regulator: bcm590xx: Use dev_err_probe for regulator register error
> regulator: bcm590xx: Store regulator descriptions in table
> regulator: bcm590xx: Rename BCM59056-specific data as such
> regulator: bcm590xx: Add support for BCM59054 regulators
>
> .../devicetree/bindings/mfd/brcm,bcm59056.txt | 39 -
> .../devicetree/bindings/mfd/brcm,bcm59056.yaml | 76 ++
> .../bindings/regulator/brcm,bcm59054.yaml | 56 +
> .../bindings/regulator/brcm,bcm59056.yaml | 51 +
> arch/arm/boot/dts/broadcom/bcm28155-ap.dts | 68 +-
> arch/arm/boot/dts/broadcom/bcm59056.dtsi | 91 --
> drivers/mfd/bcm590xx.c | 75 +-
> drivers/regulator/bcm590xx-regulator.c | 1289 ++++++++++++++++----
> include/linux/mfd/bcm590xx.h | 28 +-
> 9 files changed, 1366 insertions(+), 407 deletions(-)

Besides my one comment, the MFD side looks okay.

So you still need ACKs from Mark and to rework Rob's suggestion.

--
Lee Jones [李琼斯]