Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / net / dsa / brcm,sf2.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/net/dsa/brcm,sf2.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Broadcom Starfighter 2 integrated swich
8
9 maintainers:
10   - Florian Fainelli <f.fainelli@gmail.com>
11
12 properties:
13   compatible:
14     items:
15       - enum:
16           - brcm,bcm4908-switch
17           - brcm,bcm7278-switch-v4.0
18           - brcm,bcm7278-switch-v4.8
19           - brcm,bcm7445-switch-v4.0
20
21   reg:
22     minItems: 6
23     maxItems: 6
24
25   reg-names:
26     items:
27       - const: core
28       - const: reg
29       - const: intrl2_0
30       - const: intrl2_1
31       - const: fcb
32       - const: acb
33
34   interrupts:
35     minItems: 2
36     maxItems: 2
37
38   interrupt-names:
39     items:
40       - const: switch_0
41       - const: switch_1
42
43   resets:
44     maxItems: 1
45
46   reset-names:
47     const: switch
48
49   clocks:
50     minItems: 1
51     items:
52       - description: switch's main clock
53       - description: dividing of the switch core clock
54
55   clock-names:
56     minItems: 1
57     items:
58       - const: sw_switch
59       - const: sw_switch_mdiv
60
61   brcm,num-gphy:
62     $ref: /schemas/types.yaml#/definitions/uint32
63     description: maximum number of integrated gigabit PHYs in the switch
64
65   brcm,num-rgmii-ports:
66     $ref: /schemas/types.yaml#/definitions/uint32
67     description: maximum number of RGMII interfaces supported by the switch
68
69   brcm,fcb-pause-override:
70     description: if present indicates that the switch supports Failover Control
71       Block pause override capability
72     type: boolean
73
74   brcm,acb-packets-inflight:
75     description: if present indicates that the switch Admission Control Block
76       supports reporting the number of packets in-flight in a switch queue
77     type: boolean
78
79   "#address-cells":
80     const: 1
81
82   "#size-cells":
83     const: 0
84
85   ports:
86     type: object
87
88     properties:
89       brcm,use-bcm-hdr:
90         description: if present, indicates that the switch port has Broadcom
91           tags enabled (per-packet metadata)
92         type: boolean
93
94 required:
95   - reg
96   - interrupts
97   - "#address-cells"
98   - "#size-cells"
99
100 allOf:
101   - $ref: "dsa.yaml#"
102   - if:
103       properties:
104         compatible:
105           contains:
106             enum:
107               - brcm,bcm7278-switch-v4.0
108               - brcm,bcm7278-switch-v4.8
109     then:
110       properties:
111         clocks:
112           minItems: 1
113           maxItems: 1
114         clock-names:
115           minItems: 1
116           maxItems: 1
117       required:
118         - clocks
119         - clock-names
120   - if:
121       properties:
122         compatible:
123           contains:
124             const: brcm,bcm7445-switch-v4.0
125     then:
126       properties:
127         clocks:
128           minItems: 2
129           maxItems: 2
130         clock-names:
131           minItems: 2
132           maxItems: 2
133       required:
134         - clocks
135         - clock-names
136
137 additionalProperties: false
138
139 examples:
140   - |
141     switch@f0b00000 {
142             compatible = "brcm,bcm7445-switch-v4.0";
143             #address-cells = <1>;
144             #size-cells = <0>;
145             reg = <0xf0b00000 0x40000>,
146                   <0xf0b40000 0x110>,
147                   <0xf0b40340 0x30>,
148                   <0xf0b40380 0x30>,
149                   <0xf0b40400 0x34>,
150                   <0xf0b40600 0x208>;
151             reg-names = "core", "reg", "intrl2_0", "intrl2_1",
152                         "fcb", "acb";
153             interrupts = <0 0x18 0>,
154                          <0 0x19 0>;
155             clocks = <&sw_switch>, <&sw_switch_mdiv>;
156             clock-names = "sw_switch", "sw_switch_mdiv";
157             brcm,num-gphy = <1>;
158             brcm,num-rgmii-ports = <2>;
159             brcm,fcb-pause-override;
160             brcm,acb-packets-inflight;
161
162             ports {
163                     #address-cells = <1>;
164                     #size-cells = <0>;
165
166                     port@0 {
167                             label = "gphy";
168                             reg = <0>;
169                     };
170             };
171     };