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