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/ti,icssg-prueth.yaml# 5aa1a8ff2SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6aa1a8ff2SEmmanuel Vadot 7aa1a8ff2SEmmanuel Vadottitle: Texas Instruments ICSSG PRUSS Ethernet 8aa1a8ff2SEmmanuel Vadot 9aa1a8ff2SEmmanuel Vadotmaintainers: 10aa1a8ff2SEmmanuel Vadot - Md Danish Anwar <danishanwar@ti.com> 11aa1a8ff2SEmmanuel Vadot 12aa1a8ff2SEmmanuel Vadotdescription: 13aa1a8ff2SEmmanuel Vadot Ethernet based on the Programmable Real-Time Unit and Industrial 14aa1a8ff2SEmmanuel Vadot Communication Subsystem. 15aa1a8ff2SEmmanuel Vadot 16aa1a8ff2SEmmanuel Vadotproperties: 17aa1a8ff2SEmmanuel Vadot compatible: 18aa1a8ff2SEmmanuel Vadot enum: 1984943d6fSEmmanuel Vadot - ti,am642-icssg-prueth # for AM64x SoC family 20aa1a8ff2SEmmanuel Vadot - ti,am654-icssg-prueth # for AM65x SoC family 217d0873ebSEmmanuel Vadot - ti,am654-sr1-icssg-prueth # for AM65x SoC family, SR1.0 22aa1a8ff2SEmmanuel Vadot 23aa1a8ff2SEmmanuel Vadot sram: 24aa1a8ff2SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 25aa1a8ff2SEmmanuel Vadot description: 26aa1a8ff2SEmmanuel Vadot phandle to MSMC SRAM node 27aa1a8ff2SEmmanuel Vadot 28aa1a8ff2SEmmanuel Vadot dmas: 297d0873ebSEmmanuel Vadot minItems: 10 307d0873ebSEmmanuel Vadot maxItems: 12 31aa1a8ff2SEmmanuel Vadot 32aa1a8ff2SEmmanuel Vadot dma-names: 337d0873ebSEmmanuel Vadot minItems: 10 34aa1a8ff2SEmmanuel Vadot items: 35aa1a8ff2SEmmanuel Vadot - const: tx0-0 36aa1a8ff2SEmmanuel Vadot - const: tx0-1 37aa1a8ff2SEmmanuel Vadot - const: tx0-2 38aa1a8ff2SEmmanuel Vadot - const: tx0-3 39aa1a8ff2SEmmanuel Vadot - const: tx1-0 40aa1a8ff2SEmmanuel Vadot - const: tx1-1 41aa1a8ff2SEmmanuel Vadot - const: tx1-2 42aa1a8ff2SEmmanuel Vadot - const: tx1-3 43aa1a8ff2SEmmanuel Vadot - const: rx0 44aa1a8ff2SEmmanuel Vadot - const: rx1 457d0873ebSEmmanuel Vadot - const: rxmgm0 467d0873ebSEmmanuel Vadot - const: rxmgm1 47aa1a8ff2SEmmanuel Vadot 48aa1a8ff2SEmmanuel Vadot ti,mii-g-rt: 49aa1a8ff2SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 50aa1a8ff2SEmmanuel Vadot description: 51aa1a8ff2SEmmanuel Vadot phandle to MII_G_RT module's syscon regmap. 52aa1a8ff2SEmmanuel Vadot 53aa1a8ff2SEmmanuel Vadot ti,mii-rt: 54aa1a8ff2SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 55aa1a8ff2SEmmanuel Vadot description: 56aa1a8ff2SEmmanuel Vadot phandle to MII_RT module's syscon regmap 57aa1a8ff2SEmmanuel Vadot 58*0e8011faSEmmanuel Vadot ti,pa-stats: 59*0e8011faSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 60*0e8011faSEmmanuel Vadot description: 61*0e8011faSEmmanuel Vadot phandle to PA_STATS module's syscon regmap. PA_STATS is a set of 62*0e8011faSEmmanuel Vadot registers where different statistics related to ICSSG, are dumped by 63*0e8011faSEmmanuel Vadot ICSSG firmware. PA_STATS module's syscon regmap will help the device to 64*0e8011faSEmmanuel Vadot access/read/write those statistics. 65*0e8011faSEmmanuel Vadot 66aa1a8ff2SEmmanuel Vadot ti,iep: 67aa1a8ff2SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 68aa1a8ff2SEmmanuel Vadot maxItems: 2 69aa1a8ff2SEmmanuel Vadot items: 70aa1a8ff2SEmmanuel Vadot maxItems: 1 71aa1a8ff2SEmmanuel Vadot description: 72aa1a8ff2SEmmanuel Vadot phandle to IEP (Industrial Ethernet Peripheral) for ICSSG 73aa1a8ff2SEmmanuel Vadot 74aa1a8ff2SEmmanuel Vadot interrupts: 75aa1a8ff2SEmmanuel Vadot maxItems: 2 76aa1a8ff2SEmmanuel Vadot description: 77aa1a8ff2SEmmanuel Vadot Interrupt specifiers to TX timestamp IRQ. 78aa1a8ff2SEmmanuel Vadot 79aa1a8ff2SEmmanuel Vadot interrupt-names: 80aa1a8ff2SEmmanuel Vadot items: 81aa1a8ff2SEmmanuel Vadot - const: tx_ts0 82aa1a8ff2SEmmanuel Vadot - const: tx_ts1 83aa1a8ff2SEmmanuel Vadot 84aa1a8ff2SEmmanuel Vadot ethernet-ports: 85aa1a8ff2SEmmanuel Vadot type: object 86aa1a8ff2SEmmanuel Vadot additionalProperties: false 87aa1a8ff2SEmmanuel Vadot 88aa1a8ff2SEmmanuel Vadot properties: 89aa1a8ff2SEmmanuel Vadot '#address-cells': 90aa1a8ff2SEmmanuel Vadot const: 1 91aa1a8ff2SEmmanuel Vadot '#size-cells': 92aa1a8ff2SEmmanuel Vadot const: 0 93aa1a8ff2SEmmanuel Vadot 94aa1a8ff2SEmmanuel Vadot patternProperties: 95aa1a8ff2SEmmanuel Vadot ^port@[0-1]$: 96aa1a8ff2SEmmanuel Vadot type: object 97aa1a8ff2SEmmanuel Vadot description: ICSSG PRUETH external ports 98aa1a8ff2SEmmanuel Vadot $ref: ethernet-controller.yaml# 99aa1a8ff2SEmmanuel Vadot unevaluatedProperties: false 100aa1a8ff2SEmmanuel Vadot 101aa1a8ff2SEmmanuel Vadot properties: 102aa1a8ff2SEmmanuel Vadot reg: 103aa1a8ff2SEmmanuel Vadot items: 104aa1a8ff2SEmmanuel Vadot - enum: [0, 1] 105aa1a8ff2SEmmanuel Vadot description: ICSSG PRUETH port number 106aa1a8ff2SEmmanuel Vadot 107aa1a8ff2SEmmanuel Vadot interrupts: 108aa1a8ff2SEmmanuel Vadot maxItems: 1 109aa1a8ff2SEmmanuel Vadot 110aa1a8ff2SEmmanuel Vadot ti,syscon-rgmii-delay: 111aa1a8ff2SEmmanuel Vadot items: 112aa1a8ff2SEmmanuel Vadot - items: 113aa1a8ff2SEmmanuel Vadot - description: phandle to system controller node 114aa1a8ff2SEmmanuel Vadot - description: The offset to ICSSG control register 115aa1a8ff2SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 116aa1a8ff2SEmmanuel Vadot description: 117aa1a8ff2SEmmanuel Vadot phandle to system controller node and register offset 118aa1a8ff2SEmmanuel Vadot to ICSSG control register for RGMII transmit delay 119aa1a8ff2SEmmanuel Vadot 12084943d6fSEmmanuel Vadot ti,half-duplex-capable: 12184943d6fSEmmanuel Vadot type: boolean 12284943d6fSEmmanuel Vadot description: 12384943d6fSEmmanuel Vadot Indicates that the PHY output pin COL is routed to ICSSG GPIO pin 12484943d6fSEmmanuel Vadot (PRGx_PRU0/1_GPIO10) as input so that the ICSSG MII port is 12584943d6fSEmmanuel Vadot capable of half duplex operations. 12684943d6fSEmmanuel Vadot 127aa1a8ff2SEmmanuel Vadot required: 128aa1a8ff2SEmmanuel Vadot - reg 129aa1a8ff2SEmmanuel Vadot anyOf: 130aa1a8ff2SEmmanuel Vadot - required: 131aa1a8ff2SEmmanuel Vadot - port@0 132aa1a8ff2SEmmanuel Vadot - required: 133aa1a8ff2SEmmanuel Vadot - port@1 134aa1a8ff2SEmmanuel Vadot 135aa1a8ff2SEmmanuel Vadotrequired: 136aa1a8ff2SEmmanuel Vadot - compatible 137aa1a8ff2SEmmanuel Vadot - sram 138aa1a8ff2SEmmanuel Vadot - dmas 139aa1a8ff2SEmmanuel Vadot - dma-names 140aa1a8ff2SEmmanuel Vadot - ethernet-ports 141aa1a8ff2SEmmanuel Vadot - ti,mii-g-rt 142aa1a8ff2SEmmanuel Vadot - interrupts 143aa1a8ff2SEmmanuel Vadot - interrupt-names 144aa1a8ff2SEmmanuel Vadot 1457d0873ebSEmmanuel VadotallOf: 1467d0873ebSEmmanuel Vadot - $ref: /schemas/remoteproc/ti,pru-consumer.yaml# 1477d0873ebSEmmanuel Vadot 1487d0873ebSEmmanuel Vadot - if: 1497d0873ebSEmmanuel Vadot properties: 1507d0873ebSEmmanuel Vadot compatible: 1517d0873ebSEmmanuel Vadot contains: 1527d0873ebSEmmanuel Vadot const: ti,am654-sr1-icssg-prueth 1537d0873ebSEmmanuel Vadot then: 1547d0873ebSEmmanuel Vadot properties: 1557d0873ebSEmmanuel Vadot dmas: 1567d0873ebSEmmanuel Vadot minItems: 12 1577d0873ebSEmmanuel Vadot dma-names: 1587d0873ebSEmmanuel Vadot minItems: 12 1597d0873ebSEmmanuel Vadot else: 1607d0873ebSEmmanuel Vadot properties: 1617d0873ebSEmmanuel Vadot dmas: 1627d0873ebSEmmanuel Vadot maxItems: 10 1637d0873ebSEmmanuel Vadot dma-names: 1647d0873ebSEmmanuel Vadot maxItems: 10 1657d0873ebSEmmanuel Vadot 166aa1a8ff2SEmmanuel VadotunevaluatedProperties: false 167aa1a8ff2SEmmanuel Vadot 168aa1a8ff2SEmmanuel Vadotexamples: 169aa1a8ff2SEmmanuel Vadot - | 170aa1a8ff2SEmmanuel Vadot /* Example k3-am654 base board SR2.0, dual-emac */ 171aa1a8ff2SEmmanuel Vadot pruss2_eth: ethernet { 172aa1a8ff2SEmmanuel Vadot compatible = "ti,am654-icssg-prueth"; 173aa1a8ff2SEmmanuel Vadot pinctrl-names = "default"; 174aa1a8ff2SEmmanuel Vadot pinctrl-0 = <&icssg2_rgmii_pins_default>; 175aa1a8ff2SEmmanuel Vadot sram = <&msmc_ram>; 176aa1a8ff2SEmmanuel Vadot 177aa1a8ff2SEmmanuel Vadot ti,prus = <&pru2_0>, <&rtu2_0>, <&tx_pru2_0>, 178aa1a8ff2SEmmanuel Vadot <&pru2_1>, <&rtu2_1>, <&tx_pru2_1>; 179aa1a8ff2SEmmanuel Vadot firmware-name = "ti-pruss/am65x-pru0-prueth-fw.elf", 180aa1a8ff2SEmmanuel Vadot "ti-pruss/am65x-rtu0-prueth-fw.elf", 181aa1a8ff2SEmmanuel Vadot "ti-pruss/am65x-txpru0-prueth-fw.elf", 182aa1a8ff2SEmmanuel Vadot "ti-pruss/am65x-pru1-prueth-fw.elf", 183aa1a8ff2SEmmanuel Vadot "ti-pruss/am65x-rtu1-prueth-fw.elf", 184aa1a8ff2SEmmanuel Vadot "ti-pruss/am65x-txpru1-prueth-fw.elf"; 185aa1a8ff2SEmmanuel Vadot ti,pruss-gp-mux-sel = <2>, /* MII mode */ 186aa1a8ff2SEmmanuel Vadot <2>, 187aa1a8ff2SEmmanuel Vadot <2>, 188aa1a8ff2SEmmanuel Vadot <2>, /* MII mode */ 189aa1a8ff2SEmmanuel Vadot <2>, 190aa1a8ff2SEmmanuel Vadot <2>; 191aa1a8ff2SEmmanuel Vadot dmas = <&main_udmap 0xc300>, /* egress slice 0 */ 192aa1a8ff2SEmmanuel Vadot <&main_udmap 0xc301>, /* egress slice 0 */ 193aa1a8ff2SEmmanuel Vadot <&main_udmap 0xc302>, /* egress slice 0 */ 194aa1a8ff2SEmmanuel Vadot <&main_udmap 0xc303>, /* egress slice 0 */ 195aa1a8ff2SEmmanuel Vadot <&main_udmap 0xc304>, /* egress slice 1 */ 196aa1a8ff2SEmmanuel Vadot <&main_udmap 0xc305>, /* egress slice 1 */ 197aa1a8ff2SEmmanuel Vadot <&main_udmap 0xc306>, /* egress slice 1 */ 198aa1a8ff2SEmmanuel Vadot <&main_udmap 0xc307>, /* egress slice 1 */ 199aa1a8ff2SEmmanuel Vadot <&main_udmap 0x4300>, /* ingress slice 0 */ 200aa1a8ff2SEmmanuel Vadot <&main_udmap 0x4301>; /* ingress slice 1 */ 201aa1a8ff2SEmmanuel Vadot dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3", 202aa1a8ff2SEmmanuel Vadot "tx1-0", "tx1-1", "tx1-2", "tx1-3", 203aa1a8ff2SEmmanuel Vadot "rx0", "rx1"; 204aa1a8ff2SEmmanuel Vadot ti,mii-g-rt = <&icssg2_mii_g_rt>; 205*0e8011faSEmmanuel Vadot ti,pa-stats = <&icssg2_pa_stats>; 206aa1a8ff2SEmmanuel Vadot ti,iep = <&icssg2_iep0>, <&icssg2_iep1>; 207aa1a8ff2SEmmanuel Vadot interrupt-parent = <&icssg2_intc>; 208aa1a8ff2SEmmanuel Vadot interrupts = <24 0 2>, <25 1 3>; 209aa1a8ff2SEmmanuel Vadot interrupt-names = "tx_ts0", "tx_ts1"; 210aa1a8ff2SEmmanuel Vadot ethernet-ports { 211aa1a8ff2SEmmanuel Vadot #address-cells = <1>; 212aa1a8ff2SEmmanuel Vadot #size-cells = <0>; 213aa1a8ff2SEmmanuel Vadot pruss2_emac0: port@0 { 214aa1a8ff2SEmmanuel Vadot reg = <0>; 215aa1a8ff2SEmmanuel Vadot phy-handle = <&pruss2_eth0_phy>; 216aa1a8ff2SEmmanuel Vadot phy-mode = "rgmii-id"; 217aa1a8ff2SEmmanuel Vadot interrupts-extended = <&icssg2_intc 24>; 218aa1a8ff2SEmmanuel Vadot ti,syscon-rgmii-delay = <&scm_conf 0x4120>; 219aa1a8ff2SEmmanuel Vadot /* Filled in by bootloader */ 220aa1a8ff2SEmmanuel Vadot local-mac-address = [00 00 00 00 00 00]; 221aa1a8ff2SEmmanuel Vadot }; 222aa1a8ff2SEmmanuel Vadot 223aa1a8ff2SEmmanuel Vadot pruss2_emac1: port@1 { 224aa1a8ff2SEmmanuel Vadot reg = <1>; 225aa1a8ff2SEmmanuel Vadot phy-handle = <&pruss2_eth1_phy>; 226aa1a8ff2SEmmanuel Vadot phy-mode = "rgmii-id"; 227aa1a8ff2SEmmanuel Vadot interrupts-extended = <&icssg2_intc 25>; 228aa1a8ff2SEmmanuel Vadot ti,syscon-rgmii-delay = <&scm_conf 0x4124>; 229aa1a8ff2SEmmanuel Vadot /* Filled in by bootloader */ 230aa1a8ff2SEmmanuel Vadot local-mac-address = [00 00 00 00 00 00]; 231aa1a8ff2SEmmanuel Vadot }; 232aa1a8ff2SEmmanuel Vadot }; 233aa1a8ff2SEmmanuel Vadot }; 234