On Fri, Mar 25, 2022 at 10:23:33PM +0530, Prasanna Vengateshan wrote: > Documentation in .yaml format and updates to the MAINTAINERS > Also 'make dt_binding_check' is passed. > > RGMII internal delay values for the mac is retrieved from > rx-internal-delay-ps & tx-internal-delay-ps as per the feedback from > v3 patch series. > https://lore.kernel.org/netdev/20210802121550.gqgbipqdvp5x76ii@skbuf/ > > It supports only the delay value of 0ns and 2ns. > > Signed-off-by: Prasanna Vengateshan <prasanna.vengateshan@xxxxxxxxxxxxx> > Reviewed-by: Rob Herring <robh@xxxxxxxxxx> > --- > .../bindings/net/dsa/microchip,lan937x.yaml | 160 ++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 161 insertions(+) > create mode 100644 Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml > > diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml b/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml > new file mode 100644 > index 000000000000..8974506d8f69 > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml > @@ -0,0 +1,160 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/net/dsa/microchip,lan937x.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: LAN937x Ethernet Switch Series Tree Bindings > + > +maintainers: > + - UNGLinuxDriver@xxxxxxxxxxxxx > + > +allOf: > + - $ref: dsa.yaml# > + > +properties: > + compatible: > + enum: > + - microchip,lan9370 > + - microchip,lan9371 > + - microchip,lan9372 > + - microchip,lan9373 > + - microchip,lan9374 > + > + reg: > + maxItems: 1 > + > + spi-max-frequency: > + maximum: 50000000 > + > + reset-gpios: > + description: Optional gpio specifier for a reset line > + maxItems: 1 > + > + mdio: > + $ref: /schemas/net/mdio.yaml# > + unevaluatedProperties: false > + > + tx-internal-delay-ps: > + enum: [0, 2000] > + default: 0 > + > + rx-internal-delay-ps: > + enum: [0, 2000] > + default: 0 Why are "tx-internal-delay-ps" and "rx-internal-delay-ps" properties of the switch node and not of individual port nodes? > + > +required: > + - compatible > + - reg > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + > + //Ethernet switch connected via spi to the host Comment seems off, this node doesn't correspond to an Ethernet switch but to the DSA master. > + ethernet { > + #address-cells = <1>; > + #size-cells = <0>; > + > + fixed-link { > + speed = <1000>; > + full-duplex; > + }; > + }; > + > + spi { > + #address-cells = <1>; > + #size-cells = <0>; > + > + lan9374: switch@0 { > + compatible = "microchip,lan9374"; > + reg = <0>; > + > + spi-max-frequency = <44000000>; > + > + ethernet-ports { > + #address-cells = <1>; > + #size-cells = <0>; Some blank lines here and there to separate the nodes from the properties and from each other would go a long way. Similarly, properties don't need new lines between each other ("reg" and "spi-max-frequency"). > + port@0 { > + reg = <0>; > + label = "lan1"; > + phy-mode = "internal"; > + phy-handle = <&t1phy0>; > + }; > + port@1 { > + reg = <1>; > + label = "lan2"; > + phy-mode = "internal"; > + phy-handle = <&t1phy1>; > + }; > + port@2 { > + reg = <2>; > + label = "lan4"; > + phy-mode = "internal"; > + phy-handle = <&t1phy2>; > + }; > + port@3 { > + reg = <3>; > + label = "lan6"; > + phy-mode = "internal"; > + phy-handle = <&t1phy3>; > + }; > + port@4 { > + reg = <4>; > + phy-mode = "rgmii"; > + ethernet = <ðernet>; shouldn't the "ethernet" node have a label for this to work? Does this example compile? > + fixed-link { > + speed = <1000>; > + full-duplex; > + }; > + }; > + port@5 { > + reg = <5>; > + label = "lan7"; > + phy-mode = "rgmii"; > + fixed-link { > + speed = <1000>; > + full-duplex; > + }; > + }; > + port@6 { > + reg = <6>; > + label = "lan5"; > + phy-mode = "internal"; > + phy-handle = <&t1phy6>; > + }; > + port@7 { > + reg = <7>; > + label = "lan3"; > + phy-mode = "internal"; > + phy-handle = <&t1phy7>; > + }; > + }; > + > + mdio { > + #address-cells = <1>; > + #size-cells = <0>; > + > + t1phy0: ethernet-phy@0{ > + reg = <0x0>; > + }; > + t1phy1: ethernet-phy@1{ > + reg = <0x1>; > + }; > + t1phy2: ethernet-phy@2{ > + reg = <0x2>; > + }; > + t1phy3: ethernet-phy@3{ > + reg = <0x3>; > + }; > + t1phy6: ethernet-phy@6{ > + reg = <0x6>; > + }; > + t1phy7: ethernet-phy@7{ > + reg = <0x7>; > + }; > + }; > + }; > + }; > diff --git a/MAINTAINERS b/MAINTAINERS > index 91c04cb65247..373eaee3c8b9 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -12719,6 +12719,7 @@ M: UNGLinuxDriver@xxxxxxxxxxxxx > L: netdev@xxxxxxxxxxxxxxx > S: Maintained > F: Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml > +F: Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml > F: drivers/net/dsa/microchip/* > F: include/linux/platform_data/microchip-ksz.h > F: net/dsa/tag_ksz.c > -- > 2.30.2 >