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
7*47aab533SBjorn 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
81c7ee3a40SRafał Miłecki
82afdc0aabSColin Foster    patternProperties:
83afdc0aabSColin Foster      '^port@[0-9a-f]$':
84afdc0aabSColin Foster        $ref: dsa-port.yaml#
85afdc0aabSColin Foster        unevaluatedProperties: false
86afdc0aabSColin Foster
87c7ee3a40SRafał Miłecki        properties:
88c7ee3a40SRafał Miłecki          brcm,use-bcm-hdr:
89c7ee3a40SRafał Miłecki            description: if present, indicates that the switch port has Broadcom
90c7ee3a40SRafał Miłecki              tags enabled (per-packet metadata)
91c7ee3a40SRafał Miłecki            type: boolean
92c7ee3a40SRafał Miłecki
93c7ee3a40SRafał Miłeckirequired:
94c7ee3a40SRafał Miłecki  - reg
95c7ee3a40SRafał Miłecki  - interrupts
96c7ee3a40SRafał Miłecki
97c7ee3a40SRafał MiłeckiallOf:
983079bfdbSRob Herring  - $ref: dsa.yaml#
99c7ee3a40SRafał Miłecki  - if:
100c7ee3a40SRafał Miłecki      properties:
101c7ee3a40SRafał Miłecki        compatible:
102c7ee3a40SRafał Miłecki          contains:
103c7ee3a40SRafał Miłecki            enum:
104c7ee3a40SRafał Miłecki              - brcm,bcm7278-switch-v4.0
105c7ee3a40SRafał Miłecki              - brcm,bcm7278-switch-v4.8
106c7ee3a40SRafał Miłecki    then:
107c7ee3a40SRafał Miłecki      properties:
108c7ee3a40SRafał Miłecki        clocks:
109c7ee3a40SRafał Miłecki          minItems: 1
110c7ee3a40SRafał Miłecki          maxItems: 1
111c7ee3a40SRafał Miłecki        clock-names:
112c7ee3a40SRafał Miłecki          minItems: 1
113c7ee3a40SRafał Miłecki          maxItems: 1
114c7ee3a40SRafał Miłecki      required:
115c7ee3a40SRafał Miłecki        - clocks
116c7ee3a40SRafał Miłecki        - clock-names
117c7ee3a40SRafał Miłecki  - if:
118c7ee3a40SRafał Miłecki      properties:
119c7ee3a40SRafał Miłecki        compatible:
120c7ee3a40SRafał Miłecki          contains:
121c7ee3a40SRafał Miłecki            const: brcm,bcm7445-switch-v4.0
122c7ee3a40SRafał Miłecki    then:
123c7ee3a40SRafał Miłecki      properties:
124c7ee3a40SRafał Miłecki        clocks:
125c7ee3a40SRafał Miłecki          minItems: 2
126c7ee3a40SRafał Miłecki          maxItems: 2
127c7ee3a40SRafał Miłecki        clock-names:
128c7ee3a40SRafał Miłecki          minItems: 2
129c7ee3a40SRafał Miłecki          maxItems: 2
130c7ee3a40SRafał Miłecki      required:
131c7ee3a40SRafał Miłecki        - clocks
132c7ee3a40SRafał Miłecki        - clock-names
133c7ee3a40SRafał Miłecki
134c7ee3a40SRafał MiłeckiadditionalProperties: false
135c7ee3a40SRafał Miłecki
136c7ee3a40SRafał Miłeckiexamples:
137c7ee3a40SRafał Miłecki  - |
138c7ee3a40SRafał Miłecki    switch@f0b00000 {
139c7ee3a40SRafał Miłecki            compatible = "brcm,bcm7445-switch-v4.0";
140c7ee3a40SRafał Miłecki            reg = <0xf0b00000 0x40000>,
141c7ee3a40SRafał Miłecki                  <0xf0b40000 0x110>,
142c7ee3a40SRafał Miłecki                  <0xf0b40340 0x30>,
143c7ee3a40SRafał Miłecki                  <0xf0b40380 0x30>,
144c7ee3a40SRafał Miłecki                  <0xf0b40400 0x34>,
145c7ee3a40SRafał Miłecki                  <0xf0b40600 0x208>;
146c7ee3a40SRafał Miłecki            reg-names = "core", "reg", "intrl2_0", "intrl2_1",
147c7ee3a40SRafał Miłecki                        "fcb", "acb";
148c7ee3a40SRafał Miłecki            interrupts = <0 0x18 0>,
149c7ee3a40SRafał Miłecki                         <0 0x19 0>;
150c7ee3a40SRafał Miłecki            clocks = <&sw_switch>, <&sw_switch_mdiv>;
151c7ee3a40SRafał Miłecki            clock-names = "sw_switch", "sw_switch_mdiv";
152c7ee3a40SRafał Miłecki            brcm,num-gphy = <1>;
153c7ee3a40SRafał Miłecki            brcm,num-rgmii-ports = <2>;
154c7ee3a40SRafał Miłecki            brcm,fcb-pause-override;
155c7ee3a40SRafał Miłecki            brcm,acb-packets-inflight;
156c7ee3a40SRafał Miłecki
157c7ee3a40SRafał Miłecki            ports {
158c7ee3a40SRafał Miłecki                    #address-cells = <1>;
159c7ee3a40SRafał Miłecki                    #size-cells = <0>;
160c7ee3a40SRafał Miłecki
161c7ee3a40SRafał Miłecki                    port@0 {
162c7ee3a40SRafał Miłecki                            label = "gphy";
163c7ee3a40SRafał Miłecki                            reg = <0>;
164c7ee3a40SRafał Miłecki                    };
165c7ee3a40SRafał Miłecki            };
166c7ee3a40SRafał Miłecki    };
167