xref: /freebsd/sys/contrib/device-tree/Bindings/net/dsa/vitesse,vsc73xx.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1*0e8011faSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*0e8011faSEmmanuel Vadot%YAML 1.2
3*0e8011faSEmmanuel Vadot---
4*0e8011faSEmmanuel Vadot$id: http://devicetree.org/schemas/net/dsa/vitesse,vsc73xx.yaml#
5*0e8011faSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*0e8011faSEmmanuel Vadot
7*0e8011faSEmmanuel Vadottitle: Vitesse VSC73xx DSA Switches
8*0e8011faSEmmanuel Vadot
9*0e8011faSEmmanuel Vadotmaintainers:
10*0e8011faSEmmanuel Vadot  - Linus Walleij <linus.walleij@linaro.org>
11*0e8011faSEmmanuel Vadot
12*0e8011faSEmmanuel Vadotdescription:
13*0e8011faSEmmanuel Vadot  The Vitesse DSA Switches were produced in the early-to-mid 2000s.
14*0e8011faSEmmanuel Vadot
15*0e8011faSEmmanuel Vadot  The Vitesse company has been acquired by Microsemi and Microsemi has
16*0e8011faSEmmanuel Vadot  been acquired Microchip but the new owner retains this vendor branding.
17*0e8011faSEmmanuel Vadot
18*0e8011faSEmmanuel Vadot  The currently supported switch chips are
19*0e8011faSEmmanuel Vadot  Vitesse VSC7385 SparX-G5 5+1-port Integrated Gigabit Ethernet Switch
20*0e8011faSEmmanuel Vadot  Vitesse VSC7388 SparX-G8 8-port Integrated Gigabit Ethernet Switch
21*0e8011faSEmmanuel Vadot  Vitesse VSC7395 SparX-G5e 5+1-port Integrated Gigabit Ethernet Switch
22*0e8011faSEmmanuel Vadot  Vitesse VSC7398 SparX-G8e 8-port Integrated Gigabit Ethernet Switch
23*0e8011faSEmmanuel Vadot
24*0e8011faSEmmanuel Vadot  This switch can use one of two different management interfaces.
25*0e8011faSEmmanuel Vadot
26*0e8011faSEmmanuel Vadot  If SPI interface is used, the device tree node is an SPI device so it must
27*0e8011faSEmmanuel Vadot  reside inside a SPI bus device tree node, see spi/spi-bus.txt
28*0e8011faSEmmanuel Vadot
29*0e8011faSEmmanuel Vadot  When the chip is connected to a parallel memory bus and work in memory-mapped
30*0e8011faSEmmanuel Vadot  I/O mode, a platform device is used to represent the vsc73xx. In this case it
31*0e8011faSEmmanuel Vadot  must reside inside a platform bus device tree node.
32*0e8011faSEmmanuel Vadot
33*0e8011faSEmmanuel Vadotproperties:
34*0e8011faSEmmanuel Vadot  compatible:
35*0e8011faSEmmanuel Vadot    enum:
36*0e8011faSEmmanuel Vadot      - vitesse,vsc7385
37*0e8011faSEmmanuel Vadot      - vitesse,vsc7388
38*0e8011faSEmmanuel Vadot      - vitesse,vsc7395
39*0e8011faSEmmanuel Vadot      - vitesse,vsc7398
40*0e8011faSEmmanuel Vadot
41*0e8011faSEmmanuel Vadot  reg:
42*0e8011faSEmmanuel Vadot    maxItems: 1
43*0e8011faSEmmanuel Vadot
44*0e8011faSEmmanuel Vadot  gpio-controller: true
45*0e8011faSEmmanuel Vadot  "#gpio-cells":
46*0e8011faSEmmanuel Vadot    const: 2
47*0e8011faSEmmanuel Vadot
48*0e8011faSEmmanuel Vadot  reset-gpios:
49*0e8011faSEmmanuel Vadot    description: GPIO to be used to reset the whole device
50*0e8011faSEmmanuel Vadot    maxItems: 1
51*0e8011faSEmmanuel Vadot
52*0e8011faSEmmanuel VadotallOf:
53*0e8011faSEmmanuel Vadot  - $ref: dsa.yaml#/$defs/ethernet-ports
54*0e8011faSEmmanuel Vadot
55*0e8011faSEmmanuel Vadot# This checks if reg is a chipselect so the device is on an SPI
56*0e8011faSEmmanuel Vadot# bus, the if-clause will fail if reg is a tuple such as for a
57*0e8011faSEmmanuel Vadot# platform device.
58*0e8011faSEmmanuel Vadotif:
59*0e8011faSEmmanuel Vadot  properties:
60*0e8011faSEmmanuel Vadot    reg:
61*0e8011faSEmmanuel Vadot      minimum: 0
62*0e8011faSEmmanuel Vadot      maximum: 256
63*0e8011faSEmmanuel Vadotthen:
64*0e8011faSEmmanuel Vadot  $ref: /schemas/spi/spi-peripheral-props.yaml#
65*0e8011faSEmmanuel Vadot
66*0e8011faSEmmanuel Vadotrequired:
67*0e8011faSEmmanuel Vadot  - compatible
68*0e8011faSEmmanuel Vadot  - reg
69*0e8011faSEmmanuel Vadot
70*0e8011faSEmmanuel VadotunevaluatedProperties: false
71*0e8011faSEmmanuel Vadot
72*0e8011faSEmmanuel Vadotexamples:
73*0e8011faSEmmanuel Vadot  - |
74*0e8011faSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
75*0e8011faSEmmanuel Vadot
76*0e8011faSEmmanuel Vadot    spi {
77*0e8011faSEmmanuel Vadot      #address-cells = <1>;
78*0e8011faSEmmanuel Vadot      #size-cells = <0>;
79*0e8011faSEmmanuel Vadot
80*0e8011faSEmmanuel Vadot      ethernet-switch@0 {
81*0e8011faSEmmanuel Vadot        compatible = "vitesse,vsc7395";
82*0e8011faSEmmanuel Vadot        reg = <0>;
83*0e8011faSEmmanuel Vadot        spi-max-frequency = <2500000>;
84*0e8011faSEmmanuel Vadot        gpio-controller;
85*0e8011faSEmmanuel Vadot        #gpio-cells = <2>;
86*0e8011faSEmmanuel Vadot
87*0e8011faSEmmanuel Vadot        ethernet-ports {
88*0e8011faSEmmanuel Vadot          #address-cells = <1>;
89*0e8011faSEmmanuel Vadot          #size-cells = <0>;
90*0e8011faSEmmanuel Vadot
91*0e8011faSEmmanuel Vadot          ethernet-port@0 {
92*0e8011faSEmmanuel Vadot            reg = <0>;
93*0e8011faSEmmanuel Vadot            label = "lan1";
94*0e8011faSEmmanuel Vadot          };
95*0e8011faSEmmanuel Vadot          ethernet-port@1 {
96*0e8011faSEmmanuel Vadot            reg = <1>;
97*0e8011faSEmmanuel Vadot            label = "lan2";
98*0e8011faSEmmanuel Vadot          };
99*0e8011faSEmmanuel Vadot          ethernet-port@2 {
100*0e8011faSEmmanuel Vadot            reg = <2>;
101*0e8011faSEmmanuel Vadot            label = "lan3";
102*0e8011faSEmmanuel Vadot          };
103*0e8011faSEmmanuel Vadot          ethernet-port@3 {
104*0e8011faSEmmanuel Vadot            reg = <3>;
105*0e8011faSEmmanuel Vadot            label = "lan4";
106*0e8011faSEmmanuel Vadot          };
107*0e8011faSEmmanuel Vadot          ethernet-port@6 {
108*0e8011faSEmmanuel Vadot            reg = <6>;
109*0e8011faSEmmanuel Vadot            ethernet = <&gmac1>;
110*0e8011faSEmmanuel Vadot            phy-mode = "rgmii";
111*0e8011faSEmmanuel Vadot            fixed-link {
112*0e8011faSEmmanuel Vadot              speed = <1000>;
113*0e8011faSEmmanuel Vadot              full-duplex;
114*0e8011faSEmmanuel Vadot              pause;
115*0e8011faSEmmanuel Vadot            };
116*0e8011faSEmmanuel Vadot          };
117*0e8011faSEmmanuel Vadot        };
118*0e8011faSEmmanuel Vadot      };
119*0e8011faSEmmanuel Vadot    };
120*0e8011faSEmmanuel Vadot
121*0e8011faSEmmanuel Vadot    bus {
122*0e8011faSEmmanuel Vadot      #address-cells = <1>;
123*0e8011faSEmmanuel Vadot      #size-cells = <1>;
124*0e8011faSEmmanuel Vadot
125*0e8011faSEmmanuel Vadot      ethernet-switch@10000000 {
126*0e8011faSEmmanuel Vadot        compatible = "vitesse,vsc7385";
127*0e8011faSEmmanuel Vadot        reg = <0x10000000 0x20000>;
128*0e8011faSEmmanuel Vadot        reset-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
129*0e8011faSEmmanuel Vadot
130*0e8011faSEmmanuel Vadot        ethernet-ports {
131*0e8011faSEmmanuel Vadot          #address-cells = <1>;
132*0e8011faSEmmanuel Vadot          #size-cells = <0>;
133*0e8011faSEmmanuel Vadot
134*0e8011faSEmmanuel Vadot          ethernet-port@0 {
135*0e8011faSEmmanuel Vadot            reg = <0>;
136*0e8011faSEmmanuel Vadot            label = "lan1";
137*0e8011faSEmmanuel Vadot          };
138*0e8011faSEmmanuel Vadot          ethernet-port@1 {
139*0e8011faSEmmanuel Vadot            reg = <1>;
140*0e8011faSEmmanuel Vadot            label = "lan2";
141*0e8011faSEmmanuel Vadot          };
142*0e8011faSEmmanuel Vadot          ethernet-port@2 {
143*0e8011faSEmmanuel Vadot            reg = <2>;
144*0e8011faSEmmanuel Vadot            label = "lan3";
145*0e8011faSEmmanuel Vadot          };
146*0e8011faSEmmanuel Vadot          ethernet-port@3 {
147*0e8011faSEmmanuel Vadot            reg = <3>;
148*0e8011faSEmmanuel Vadot            label = "lan4";
149*0e8011faSEmmanuel Vadot          };
150*0e8011faSEmmanuel Vadot          ethernet-port@6 {
151*0e8011faSEmmanuel Vadot            reg = <6>;
152*0e8011faSEmmanuel Vadot            ethernet = <&enet0>;
153*0e8011faSEmmanuel Vadot            phy-mode = "rgmii";
154*0e8011faSEmmanuel Vadot            fixed-link {
155*0e8011faSEmmanuel Vadot              speed = <1000>;
156*0e8011faSEmmanuel Vadot              full-duplex;
157*0e8011faSEmmanuel Vadot              pause;
158*0e8011faSEmmanuel Vadot            };
159*0e8011faSEmmanuel Vadot          };
160*0e8011faSEmmanuel Vadot        };
161*0e8011faSEmmanuel Vadot      };
162*0e8011faSEmmanuel Vadot    };
163