Message ID | 20220325165341.791013-3-prasanna.vengateshan@microchip.com |
---|---|
State | New |
Headers | show |
Series | net: dsa: microchip: DSA driver support for LAN937x switch | expand |
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@microchip.com> > Reviewed-by: Rob Herring <robh@kernel.org> > --- > .../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@microchip.com > + > +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@microchip.com > L: netdev@vger.kernel.org > 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 >
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@microchip.com + +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 + +required: + - compatible + - reg + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + + //Ethernet switch connected via spi to the host + 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>; + 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>; + 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@microchip.com L: netdev@vger.kernel.org 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