On Tue, Dec 07, 2021 at 04:37:24PM -0800, Florian Fainelli wrote: > Convert the Broadcom SATA3 AHCI controller Device Tree binding to YAML > to help with validation. > > Acked-by: Damien Le Moal <damien.lemoal@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Florian Fainelli <f.fainelli@xxxxxxxxx> > --- > .../bindings/ata/brcm,sata-brcm.txt | 45 --------- > .../bindings/ata/brcm,sata-brcm.yaml | 98 +++++++++++++++++++ > 2 files changed, 98 insertions(+), 45 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/ata/brcm,sata-brcm.txt > create mode 100644 Documentation/devicetree/bindings/ata/brcm,sata-brcm.yaml > > diff --git a/Documentation/devicetree/bindings/ata/brcm,sata-brcm.txt b/Documentation/devicetree/bindings/ata/brcm,sata-brcm.txt > deleted file mode 100644 > index b9ae4ce4a0a0..000000000000 > --- a/Documentation/devicetree/bindings/ata/brcm,sata-brcm.txt > +++ /dev/null > @@ -1,45 +0,0 @@ > -* Broadcom SATA3 AHCI Controller > - > -SATA nodes are defined to describe on-chip Serial ATA controllers. > -Each SATA controller should have its own node. > - > -Required properties: > -- compatible : should be one or more of > - "brcm,bcm7216-ahci" > - "brcm,bcm7425-ahci" > - "brcm,bcm7445-ahci" > - "brcm,bcm-nsp-ahci" > - "brcm,sata3-ahci" > - "brcm,bcm63138-ahci" > -- reg : register mappings for AHCI and SATA_TOP_CTRL > -- reg-names : "ahci" and "top-ctrl" > -- interrupts : interrupt mapping for SATA IRQ > - > -Optional properties: > - > -- reset: for "brcm,bcm7216-ahci" must be a valid reset phandle > - pointing to the RESCAL reset controller provider node. > -- reset-names: for "brcm,bcm7216-ahci", must be "rescal". > - > -Also see ahci-platform.txt. > - > -Example: > - > - sata@f045a000 { > - compatible = "brcm,bcm7445-ahci", "brcm,sata3-ahci"; > - reg = <0xf045a000 0xa9c>, <0xf0458040 0x24>; > - reg-names = "ahci", "top-ctrl"; > - interrupts = <0 30 0>; > - #address-cells = <1>; > - #size-cells = <0>; > - > - sata0: sata-port@0 { > - reg = <0>; > - phys = <&sata_phy 0>; > - }; > - > - sata1: sata-port@1 { > - reg = <1>; > - phys = <&sata_phy 1>; > - }; > - }; > diff --git a/Documentation/devicetree/bindings/ata/brcm,sata-brcm.yaml b/Documentation/devicetree/bindings/ata/brcm,sata-brcm.yaml > new file mode 100644 > index 000000000000..3e24f45c65af > --- /dev/null > +++ b/Documentation/devicetree/bindings/ata/brcm,sata-brcm.yaml > @@ -0,0 +1,98 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/ata/brcm,sata-brcm.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Broadcom SATA3 AHCI Controller > + > +description: > + SATA nodes are defined to describe on-chip Serial ATA controllers. > + Each SATA controller should have its own node. > + > +maintainers: > + - Florian Fainelli <f.fainelli@xxxxxxxxx> > + > +allOf: > + - $ref: sata-common.yaml# > + > +properties: > + compatible: > + oneOf: > + - items: > + - enum: > + - brcm,bcm7216-ahci > + - const: brcm,sata3-ahci > + - items: > + - enum: > + - brcm,bcm7445-ahci > + - const: brcm,sata3-ahci > + - items: > + - enum: > + - brcm,bcm7425-ahci > + - const: brcm,sata3-ahci > + - items: > + - const: brcm,bcm-nsp-ahci > + - items: > + - enum: > + - brcm,bcm63138-ahci > + - const: brcm,sata3-ahci Is there some reason this is not grouped into 2 oneOf entries? If not, I can fixup. > + > + reg: > + minItems: 2 > + maxItems: 2 > + > + reg-names: > + items: > + - const: ahci > + - const: top-ctrl > + > + interrupts: true maxItems: 1 ? > + > + dma-coherent: true > + > +if: > + properties: > + compatible: > + contains: > + enum: > + - brcm,bcm7216-ahci > + - brcm,bcm63138-ahci > +then: > + properties: > + resets: > + maxItems: 1 > + reset-names: > + enum: > + - rescal > + - ahci > + > +required: > + - compatible > + - reg > + - interrupts > + - "#address-cells" > + - "#size-cells" > + > +unevaluatedProperties: false > + > +examples: > + - | > + sata@f045a000 { > + compatible = "brcm,bcm7445-ahci", "brcm,sata3-ahci"; > + reg = <0xf045a000 0xa9c>, <0xf0458040 0x24>; > + reg-names = "ahci", "top-ctrl"; > + interrupts = <0 30 0>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + sata0: sata-port@0 { > + reg = <0>; > + phys = <&sata_phy 0>; > + }; > + > + sata1: sata-port@1 { > + reg = <1>; > + phys = <&sata_phy 1>; > + }; > + }; > -- > 2.25.1 > >