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 interrupts: 56 maxItems: 2 57 description: 58 Interrupt specifiers to TX timestamp IRQ. 59 60 interrupt-names: 61 items: 62 - const: tx_ts0 63 - const: tx_ts1 64 65 ethernet-ports: 66 type: object 67 additionalProperties: false 68 69 properties: 70 '#address-cells': 71 const: 1 72 '#size-cells': 73 const: 0 74 75 patternProperties: 76 ^port@[0-1]$: 77 type: object 78 description: ICSSG PRUETH external ports 79 $ref: ethernet-controller.yaml# 80 unevaluatedProperties: false 81 82 properties: 83 reg: 84 items: 85 - enum: [0, 1] 86 description: ICSSG PRUETH port number 87 88 interrupts: 89 maxItems: 1 90 91 ti,syscon-rgmii-delay: 92 items: 93 - items: 94 - description: phandle to system controller node 95 - description: The offset to ICSSG control register 96 $ref: /schemas/types.yaml#/definitions/phandle-array 97 description: 98 phandle to system controller node and register offset 99 to ICSSG control register for RGMII transmit delay 100 101 required: 102 - reg 103 anyOf: 104 - required: 105 - port@0 106 - required: 107 - port@1 108 109required: 110 - compatible 111 - sram 112 - dmas 113 - dma-names 114 - ethernet-ports 115 - ti,mii-g-rt 116 - interrupts 117 - interrupt-names 118 119unevaluatedProperties: false 120 121examples: 122 - | 123 /* Example k3-am654 base board SR2.0, dual-emac */ 124 pruss2_eth: ethernet { 125 compatible = "ti,am654-icssg-prueth"; 126 pinctrl-names = "default"; 127 pinctrl-0 = <&icssg2_rgmii_pins_default>; 128 sram = <&msmc_ram>; 129 130 ti,prus = <&pru2_0>, <&rtu2_0>, <&tx_pru2_0>, 131 <&pru2_1>, <&rtu2_1>, <&tx_pru2_1>; 132 firmware-name = "ti-pruss/am65x-pru0-prueth-fw.elf", 133 "ti-pruss/am65x-rtu0-prueth-fw.elf", 134 "ti-pruss/am65x-txpru0-prueth-fw.elf", 135 "ti-pruss/am65x-pru1-prueth-fw.elf", 136 "ti-pruss/am65x-rtu1-prueth-fw.elf", 137 "ti-pruss/am65x-txpru1-prueth-fw.elf"; 138 ti,pruss-gp-mux-sel = <2>, /* MII mode */ 139 <2>, 140 <2>, 141 <2>, /* MII mode */ 142 <2>, 143 <2>; 144 dmas = <&main_udmap 0xc300>, /* egress slice 0 */ 145 <&main_udmap 0xc301>, /* egress slice 0 */ 146 <&main_udmap 0xc302>, /* egress slice 0 */ 147 <&main_udmap 0xc303>, /* egress slice 0 */ 148 <&main_udmap 0xc304>, /* egress slice 1 */ 149 <&main_udmap 0xc305>, /* egress slice 1 */ 150 <&main_udmap 0xc306>, /* egress slice 1 */ 151 <&main_udmap 0xc307>, /* egress slice 1 */ 152 <&main_udmap 0x4300>, /* ingress slice 0 */ 153 <&main_udmap 0x4301>; /* ingress slice 1 */ 154 dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3", 155 "tx1-0", "tx1-1", "tx1-2", "tx1-3", 156 "rx0", "rx1"; 157 ti,mii-g-rt = <&icssg2_mii_g_rt>; 158 interrupt-parent = <&icssg2_intc>; 159 interrupts = <24 0 2>, <25 1 3>; 160 interrupt-names = "tx_ts0", "tx_ts1"; 161 ethernet-ports { 162 #address-cells = <1>; 163 #size-cells = <0>; 164 pruss2_emac0: port@0 { 165 reg = <0>; 166 phy-handle = <&pruss2_eth0_phy>; 167 phy-mode = "rgmii-id"; 168 interrupts-extended = <&icssg2_intc 24>; 169 ti,syscon-rgmii-delay = <&scm_conf 0x4120>; 170 /* Filled in by bootloader */ 171 local-mac-address = [00 00 00 00 00 00]; 172 }; 173 174 pruss2_emac1: port@1 { 175 reg = <1>; 176 phy-handle = <&pruss2_eth1_phy>; 177 phy-mode = "rgmii-id"; 178 interrupts-extended = <&icssg2_intc 25>; 179 ti,syscon-rgmii-delay = <&scm_conf 0x4124>; 180 /* Filled in by bootloader */ 181 local-mac-address = [00 00 00 00 00 00]; 182 }; 183 }; 184 }; 185