Merge tag 'docs-5.15' of git://git.lwn.net/linux
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / net / ti,k3-am654-cpsw-nuss.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,k3-am654-cpsw-nuss.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: The TI AM654x/J721E/AM642x SoC Gigabit Ethernet MAC (Media Access Controller) Device Tree Bindings
8
9 maintainers:
10   - Grygorii Strashko <grygorii.strashko@ti.com>
11   - Sekhar Nori <nsekhar@ti.com>
12
13 description:
14   The TI AM654x/J721E SoC Gigabit Ethernet MAC (CPSW2G NUSS) has two ports
15   (one external) and provides Ethernet packet communication for the device.
16   The TI AM642x SoC Gigabit Ethernet MAC (CPSW3G NUSS) has three ports
17   (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 channels
21   and one RX channels and operating by NAVSS Unified DMA  Peripheral Root
22   Complex (UDMA-P) controller.
23
24   CPSWxG features
25   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) Support
30   Time Sensitive Network Support
31   IEEE P902.3br/D2.0 Interspersing Express Traffic
32   IEEE 802.1Qbv/D2.2 Enhancements for Scheduled Traffic
33   Configurable number of addresses plus VLANs
34   Configurable number of classifier/policers
35   VLAN support, 802.1Q compliant, Auto add port VLAN for untagged frames on
36   ingress, Auto VLAN removal on egress and auto pad to minimum frame size.
37   RX/TX csum offload
38   Management Data Input/Output (MDIO) interface for PHYs management
39   RMII/RGMII Interfaces support
40   new version of Common Platform Time Sync (CPTS)
41
42   The CPSWxG NUSS is integrated into
43     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 at
47     https://www.ti.com/lit/pdf/spruid7
48     https://www.ti.com/lit/zip/spruil1
49     https://www.ti.com/lit/pdf/spruim2
50
51 properties:
52   "#address-cells": true
53   "#size-cells": true
54
55   compatible:
56     enum:
57       - ti,am654-cpsw-nuss
58       - ti,j721e-cpsw-nuss
59       - ti,am642-cpsw-nuss
60
61   reg:
62     maxItems: 1
63     description:
64       The physical base address and size of full the CPSWxG NUSS IO range
65
66   reg-names:
67     items:
68       - const: cpsw_nuss
69
70   ranges: true
71
72   dma-coherent: true
73
74   clocks:
75     maxItems: 1
76     description: CPSWxG NUSS functional clock
77
78   clock-names:
79     items:
80       - const: fck
81
82   assigned-clock-parents: true
83
84   assigned-clocks: true
85
86   power-domains:
87     maxItems: 1
88
89   dmas:
90     maxItems: 9
91
92   dma-names:
93     items:
94       - const: tx0
95       - const: tx1
96       - const: tx2
97       - const: tx3
98       - const: tx4
99       - const: tx5
100       - const: tx6
101       - const: tx7
102       - const: rx
103
104   ethernet-ports:
105     type: object
106     properties:
107       '#address-cells':
108         const: 1
109       '#size-cells':
110         const: 0
111
112     patternProperties:
113       port@[1-2]:
114         type: object
115         description: CPSWxG NUSS external ports
116
117         $ref: ethernet-controller.yaml#
118
119         properties:
120           reg:
121             minimum: 1
122             maximum: 2
123             description: CPSW port number
124
125           phys:
126             maxItems: 1
127             description: phandle on phy-gmii-sel PHY
128
129           label:
130             description: label associated with this port
131
132           ti,mac-only:
133             $ref: /schemas/types.yaml#/definitions/flag
134             description:
135               Specifies the port works in mac-only mode.
136
137           ti,syscon-efuse:
138             $ref: /schemas/types.yaml#/definitions/phandle-array
139             description:
140               Phandle to the system control device node which provides access
141               to efuse IO range with MAC addresses
142
143         required:
144           - reg
145           - phys
146
147     additionalProperties: false
148
149 patternProperties:
150   "^mdio@[0-9a-f]+$":
151     type: object
152     $ref: "ti,davinci-mdio.yaml#"
153
154     description:
155       CPSW MDIO bus.
156
157   "^cpts@[0-9a-f]+":
158     type: object
159     $ref: "ti,k3-am654-cpts.yaml#"
160     description:
161       CPSW Common Platform Time Sync (CPTS) module.
162
163 required:
164   - compatible
165   - reg
166   - reg-names
167   - ranges
168   - clocks
169   - clock-names
170   - power-domains
171   - dmas
172   - dma-names
173   - '#address-cells'
174   - '#size-cells'
175
176 additionalProperties: false
177
178 examples:
179   - |
180     #include <dt-bindings/pinctrl/k3.h>
181     #include <dt-bindings/soc/ti,sci_pm_domain.h>
182     #include <dt-bindings/net/ti-dp83867.h>
183     #include <dt-bindings/interrupt-controller/irq.h>
184     #include <dt-bindings/interrupt-controller/arm-gic.h>
185
186     bus {
187         #address-cells = <2>;
188         #size-cells = <2>;
189
190         mcu_cpsw: ethernet@46000000 {
191             compatible = "ti,am654-cpsw-nuss";
192             #address-cells = <2>;
193             #size-cells = <2>;
194             reg = <0x0 0x46000000 0x0 0x200000>;
195             reg-names = "cpsw_nuss";
196             ranges = <0x0 0x0 0x0 0x46000000 0x0 0x200000>;
197             dma-coherent;
198             clocks = <&k3_clks 5 10>;
199             clock-names = "fck";
200             power-domains = <&k3_pds 5 TI_SCI_PD_EXCLUSIVE>;
201             pinctrl-names = "default";
202             pinctrl-0 = <&mcu_cpsw_pins_default &mcu_mdio_pins_default>;
203
204             dmas = <&mcu_udmap 0xf000>,
205                    <&mcu_udmap 0xf001>,
206                    <&mcu_udmap 0xf002>,
207                    <&mcu_udmap 0xf003>,
208                    <&mcu_udmap 0xf004>,
209                    <&mcu_udmap 0xf005>,
210                    <&mcu_udmap 0xf006>,
211                    <&mcu_udmap 0xf007>,
212                    <&mcu_udmap 0x7000>;
213             dma-names = "tx0", "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
214                         "rx";
215
216             ethernet-ports {
217                 #address-cells = <1>;
218                 #size-cells = <0>;
219
220                 cpsw_port1: port@1 {
221                     reg = <1>;
222                     ti,mac-only;
223                     label = "port1";
224                     ti,syscon-efuse = <&mcu_conf 0x200>;
225                     phys = <&phy_gmii_sel 1>;
226
227                     phy-mode = "rgmii-rxid";
228                     phy-handle = <&phy0>;
229                 };
230             };
231
232             davinci_mdio: mdio@f00 {
233                 compatible = "ti,cpsw-mdio","ti,davinci_mdio";
234                 reg = <0x0 0xf00 0x0 0x100>;
235                 #address-cells = <1>;
236                 #size-cells = <0>;
237                 clocks = <&k3_clks 5 10>;
238                 clock-names = "fck";
239                 bus_freq = <1000000>;
240
241                 phy0: ethernet-phy@0 {
242                     reg = <0>;
243                     ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
244                     ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
245                 };
246             };
247         };
248
249         cpts@3d000 {
250              compatible = "ti,am65-cpts";
251              reg = <0x0 0x3d000 0x0 0x400>;
252              clocks = <&k3_clks 18 2>;
253              clock-names = "cpts";
254              interrupts-extended = <&gic500 GIC_SPI 858 IRQ_TYPE_LEVEL_HIGH>;
255              interrupt-names = "cpts";
256              ti,cpts-ext-ts-inputs = <4>;
257              ti,cpts-periodic-outputs = <2>;
258         };
259     };