xref: /freebsd/sys/contrib/device-tree/src/arm/ti/keystone/keystone-k2g-netcp.dtsi (revision 7ab1a32cd43cbae61ad4dd435d6a482bbf61cb52)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree Source for K2G Netcp driver
4 *
5 * Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/
6 */
7
8qmss: qmss@4020000 {
9	compatible = "ti,66ak2g-navss-qm";
10	dma-coherent;
11	#address-cells = <1>;
12	#size-cells = <1>;
13	power-domains = <&k2g_pds 0x0018>;
14	clocks = <&k2g_clks 0x0018 0>;
15	clock-names = "nss_vclk";
16	ranges;
17	queue-range = <0 0x80>;
18	linkram0 = <0x4020000 0x7ff>;
19	status = "disabled";
20
21	qmgrs {
22		#address-cells = <1>;
23		#size-cells = <1>;
24		ranges;
25		qmgr0 {
26			managed-queues = <0 0x80>;
27			reg = <0x4100000 0x800>,
28			      <0x4040000 0x100>,
29			      <0x4080000 0x800>,
30			      <0x40c0000 0x800>;
31			reg-names = "peek", "config",
32				    "region", "push";
33		};
34
35	};
36	queue-pools {
37		qpend {
38			qpend-0 {
39				qrange = <77 8>;
40				interrupts = <0 308 0xf04 0 309 0xf04 0 310 0xf04
41					      0 311 0xf04 0 312 0xf04 0 313 0xf04
42					      0 314 0xf04 0 315 0xf04>;
43				qalloc-by-id;
44			};
45		};
46		general-purpose {
47			gp-0 {
48				qrange = <112 8>;
49			};
50			netcp-tx {
51				qrange = <5 8>;
52				qalloc-by-id;
53			};
54		};
55	};
56
57	descriptor-regions {
58		#address-cells = <1>;
59		#size-cells = <1>;
60		ranges;
61		region-12 {
62			id = <12>;
63			region-spec = <1023 128>; /* num_desc desc_size */
64			link-index = <0x400>;
65		};
66	};
67}; /* qmss */
68
69knav_dmas: knav_dmas@0 {
70	compatible = "ti,keystone-navigator-dma";
71	#address-cells = <1>;
72	#size-cells = <1>;
73	status = "disabled";
74	power-domains = <&k2g_pds 0x0018>;
75	clocks = <&k2g_clks 0x0018 0>;
76	clock-names = "nss_vclk";
77	ranges;
78	ti,navigator-cloud-address = <0x40c0000 0x40c0000 0x40c0000 0x40c0000>;
79
80	dma_gbe: dma_gbe@0 {
81		reg = <0x4010000 0x100>,
82		      <0x4011000 0x2a0>, /* 21 Tx channels */
83		      <0x4012000 0x400>, /* 32 Rx channels */
84		      <0x4010100 0x80>,
85		      <0x4013000 0x400>; /* 32 Rx flows */
86		reg-names = "global", "txchan", "rxchan",
87			    "txsched", "rxflow";
88	};
89
90};
91
92netcp: netcp@4000000 {
93	reg = <0x2620110 0x8>;
94	reg-names = "efuse";
95	compatible = "ti,netcp-1.0";
96	#address-cells = <1>;
97	#size-cells = <1>;
98	status = "disabled";
99	power-domains = <&k2g_pds 0x0018>;
100	clocks = <&k2g_clks 0x0018 3>, <&k2g_clks 0x0018 8>;
101	clock-names = "ethss_clk", "cpts";
102
103	/* NetCP address range */
104	ranges = <0 0x4000000 0x1000000>;
105
106	dma-coherent;
107
108	ti,navigator-dmas = <&dma_gbe 0>, <&dma_gbe 5>;
109	ti,navigator-dma-names = "netrx0", "nettx";
110
111	netcp-devices {
112		#address-cells = <1>;
113		#size-cells = <1>;
114		ranges;
115		gbe: gbe@200000 {
116			label = "netcp-gbe";
117			compatible = "ti,netcp-gbe-2";
118			reg = <0x200000 0x20>, <0x220000 0x20000>;
119			enable-ale;
120			tx-queue = <5>;
121			tx-channel = "nettx";
122			cpts-rftclk-sel = <0>;
123			cpts-ext-ts-inputs = <8>;
124
125			interfaces {
126				gbe0: interface-0 {
127					slave-port = <0>;
128					link-interface = <5>;
129				};
130			};
131		};
132	};
133
134	netcp-interfaces {
135		interface-0 {
136			rx-channel = "netrx0";
137			rx-pool = <512 12>;
138			tx-pool = <511 12>;
139			rx-queue-depth = <128 128 0 0>;
140			rx-buffer-size = <1518 4096 0 0>;
141			rx-queue = <77>;
142			tx-completion-queue = <78>;
143			efuse-mac = <1>;
144			netcp-gbe = <&gbe0>;
145		};
146	};
147};
148