Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/ti,icssm-prueth.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Texas Instruments ICSSM PRUSS Ethernet
8
9maintainers:
10 - Roger Quadros <rogerq@ti.com>
11 - Andrew F. Davis <afd@ti.com>
12 - Parvathi Pudi <parvathi@couthit.com>
13 - Basharath Hussain Khaja <basharath@couthit.com>
14
15description:
16 Ethernet based on the Programmable Real-Time Unit and Industrial
17 Communication Subsystem.
18
19properties:
20 compatible:
21 enum:
22 - ti,am57-prueth # for AM57x SoC family
23 - ti,am4376-prueth # for AM43x SoC family
24 - ti,am3359-prueth # for AM33x SoC family
25
26 sram:
27 $ref: /schemas/types.yaml#/definitions/phandle
28 description:
29 phandle to OCMC SRAM node
30
31 ti,mii-rt:
32 $ref: /schemas/types.yaml#/definitions/phandle
33 description:
34 phandle to the MII_RT peripheral for ICSS
35
36 ti,iep:
37 $ref: /schemas/types.yaml#/definitions/phandle
38 description:
39 phandle to IEP (Industrial Ethernet Peripheral) for ICSS
40
41 ti,ecap:
42 $ref: /schemas/types.yaml#/definitions/phandle
43 description:
44 phandle to Enhanced Capture (eCAP) event for ICSS
45
46 interrupts:
47 items:
48 - description: High priority Rx Interrupt specifier.
49 - description: Low priority Rx Interrupt specifier.
50
51 interrupt-names:
52 items:
53 - const: rx_hp
54 - const: rx_lp
55
56 ethernet-ports:
57 type: object
58 additionalProperties: false
59
60 properties:
61 '#address-cells':
62 const: 1
63 '#size-cells':
64 const: 0
65
66 patternProperties:
67 ^ethernet-port@[0-1]$:
68 type: object
69 description: ICSSM PRUETH external ports
70 $ref: ethernet-controller.yaml#
71 unevaluatedProperties: false
72
73 properties:
74 reg:
75 items:
76 - enum: [0, 1]
77 description: ICSSM PRUETH port number
78
79 interrupts:
80 maxItems: 3
81
82 interrupt-names:
83 items:
84 - const: rx
85 - const: emac_ptp_tx
86 - const: hsr_ptp_tx
87
88 required:
89 - reg
90
91 anyOf:
92 - required:
93 - ethernet-port@0
94 - required:
95 - ethernet-port@1
96
97required:
98 - compatible
99 - sram
100 - ti,mii-rt
101 - ti,iep
102 - ti,ecap
103 - ethernet-ports
104 - interrupts
105 - interrupt-names
106
107allOf:
108 - $ref: /schemas/remoteproc/ti,pru-consumer.yaml#
109
110unevaluatedProperties: false
111
112examples:
113 - |
114 /* Dual-MAC Ethernet application node on PRU-ICSS2 */
115 pruss2_eth: pruss2-eth {
116 compatible = "ti,am57-prueth";
117 ti,prus = <&pru2_0>, <&pru2_1>;
118 sram = <&ocmcram1>;
119 ti,mii-rt = <&pruss2_mii_rt>;
120 ti,iep = <&pruss2_iep>;
121 ti,ecap = <&pruss2_ecap>;
122 interrupts = <20 2 2>, <21 3 3>;
123 interrupt-names = "rx_hp", "rx_lp";
124 interrupt-parent = <&pruss2_intc>;
125
126 ethernet-ports {
127 #address-cells = <1>;
128 #size-cells = <0>;
129 pruss2_emac0: ethernet-port@0 {
130 reg = <0>;
131 phy-handle = <&pruss2_eth0_phy>;
132 phy-mode = "mii";
133 interrupts = <20 2 2>, <26 6 6>, <23 6 6>;
134 interrupt-names = "rx", "emac_ptp_tx", "hsr_ptp_tx";
135 /* Filled in by bootloader */
136 local-mac-address = [00 00 00 00 00 00];
137 };
138
139 pruss2_emac1: ethernet-port@1 {
140 reg = <1>;
141 phy-handle = <&pruss2_eth1_phy>;
142 phy-mode = "mii";
143 interrupts = <21 3 3>, <27 9 7>, <24 9 7>;
144 interrupt-names = "rx", "emac_ptp_tx", "hsr_ptp_tx";
145 /* Filled in by bootloader */
146 local-mac-address = [00 00 00 00 00 00];
147 };
148 };
149 };
150 - |
151 /* Dual-MAC Ethernet application node on PRU-ICSS1 */
152 pruss1_eth: pruss1-eth {
153 compatible = "ti,am4376-prueth";
154 ti,prus = <&pru1_0>, <&pru1_1>;
155 sram = <&ocmcram>;
156 ti,mii-rt = <&pruss1_mii_rt>;
157 ti,iep = <&pruss1_iep>;
158 ti,ecap = <&pruss1_ecap>;
159 interrupts = <20 2 2>, <21 3 3>;
160 interrupt-names = "rx_hp", "rx_lp";
161 interrupt-parent = <&pruss1_intc>;
162
163 pinctrl-0 = <&pruss1_eth_default>;
164 pinctrl-names = "default";
165
166 ethernet-ports {
167 #address-cells = <1>;
168 #size-cells = <0>;
169 pruss1_emac0: ethernet-port@0 {
170 reg = <0>;
171 phy-handle = <&pruss1_eth0_phy>;
172 phy-mode = "mii";
173 interrupts = <20 2 2>, <26 6 6>, <23 6 6>;
174 interrupt-names = "rx", "emac_ptp_tx",
175 "hsr_ptp_tx";
176 /* Filled in by bootloader */
177 local-mac-address = [00 00 00 00 00 00];
178 };
179
180 pruss1_emac1: ethernet-port@1 {
181 reg = <1>;
182 phy-handle = <&pruss1_eth1_phy>;
183 phy-mode = "mii";
184 interrupts = <21 3 3>, <27 9 7>, <24 9 7>;
185 interrupt-names = "rx", "emac_ptp_tx",
186 "hsr_ptp_tx";
187 /* Filled in by bootloader */
188 local-mac-address = [00 00 00 00 00 00];
189 };
190 };
191 };
192 - |
193 /* Dual-MAC Ethernet application node on PRU-ICSS */
194 pruss_eth: pruss-eth {
195 compatible = "ti,am3359-prueth";
196 ti,prus = <&pru0>, <&pru1>;
197 sram = <&ocmcram>;
198 ti,mii-rt = <&pruss_mii_rt>;
199 ti,iep = <&pruss_iep>;
200 ti,ecap = <&pruss_ecap>;
201 interrupts = <20 2 2>, <21 3 3>;
202 interrupt-names = "rx_hp", "rx_lp";
203 interrupt-parent = <&pruss_intc>;
204
205 pinctrl-0 = <&pruss_eth_default>;
206 pinctrl-names = "default";
207
208 ethernet-ports {
209 #address-cells = <1>;
210 #size-cells = <0>;
211 pruss_emac0: ethernet-port@0 {
212 reg = <0>;
213 phy-handle = <&pruss_eth0_phy>;
214 phy-mode = "mii";
215 interrupts = <20 2 2>, <26 6 6>, <23 6 6>;
216 interrupt-names = "rx", "emac_ptp_tx",
217 "hsr_ptp_tx";
218 /* Filled in by bootloader */
219 local-mac-address = [00 00 00 00 00 00];
220 };
221
222 pruss_emac1: ethernet-port@1 {
223 reg = <1>;
224 phy-handle = <&pruss_eth1_phy>;
225 phy-mode = "mii";
226 interrupts = <21 3 3>, <27 9 7>, <24 9 7>;
227 interrupt-names = "rx", "emac_ptp_tx",
228 "hsr_ptp_tx";
229 /* Filled in by bootloader */
230 local-mac-address = [00 00 00 00 00 00];
231 };
232 };
233 };