.../devicetree/bindings/net/dsa/lan9303.txt | 99 +------------- .../bindings/net/dsa/microchip,lan9303.yaml | 129 ++++++++++++++++++ MAINTAINERS | 8 ++ 3 files changed, 139 insertions(+), 97 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/dsa/microchip,lan9303.yaml
Adding the dt binding yaml for the lan9303 3-port ethernet switch.
The microchip lan9354 3-port ethernet switch will also use the
same binding.
Signed-off-by: Jerry Ray <jerry.ray@microchip.com>
---
v2->v3:
- removed cpu labels
- now patching against latest net-next
v1->v2:
- fixed dt_binding_check warning
- added max-speed setting on the switches 10/100 ports.
---
.../devicetree/bindings/net/dsa/lan9303.txt | 99 +-------------
.../bindings/net/dsa/microchip,lan9303.yaml | 129 ++++++++++++++++++
MAINTAINERS | 8 ++
3 files changed, 139 insertions(+), 97 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/dsa/microchip,lan9303.yaml
diff --git a/Documentation/devicetree/bindings/net/dsa/lan9303.txt b/Documentation/devicetree/bindings/net/dsa/lan9303.txt
index 46a732087f5c..8c8fedd1f00e 100644
--- a/Documentation/devicetree/bindings/net/dsa/lan9303.txt
+++ b/Documentation/devicetree/bindings/net/dsa/lan9303.txt
@@ -1,100 +1,5 @@
SMSC/MicroChip LAN9303 three port ethernet switch
-------------------------------------------------
-Required properties:
-
-- compatible: should be
- - "smsc,lan9303-i2c" for I2C managed mode
- or
- - "smsc,lan9303-mdio" for mdio managed mode
-
-Optional properties:
-
-- reset-gpios: GPIO to be used to reset the whole device
-- reset-duration: reset duration in milliseconds, defaults to 200 ms
-
-Subnodes:
-
-The integrated switch subnode should be specified according to the binding
-described in dsa/dsa.txt. The CPU port of this switch is always port 0.
-
-Note: always use 'reg = <0/1/2>;' for the three DSA ports, even if the device is
-configured to use 1/2/3 instead. This hardware configuration will be
-auto-detected and mapped accordingly.
-
-Example:
-
-I2C managed mode:
-
- master: masterdevice@X {
-
- fixed-link { /* RMII fixed link to LAN9303 */
- speed = <100>;
- full-duplex;
- };
- };
-
- switch: switch@a {
- compatible = "smsc,lan9303-i2c";
- reg = <0xa>;
- reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
- reset-duration = <200>;
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@0 { /* RMII fixed link to master */
- reg = <0>;
- ethernet = <&master>;
- };
-
- port@1 { /* external port 1 */
- reg = <1>;
- label = "lan1";
- };
-
- port@2 { /* external port 2 */
- reg = <2>;
- label = "lan2";
- };
- };
- };
-
-MDIO managed mode:
-
- master: masterdevice@X {
- phy-handle = <&switch>;
-
- mdio {
- #address-cells = <1>;
- #size-cells = <0>;
-
- switch: switch-phy@0 {
- compatible = "smsc,lan9303-mdio";
- reg = <0>;
- reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
- reset-duration = <100>;
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@0 {
- reg = <0>;
- ethernet = <&master>;
- };
-
- port@1 { /* external port 1 */
- reg = <1>;
- label = "lan1";
- };
-
- port@2 { /* external port 2 */
- reg = <2>;
- label = "lan2";
- };
- };
- };
- };
- };
+See Documentation/devicetree/bindings/net/dsa/microchip,lan9303.yaml for the
+device tree documentation covering the LAN9303 and LAN9354 devices.
diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,lan9303.yaml b/Documentation/devicetree/bindings/net/dsa/microchip,lan9303.yaml
new file mode 100644
index 000000000000..818770092a2c
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/dsa/microchip,lan9303.yaml
@@ -0,0 +1,129 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/dsa/microchip,lan9303.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: LAN9303 Ethernet Switch Series Tree Bindings
+
+allOf:
+ - $ref: "dsa.yaml#"
+
+maintainers:
+ - UNGLinuxDriver@microchip.com
+
+properties:
+ compatible:
+ oneOf:
+ - enum:
+ - smsc,lan9303-mdio
+ - microchip,lan9354-mdio
+ - enum:
+ - smsc,lan9303-i2c
+
+ reg:
+ maxItems: 1
+
+ reset-gpios:
+ description: Optional gpio specifier for a reset line
+ maxItems: 1
+
+ reset-duration:
+ description: Reset duration in milliseconds, defaults to 200 ms
+
+required:
+ - compatible
+ - reg
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+
+ //Ethernet switch connected via mdio to the host
+ ethernet0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ phy-handle = <&lan9303switch>;
+ phy-mode = "rmii";
+ fixed-link {
+ speed = <100>;
+ full-duplex;
+ };
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ lan9303switch: switch@0 {
+ compatible = "smsc,lan9303-mdio";
+ dsa,member = <0 0>;
+ reg = <0>;
+ ethernet-ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ port@0 {
+ reg = <0>;
+ phy-mode = "rmii";
+ ethernet = <ðernet>;
+ fixed-link {
+ speed = <100>;
+ full-duplex;
+ };
+ };
+ port@1 {
+ reg = <1>;
+ max-speed = <100>;
+ label = "lan1";
+ };
+ port@2 {
+ reg = <2>;
+ max-speed = <100>;
+ label = "lan2";
+ };
+ };
+ };
+ };
+ };
+
+ //Ethernet switch connected via i2c to the host
+ ethernet1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ phy-mode = "rmii";
+ fixed-link {
+ speed = <100>;
+ full-duplex;
+ };
+ };
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ lan9303: switch@1a {
+ compatible = "smsc,lan9303-i2c";
+ reg = <0x1a>;
+ ethernet-ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ port@0 {
+ reg = <0>;
+ phy-mode = "rmii";
+ ethernet = <ðernet1>;
+ fixed-link {
+ speed = <100>;
+ full-duplex;
+ };
+ };
+ port@1 {
+ reg = <1>;
+ max-speed = <100>;
+ label = "lan1";
+ };
+ port@2 {
+ reg = <2>;
+ max-speed = <100>;
+ label = "lan2";
+ };
+ };
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index 5d58b55c5ae5..89055ff2838a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -13386,6 +13386,14 @@ L: netdev@vger.kernel.org
S: Maintained
F: drivers/net/ethernet/microchip/lan743x_*
+MICROCHIP LAN9303/LAN9354 ETHERNET SWITCH DRIVER
+M: Jerry Ray <jerry.ray@microchip.com>
+M: UNGLinuxDriver@microchip.com
+L: netdev@vger.kernel.org
+S: Maintained
+F: Documentation/devicetree/bindings/net/dsa/microchip,lan9303.yaml
+F: drivers/net/dsa/lan9303*
+
MICROCHIP LAN966X ETHERNET DRIVER
M: Horatiu Vultur <horatiu.vultur@microchip.com>
M: UNGLinuxDriver@microchip.com
--
2.25.1
On 28/09/2022 18:21, Jerry Ray wrote: > Adding the dt binding yaml for the lan9303 3-port ethernet switch. > The microchip lan9354 3-port ethernet switch will also use the > same binding. > > Signed-off-by: Jerry Ray <jerry.ray@microchip.com> > --- > v2->v3: > - removed cpu labels > - now patching against latest net-next > v1->v2: > - fixed dt_binding_check warning > - added max-speed setting on the switches 10/100 ports. > --- > .../devicetree/bindings/net/dsa/lan9303.txt | 99 +------------- > .../bindings/net/dsa/microchip,lan9303.yaml | 129 ++++++++++++++++++ > MAINTAINERS | 8 ++ > 3 files changed, 139 insertions(+), 97 deletions(-) > create mode 100644 Documentation/devicetree/bindings/net/dsa/microchip,lan9303.yaml > > diff --git a/Documentation/devicetree/bindings/net/dsa/lan9303.txt b/Documentation/devicetree/bindings/net/dsa/lan9303.txt > index 46a732087f5c..8c8fedd1f00e 100644 > --- a/Documentation/devicetree/bindings/net/dsa/lan9303.txt > +++ b/Documentation/devicetree/bindings/net/dsa/lan9303.txt > @@ -1,100 +1,5 @@ > SMSC/MicroChip LAN9303 three port ethernet switch > ------------------------------------------------- Old file should be entirely removed. > > -Required properties: > - > -- compatible: should be > - - "smsc,lan9303-i2c" for I2C managed mode > - or > - - "smsc,lan9303-mdio" for mdio managed mode > - > -Optional properties: > - > -- reset-gpios: GPIO to be used to reset the whole device > -- reset-duration: reset duration in milliseconds, defaults to 200 ms > - > -Subnodes: > - > -The integrated switch subnode should be specified according to the binding > -described in dsa/dsa.txt. The CPU port of this switch is always port 0. > - > -Note: always use 'reg = <0/1/2>;' for the three DSA ports, even if the device is > -configured to use 1/2/3 instead. This hardware configuration will be > -auto-detected and mapped accordingly. > - > -Example: > - > -I2C managed mode: > - > - master: masterdevice@X { > - > - fixed-link { /* RMII fixed link to LAN9303 */ > - speed = <100>; > - full-duplex; > - }; > - }; > - > - switch: switch@a { > - compatible = "smsc,lan9303-i2c"; > - reg = <0xa>; > - reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>; > - reset-duration = <200>; > - > - ports { > - #address-cells = <1>; > - #size-cells = <0>; > - > - port@0 { /* RMII fixed link to master */ > - reg = <0>; > - ethernet = <&master>; > - }; > - > - port@1 { /* external port 1 */ > - reg = <1>; > - label = "lan1"; > - }; > - > - port@2 { /* external port 2 */ > - reg = <2>; > - label = "lan2"; > - }; > - }; > - }; > - > -MDIO managed mode: > - > - master: masterdevice@X { > - phy-handle = <&switch>; > - > - mdio { > - #address-cells = <1>; > - #size-cells = <0>; > - > - switch: switch-phy@0 { > - compatible = "smsc,lan9303-mdio"; > - reg = <0>; > - reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>; > - reset-duration = <100>; > - > - ports { > - #address-cells = <1>; > - #size-cells = <0>; > - > - port@0 { > - reg = <0>; > - ethernet = <&master>; > - }; > - > - port@1 { /* external port 1 */ > - reg = <1>; > - label = "lan1"; > - }; > - > - port@2 { /* external port 2 */ > - reg = <2>; > - label = "lan2"; > - }; > - }; > - }; > - }; > - }; > +See Documentation/devicetree/bindings/net/dsa/microchip,lan9303.yaml for the > +device tree documentation covering the LAN9303 and LAN9354 devices. No, just remove it. > diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,lan9303.yaml b/Documentation/devicetree/bindings/net/dsa/microchip,lan9303.yaml > new file mode 100644 > index 000000000000..818770092a2c > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/dsa/microchip,lan9303.yaml > @@ -0,0 +1,129 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/net/dsa/microchip,lan9303.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: LAN9303 Ethernet Switch Series Tree Bindings Drop "Tree Bindings" > + > +allOf: > + - $ref: "dsa.yaml#" Drop quotes. > + > +maintainers: > + - UNGLinuxDriver@microchip.com > + > +properties: > + compatible: > + oneOf: > + - enum: > + - smsc,lan9303-mdio > + - microchip,lan9354-mdio > + - enum: > + - smsc,lan9303-i2c oneOf does not make sense. It's just one enum. > + > + reg: > + maxItems: 1 > + > + reset-gpios: > + description: Optional gpio specifier for a reset line Drop "gpio specifier for a" > + maxItems: 1 > + > + reset-duration: > + description: Reset duration in milliseconds, defaults to 200 ms This does not look like standard type or unit suffix, so you need here type. Don't you have warnings for this? default: 200 > + > +required: > + - compatible > + - reg > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + > + //Ethernet switch connected via mdio to the host Missing space before comments. Use Linux style comments, not your own. > + ethernet0 { Drop "0". > + #address-cells = <1>; > + #size-cells = <0>; > + phy-handle = <&lan9303switch>; > + phy-mode = "rmii"; > + fixed-link { > + speed = <100>; > + full-duplex; > + }; > + mdio { > + #address-cells = <1>; > + #size-cells = <0>; > + lan9303switch: switch@0 { > + compatible = "smsc,lan9303-mdio"; > + dsa,member = <0 0>; > + reg = <0>; reg goes after compatible. > + ethernet-ports { > + #address-cells = <1>; > + #size-cells = <0>; > + port@0 { > + reg = <0>; > + phy-mode = "rmii"; > + ethernet = <ðernet>; > + fixed-link { > + speed = <100>; > + full-duplex; > + }; > + }; > + port@1 { > + reg = <1>; > + max-speed = <100>; > + label = "lan1"; > + }; > + port@2 { > + reg = <2>; > + max-speed = <100>; > + label = "lan2"; > + }; > + }; > + }; > + }; > + }; > + > + //Ethernet switch connected via i2c to the host > + ethernet1 { Just ethernet (and make it a second example) Best regards, Krzysztof
© 2016 - 2024 Red Hat, Inc.