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,icssg-prueth.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Texas Instruments ICSSG PRUSS Ethernet 8 9maintainers: 10 - Md Danish Anwar <danishanwar@ti.com> 11 12description: 13 Ethernet based on the Programmable Real-Time Unit and Industrial 14 Communication Subsystem. 15 16allOf: 17 - $ref: /schemas/remoteproc/ti,pru-consumer.yaml# 18 19properties: 20 compatible: 21 enum: 22 - ti,am654-icssg-prueth # for AM65x SoC family 23 24 sram: 25 $ref: /schemas/types.yaml#/definitions/phandle 26 description: 27 phandle to MSMC SRAM node 28 29 dmas: 30 maxItems: 10 31 32 dma-names: 33 items: 34 - const: tx0-0 35 - const: tx0-1 36 - const: tx0-2 37 - const: tx0-3 38 - const: tx1-0 39 - const: tx1-1 40 - const: tx1-2 41 - const: tx1-3 42 - const: rx0 43 - const: rx1 44 45 ti,mii-g-rt: 46 $ref: /schemas/types.yaml#/definitions/phandle 47 description: 48 phandle to MII_G_RT module's syscon regmap. 49 50 ti,mii-rt: 51 $ref: /schemas/types.yaml#/definitions/phandle 52 description: 53 phandle to MII_RT module's syscon regmap 54 55 ti,iep: 56 $ref: /schemas/types.yaml#/definitions/phandle-array 57 maxItems: 2 58 items: 59 maxItems: 1 60 description: 61 phandle to IEP (Industrial Ethernet Peripheral) for ICSSG 62 63 interrupts: 64 maxItems: 2 65 description: 66 Interrupt specifiers to TX timestamp IRQ. 67 68 interrupt-names: 69 items: 70 - const: tx_ts0 71 - const: tx_ts1 72 73 ethernet-ports: 74 type: object 75 additionalProperties: false 76 77 properties: 78 '#address-cells': 79 const: 1 80 '#size-cells': 81 const: 0 82 83 patternProperties: 84 ^port@[0-1]$: 85 type: object 86 description: ICSSG PRUETH external ports 87 $ref: ethernet-controller.yaml# 88 unevaluatedProperties: false 89 90 properties: 91 reg: 92 items: 93 - enum: [0, 1] 94 description: ICSSG PRUETH port number 95 96 interrupts: 97 maxItems: 1 98 99 ti,syscon-rgmii-delay: 100 items: 101 - items: 102 - description: phandle to system controller node 103 - description: The offset to ICSSG control register 104 $ref: /schemas/types.yaml#/definitions/phandle-array 105 description: 106 phandle to system controller node and register offset 107 to ICSSG control register for RGMII transmit delay 108 109 required: 110 - reg 111 anyOf: 112 - required: 113 - port@0 114 - required: 115 - port@1 116 117required: 118 - compatible 119 - sram 120 - dmas 121 - dma-names 122 - ethernet-ports 123 - ti,mii-g-rt 124 - interrupts 125 - interrupt-names 126 127unevaluatedProperties: false 128 129examples: 130 - | 131 /* Example k3-am654 base board SR2.0, dual-emac */ 132 pruss2_eth: ethernet { 133 compatible = "ti,am654-icssg-prueth"; 134 pinctrl-names = "default"; 135 pinctrl-0 = <&icssg2_rgmii_pins_default>; 136 sram = <&msmc_ram>; 137 138 ti,prus = <&pru2_0>, <&rtu2_0>, <&tx_pru2_0>, 139 <&pru2_1>, <&rtu2_1>, <&tx_pru2_1>; 140 firmware-name = "ti-pruss/am65x-pru0-prueth-fw.elf", 141 "ti-pruss/am65x-rtu0-prueth-fw.elf", 142 "ti-pruss/am65x-txpru0-prueth-fw.elf", 143 "ti-pruss/am65x-pru1-prueth-fw.elf", 144 "ti-pruss/am65x-rtu1-prueth-fw.elf", 145 "ti-pruss/am65x-txpru1-prueth-fw.elf"; 146 ti,pruss-gp-mux-sel = <2>, /* MII mode */ 147 <2>, 148 <2>, 149 <2>, /* MII mode */ 150 <2>, 151 <2>; 152 dmas = <&main_udmap 0xc300>, /* egress slice 0 */ 153 <&main_udmap 0xc301>, /* egress slice 0 */ 154 <&main_udmap 0xc302>, /* egress slice 0 */ 155 <&main_udmap 0xc303>, /* egress slice 0 */ 156 <&main_udmap 0xc304>, /* egress slice 1 */ 157 <&main_udmap 0xc305>, /* egress slice 1 */ 158 <&main_udmap 0xc306>, /* egress slice 1 */ 159 <&main_udmap 0xc307>, /* egress slice 1 */ 160 <&main_udmap 0x4300>, /* ingress slice 0 */ 161 <&main_udmap 0x4301>; /* ingress slice 1 */ 162 dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3", 163 "tx1-0", "tx1-1", "tx1-2", "tx1-3", 164 "rx0", "rx1"; 165 ti,mii-g-rt = <&icssg2_mii_g_rt>; 166 ti,iep = <&icssg2_iep0>, <&icssg2_iep1>; 167 interrupt-parent = <&icssg2_intc>; 168 interrupts = <24 0 2>, <25 1 3>; 169 interrupt-names = "tx_ts0", "tx_ts1"; 170 ethernet-ports { 171 #address-cells = <1>; 172 #size-cells = <0>; 173 pruss2_emac0: port@0 { 174 reg = <0>; 175 phy-handle = <&pruss2_eth0_phy>; 176 phy-mode = "rgmii-id"; 177 interrupts-extended = <&icssg2_intc 24>; 178 ti,syscon-rgmii-delay = <&scm_conf 0x4120>; 179 /* Filled in by bootloader */ 180 local-mac-address = [00 00 00 00 00 00]; 181 }; 182 183 pruss2_emac1: port@1 { 184 reg = <1>; 185 phy-handle = <&pruss2_eth1_phy>; 186 phy-mode = "rgmii-id"; 187 interrupts-extended = <&icssg2_intc 25>; 188 ti,syscon-rgmii-delay = <&scm_conf 0x4124>; 189 /* Filled in by bootloader */ 190 local-mac-address = [00 00 00 00 00 00]; 191 }; 192 }; 193 }; 194