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