xref: /linux/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml (revision 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95)
1ab7eff24SKurt Kanzenbach# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2ab7eff24SKurt Kanzenbach%YAML 1.2
3ab7eff24SKurt Kanzenbach---
4ab7eff24SKurt Kanzenbach$id: http://devicetree.org/schemas/net/dsa/brcm,b53.yaml#
5ab7eff24SKurt Kanzenbach$schema: http://devicetree.org/meta-schemas/core.yaml#
6ab7eff24SKurt Kanzenbach
7ab7eff24SKurt Kanzenbachtitle: Broadcom BCM53xx Ethernet switches
8ab7eff24SKurt Kanzenbach
9ab7eff24SKurt Kanzenbachmaintainers:
10ab7eff24SKurt Kanzenbach  - Florian Fainelli <f.fainelli@gmail.com>
11ab7eff24SKurt Kanzenbach
12ab7eff24SKurt Kanzenbachdescription:
13ab7eff24SKurt Kanzenbach  Broadcom BCM53xx Ethernet switches
14ab7eff24SKurt Kanzenbach
15ab7eff24SKurt Kanzenbachproperties:
16ab7eff24SKurt Kanzenbach  compatible:
17ab7eff24SKurt Kanzenbach    oneOf:
18ab7eff24SKurt Kanzenbach      - const: brcm,bcm5325
19*dfc4b67dSClaus Stovgaard      - const: brcm,bcm53101
20ab7eff24SKurt Kanzenbach      - const: brcm,bcm53115
21ab7eff24SKurt Kanzenbach      - const: brcm,bcm53125
22ab7eff24SKurt Kanzenbach      - const: brcm,bcm53128
23a20869b3SÁlvaro Fernández Rojas      - const: brcm,bcm53134
24ab7eff24SKurt Kanzenbach      - const: brcm,bcm5365
25ab7eff24SKurt Kanzenbach      - const: brcm,bcm5395
26ab7eff24SKurt Kanzenbach      - const: brcm,bcm5389
27ab7eff24SKurt Kanzenbach      - const: brcm,bcm5397
28ab7eff24SKurt Kanzenbach      - const: brcm,bcm5398
29ab7eff24SKurt Kanzenbach      - items:
30ab7eff24SKurt Kanzenbach          - const: brcm,bcm11360-srab
31ab7eff24SKurt Kanzenbach          - const: brcm,cygnus-srab
32ab7eff24SKurt Kanzenbach      - items:
33ab7eff24SKurt Kanzenbach          - enum:
34ab7eff24SKurt Kanzenbach              - brcm,bcm53010-srab
35ab7eff24SKurt Kanzenbach              - brcm,bcm53011-srab
36ab7eff24SKurt Kanzenbach              - brcm,bcm53012-srab
37ab7eff24SKurt Kanzenbach              - brcm,bcm53018-srab
38ab7eff24SKurt Kanzenbach              - brcm,bcm53019-srab
39ab7eff24SKurt Kanzenbach          - const: brcm,bcm5301x-srab
40ab7eff24SKurt Kanzenbach      - items:
41ab7eff24SKurt Kanzenbach          - enum:
42ab7eff24SKurt Kanzenbach              - brcm,bcm11404-srab
43ab7eff24SKurt Kanzenbach              - brcm,bcm11407-srab
44ab7eff24SKurt Kanzenbach              - brcm,bcm11409-srab
45ab7eff24SKurt Kanzenbach              - brcm,bcm58310-srab
46ab7eff24SKurt Kanzenbach              - brcm,bcm58311-srab
47ab7eff24SKurt Kanzenbach              - brcm,bcm58313-srab
48ab7eff24SKurt Kanzenbach          - const: brcm,omega-srab
49ab7eff24SKurt Kanzenbach      - items:
50ab7eff24SKurt Kanzenbach          - enum:
51ab7eff24SKurt Kanzenbach              - brcm,bcm58522-srab
52ab7eff24SKurt Kanzenbach              - brcm,bcm58523-srab
53ab7eff24SKurt Kanzenbach              - brcm,bcm58525-srab
54ab7eff24SKurt Kanzenbach              - brcm,bcm58622-srab
55ab7eff24SKurt Kanzenbach              - brcm,bcm58623-srab
56ab7eff24SKurt Kanzenbach              - brcm,bcm58625-srab
57ab7eff24SKurt Kanzenbach              - brcm,bcm88312-srab
58ab7eff24SKurt Kanzenbach          - const: brcm,nsp-srab
59ab7eff24SKurt Kanzenbach      - items:
60ab7eff24SKurt Kanzenbach          - enum:
61ab7eff24SKurt Kanzenbach              - brcm,bcm3384-switch
623ec5ac31SÁlvaro Fernández Rojas              - brcm,bcm6318-switch
63ab7eff24SKurt Kanzenbach              - brcm,bcm6328-switch
643ec5ac31SÁlvaro Fernández Rojas              - brcm,bcm6362-switch
65ab7eff24SKurt Kanzenbach              - brcm,bcm6368-switch
663ec5ac31SÁlvaro Fernández Rojas              - brcm,bcm63268-switch
67ab7eff24SKurt Kanzenbach          - const: brcm,bcm63xx-switch
68ab7eff24SKurt Kanzenbach
69ab7eff24SKurt Kanzenbachrequired:
70ab7eff24SKurt Kanzenbach  - compatible
71ab7eff24SKurt Kanzenbach  - reg
72ab7eff24SKurt Kanzenbach
73bbba69efSRob HerringallOf:
743cec368aSColin Foster  - $ref: dsa.yaml#/$defs/ethernet-ports
75bbba69efSRob Herring  - if:
76bbba69efSRob Herring      properties:
77bbba69efSRob Herring        compatible:
78bbba69efSRob Herring          contains:
79bbba69efSRob Herring            enum:
80bbba69efSRob Herring              - brcm,bcm5325
81*dfc4b67dSClaus Stovgaard              - brcm,bcm53101
82bbba69efSRob Herring              - brcm,bcm53115
83bbba69efSRob Herring              - brcm,bcm53125
84bbba69efSRob Herring              - brcm,bcm53128
85bbba69efSRob Herring              - brcm,bcm5365
86bbba69efSRob Herring              - brcm,bcm5395
87bbba69efSRob Herring              - brcm,bcm5397
88bbba69efSRob Herring              - brcm,bcm5398
89bbba69efSRob Herring    then:
90bbba69efSRob Herring      $ref: /schemas/spi/spi-peripheral-props.yaml
91bbba69efSRob Herring
92ab7eff24SKurt Kanzenbach    # BCM585xx/586xx/88312 SoCs
93bbba69efSRob Herring  - if:
94ab7eff24SKurt Kanzenbach      properties:
95ab7eff24SKurt Kanzenbach        compatible:
96ab7eff24SKurt Kanzenbach          contains:
97ab7eff24SKurt Kanzenbach            enum:
98ab7eff24SKurt Kanzenbach              - brcm,bcm58522-srab
99ab7eff24SKurt Kanzenbach              - brcm,bcm58523-srab
100ab7eff24SKurt Kanzenbach              - brcm,bcm58525-srab
101ab7eff24SKurt Kanzenbach              - brcm,bcm58622-srab
102ab7eff24SKurt Kanzenbach              - brcm,bcm58623-srab
103ab7eff24SKurt Kanzenbach              - brcm,bcm58625-srab
104ab7eff24SKurt Kanzenbach              - brcm,bcm88312-srab
105ab7eff24SKurt Kanzenbach    then:
106ab7eff24SKurt Kanzenbach      properties:
107ab7eff24SKurt Kanzenbach        reg:
108ab7eff24SKurt Kanzenbach          minItems: 3
109ab7eff24SKurt Kanzenbach          maxItems: 3
110ab7eff24SKurt Kanzenbach        reg-names:
111ab7eff24SKurt Kanzenbach          items:
112ab7eff24SKurt Kanzenbach            - const: srab
113ab7eff24SKurt Kanzenbach            - const: mux_config
114ab7eff24SKurt Kanzenbach            - const: sgmii_config
115ab7eff24SKurt Kanzenbach        interrupts:
116ab7eff24SKurt Kanzenbach          minItems: 13
117ab7eff24SKurt Kanzenbach          maxItems: 13
118ab7eff24SKurt Kanzenbach        interrupt-names:
119ab7eff24SKurt Kanzenbach          items:
120ab7eff24SKurt Kanzenbach            - const: link_state_p0
121ab7eff24SKurt Kanzenbach            - const: link_state_p1
122ab7eff24SKurt Kanzenbach            - const: link_state_p2
123ab7eff24SKurt Kanzenbach            - const: link_state_p3
124ab7eff24SKurt Kanzenbach            - const: link_state_p4
125ab7eff24SKurt Kanzenbach            - const: link_state_p5
126ab7eff24SKurt Kanzenbach            - const: link_state_p7
127ab7eff24SKurt Kanzenbach            - const: link_state_p8
128ab7eff24SKurt Kanzenbach            - const: phy
129ab7eff24SKurt Kanzenbach            - const: ts
130ab7eff24SKurt Kanzenbach            - const: imp_sleep_timer_p5
131ab7eff24SKurt Kanzenbach            - const: imp_sleep_timer_p7
132ab7eff24SKurt Kanzenbach            - const: imp_sleep_timer_p8
133ab7eff24SKurt Kanzenbach      required:
134ab7eff24SKurt Kanzenbach        - interrupts
135ab7eff24SKurt Kanzenbach    else:
136ab7eff24SKurt Kanzenbach      properties:
137ab7eff24SKurt Kanzenbach        reg:
138ab7eff24SKurt Kanzenbach          maxItems: 1
139ab7eff24SKurt Kanzenbach
140ab7eff24SKurt KanzenbachunevaluatedProperties: false
141ab7eff24SKurt Kanzenbach
142ab7eff24SKurt Kanzenbachexamples:
143ab7eff24SKurt Kanzenbach  - |
144ab7eff24SKurt Kanzenbach    mdio {
145ab7eff24SKurt Kanzenbach        #address-cells = <1>;
146ab7eff24SKurt Kanzenbach        #size-cells = <0>;
147ab7eff24SKurt Kanzenbach
148ab7eff24SKurt Kanzenbach        ethernet-switch@1e {
149ab7eff24SKurt Kanzenbach            compatible = "brcm,bcm53125";
150ab7eff24SKurt Kanzenbach            reg = <30>;
151ab7eff24SKurt Kanzenbach
152ab7eff24SKurt Kanzenbach            ethernet-ports {
153ab7eff24SKurt Kanzenbach                #address-cells = <1>;
154ab7eff24SKurt Kanzenbach                #size-cells = <0>;
155ab7eff24SKurt Kanzenbach
156ab7eff24SKurt Kanzenbach                port@0 {
157ab7eff24SKurt Kanzenbach                    reg = <0>;
158ab7eff24SKurt Kanzenbach                    label = "lan1";
159ab7eff24SKurt Kanzenbach                };
160ab7eff24SKurt Kanzenbach
161ab7eff24SKurt Kanzenbach                port@1 {
162ab7eff24SKurt Kanzenbach                    reg = <1>;
163ab7eff24SKurt Kanzenbach                    label = "lan2";
164ab7eff24SKurt Kanzenbach                };
165ab7eff24SKurt Kanzenbach
166ab7eff24SKurt Kanzenbach                port@5 {
167ab7eff24SKurt Kanzenbach                    reg = <5>;
168ab7eff24SKurt Kanzenbach                    label = "cable-modem";
169ab7eff24SKurt Kanzenbach                    phy-mode = "rgmii-txid";
170ab7eff24SKurt Kanzenbach                    fixed-link {
171ab7eff24SKurt Kanzenbach                        speed = <1000>;
172ab7eff24SKurt Kanzenbach                        full-duplex;
173ab7eff24SKurt Kanzenbach                    };
174ab7eff24SKurt Kanzenbach                };
175ab7eff24SKurt Kanzenbach
176ab7eff24SKurt Kanzenbach                port@8 {
177ab7eff24SKurt Kanzenbach                    reg = <8>;
178ab7eff24SKurt Kanzenbach                    phy-mode = "rgmii-txid";
179ab7eff24SKurt Kanzenbach                    ethernet = <&eth0>;
180ab7eff24SKurt Kanzenbach                    fixed-link {
181ab7eff24SKurt Kanzenbach                        speed = <1000>;
182ab7eff24SKurt Kanzenbach                        full-duplex;
183ab7eff24SKurt Kanzenbach                    };
184ab7eff24SKurt Kanzenbach                };
185ab7eff24SKurt Kanzenbach            };
186ab7eff24SKurt Kanzenbach        };
187ab7eff24SKurt Kanzenbach    };
188ab7eff24SKurt Kanzenbach  - |
189ab7eff24SKurt Kanzenbach    #include <dt-bindings/interrupt-controller/arm-gic.h>
190ab7eff24SKurt Kanzenbach    #include <dt-bindings/interrupt-controller/irq.h>
191ab7eff24SKurt Kanzenbach
192ab7eff24SKurt Kanzenbach    axi {
193ab7eff24SKurt Kanzenbach        #address-cells = <1>;
194ab7eff24SKurt Kanzenbach        #size-cells = <1>;
195ab7eff24SKurt Kanzenbach
196ab7eff24SKurt Kanzenbach        switch@36000 {
197ab7eff24SKurt Kanzenbach            compatible = "brcm,bcm58623-srab", "brcm,nsp-srab";
198ab7eff24SKurt Kanzenbach            reg = <0x36000 0x1000>,
199ab7eff24SKurt Kanzenbach                  <0x3f308 0x8>,
200ab7eff24SKurt Kanzenbach                  <0x3f410 0xc>;
201ab7eff24SKurt Kanzenbach            reg-names = "srab", "mux_config", "sgmii_config";
202ab7eff24SKurt Kanzenbach            interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
203ab7eff24SKurt Kanzenbach                         <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
204ab7eff24SKurt Kanzenbach                         <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
205ab7eff24SKurt Kanzenbach                         <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
206ab7eff24SKurt Kanzenbach                         <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
207ab7eff24SKurt Kanzenbach                         <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
208ab7eff24SKurt Kanzenbach                         <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
209ab7eff24SKurt Kanzenbach                         <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
210ab7eff24SKurt Kanzenbach                         <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
211ab7eff24SKurt Kanzenbach                         <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
212ab7eff24SKurt Kanzenbach                         <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
213ab7eff24SKurt Kanzenbach                         <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
214ab7eff24SKurt Kanzenbach                         <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
215ab7eff24SKurt Kanzenbach            interrupt-names = "link_state_p0",
216ab7eff24SKurt Kanzenbach                              "link_state_p1",
217ab7eff24SKurt Kanzenbach                              "link_state_p2",
218ab7eff24SKurt Kanzenbach                              "link_state_p3",
219ab7eff24SKurt Kanzenbach                              "link_state_p4",
220ab7eff24SKurt Kanzenbach                              "link_state_p5",
221ab7eff24SKurt Kanzenbach                              "link_state_p7",
222ab7eff24SKurt Kanzenbach                              "link_state_p8",
223ab7eff24SKurt Kanzenbach                              "phy",
224ab7eff24SKurt Kanzenbach                              "ts",
225ab7eff24SKurt Kanzenbach                              "imp_sleep_timer_p5",
226ab7eff24SKurt Kanzenbach                              "imp_sleep_timer_p7",
227ab7eff24SKurt Kanzenbach                              "imp_sleep_timer_p8";
228ab7eff24SKurt Kanzenbach
229ab7eff24SKurt Kanzenbach            ethernet-ports {
230ab7eff24SKurt Kanzenbach                #address-cells = <1>;
231ab7eff24SKurt Kanzenbach                #size-cells = <0>;
232ab7eff24SKurt Kanzenbach
233ab7eff24SKurt Kanzenbach                port@0 {
234ab7eff24SKurt Kanzenbach                    label = "port0";
235ab7eff24SKurt Kanzenbach                    reg = <0>;
236ab7eff24SKurt Kanzenbach                };
237ab7eff24SKurt Kanzenbach
238ab7eff24SKurt Kanzenbach                port@1 {
239ab7eff24SKurt Kanzenbach                    label = "port1";
240ab7eff24SKurt Kanzenbach                    reg = <1>;
241ab7eff24SKurt Kanzenbach                };
242ab7eff24SKurt Kanzenbach
243ab7eff24SKurt Kanzenbach                port@2 {
244ab7eff24SKurt Kanzenbach                    label = "port2";
245ab7eff24SKurt Kanzenbach                    reg = <2>;
246ab7eff24SKurt Kanzenbach                };
247ab7eff24SKurt Kanzenbach
248ab7eff24SKurt Kanzenbach                port@3 {
249ab7eff24SKurt Kanzenbach                    label = "port3";
250ab7eff24SKurt Kanzenbach                    reg = <3>;
251ab7eff24SKurt Kanzenbach                };
252ab7eff24SKurt Kanzenbach
253ab7eff24SKurt Kanzenbach                port@4 {
254ab7eff24SKurt Kanzenbach                    label = "port4";
255ab7eff24SKurt Kanzenbach                    reg = <4>;
256ab7eff24SKurt Kanzenbach                };
257ab7eff24SKurt Kanzenbach
258ab7eff24SKurt Kanzenbach                port@8 {
259ab7eff24SKurt Kanzenbach                    ethernet = <&amac2>;
260ab7eff24SKurt Kanzenbach                    reg = <8>;
261526512f6SVladimir Oltean                    phy-mode = "internal";
262526512f6SVladimir Oltean
263ab7eff24SKurt Kanzenbach                    fixed-link {
264ab7eff24SKurt Kanzenbach                        speed = <1000>;
265ab7eff24SKurt Kanzenbach                        full-duplex;
266ab7eff24SKurt Kanzenbach                    };
267ab7eff24SKurt Kanzenbach                };
268ab7eff24SKurt Kanzenbach            };
269ab7eff24SKurt Kanzenbach        };
270ab7eff24SKurt Kanzenbach    };
271