GNU Linux-libre 4.19.286-gnu1
[releases.git] / Documentation / devicetree / bindings / net / brcm,bcm7445-switch-v4.0.txt
1 * Broadcom Starfighter 2 integrated swich
2
3 Required properties:
4
5 - compatible: should be one of
6         "brcm,bcm7445-switch-v4.0"
7         "brcm,bcm7278-switch-v4.0"
8         "brcm,bcm7278-switch-v4.8"
9 - reg: addresses and length of the register sets for the device, must be 6
10   pairs of register addresses and lengths
11 - interrupts: interrupts for the devices, must be two interrupts
12 - #address-cells: must be 1, see dsa/dsa.txt
13 - #size-cells: must be 0, see dsa/dsa.txt
14
15 Deprecated binding required properties:
16
17 - dsa,mii-bus: phandle to the MDIO bus controller, see dsa/dsa.txt
18 - dsa,ethernet: phandle to the CPU network interface controller, see dsa/dsa.txt
19 - #address-cells: must be 2, see dsa/dsa.txt
20
21 Subnodes:
22
23 The integrated switch subnode should be specified according to the binding
24 described in dsa/dsa.txt.
25
26 Optional properties:
27
28 - reg-names: litteral names for the device base register addresses, when present
29   must be: "core", "reg", "intrl2_0", "intrl2_1", "fcb", "acb"
30
31 - interrupt-names: litternal names for the device interrupt lines, when present
32   must be: "switch_0" and "switch_1"
33
34 - brcm,num-gphy: specify the maximum number of integrated gigabit PHYs in the
35   switch
36
37 - brcm,num-rgmii-ports: specify the maximum number of RGMII interfaces supported
38   by the switch
39
40 - brcm,fcb-pause-override: boolean property, if present indicates that the switch
41   supports Failover Control Block pause override capability
42
43 - brcm,acb-packets-inflight: boolean property, if present indicates that the switch
44   Admission Control Block supports reporting the number of packets in-flight in a
45   switch queue
46
47 Port subnodes:
48
49 Optional properties:
50
51 - brcm,use-bcm-hdr: boolean property, if present, indicates that the switch
52   port has Broadcom tags enabled (per-packet metadata)
53
54 Example:
55
56 switch_top@f0b00000 {
57         compatible = "simple-bus";
58         #size-cells = <1>;
59         #address-cells = <1>;
60         ranges = <0 0xf0b00000 0x40804>;
61
62         ethernet_switch@0 {
63                 compatible = "brcm,bcm7445-switch-v4.0";
64                 #size-cells = <0>;
65                 #address-cells = <1>;
66                 reg = <0x0 0x40000
67                         0x40000 0x110
68                         0x40340 0x30
69                         0x40380 0x30
70                         0x40400 0x34
71                         0x40600 0x208>;
72                 reg-names = "core", "reg", intrl2_0", "intrl2_1",
73                             "fcb, "acb";
74                 interrupts = <0 0x18 0
75                                 0 0x19 0>;
76                 brcm,num-gphy = <1>;
77                 brcm,num-rgmii-ports = <2>;
78                 brcm,fcb-pause-override;
79                 brcm,acb-packets-inflight;
80
81                 ports {
82                         #address-cells = <1>;
83                         #size-cells = <0>;
84
85                         port@0 {
86                                 label = "gphy";
87                                 reg = <0>;
88                         };
89                 };
90         };
91 };
92
93 Example using the old DSA DeviceTree binding:
94
95 switch_top@f0b00000 {
96         compatible = "simple-bus";
97         #size-cells = <1>;
98         #address-cells = <1>;
99         ranges = <0 0xf0b00000 0x40804>;
100
101         ethernet_switch@0 {
102                 compatible = "brcm,bcm7445-switch-v4.0";
103                 #size-cells = <0>;
104                 #address-cells = <2>;
105                 reg = <0x0 0x40000
106                         0x40000 0x110
107                         0x40340 0x30
108                         0x40380 0x30
109                         0x40400 0x34
110                         0x40600 0x208>;
111                 interrupts = <0 0x18 0
112                                 0 0x19 0>;
113                 brcm,num-gphy = <1>;
114                 brcm,num-rgmii-ports = <2>;
115                 brcm,fcb-pause-override;
116                 brcm,acb-packets-inflight;
117
118                 ...
119                 switch@0 {
120                         reg = <0 0>;
121                         #size-cells = <0>;
122                         #address-cells <1>;
123
124                         port@0 {
125                                 label = "gphy";
126                                 reg = <0>;
127                                 brcm,use-bcm-hdr;
128                         };
129                         ...
130                 };
131         };
132 };