1/*
2 * Device Tree Source for Keystone 2 Lamarr 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 0x2000>;
19	linkram0	= <0x100000 0x4000>;
20	linkram1	= <0x70000000 0x10000>; /* 1MB OSR mem */
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	queue-pools {
39		qpend {
40			qpend-0 {
41				qrange = <658 8>;
42				interrupts =<0 40 0xf04 0 41 0xf04 0 42 0xf04
43					     0 43 0xf04 0 44 0xf04 0 45 0xf04
44					     0 46 0xf04 0 47 0xf04>;
45			};
46			qpend-1 {
47				qrange = <528 16>;
48				interrupts = <0 48 0xf04 0 49 0xf04 0 50 0xf04
49					      0 51 0xf04 0 52 0xf04 0 53 0xf04
50					      0 54 0xf04 0 55 0xf04 0 56 0xf04
51					      0 57 0xf04 0 58 0xf04 0 59 0xf04
52					      0 60 0xf04 0 61 0xf04 0 62 0xf04
53					      0 63 0xf04>;
54				qalloc-by-id;
55			};
56			qpend-2 {
57				qrange = <544 16>;
58				interrupts = <0 64 0xf04 0 65 0xf04 0 66 0xf04
59					      0 59 0xf04 0 68 0xf04 0 69 0xf04
60					      0 70 0xf04 0 71 0xf04 0 72 0xf04
61					      0 73 0xf04 0 74 0xf04 0 75 0xf04
62					      0 76 0xf04 0 77 0xf04 0 78 0xf04
63					      0 79 0xf04>;
64			};
65		};
66		general-purpose {
67			gp-0 {
68				qrange = <4000 64>;
69			};
70			netcp-tx {
71				qrange = <896 128>;
72				qalloc-by-id;
73			};
74		};
75		accumulator {
76			acc-low-0 {
77				qrange = <480 32>;
78				accumulator = <0 47 16 2 50>;
79				interrupts = <0 226 0xf01>;
80				multi-queue;
81			};
82		};
83	};
84
85	descriptor-regions {
86		#address-cells = <1>;
87		#size-cells = <1>;
88		ranges;
89		region-12 {
90			id = <12>;
91			region-spec = <8192 128>;	/* num_desc desc_size */
92			link-index = <0x4000>;
93		};
94	};
95
96	pdsps {
97		#address-cells = <1>;
98		#size-cells = <1>;
99		ranges;
100		pdsp0@0x2a10000 {
101			reg = <0x2a10000 0x1000    /*iram */
102			       0x2a0f000 0x100     /*reg*/
103			       0x2a0c000 0x3c8	   /*intd */
104			       0x2a20000 0x4000>;  /*cmd*/
105			id = <0>;
106		};
107	};
108
109}; /* qmss */
110
111knav_dmas: knav_dmas@0 {
112	compatible = "ti,keystone-navigator-dma";
113	clocks = <&papllclk>;
114	#address-cells = <1>;
115	#size-cells = <1>;
116	ranges;
117	ti,navigator-cloud-address = <0x23a80000 0x23a90000>;
118
119	dma_gbe: dma_gbe@0 {
120		reg = <0x26186000 0x100>,
121			  <0x26187000 0x2a0>,
122			  <0x26188000 0xb60>,
123			  <0x26186100 0x80>,
124			  <0x26189000 0x1000>;
125		reg-names = "global", "txchan", "rxchan",
126				"txsched", "rxflow";
127	};
128};
129
130netcp: netcp@26000000 {
131	reg = <0x2620110 0x8>;
132	reg-names = "efuse";
133	compatible = "ti,netcp-1.0";
134	#address-cells = <1>;
135	#size-cells = <1>;
136
137	/* NetCP address range */
138	ranges = <0 0x26000000 0x1000000>;
139
140	clocks = <&clkosr>, <&papllclk>, <&clkcpgmac>, <&chipclk12>;
141	dma-coherent;
142
143	ti,navigator-dmas = <&dma_gbe 0>,
144			<&dma_gbe 8>,
145			<&dma_gbe 0>;
146	ti,navigator-dma-names = "netrx0", "netrx1", "nettx";
147
148	netcp-devices {
149		#address-cells = <1>;
150		#size-cells = <1>;
151		ranges;
152		gbe@200000 { /* ETHSS */
153			label = "netcp-gbe";
154			compatible = "ti,netcp-gbe-5";
155			reg = <0x200000 0x900>, <0x220000 0x20000>;
156			/* enable-ale; */
157			tx-queue = <896>;
158			tx-channel = "nettx";
159
160			interfaces {
161				gbe0: interface-0 {
162					slave-port = <0>;
163					link-interface	= <1>;
164					phy-handle	= <&ethphy0>;
165				};
166				gbe1: interface-1 {
167					slave-port = <1>;
168					link-interface	= <1>;
169					phy-handle	= <&ethphy1>;
170				};
171			};
172
173			secondary-slave-ports {
174				port-2 {
175					slave-port = <2>;
176					link-interface	= <2>;
177				};
178				port-3 {
179					slave-port = <3>;
180					link-interface	= <2>;
181				};
182			};
183		};
184	};
185
186	netcp-interfaces {
187		interface-0 {
188			rx-channel = "netrx0";
189			rx-pool = <1024 12>;
190			tx-pool = <1024 12>;
191			rx-queue-depth = <128 128 0 0>;
192			rx-buffer-size = <1518 4096 0 0>;
193			rx-queue = <528>;
194			tx-completion-queue = <530>;
195			efuse-mac = <1>;
196			netcp-gbe = <&gbe0>;
197
198		};
199		interface-1 {
200			rx-channel = "netrx1";
201			rx-pool = <1024 12>;
202			tx-pool = <1024 12>;
203			rx-queue-depth = <128 128 0 0>;
204			rx-buffer-size = <1518 4096 0 0>;
205			rx-queue = <529>;
206			tx-completion-queue = <531>;
207			efuse-mac = <0>;
208			local-mac-address = [02 18 31 7e 3e 7f];
209			netcp-gbe = <&gbe1>;
210		};
211	};
212};
213