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