On Wed, Mar 18, 2020 at 04:37:55PM -0600, Rob Herring wrote: > On Tue, Mar 17, 2020 at 3:40 AM Lubomir Rintel <lkundrak@xxxxx> wrote: > > > > Convert the sdhci-pxa binding to DT schema format using json-schema. > > Ignore what my bot said, I see you addressed that earlier in the series. > > > At the same time, fix a couple of issues with the examples discovered by > > the validation tool -- a semicolon instead of a comma and wrong node names. > > > > Signed-off-by: Lubomir Rintel <lkundrak@xxxxx> > > --- > > .../devicetree/bindings/mmc/sdhci-pxa.txt | 50 --------- > > .../devicetree/bindings/mmc/sdhci-pxa.yaml | 101 ++++++++++++++++++ > > 2 files changed, 101 insertions(+), 50 deletions(-) > > delete mode 100644 Documentation/devicetree/bindings/mmc/sdhci-pxa.txt > > create mode 100644 Documentation/devicetree/bindings/mmc/sdhci-pxa.yaml > > > > diff --git a/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt b/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt > > deleted file mode 100644 > > index 3d1b449d6097d..0000000000000 > > --- a/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt > > +++ /dev/null > > @@ -1,50 +0,0 @@ > > -* Marvell sdhci-pxa v2/v3 controller > > - > > -This file documents differences between the core properties in mmc.txt > > -and the properties used by the sdhci-pxav2 and sdhci-pxav3 drivers. > > - > > -Required properties: > > -- compatible: Should be "mrvl,pxav2-mmc", "mrvl,pxav3-mmc" or > > - "marvell,armada-380-sdhci". > > -- reg: > > - * for "mrvl,pxav2-mmc" and "mrvl,pxav3-mmc", one register area for > > - the SDHCI registers. > > - > > - * for "marvell,armada-380-sdhci", three register areas. The first > > - one for the SDHCI registers themselves, the second one for the > > - AXI/Mbus bridge registers of the SDHCI unit, the third one for the > > - SDIO3 Configuration register > > -- reg names: should be "sdhci", "mbus", "conf-sdio3". only mandatory > > - for "marvell,armada-380-sdhci" > > -- clocks: Array of clocks required for SDHCI; requires at least one for > > - I/O clock. > > -- clock-names: Array of names corresponding to clocks property; shall be > > - "io" for I/O clock and "core" for optional core clock. > > - > > -Optional properties: > > -- mrvl,clk-delay-cycles: Specify a number of cycles to delay for tuning. > > - > > -Example: > > - > > -sdhci@d4280800 { > > - compatible = "mrvl,pxav3-mmc"; > > - reg = <0xd4280800 0x800>; > > - bus-width = <8>; > > - interrupts = <27>; > > - clocks = <&chip CLKID_SDIO1XIN>, <&chip CLKID_SDIO1>; > > - clock-names = "io", "core"; > > - non-removable; > > - mrvl,clk-delay-cycles = <31>; > > -}; > > - > > -sdhci@d8000 { > > - compatible = "marvell,armada-380-sdhci"; > > - reg-names = "sdhci", "mbus", "conf-sdio3"; > > - reg = <0xd8000 0x1000>, > > - <0xdc000 0x100>; > > - <0x18454 0x4>; > > - interrupts = <0 25 0x4>; > > - clocks = <&gateclk 17>; > > - clock-names = "io"; > > - mrvl,clk-delay-cycles = <0x1F>; > > -}; > > diff --git a/Documentation/devicetree/bindings/mmc/sdhci-pxa.yaml b/Documentation/devicetree/bindings/mmc/sdhci-pxa.yaml > > new file mode 100644 > > index 0000000000000..4ae0926ac294f > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/mmc/sdhci-pxa.yaml > > @@ -0,0 +1,101 @@ > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/mmc/sdhci-pxa.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Marvell PXA SDHCI v2/v3 bindings > > + > > +maintainers: > > + - devicetree@xxxxxxxxxxxxxxx > > + > > +allOf: > > + - $ref: mmc-controller.yaml# > > + - if: > > + properties: > > + compatible: > > + contains: > > + const: marvell,armada-380-sdhci > > + then: > > + properties: > > + regs: > > + minItems: 3 > > + maxItems: 3 > > Here, you just need minItems. > > > + reg-names: > > + items: > > + - const: sdhci > > + - const: mbus > > + - const: conf-sdio3 > > This should be under the main definition of 'reg-names' and then just > 'minItems: 3' here. > > > + required: > > + - reg-names > > + else: > > + properties: > > + regs: > > + minItems: 1 > > + maxItems: 1 > > Just 'maxItems' is sufficient. > > > + reg-names: > > + minItems: 1 > > + maxItems: 1 > > + > > +properties: > > + compatible: > > + enum: > > + - mrvl,pxav2-mmc > > + - mrvl,pxav3-mmc > > + - marvell,armada-380-sdhci > > + > > + reg: true > > Here you should have: > > minItems: 1 > maxItems: 3 > > > + > > + reg-names: true > > + > > + interrupts: > > + maxItems: 1 > > + > > + clocks: > > + minItems: 1 > > + maxItems: 2 > > + > > + clock-names: > > + minItems: 1 > > + maxItems: 2 > > + items: > > + - const: io > > + - const: core > > + > > + mrvl,clk-delay-cycles: > > + description: Specify a number of cycles to delay for tuning. > > + $ref: /schemas/types.yaml#/definitions/uint32 > > No range of valid values? No. The document I'm converting didn't specify a range. For some of the hardware supported Marvell doesn't provide documentation, and the drivers that use this seem to accept any u32 number. If this needs a range, then I need to make something up. I can do that, but it will be difficult to defend that number if anyone asks. Lubo