Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: net: ti: Adds DUAL-EMAC mode support on PRU-ICSS2 for AM57xx, AM43xx and AM33xx SOCs

Documentation update for the newly added "pruss2_eth" device tree
node and its dependencies along with compatibility for PRU-ICSS
Industrial Ethernet Peripheral (IEP), PRU-ICSS Enhanced Capture
(eCAP) peripheral and using YAML binding document for AM57xx SoCs.

Reviewed-by: Mohan Reddy Putluru <pmohan@couthit.com>
Co-developed-by: Basharath Hussain Khaja <basharath@couthit.com>
Signed-off-by: Basharath Hussain Khaja <basharath@couthit.com>
Signed-off-by: Parvathi Pudi <parvathi@couthit.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20250912104741.528721-2-parvathi@couthit.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Parvathi Pudi and committed by
Jakub Kicinski
eb391228 16116668

+281 -3
+7 -3
Documentation/devicetree/bindings/net/ti,icss-iep.yaml
··· 8 8 9 9 maintainers: 10 10 - Md Danish Anwar <danishanwar@ti.com> 11 + - Parvathi Pudi <parvathi@couthit.com> 12 + - Basharath Hussain Khaja <basharath@couthit.com> 11 13 12 14 properties: 13 15 compatible: ··· 19 17 - ti,am642-icss-iep 20 18 - ti,j721e-icss-iep 21 19 - const: ti,am654-icss-iep 22 - 23 - - const: ti,am654-icss-iep 24 - 20 + - enum: 21 + - ti,am654-icss-iep 22 + - ti,am5728-icss-iep 23 + - ti,am4376-icss-iep 24 + - ti,am3356-icss-iep 25 25 26 26 reg: 27 27 maxItems: 1
+233
Documentation/devicetree/bindings/net/ti,icssm-prueth.yaml
··· 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 + 7 + title: Texas Instruments ICSSM PRUSS Ethernet 8 + 9 + maintainers: 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 + 15 + description: 16 + Ethernet based on the Programmable Real-Time Unit and Industrial 17 + Communication Subsystem. 18 + 19 + properties: 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 + 97 + required: 98 + - compatible 99 + - sram 100 + - ti,mii-rt 101 + - ti,iep 102 + - ti,ecap 103 + - ethernet-ports 104 + - interrupts 105 + - interrupt-names 106 + 107 + allOf: 108 + - $ref: /schemas/remoteproc/ti,pru-consumer.yaml# 109 + 110 + unevaluatedProperties: false 111 + 112 + examples: 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 + };
+32
Documentation/devicetree/bindings/net/ti,pruss-ecap.yaml
··· 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,pruss-ecap.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Texas Instruments PRU-ICSS Enhanced Capture (eCAP) event module 8 + 9 + maintainers: 10 + - Murali Karicheri <m-karicheri2@ti.com> 11 + - Parvathi Pudi <parvathi@couthit.com> 12 + - Basharath Hussain Khaja <basharath@couthit.com> 13 + 14 + properties: 15 + compatible: 16 + const: ti,pruss-ecap 17 + 18 + reg: 19 + maxItems: 1 20 + 21 + required: 22 + - compatible 23 + - reg 24 + 25 + additionalProperties: false 26 + 27 + examples: 28 + - | 29 + pruss2_ecap: ecap@30000 { 30 + compatible = "ti,pruss-ecap"; 31 + reg = <0x30000 0x60>; 32 + };
+9
Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
··· 251 251 252 252 type: object 253 253 254 + ecap@[a-f0-9]+$: 255 + description: 256 + PRU-ICSS has a Enhanced Capture (eCAP) event module which can generate 257 + and capture periodic timer based events which will be used for features 258 + like RX Pacing to rise interrupt when the timer event has occurred. 259 + Each PRU-ICSS instance has one eCAP module irrespective of SOCs. 260 + $ref: /schemas/net/ti,pruss-ecap.yaml# 261 + type: object 262 + 254 263 mii-rt@[a-f0-9]+$: 255 264 description: | 256 265 Real-Time Ethernet to support multiple industrial communication protocols.