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 }; 234