1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/brcm,asp-v2.0.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Broadcom ASP Ethernet controller
8
9maintainers:
10  - Justin Chen <justin.chen@broadcom.com>
11  - Florian Fainelli <florian.fainelli@broadcom.com>
12
13description: Broadcom Ethernet controller first introduced with 72165
14
15properties:
16  compatible:
17    oneOf:
18      - items:
19          - enum:
20              - brcm,bcm74110-asp
21          - const: brcm,asp-v3.0
22      - items:
23          - enum:
24              - brcm,bcm74165b0-asp
25          - const: brcm,asp-v2.2
26      - items:
27          - enum:
28              - brcm,bcm74165-asp
29          - const: brcm,asp-v2.1
30
31  "#address-cells":
32    const: 1
33  "#size-cells":
34    const: 1
35
36  reg:
37    maxItems: 1
38
39  ranges: true
40
41  interrupts:
42    items:
43      - description: RX/TX interrupt
44      - description: Wake-on-LAN interrupt
45
46  clocks:
47    maxItems: 1
48
49  ethernet-ports:
50    type: object
51    properties:
52      "#address-cells":
53        const: 1
54      "#size-cells":
55        const: 0
56
57    patternProperties:
58      "^port@[0-9a-f]+$":
59        type: object
60
61        $ref: ethernet-controller.yaml#
62
63        unevaluatedProperties: false
64
65        properties:
66          reg:
67            maxItems: 1
68            description: Port number
69
70          brcm,channel:
71            $ref: /schemas/types.yaml#/definitions/uint32
72            description: |
73              ASP Channel Number
74
75              The depacketizer channel that consumes packets from
76              the unimac/port.
77
78        required:
79          - reg
80          - brcm,channel
81
82    additionalProperties: false
83
84patternProperties:
85  "^mdio@[0-9a-f]+$":
86    type: object
87    $ref: brcm,unimac-mdio.yaml
88
89    description:
90      ASP internal UniMAC MDIO bus
91
92required:
93  - compatible
94  - reg
95  - interrupts
96  - clocks
97  - ranges
98
99additionalProperties: false
100
101examples:
102  - |
103    #include <dt-bindings/interrupt-controller/irq.h>
104    #include <dt-bindings/interrupt-controller/arm-gic.h>
105
106    ethernet@9c00000 {
107        compatible = "brcm,bcm74165-asp", "brcm,asp-v2.1";
108        reg = <0x9c00000 0x1fff14>;
109        interrupts-extended = <&intc GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
110                              <&aon_pm_l2_intc 14>;
111        ranges = <0x0 0x9c00000 0x1fff14>;
112        clocks = <&scmi 14>;
113        #address-cells = <1>;
114        #size-cells = <1>;
115
116        mdio@c614 {
117            compatible = "brcm,asp-v2.1-mdio";
118            reg = <0xc614 0x8>;
119            reg-names = "mdio";
120            #address-cells = <1>;
121            #size-cells = <0>;
122
123            phy0: ethernet-phy@1 {
124                reg = <1>;
125            };
126       };
127
128        mdio@ce14 {
129            compatible = "brcm,asp-v2.1-mdio";
130            reg = <0xce14 0x8>;
131            reg-names = "mdio";
132            #address-cells = <1>;
133            #size-cells = <0>;
134
135            phy1: ethernet-phy@1 {
136                reg = <1>;
137            };
138        };
139
140        ethernet-ports {
141            #address-cells = <1>;
142            #size-cells = <0>;
143
144            port@0 {
145                reg = <0>;
146                brcm,channel = <8>;
147                phy-mode = "rgmii";
148                phy-handle = <&phy0>;
149            };
150
151            port@1 {
152                reg = <1>;
153                brcm,channel = <9>;
154                phy-mode = "rgmii";
155                phy-handle = <&phy1>;
156            };
157        };
158    };
159