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@xxxxxxxxx> > --- > 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@xxxxxxxxx > > 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@xxxxxxxxx > > 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@xxxxxxxxx/ > - 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@xxxxxxxxx > > 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@xxxxxxxxx > > 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@xxxxxxxxx > > --- > 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 [李琼斯]