On Wed, Nov 18, 2020 at 09:30:02PM +0100, Christian Eggers wrote: > Convert the bindings document for Microchip KSZ Series Ethernet switches > from txt to yaml. > > Signed-off-by: Christian Eggers <ceggers@xxxxxxx> > --- > .../devicetree/bindings/net/dsa/ksz.txt | 125 -------------- > .../bindings/net/dsa/microchip,ksz.yaml | 152 ++++++++++++++++++ > MAINTAINERS | 2 +- > 3 files changed, 153 insertions(+), 126 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/net/dsa/ksz.txt > create mode 100644 Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml > > diff --git a/Documentation/devicetree/bindings/net/dsa/ksz.txt b/Documentation/devicetree/bindings/net/dsa/ksz.txt > deleted file mode 100644 > index 95e91e84151c..000000000000 > --- a/Documentation/devicetree/bindings/net/dsa/ksz.txt > +++ /dev/null > @@ -1,125 +0,0 @@ > -Microchip KSZ Series Ethernet switches > -================================== > - > -Required properties: > - > -- compatible: For external switch chips, compatible string must be exactly one > - of the following: > - - "microchip,ksz8765" > - - "microchip,ksz8794" > - - "microchip,ksz8795" > - - "microchip,ksz9477" > - - "microchip,ksz9897" > - - "microchip,ksz9896" > - - "microchip,ksz9567" > - - "microchip,ksz8565" > - - "microchip,ksz9893" > - - "microchip,ksz9563" > - - "microchip,ksz8563" > - > -Optional properties: > - > -- reset-gpios : Should be a gpio specifier for a reset line > -- microchip,synclko-125 : Set if the output SYNCLKO frequency should be set to > - 125MHz instead of 25MHz. > - > -See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of additional > -required and optional properties. > - > -Examples: > - > -Ethernet switch connected via SPI to the host, CPU port wired to eth0: > - > - eth0: ethernet@10001000 { > - fixed-link { > - speed = <1000>; > - full-duplex; > - }; > - }; > - > - spi1: spi@f8008000 { > - pinctrl-0 = <&pinctrl_spi_ksz>; > - cs-gpios = <&pioC 25 0>; > - id = <1>; > - > - ksz9477: ksz9477@0 { > - compatible = "microchip,ksz9477"; > - reg = <0>; > - > - spi-max-frequency = <44000000>; > - spi-cpha; > - spi-cpol; > - > - ports { > - #address-cells = <1>; > - #size-cells = <0>; > - port@0 { > - reg = <0>; > - label = "lan1"; > - }; > - port@1 { > - reg = <1>; > - label = "lan2"; > - }; > - port@2 { > - reg = <2>; > - label = "lan3"; > - }; > - port@3 { > - reg = <3>; > - label = "lan4"; > - }; > - port@4 { > - reg = <4>; > - label = "lan5"; > - }; > - port@5 { > - reg = <5>; > - label = "cpu"; > - ethernet = <ð0>; > - fixed-link { > - speed = <1000>; > - full-duplex; > - }; > - }; > - }; > - }; > - ksz8565: ksz8565@0 { > - compatible = "microchip,ksz8565"; > - reg = <0>; > - > - spi-max-frequency = <44000000>; > - spi-cpha; > - spi-cpol; > - > - ports { > - #address-cells = <1>; > - #size-cells = <0>; > - port@0 { > - reg = <0>; > - label = "lan1"; > - }; > - port@1 { > - reg = <1>; > - label = "lan2"; > - }; > - port@2 { > - reg = <2>; > - label = "lan3"; > - }; > - port@3 { > - reg = <3>; > - label = "lan4"; > - }; > - port@6 { > - reg = <6>; > - label = "cpu"; > - ethernet = <ð0>; > - fixed-link { > - speed = <1000>; > - full-duplex; > - }; > - }; > - }; > - }; > - }; > diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml > new file mode 100644 > index 000000000000..010adb09a68f > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml > @@ -0,0 +1,152 @@ > +# SPDX-License-Identifier: GPL-2.0-only > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/net/dsa/microchip,ksz.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Microchip KSZ Series Ethernet switches > + > +allOf: > + - $ref: dsa.yaml# Move this after 'maintainers'. > + > +maintainers: > + - Marek Vasut <marex@xxxxxxx> > + - Woojung Huh <Woojung.Huh@xxxxxxxxxxxxx> > + > +properties: > + # See Documentation/devicetree/bindings/net/dsa/dsa.yaml for a list of additional > + # required and optional properties. > + compatible: > + enum: > + - microchip,ksz8765 > + - microchip,ksz8794 > + - microchip,ksz8795 > + - microchip,ksz9477 > + - microchip,ksz9897 > + - microchip,ksz9896 > + - microchip,ksz9567 > + - microchip,ksz8565 > + - microchip,ksz9893 > + - microchip,ksz9563 > + - microchip,ksz8563 > + > + reset-gpios: > + description: > + Should be a gpio specifier for a reset line. > + maxItems: 1 > + > + microchip,synclko-125: > + $ref: /schemas/types.yaml#/definitions/flag > + description: > + Set if the output SYNCLKO frequency should be set to 125MHz instead of 25MHz. > + > +required: > + - compatible > + - reg > + > +additionalProperties: false You need to use unevaluatedProperties instead. > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + > + // Ethernet switch connected via SPI to the host, CPU port wired to eth0: > + eth0 { > + fixed-link { > + speed = <1000>; > + full-duplex; > + }; > + }; > + > + spi0 { > + #address-cells = <1>; > + #size-cells = <0>; > + > + pinctrl-0 = <&pinctrl_spi_ksz>; > + cs-gpios = <&pioC 25 0>; > + id = <1>; > + > + ksz9477: switch@0 { > + compatible = "microchip,ksz9477"; > + reg = <0>; > + reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; > + > + spi-max-frequency = <44000000>; > + spi-cpha; > + spi-cpol; Are these 2 optional or required? Being optional is rare as most devices support 1 mode, but not unheard of. In general, you shouldn't need them as the driver should know how to configure the mode if the h/w is fixed. > + > + ethernet-ports { > + #address-cells = <1>; > + #size-cells = <0>; > + port@0 { > + reg = <0>; > + label = "lan1"; > + }; > + port@1 { > + reg = <1>; > + label = "lan2"; > + }; > + port@2 { > + reg = <2>; > + label = "lan3"; > + }; > + port@3 { > + reg = <3>; > + label = "lan4"; > + }; > + port@4 { > + reg = <4>; > + label = "lan5"; > + }; > + port@5 { > + reg = <5>; > + label = "cpu"; > + ethernet = <ð0>; > + fixed-link { > + speed = <1000>; > + full-duplex; > + }; > + }; > + }; > + }; > + > + ksz8565: switch@1 { > + compatible = "microchip,ksz8565"; > + reg = <1>; > + > + spi-max-frequency = <44000000>; > + spi-cpha; > + spi-cpol; > + > + ethernet-ports { > + #address-cells = <1>; > + #size-cells = <0>; > + port@0 { > + reg = <0>; > + label = "lan1"; > + }; > + port@1 { > + reg = <1>; > + label = "lan2"; > + }; > + port@2 { > + reg = <2>; > + label = "lan3"; > + }; > + port@3 { > + reg = <3>; > + label = "lan4"; > + }; > + port@6 { > + reg = <6>; > + label = "cpu"; > + ethernet = <ð0>; > + fixed-link { > + speed = <1000>; > + full-duplex; > + }; > + }; > + }; > + }; > + }; > +... > diff --git a/MAINTAINERS b/MAINTAINERS > index 18b5b7896af8..d1003033412f 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -11508,7 +11508,7 @@ M: Woojung Huh <woojung.huh@xxxxxxxxxxxxx> > M: Microchip Linux Driver Support <UNGLinuxDriver@xxxxxxxxxxxxx> > L: netdev@xxxxxxxxxxxxxxx > S: Maintained > -F: Documentation/devicetree/bindings/net/dsa/ksz.txt > +F: Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml > F: drivers/net/dsa/microchip/* > F: include/linux/platform_data/microchip-ksz.h > F: net/dsa/tag_ksz.c > -- > Christian Eggers > Embedded software developer > > Arnold & Richter Cine Technik GmbH & Co. Betriebs KG > Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRA 57918 > Persoenlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH > Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRB 54477 > Geschaeftsfuehrer: Dr. Michael Neuhaeuser; Stephan Schenk; Walter Trauninger; Markus Zeiler >