xref: /openbmc/linux/Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
18926d94eSPrasanna Vengateshan# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28926d94eSPrasanna Vengateshan%YAML 1.2
38926d94eSPrasanna Vengateshan---
48926d94eSPrasanna Vengateshan$id: http://devicetree.org/schemas/net/dsa/microchip,lan937x.yaml#
58926d94eSPrasanna Vengateshan$schema: http://devicetree.org/meta-schemas/core.yaml#
68926d94eSPrasanna Vengateshan
79fa3ad1aSKrzysztof Kozlowskititle: LAN937x Ethernet Switch Series
88926d94eSPrasanna Vengateshan
98926d94eSPrasanna Vengateshanmaintainers:
108926d94eSPrasanna Vengateshan  - UNGLinuxDriver@microchip.com
118926d94eSPrasanna Vengateshan
128926d94eSPrasanna VengateshanallOf:
13*3cec368aSColin Foster  - $ref: dsa.yaml#/$defs/ethernet-ports
148926d94eSPrasanna Vengateshan
158926d94eSPrasanna Vengateshanproperties:
168926d94eSPrasanna Vengateshan  compatible:
178926d94eSPrasanna Vengateshan    enum:
188926d94eSPrasanna Vengateshan      - microchip,lan9370
198926d94eSPrasanna Vengateshan      - microchip,lan9371
208926d94eSPrasanna Vengateshan      - microchip,lan9372
218926d94eSPrasanna Vengateshan      - microchip,lan9373
228926d94eSPrasanna Vengateshan      - microchip,lan9374
238926d94eSPrasanna Vengateshan
248926d94eSPrasanna Vengateshan  reg:
258926d94eSPrasanna Vengateshan    maxItems: 1
268926d94eSPrasanna Vengateshan
278926d94eSPrasanna Vengateshan  spi-max-frequency:
288926d94eSPrasanna Vengateshan    maximum: 50000000
298926d94eSPrasanna Vengateshan
308926d94eSPrasanna Vengateshan  reset-gpios:
318926d94eSPrasanna Vengateshan    description: Optional gpio specifier for a reset line
328926d94eSPrasanna Vengateshan    maxItems: 1
338926d94eSPrasanna Vengateshan
348926d94eSPrasanna Vengateshan  mdio:
358926d94eSPrasanna Vengateshan    $ref: /schemas/net/mdio.yaml#
368926d94eSPrasanna Vengateshan    unevaluatedProperties: false
378926d94eSPrasanna Vengateshan
388926d94eSPrasanna VengateshanpatternProperties:
398926d94eSPrasanna Vengateshan  "^(ethernet-)?ports$":
408926d94eSPrasanna Vengateshan    patternProperties:
418926d94eSPrasanna Vengateshan      "^(ethernet-)?port@[0-9]+$":
428926d94eSPrasanna Vengateshan        allOf:
438926d94eSPrasanna Vengateshan          - if:
448926d94eSPrasanna Vengateshan              properties:
458926d94eSPrasanna Vengateshan                phy-mode:
468926d94eSPrasanna Vengateshan                  contains:
478926d94eSPrasanna Vengateshan                    enum:
488926d94eSPrasanna Vengateshan                      - rgmii
498926d94eSPrasanna Vengateshan                      - rgmii-id
508926d94eSPrasanna Vengateshan                      - rgmii-txid
518926d94eSPrasanna Vengateshan                      - rgmii-rxid
528926d94eSPrasanna Vengateshan            then:
538926d94eSPrasanna Vengateshan              properties:
548926d94eSPrasanna Vengateshan                rx-internal-delay-ps:
558926d94eSPrasanna Vengateshan                  enum: [0, 2000]
568926d94eSPrasanna Vengateshan                  default: 0
578926d94eSPrasanna Vengateshan                tx-internal-delay-ps:
588926d94eSPrasanna Vengateshan                  enum: [0, 2000]
598926d94eSPrasanna Vengateshan                  default: 0
608926d94eSPrasanna Vengateshan
618926d94eSPrasanna Vengateshanrequired:
628926d94eSPrasanna Vengateshan  - compatible
638926d94eSPrasanna Vengateshan  - reg
648926d94eSPrasanna Vengateshan
658926d94eSPrasanna VengateshanunevaluatedProperties: false
668926d94eSPrasanna Vengateshan
678926d94eSPrasanna Vengateshanexamples:
688926d94eSPrasanna Vengateshan  - |
698926d94eSPrasanna Vengateshan    #include <dt-bindings/gpio/gpio.h>
708926d94eSPrasanna Vengateshan
718926d94eSPrasanna Vengateshan    macb0 {
728926d94eSPrasanna Vengateshan            #address-cells = <1>;
738926d94eSPrasanna Vengateshan            #size-cells = <0>;
748926d94eSPrasanna Vengateshan
758926d94eSPrasanna Vengateshan            fixed-link {
768926d94eSPrasanna Vengateshan                    speed = <1000>;
778926d94eSPrasanna Vengateshan                    full-duplex;
788926d94eSPrasanna Vengateshan            };
798926d94eSPrasanna Vengateshan    };
808926d94eSPrasanna Vengateshan
818926d94eSPrasanna Vengateshan    spi {
828926d94eSPrasanna Vengateshan            #address-cells = <1>;
838926d94eSPrasanna Vengateshan            #size-cells = <0>;
848926d94eSPrasanna Vengateshan
858926d94eSPrasanna Vengateshan            lan9374: switch@0 {
868926d94eSPrasanna Vengateshan                    compatible = "microchip,lan9374";
878926d94eSPrasanna Vengateshan                    reg = <0>;
888926d94eSPrasanna Vengateshan                    spi-max-frequency = <44000000>;
898926d94eSPrasanna Vengateshan
908926d94eSPrasanna Vengateshan                    ethernet-ports {
918926d94eSPrasanna Vengateshan                            #address-cells = <1>;
928926d94eSPrasanna Vengateshan                            #size-cells = <0>;
938926d94eSPrasanna Vengateshan
948926d94eSPrasanna Vengateshan                            port@0 {
958926d94eSPrasanna Vengateshan                                    reg = <0>;
968926d94eSPrasanna Vengateshan                                    label = "lan1";
978926d94eSPrasanna Vengateshan                                    phy-mode = "internal";
988926d94eSPrasanna Vengateshan                                    phy-handle = <&t1phy0>;
998926d94eSPrasanna Vengateshan                            };
1008926d94eSPrasanna Vengateshan
1018926d94eSPrasanna Vengateshan                            port@1 {
1028926d94eSPrasanna Vengateshan                                    reg = <1>;
1038926d94eSPrasanna Vengateshan                                    label = "lan2";
1048926d94eSPrasanna Vengateshan                                    phy-mode = "internal";
1058926d94eSPrasanna Vengateshan                                    phy-handle = <&t1phy1>;
1068926d94eSPrasanna Vengateshan                            };
1078926d94eSPrasanna Vengateshan
1088926d94eSPrasanna Vengateshan                            port@2 {
1098926d94eSPrasanna Vengateshan                                    reg = <2>;
1108926d94eSPrasanna Vengateshan                                    label = "lan4";
1118926d94eSPrasanna Vengateshan                                    phy-mode = "internal";
1128926d94eSPrasanna Vengateshan                                    phy-handle = <&t1phy2>;
1138926d94eSPrasanna Vengateshan                            };
1148926d94eSPrasanna Vengateshan
1158926d94eSPrasanna Vengateshan                            port@3 {
1168926d94eSPrasanna Vengateshan                                    reg = <3>;
1178926d94eSPrasanna Vengateshan                                    label = "lan6";
1188926d94eSPrasanna Vengateshan                                    phy-mode = "internal";
1198926d94eSPrasanna Vengateshan                                    phy-handle = <&t1phy3>;
1208926d94eSPrasanna Vengateshan                            };
1218926d94eSPrasanna Vengateshan
1228926d94eSPrasanna Vengateshan                            port@4 {
1238926d94eSPrasanna Vengateshan                                    reg = <4>;
1248926d94eSPrasanna Vengateshan                                    phy-mode = "rgmii";
1258926d94eSPrasanna Vengateshan                                    tx-internal-delay-ps = <2000>;
1268926d94eSPrasanna Vengateshan                                    rx-internal-delay-ps = <2000>;
1278926d94eSPrasanna Vengateshan                                    ethernet = <&macb0>;
1288926d94eSPrasanna Vengateshan
1298926d94eSPrasanna Vengateshan                                    fixed-link {
1308926d94eSPrasanna Vengateshan                                            speed = <1000>;
1318926d94eSPrasanna Vengateshan                                            full-duplex;
1328926d94eSPrasanna Vengateshan                                    };
1338926d94eSPrasanna Vengateshan                            };
1348926d94eSPrasanna Vengateshan
1358926d94eSPrasanna Vengateshan                            port@5 {
1368926d94eSPrasanna Vengateshan                                    reg = <5>;
1378926d94eSPrasanna Vengateshan                                    label = "lan7";
1388926d94eSPrasanna Vengateshan                                    phy-mode = "rgmii";
1398926d94eSPrasanna Vengateshan                                    tx-internal-delay-ps = <2000>;
1408926d94eSPrasanna Vengateshan                                    rx-internal-delay-ps = <2000>;
1418926d94eSPrasanna Vengateshan
1428926d94eSPrasanna Vengateshan                                    fixed-link {
1438926d94eSPrasanna Vengateshan                                            speed = <1000>;
1448926d94eSPrasanna Vengateshan                                            full-duplex;
1458926d94eSPrasanna Vengateshan                                    };
1468926d94eSPrasanna Vengateshan                            };
1478926d94eSPrasanna Vengateshan
1488926d94eSPrasanna Vengateshan                            port@6 {
1498926d94eSPrasanna Vengateshan                                    reg = <6>;
1508926d94eSPrasanna Vengateshan                                    label = "lan5";
1518926d94eSPrasanna Vengateshan                                    phy-mode = "internal";
1528926d94eSPrasanna Vengateshan                                    phy-handle = <&t1phy6>;
1538926d94eSPrasanna Vengateshan                            };
1548926d94eSPrasanna Vengateshan
1558926d94eSPrasanna Vengateshan                            port@7 {
1568926d94eSPrasanna Vengateshan                                    reg = <7>;
1578926d94eSPrasanna Vengateshan                                    label = "lan3";
1588926d94eSPrasanna Vengateshan                                    phy-mode = "internal";
1598926d94eSPrasanna Vengateshan                                    phy-handle = <&t1phy7>;
1608926d94eSPrasanna Vengateshan                            };
1618926d94eSPrasanna Vengateshan                    };
1628926d94eSPrasanna Vengateshan
1638926d94eSPrasanna Vengateshan                    mdio {
1648926d94eSPrasanna Vengateshan                            #address-cells = <1>;
1658926d94eSPrasanna Vengateshan                            #size-cells = <0>;
1668926d94eSPrasanna Vengateshan
1678926d94eSPrasanna Vengateshan                            t1phy0: ethernet-phy@0{
1688926d94eSPrasanna Vengateshan                                    reg = <0x0>;
1698926d94eSPrasanna Vengateshan                            };
1708926d94eSPrasanna Vengateshan
1718926d94eSPrasanna Vengateshan                            t1phy1: ethernet-phy@1{
1728926d94eSPrasanna Vengateshan                                    reg = <0x1>;
1738926d94eSPrasanna Vengateshan                            };
1748926d94eSPrasanna Vengateshan
1758926d94eSPrasanna Vengateshan                            t1phy2: ethernet-phy@2{
1768926d94eSPrasanna Vengateshan                                    reg = <0x2>;
1778926d94eSPrasanna Vengateshan                            };
1788926d94eSPrasanna Vengateshan
1798926d94eSPrasanna Vengateshan                            t1phy3: ethernet-phy@3{
1808926d94eSPrasanna Vengateshan                                    reg = <0x3>;
1818926d94eSPrasanna Vengateshan                            };
1828926d94eSPrasanna Vengateshan
1838926d94eSPrasanna Vengateshan                            t1phy6: ethernet-phy@6{
1848926d94eSPrasanna Vengateshan                                    reg = <0x6>;
1858926d94eSPrasanna Vengateshan                            };
1868926d94eSPrasanna Vengateshan
1878926d94eSPrasanna Vengateshan                            t1phy7: ethernet-phy@7{
1888926d94eSPrasanna Vengateshan                                    reg = <0x7>;
1898926d94eSPrasanna Vengateshan                            };
1908926d94eSPrasanna Vengateshan                    };
1918926d94eSPrasanna Vengateshan            };
1928926d94eSPrasanna Vengateshan    };
193