Re: [PATCH v6 02/10] dt-bindings: mfd: brcm,bcm59056: Add compatible for BCM59054

Rob Herring
2025-03-04T14:19:35Z

On Tue, Mar 04, 2025 at 07:20:33AM +0100, Artur Weber wrote:
> The BCM59054 MFD is fairly similar to the BCM59056, and will use
> the same driver. Add compatible and specify the allowed regulator
> nodes.
>
> Signed-off-by: Artur Weber <aweber.kernel@gmail.com>
> ---
> Changes in v6:
> - Replace mfd/brcm,bcm590xx.yaml with mfd/brcm,bcm59056.yaml
>
> Changes in v5:
> - Replace mfd/brcm,bcm59056.yaml with mfd/brcm,bcm590xx.yaml in
> regulator bindings description
>
> Changes in v4:
> - Fix yamllint errors (missing unevaluatedProperties)
> - Drop comment with regulator name list
> - Use full schema paths for $reg
> - Change description of regulator binding to mention BCM59054
> explicitly
> - Drop quotes around vbus reg name
> - Change "Power Management IC" to "Power Management Unit" to match
> official Broadcom naming
>
> 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/
>
> Changes in v3:
> - Split regulator node into separate file
> - Removed quotes around compatible
> ---
> .../devicetree/bindings/mfd/brcm,bcm59056.yaml | 26 +++++++++-
> .../bindings/regulator/brcm,bcm59054.yaml | 56 ++++++++++++++++++++++
> 2 files changed, 80 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/mfd/brcm,bcm59056.yaml b/Documentation/devicetree/bindings/mfd/brcm,bcm59056.yaml
> index b387ef9885c3ac524e0782545dbca9c0e81a556c..b67d7a723fc242869e5bdc6b3602785f62af45bd 100644
> --- a/Documentation/devicetree/bindings/mfd/brcm,bcm59056.yaml
> +++ b/Documentation/devicetree/bindings/mfd/brcm,bcm59056.yaml
> @@ -11,7 +11,9 @@ maintainers:
>
> properties:
> compatible:
> - const: brcm,bcm59056
> + enum:
> + - brcm,bcm59054
> + - brcm,bcm59056
>
> reg:
> maxItems: 1
> @@ -21,7 +23,6 @@ properties:
>
> regulators:
> type: object
> - $ref: /schemas/regulator/brcm,bcm59056.yaml#

Just do:

additionalProperties: true
properties:
compatible:
contains:
enum:
- brcm,bcm59056
- brcm,bcm59054

(This patch should just add the last line)

And drop the allOf below.

>
> required:
> - compatible
> @@ -30,6 +31,27 @@ required:
>
> additionalProperties: false
>
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: brcm,bcm59054
> + then:
> + properties:
> + regulators:
> + $ref: /schemas/regulator/brcm,bcm59054.yaml#
> +
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: brcm,bcm59056
> + then:
> + properties:
> + regulators:
> + $ref: /schemas/regulator/brcm,bcm59056.yaml#
> +
> examples:
> - |
> #include <dt-bindings/interrupt-controller/arm-gic.h>