234 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---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 Ethernet8 9maintainers:10 - Md Danish Anwar <danishanwar@ti.com>11 12description:13 Ethernet based on the Programmable Real-Time Unit and Industrial14 Communication Subsystem.15 16properties:17 compatible:18 enum:19 - ti,am642-icssg-prueth # for AM64x SoC family20 - ti,am654-icssg-prueth # for AM65x SoC family21 - ti,am654-sr1-icssg-prueth # for AM65x SoC family, SR1.022 23 sram:24 $ref: /schemas/types.yaml#/definitions/phandle25 description:26 phandle to MSMC SRAM node27 28 dmas:29 minItems: 1030 maxItems: 1231 32 dma-names:33 minItems: 1034 items:35 - const: tx0-036 - const: tx0-137 - const: tx0-238 - const: tx0-339 - const: tx1-040 - const: tx1-141 - const: tx1-242 - const: tx1-343 - const: rx044 - const: rx145 - const: rxmgm046 - const: rxmgm147 48 ti,mii-g-rt:49 $ref: /schemas/types.yaml#/definitions/phandle50 description:51 phandle to MII_G_RT module's syscon regmap.52 53 ti,mii-rt:54 $ref: /schemas/types.yaml#/definitions/phandle55 description:56 phandle to MII_RT module's syscon regmap57 58 ti,pa-stats:59 $ref: /schemas/types.yaml#/definitions/phandle60 description:61 phandle to PA_STATS module's syscon regmap. PA_STATS is a set of62 registers where different statistics related to ICSSG, are dumped by63 ICSSG firmware. PA_STATS module's syscon regmap will help the device to64 access/read/write those statistics.65 66 ti,iep:67 $ref: /schemas/types.yaml#/definitions/phandle-array68 maxItems: 269 items:70 maxItems: 171 description:72 phandle to IEP (Industrial Ethernet Peripheral) for ICSSG73 74 interrupts:75 maxItems: 276 description:77 Interrupt specifiers to TX timestamp IRQ.78 79 interrupt-names:80 items:81 - const: tx_ts082 - const: tx_ts183 84 ethernet-ports:85 type: object86 additionalProperties: false87 88 properties:89 '#address-cells':90 const: 191 '#size-cells':92 const: 093 94 patternProperties:95 ^port@[0-1]$:96 type: object97 description: ICSSG PRUETH external ports98 $ref: ethernet-controller.yaml#99 unevaluatedProperties: false100 101 properties:102 reg:103 items:104 - enum: [0, 1]105 description: ICSSG PRUETH port number106 107 interrupts:108 maxItems: 1109 110 ti,syscon-rgmii-delay:111 items:112 - items:113 - description: phandle to system controller node114 - description: The offset to ICSSG control register115 $ref: /schemas/types.yaml#/definitions/phandle-array116 description:117 phandle to system controller node and register offset118 to ICSSG control register for RGMII transmit delay119 120 ti,half-duplex-capable:121 type: boolean122 description:123 Indicates that the PHY output pin COL is routed to ICSSG GPIO pin124 (PRGx_PRU0/1_GPIO10) as input so that the ICSSG MII port is125 capable of half duplex operations.126 127 required:128 - reg129 anyOf:130 - required:131 - port@0132 - required:133 - port@1134 135required:136 - compatible137 - sram138 - dmas139 - dma-names140 - ethernet-ports141 - ti,mii-g-rt142 - interrupts143 - interrupt-names144 145allOf:146 - $ref: /schemas/remoteproc/ti,pru-consumer.yaml#147 148 - if:149 properties:150 compatible:151 contains:152 const: ti,am654-sr1-icssg-prueth153 then:154 properties:155 dmas:156 minItems: 12157 dma-names:158 minItems: 12159 else:160 properties:161 dmas:162 maxItems: 10163 dma-names:164 maxItems: 10165 166unevaluatedProperties: false167 168examples:169 - |170 /* Example k3-am654 base board SR2.0, dual-emac */171 pruss2_eth: ethernet {172 compatible = "ti,am654-icssg-prueth";173 pinctrl-names = "default";174 pinctrl-0 = <&icssg2_rgmii_pins_default>;175 sram = <&msmc_ram>;176 177 ti,prus = <&pru2_0>, <&rtu2_0>, <&tx_pru2_0>,178 <&pru2_1>, <&rtu2_1>, <&tx_pru2_1>;179 firmware-name = "ti-pruss/am65x-pru0-prueth-fw.elf",180 "ti-pruss/am65x-rtu0-prueth-fw.elf",181 "ti-pruss/am65x-txpru0-prueth-fw.elf",182 "ti-pruss/am65x-pru1-prueth-fw.elf",183 "ti-pruss/am65x-rtu1-prueth-fw.elf",184 "ti-pruss/am65x-txpru1-prueth-fw.elf";185 ti,pruss-gp-mux-sel = <2>, /* MII mode */186 <2>,187 <2>,188 <2>, /* MII mode */189 <2>,190 <2>;191 dmas = <&main_udmap 0xc300>, /* egress slice 0 */192 <&main_udmap 0xc301>, /* egress slice 0 */193 <&main_udmap 0xc302>, /* egress slice 0 */194 <&main_udmap 0xc303>, /* egress slice 0 */195 <&main_udmap 0xc304>, /* egress slice 1 */196 <&main_udmap 0xc305>, /* egress slice 1 */197 <&main_udmap 0xc306>, /* egress slice 1 */198 <&main_udmap 0xc307>, /* egress slice 1 */199 <&main_udmap 0x4300>, /* ingress slice 0 */200 <&main_udmap 0x4301>; /* ingress slice 1 */201 dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",202 "tx1-0", "tx1-1", "tx1-2", "tx1-3",203 "rx0", "rx1";204 ti,mii-g-rt = <&icssg2_mii_g_rt>;205 ti,pa-stats = <&icssg2_pa_stats>;206 ti,iep = <&icssg2_iep0>, <&icssg2_iep1>;207 interrupt-parent = <&icssg2_intc>;208 interrupts = <24 0 2>, <25 1 3>;209 interrupt-names = "tx_ts0", "tx_ts1";210 ethernet-ports {211 #address-cells = <1>;212 #size-cells = <0>;213 pruss2_emac0: port@0 {214 reg = <0>;215 phy-handle = <&pruss2_eth0_phy>;216 phy-mode = "rgmii-id";217 interrupts-extended = <&icssg2_intc 24>;218 ti,syscon-rgmii-delay = <&scm_conf 0x4120>;219 /* Filled in by bootloader */220 local-mac-address = [00 00 00 00 00 00];221 };222 223 pruss2_emac1: port@1 {224 reg = <1>;225 phy-handle = <&pruss2_eth1_phy>;226 phy-mode = "rgmii-id";227 interrupts-extended = <&icssg2_intc 25>;228 ti,syscon-rgmii-delay = <&scm_conf 0x4124>;229 /* Filled in by bootloader */230 local-mac-address = [00 00 00 00 00 00];231 };232 };233 };234