1/*
2 * Device Tree Source for Keystone 2 Hawking Netcp driver
3 *
4 * Copyright 2015 Texas Instruments, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10
11qmss: qmss@2a40000 {
12	compatible = "ti,keystone-navigator-qmss";
13	dma-coherent;
14	#address-cells = <1>;
15	#size-cells = <1>;
16	clocks = <&chipclk13>;
17	ranges;
18	queue-range	= <0 0x4000>;
19	linkram0	= <0x100000 0x8000>;
20	linkram1	= <0x0 0x10000>;
21
22	qmgrs {
23		#address-cells = <1>;
24		#size-cells = <1>;
25		ranges;
26		qmgr0 {
27			managed-queues = <0 0x2000>;
28			reg = <0x2a40000 0x20000>,
29			      <0x2a06000 0x400>,
30			      <0x2a02000 0x1000>,
31			      <0x2a03000 0x1000>,
32			      <0x23a80000 0x20000>,
33			      <0x2a80000 0x20000>;
34			reg-names = "peek", "status", "config",
35				    "region", "push", "pop";
36		};
37
38		qmgr1 {
39			managed-queues = <0x2000 0x2000>;
40			reg = <0x2a60000 0x20000>,
41			      <0x2a06400 0x400>,
42			      <0x2a04000 0x1000>,
43			      <0x2a05000 0x1000>,
44			      <0x23aa0000 0x20000>,
45			      <0x2aa0000 0x20000>;
46			reg-names = "peek", "status", "config",
47				    "region", "push", "pop";
48		};
49	};
50	queue-pools {
51		qpend {
52			qpend-0 {
53				qrange = <658 8>;
54				interrupts =<0 40 0xf04 0 41 0xf04 0 42 0xf04
55					     0 43 0xf04 0 44 0xf04 0 45 0xf04
56					     0 46 0xf04 0 47 0xf04>;
57			};
58			qpend-1 {
59				qrange = <8704 16>;
60				interrupts = <0 48 0xf04 0 49 0xf04 0 50 0xf04
61					      0 51 0xf04 0 52 0xf04 0 53 0xf04
62					      0 54 0xf04 0 55 0xf04 0 56 0xf04
63					      0 57 0xf04 0 58 0xf04 0 59 0xf04
64					      0 60 0xf04 0 61 0xf04 0 62 0xf04
65					      0 63 0xf04>;
66				qalloc-by-id;
67			};
68			qpend-2 {
69				qrange = <8720 16>;
70				interrupts = <0 64 0xf04 0 65 0xf04 0 66 0xf04
71					      0 59 0xf04 0 68 0xf04 0 69 0xf04
72					      0 70 0xf04 0 71 0xf04 0 72 0xf04
73					      0 73 0xf04 0 74 0xf04 0 75 0xf04
74					      0 76 0xf04 0 77 0xf04 0 78 0xf04
75					      0 79 0xf04>;
76			};
77		};
78		general-purpose {
79			gp-0 {
80				qrange = <4000 64>;
81			};
82			netcp-tx {
83				qrange = <640 9>;
84				qalloc-by-id;
85			};
86			netcpx-tx {
87				qrange = <8752 8>;
88				qalloc-by-id;
89			};
90		};
91	};
92	descriptor-regions {
93		#address-cells = <1>;
94		#size-cells = <1>;
95		ranges;
96		region-12 {
97			id = <12>;
98			region-spec = <8192 128>;	/* num_desc desc_size */
99			link-index = <0x4000>;
100		};
101	};
102}; /* qmss */
103
104knav_dmas: knav_dmas@0 {
105	compatible = "ti,keystone-navigator-dma";
106	clocks = <&papllclk>;
107	#address-cells = <1>;
108	#size-cells = <1>;
109	ranges;
110	ti,navigator-cloud-address = <0x23a80000 0x23a90000
111				   0x23aa0000 0x23ab0000>;
112
113	dma_gbe: dma_gbe@0 {
114		reg = <0x2004000 0x100>,
115			  <0x2004400 0x120>,
116			  <0x2004800 0x300>,
117			  <0x2004c00 0x120>,
118			  <0x2005000 0x400>;
119		reg-names = "global", "txchan", "rxchan",
120				"txsched", "rxflow";
121	};
122};
123
124netcp: netcp@2000000 {
125	reg = <0x2620110 0x8>;
126	reg-names = "efuse";
127	compatible = "ti,netcp-1.0";
128	#address-cells = <1>;
129	#size-cells = <1>;
130
131	/* NetCP address range */
132	ranges  = <0 0x2000000 0x100000>;
133
134	clocks = <&papllclk>, <&clkcpgmac>, <&chipclk12>;
135	dma-coherent;
136
137	ti,navigator-dmas = <&dma_gbe 22>,
138			<&dma_gbe 23>,
139			<&dma_gbe 8>;
140	ti,navigator-dma-names = "netrx0", "netrx1", "nettx";
141
142	netcp-devices {
143		ranges;
144		#address-cells = <1>;
145		#size-cells = <1>;
146		gbe@90000 { /* ETHSS */
147			#address-cells = <1>;
148			#size-cells = <1>;
149			label = "netcp-gbe";
150			compatible = "ti,netcp-gbe";
151			reg = <0x90000 0x300>, <0x90400 0x400>, <0x90800 0x700>;
152			/* enable-ale; */
153			tx-queue = <648>;
154			tx-channel = "nettx";
155
156			interfaces {
157				gbe0: interface-0 {
158					slave-port = <0>;
159					link-interface = <1>;
160					phy-handle = <&ethphy0>;
161				};
162				gbe1: interface-1 {
163					slave-port = <1>;
164					link-interface = <1>;
165					phy-handle = <&ethphy1>;
166				};
167			};
168
169			secondary-slave-ports {
170				port-2 {
171					slave-port = <2>;
172					link-interface	= <2>;
173				};
174				port-3 {
175					slave-port = <3>;
176					link-interface	= <2>;
177				};
178			};
179		};
180	};
181
182	netcp-interfaces {
183		interface-0 {
184			rx-channel = "netrx0";
185			rx-pool = <1024 12>;
186			tx-pool = <1024 12>;
187			rx-queue-depth = <128 128 0 0>;
188			rx-buffer-size = <1518 4096 0 0>;
189			rx-queue = <8704>;
190			tx-completion-queue = <8706>;
191			efuse-mac = <1>;
192			netcp-gbe = <&gbe0>;
193
194		};
195		interface-1 {
196			rx-channel = "netrx1";
197			rx-pool = <1024 12>;
198			tx-pool = <1024 12>;
199			rx-queue-depth = <128 128 0 0>;
200			rx-buffer-size = <1518 4096 0 0>;
201			rx-queue = <8705>;
202			tx-completion-queue = <8707>;
203			efuse-mac = <0>;
204			local-mac-address = [02 18 31 7e 3e 6f];
205			netcp-gbe = <&gbe1>;
206		};
207	};
208};
209