318 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,k3-am654-cpsw-nuss.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: The TI AM654x/J721E/AM642x SoC Gigabit Ethernet MAC (Media Access Controller)8 9maintainers:10 - Siddharth Vadapalli <s-vadapalli@ti.com>11 - Roger Quadros <rogerq@kernel.org>12 13description:14 The TI AM654x/J721E SoC Gigabit Ethernet MAC (CPSW2G NUSS) has two ports15 (one external) and provides Ethernet packet communication for the device.16 The TI AM642x SoC Gigabit Ethernet MAC (CPSW3G NUSS) has three ports17 (two external) and provides Ethernet packet communication and switching.18 19 The internal Communications Port Programming Interface (CPPI5) (Host port 0).20 Host Port 0 CPPI Packet Streaming Interface interface supports 8 TX channels21 and one RX channels and operating by NAVSS Unified DMA Peripheral Root22 Complex (UDMA-P) controller.23 24 CPSWxG features25 updated Address Lookup Engine (ALE).26 priority level Quality Of Service (QOS) support (802.1p)27 Support for Audio/Video Bridging (P802.1Qav/D6.0)28 Support for IEEE 1588 Clock Synchronization (2008 Annex D, Annex E and Annex F)29 Flow Control (802.3x) Support30 Time Sensitive Network Support31 IEEE P902.3br/D2.0 Interspersing Express Traffic32 IEEE 802.1Qbv/D2.2 Enhancements for Scheduled Traffic33 Configurable number of addresses plus VLANs34 Configurable number of classifier/policers35 VLAN support, 802.1Q compliant, Auto add port VLAN for untagged frames on36 ingress, Auto VLAN removal on egress and auto pad to minimum frame size.37 RX/TX csum offload38 Management Data Input/Output (MDIO) interface for PHYs management39 RMII/RGMII Interfaces support40 new version of Common Platform Time Sync (CPTS)41 42 The CPSWxG NUSS is integrated into43 device MCU domain named MCU_CPSW0 on AM654x/J721E SoC.44 device MAIN domain named CPSW0 on AM642x SoC.45 46 Specifications can be found at47 https://www.ti.com/lit/pdf/spruid748 https://www.ti.com/lit/zip/spruil149 https://www.ti.com/lit/pdf/spruim250 51properties:52 "#address-cells": true53 "#size-cells": true54 55 compatible:56 enum:57 - ti,am642-cpsw-nuss58 - ti,am654-cpsw-nuss59 - ti,j7200-cpswxg-nuss60 - ti,j721e-cpsw-nuss61 - ti,j721e-cpswxg-nuss62 - ti,j784s4-cpswxg-nuss63 64 reg:65 maxItems: 166 description:67 The physical base address and size of full the CPSWxG NUSS IO range68 69 reg-names:70 items:71 - const: cpsw_nuss72 73 ranges: true74 75 dma-coherent: true76 77 clocks:78 maxItems: 179 description: CPSWxG NUSS functional clock80 81 clock-names:82 items:83 - const: fck84 85 assigned-clock-parents: true86 87 assigned-clocks: true88 89 power-domains:90 maxItems: 191 92 dmas:93 maxItems: 994 95 dma-names:96 items:97 - const: tx098 - const: tx199 - const: tx2100 - const: tx3101 - const: tx4102 - const: tx5103 - const: tx6104 - const: tx7105 - const: rx106 107 ethernet-ports:108 type: object109 properties:110 '#address-cells':111 const: 1112 '#size-cells':113 const: 0114 115 patternProperties:116 "^port@[1-8]$":117 type: object118 description: CPSWxG NUSS external ports119 120 $ref: ethernet-controller.yaml#121 unevaluatedProperties: false122 123 properties:124 reg:125 minimum: 1126 maximum: 8127 description: CPSW port number128 129 phys:130 minItems: 1131 items:132 - description: CPSW MAC's PHY.133 - description: Serdes PHY. Serdes PHY is required only if134 the Serdes has to be configured in the135 Single-Link configuration.136 137 phy-names:138 minItems: 1139 items:140 - const: mac141 - const: serdes142 143 label:144 description: label associated with this port145 146 ti,mac-only:147 $ref: /schemas/types.yaml#/definitions/flag148 description:149 Specifies the port works in mac-only mode.150 151 ti,syscon-efuse:152 $ref: /schemas/types.yaml#/definitions/phandle-array153 items:154 - items:155 - description: Phandle to the system control device node which156 provides access to efuse157 - description: offset to efuse registers???158 description:159 Phandle to the system control device node which provides access160 to efuse IO range with MAC addresses161 162 required:163 - reg164 - phys165 166 additionalProperties: false167 168patternProperties:169 "^mdio@[0-9a-f]+$":170 type: object171 $ref: ti,davinci-mdio.yaml#172 173 description:174 CPSW MDIO bus.175 176 "^cpts@[0-9a-f]+":177 type: object178 $ref: ti,k3-am654-cpts.yaml#179 description:180 CPSW Common Platform Time Sync (CPTS) module.181 182required:183 - compatible184 - reg185 - reg-names186 - ranges187 - clocks188 - clock-names189 - power-domains190 - dmas191 - dma-names192 - '#address-cells'193 - '#size-cells'194 195allOf:196 - if:197 not:198 properties:199 compatible:200 contains:201 enum:202 - ti,j721e-cpswxg-nuss203 - ti,j784s4-cpswxg-nuss204 then:205 properties:206 ethernet-ports:207 patternProperties:208 "^port@[5-8]$": false209 "^port@[1-4]$":210 properties:211 reg:212 minimum: 1213 maximum: 4214 215 - if:216 not:217 properties:218 compatible:219 contains:220 enum:221 - ti,j7200-cpswxg-nuss222 - ti,j721e-cpswxg-nuss223 - ti,j784s4-cpswxg-nuss224 then:225 properties:226 ethernet-ports:227 patternProperties:228 "^port@[3-8]$": false229 "^port@[1-2]$":230 properties:231 reg:232 minimum: 1233 maximum: 2234 235additionalProperties: false236 237examples:238 - |239 #include <dt-bindings/soc/ti,sci_pm_domain.h>240 #include <dt-bindings/net/ti-dp83867.h>241 #include <dt-bindings/interrupt-controller/irq.h>242 #include <dt-bindings/interrupt-controller/arm-gic.h>243 244 bus {245 #address-cells = <2>;246 #size-cells = <2>;247 248 mcu_cpsw: ethernet@46000000 {249 compatible = "ti,am654-cpsw-nuss";250 #address-cells = <2>;251 #size-cells = <2>;252 reg = <0x0 0x46000000 0x0 0x200000>;253 reg-names = "cpsw_nuss";254 ranges = <0x0 0x0 0x0 0x46000000 0x0 0x200000>;255 dma-coherent;256 clocks = <&k3_clks 5 10>;257 clock-names = "fck";258 power-domains = <&k3_pds 5 TI_SCI_PD_EXCLUSIVE>;259 pinctrl-names = "default";260 pinctrl-0 = <&mcu_cpsw_pins_default &mcu_mdio_pins_default>;261 262 dmas = <&mcu_udmap 0xf000>,263 <&mcu_udmap 0xf001>,264 <&mcu_udmap 0xf002>,265 <&mcu_udmap 0xf003>,266 <&mcu_udmap 0xf004>,267 <&mcu_udmap 0xf005>,268 <&mcu_udmap 0xf006>,269 <&mcu_udmap 0xf007>,270 <&mcu_udmap 0x7000>;271 dma-names = "tx0", "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",272 "rx";273 274 ethernet-ports {275 #address-cells = <1>;276 #size-cells = <0>;277 278 cpsw_port1: port@1 {279 reg = <1>;280 ti,mac-only;281 label = "port1";282 ti,syscon-efuse = <&mcu_conf 0x200>;283 phys = <&phy_gmii_sel 1>;284 285 phy-mode = "rgmii-rxid";286 phy-handle = <&phy0>;287 };288 };289 290 davinci_mdio: mdio@f00 {291 compatible = "ti,cpsw-mdio","ti,davinci_mdio";292 reg = <0x0 0xf00 0x0 0x100>;293 #address-cells = <1>;294 #size-cells = <0>;295 clocks = <&k3_clks 5 10>;296 clock-names = "fck";297 bus_freq = <1000000>;298 299 phy0: ethernet-phy@0 {300 reg = <0>;301 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;302 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;303 };304 };305 };306 307 cpts@3d000 {308 compatible = "ti,am65-cpts";309 reg = <0x0 0x3d000 0x0 0x400>;310 clocks = <&k3_clks 18 2>;311 clock-names = "cpts";312 interrupts-extended = <&gic500 GIC_SPI 858 IRQ_TYPE_LEVEL_HIGH>;313 interrupt-names = "cpts";314 ti,cpts-ext-ts-inputs = <4>;315 ti,cpts-periodic-outputs = <2>;316 };317 };318