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