1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/net/ti,k3-am654-cpsw-nuss.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: The TI AM654x/J721E/AM642x SoC Gigabit Ethernet MAC (Media Access Controller)
10 - Siddharth Vadapalli <s-vadapalli@ti.com>
11 - Ravi Gunasekaran <r-gunasekaran@ti.com>
12 - Roger Quadros <rogerq@kernel.org>
15 The TI AM654x/J721E SoC Gigabit Ethernet MAC (CPSW2G NUSS) has two ports
16 (one external) and provides Ethernet packet communication for the device.
17 The TI AM642x SoC Gigabit Ethernet MAC (CPSW3G NUSS) has three ports
18 (two external) and provides Ethernet packet communication and switching.
20 The internal Communications Port Programming Interface (CPPI5) (Host port 0).
21 Host Port 0 CPPI Packet Streaming Interface interface supports 8 TX channels
22 and one RX channels and operating by NAVSS Unified DMA Peripheral Root
23 Complex (UDMA-P) controller.
26 updated Address Lookup Engine (ALE).
27 priority level Quality Of Service (QOS) support (802.1p)
28 Support for Audio/Video Bridging (P802.1Qav/D6.0)
29 Support for IEEE 1588 Clock Synchronization (2008 Annex D, Annex E and Annex F)
30 Flow Control (802.3x) Support
31 Time Sensitive Network Support
32 IEEE P902.3br/D2.0 Interspersing Express Traffic
33 IEEE 802.1Qbv/D2.2 Enhancements for Scheduled Traffic
34 Configurable number of addresses plus VLANs
35 Configurable number of classifier/policers
36 VLAN support, 802.1Q compliant, Auto add port VLAN for untagged frames on
37 ingress, Auto VLAN removal on egress and auto pad to minimum frame size.
39 Management Data Input/Output (MDIO) interface for PHYs management
40 RMII/RGMII Interfaces support
41 new version of Common Platform Time Sync (CPTS)
43 The CPSWxG NUSS is integrated into
44 device MCU domain named MCU_CPSW0 on AM654x/J721E SoC.
45 device MAIN domain named CPSW0 on AM642x SoC.
47 Specifications can be found at
48 https://www.ti.com/lit/pdf/spruid7
49 https://www.ti.com/lit/zip/spruil1
50 https://www.ti.com/lit/pdf/spruim2
53 "#address-cells": true
60 - ti,j7200-cpswxg-nuss
62 - ti,j721e-cpswxg-nuss
63 - ti,j784s4-cpswxg-nuss
68 The physical base address and size of full the CPSWxG NUSS IO range
80 description: CPSWxG NUSS functional clock
86 assigned-clock-parents: true
119 description: CPSWxG NUSS external ports
121 $ref: ethernet-controller.yaml#
122 unevaluatedProperties: false
128 description: CPSW port number
133 - description: CPSW MAC's PHY.
134 - description: Serdes PHY. Serdes PHY is required only if
135 the Serdes has to be configured in the
136 Single-Link configuration.
145 description: label associated with this port
148 $ref: /schemas/types.yaml#/definitions/flag
150 Specifies the port works in mac-only mode.
153 $ref: /schemas/types.yaml#/definitions/phandle-array
156 - description: Phandle to the system control device node which
157 provides access to efuse
158 - description: offset to efuse registers???
160 Phandle to the system control device node which provides access
161 to efuse IO range with MAC addresses
167 additionalProperties: false
172 $ref: ti,davinci-mdio.yaml#
179 $ref: ti,k3-am654-cpts.yaml#
181 CPSW Common Platform Time Sync (CPTS) module.
203 - ti,j721e-cpswxg-nuss
204 - ti,j784s4-cpswxg-nuss
209 "^port@[5-8]$": false
222 - ti,j7200-cpswxg-nuss
223 - ti,j721e-cpswxg-nuss
224 - ti,j784s4-cpswxg-nuss
229 "^port@[3-8]$": false
236 additionalProperties: false
240 #include <dt-bindings/soc/ti,sci_pm_domain.h>
241 #include <dt-bindings/net/ti-dp83867.h>
242 #include <dt-bindings/interrupt-controller/irq.h>
243 #include <dt-bindings/interrupt-controller/arm-gic.h>
246 #address-cells = <2>;
249 mcu_cpsw: ethernet@46000000 {
250 compatible = "ti,am654-cpsw-nuss";
251 #address-cells = <2>;
253 reg = <0x0 0x46000000 0x0 0x200000>;
254 reg-names = "cpsw_nuss";
255 ranges = <0x0 0x0 0x0 0x46000000 0x0 0x200000>;
257 clocks = <&k3_clks 5 10>;
259 power-domains = <&k3_pds 5 TI_SCI_PD_EXCLUSIVE>;
260 pinctrl-names = "default";
261 pinctrl-0 = <&mcu_cpsw_pins_default &mcu_mdio_pins_default>;
263 dmas = <&mcu_udmap 0xf000>,
272 dma-names = "tx0", "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
276 #address-cells = <1>;
283 ti,syscon-efuse = <&mcu_conf 0x200>;
284 phys = <&phy_gmii_sel 1>;
286 phy-mode = "rgmii-rxid";
287 phy-handle = <&phy0>;
291 davinci_mdio: mdio@f00 {
292 compatible = "ti,cpsw-mdio","ti,davinci_mdio";
293 reg = <0x0 0xf00 0x0 0x100>;
294 #address-cells = <1>;
296 clocks = <&k3_clks 5 10>;
298 bus_freq = <1000000>;
300 phy0: ethernet-phy@0 {
302 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
303 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
309 compatible = "ti,am65-cpts";
310 reg = <0x0 0x3d000 0x0 0x400>;
311 clocks = <&k3_clks 18 2>;
312 clock-names = "cpts";
313 interrupts-extended = <&gic500 GIC_SPI 858 IRQ_TYPE_LEVEL_HIGH>;
314 interrupt-names = "cpts";
315 ti,cpts-ext-ts-inputs = <4>;
316 ti,cpts-periodic-outputs = <2>;