ramips: add proper system clock and reset driver support for legacy SoCs
[openwrt/openwrt.git] / target / linux / ramips / dts / rt5350.dtsi
1 /dts-v1/;
2
3 / {
4 #address-cells = <1>;
5 #size-cells = <1>;
6 compatible = "ralink,rt5350-soc";
7
8 aliases {
9 spi0 = &spi0;
10 spi1 = &spi1;
11 serial0 = &uartlite;
12 };
13
14 cpus {
15 #address-cells = <1>;
16 #size-cells = <0>;
17
18 cpu@0 {
19 compatible = "mips,mips24KEc";
20 reg = <0>;
21 };
22 };
23
24 chosen {
25 bootargs = "console=ttyS0,57600";
26 };
27
28 cpuintc: cpuintc {
29 #address-cells = <0>;
30 #interrupt-cells = <1>;
31 interrupt-controller;
32 compatible = "mti,cpu-interrupt-controller";
33 };
34
35 palmbus: palmbus@10000000 {
36 compatible = "palmbus";
37 reg = <0x10000000 0x200000>;
38 ranges = <0x0 0x10000000 0x1FFFFF>;
39
40 #address-cells = <1>;
41 #size-cells = <1>;
42
43 sysc: syscon@0 {
44 compatible = "ralink,rt5350-sysc", "syscon";
45 reg = <0x0 0x100>;
46 #clock-cells = <1>;
47 #reset-cells = <1>;
48 };
49
50 timer: timer@100 {
51 compatible = "ralink,rt5350-timer", "ralink,rt2880-timer";
52 reg = <0x100 0x20>;
53
54 clocks = <&sysc 4>;
55
56 interrupt-parent = <&intc>;
57 interrupts = <1>;
58 };
59
60 watchdog: watchdog@120 {
61 compatible = "ralink,rt5350-wdt", "ralink,rt2880-wdt";
62 reg = <0x120 0x10>;
63
64 clocks = <&sysc 5>;
65
66 resets = <&sysc 8>;
67 reset-names = "wdt";
68
69 interrupt-parent = <&intc>;
70 interrupts = <1>;
71 };
72
73 intc: intc@200 {
74 compatible = "ralink,rt5350-intc", "ralink,rt2880-intc";
75 reg = <0x200 0x100>;
76
77 resets = <&sysc 19>;
78 reset-names = "intc";
79
80 interrupt-controller;
81 #interrupt-cells = <1>;
82
83 interrupt-parent = <&cpuintc>;
84 interrupts = <2>;
85 };
86
87 memc: memc@300 {
88 compatible = "ralink,rt5350-memc", "ralink,rt3050-memc";
89 reg = <0x300 0x100>;
90
91 resets = <&sysc 20>;
92 reset-names = "mc";
93
94 interrupt-parent = <&intc>;
95 interrupts = <3>;
96 };
97
98 uart: uart@500 {
99 compatible = "ralink,rt5350-uart", "ralink,rt2880-uart", "ns16550a";
100 reg = <0x500 0x100>;
101
102 clocks = <&sysc 6>;
103
104 resets = <&sysc 12>;
105
106 interrupt-parent = <&intc>;
107 interrupts = <5>;
108
109 reg-shift = <2>;
110
111 status = "disabled";
112 };
113
114 gpio0: gpio@600 {
115 compatible = "ralink,rt5350-gpio", "ralink,rt2880-gpio";
116 reg = <0x600 0x34>;
117
118 resets = <&sysc 13>;
119 reset-names = "pio";
120
121 interrupt-parent = <&intc>;
122 interrupts = <6>;
123
124 gpio-controller;
125 #gpio-cells = <2>;
126
127 ngpios = <22>;
128 ralink,gpio-base = <0>;
129 ralink,register-map = [ 00 04 08 0c
130 20 24 28 2c
131 30 34 ];
132 };
133
134 gpio1: gpio@660 {
135 compatible = "ralink,rt5350-gpio", "ralink,rt2880-gpio";
136 reg = <0x660 0x24>;
137
138 interrupt-parent = <&intc>;
139 interrupts = <6>;
140
141 gpio-controller;
142 #gpio-cells = <2>;
143
144 ngpios = <6>;
145 ralink,gpio-base = <22>;
146 ralink,register-map = [ 00 04 08 0c
147 10 14 18 1c
148 20 24 ];
149
150 status = "disabled";
151 };
152
153 i2c: i2c@900 {
154 compatible = "ralink,rt2880-i2c";
155 reg = <0x900 0x100>;
156
157 clocks = <&sysc 7>;
158
159 resets = <&sysc 16>;
160 reset-names = "i2c";
161
162 #address-cells = <1>;
163 #size-cells = <0>;
164
165 pinctrl-names = "default";
166 pinctrl-0 = <&i2c_pins>;
167
168 status = "disabled";
169 };
170
171 i2s: i2s@a00 {
172 compatible = "ralink,rt3352-i2s";
173 reg = <0xa00 0x100>;
174
175 clocks = <&sysc 8>;
176
177 resets = <&sysc 17>;
178 reset-names = "i2s";
179
180 interrupt-parent = <&intc>;
181 interrupts = <10>;
182
183 txdma-req = <2>;
184 rxdma-req = <3>;
185
186 dmas = <&gdma 4>,
187 <&gdma 6>;
188 dma-names = "tx", "rx";
189
190 status = "disabled";
191 };
192
193 spi0: spi@b00 {
194 compatible = "ralink,rt5350-spi", "ralink,rt2880-spi";
195 reg = <0xb00 0x40>;
196
197 clocks = <&sysc 9>;
198
199 resets = <&sysc 18>;
200 reset-names = "spi";
201
202 #address-cells = <1>;
203 #size-cells = <0>;
204
205 pinctrl-names = "default";
206 pinctrl-0 = <&spi_pins>;
207
208 status = "disabled";
209 };
210
211 spi1: spi@b40 {
212 compatible = "ralink,rt5350-spi", "ralink,rt2880-spi";
213 reg = <0xb40 0x60>;
214
215 clocks = <&sysc 10>;
216
217 resets = <&sysc 18>;
218 reset-names = "spi";
219
220 #address-cells = <1>;
221 #size-cells = <0>;
222
223 pinctrl-names = "default";
224 pinctrl-0 = <&spi_cs1>;
225
226 status = "disabled";
227 };
228
229 uartlite: uartlite@c00 {
230 compatible = "ralink,rt5350-uart", "ralink,rt2880-uart", "ns16550a";
231 reg = <0xc00 0x100>;
232
233 clocks = <&sysc 11>;
234
235 resets = <&sysc 19>;
236
237 interrupt-parent = <&intc>;
238 interrupts = <12>;
239
240 pinctrl-names = "default";
241 pinctrl-0 = <&uartlite_pins>;
242
243 reg-shift = <2>;
244 };
245
246 systick: systick@d00 {
247 compatible = "ralink,rt5350-systick", "ralink,cevt-systick";
248 reg = <0xd00 0x10>;
249
250 interrupt-parent = <&cpuintc>;
251 interrupts = <7>;
252 };
253
254 pcm: pcm@2000 {
255 compatible = "ralink,rt5350-pcm";
256 reg = <0x2000 0x800>;
257
258 resets = <&sysc 11>;
259 reset-names = "pcm";
260
261 interrupt-parent = <&intc>;
262 interrupts = <4>;
263
264 status = "disabled";
265 };
266
267 gdma: gdma@2800 {
268 compatible = "ralink,rt3883-gdma";
269 reg = <0x2800 0x800>;
270
271 resets = <&sysc 14>;
272 reset-names = "dma";
273
274 interrupt-parent = <&intc>;
275 interrupts = <7>;
276
277 #dma-cells = <1>;
278 #dma-channels = <16>;
279 #dma-requests = <16>;
280
281 status = "disabled";
282 };
283 };
284
285 pinctrl: pinctrl {
286 compatible = "ralink,rt2880-pinmux";
287
288 pinctrl-names = "default";
289 pinctrl-0 = <&state_default>;
290
291 state_default: pinctrl0 {
292 };
293
294 i2c_pins: i2c_pins {
295 i2c_pins {
296 groups = "i2c";
297 function = "i2c";
298 };
299 };
300
301 spi_pins: spi_pins {
302 spi_pins {
303 groups = "spi";
304 function = "spi";
305 };
306 };
307
308 phy_led_pins: phy_led {
309 phy_led {
310 groups = "led";
311 function = "led";
312 };
313 };
314
315 uartlite_pins: uartlite {
316 uart {
317 groups = "uartlite";
318 function = "uartlite";
319 };
320 };
321
322 uartf_pins: uartf {
323 uartf {
324 groups = "uartf";
325 function = "uartf";
326 };
327 };
328
329 spi_cs1: spi1 {
330 spi1 {
331 groups = "spi_cs1";
332 function = "spi_cs1";
333 };
334 };
335 };
336
337 usbphy: usbphy {
338 compatible = "ralink,rt3352-usbphy";
339 #phy-cells = <0>;
340
341 ralink,sysctl = <&sysc>;
342 resets = <&sysc 22>, <&sysc 25>;
343 reset-names = "host", "device";
344 };
345
346 ethernet: ethernet@10100000 {
347 compatible = "ralink,rt5350-eth";
348 reg = <0x10100000 0x10000>;
349
350 clocks = <&sysc 12>;
351
352 resets = <&sysc 21>;
353 reset-names = "fe";
354
355 interrupt-parent = <&cpuintc>;
356 interrupts = <5>;
357
358 mediatek,switch = <&esw>;
359 };
360
361 esw: esw@10110000 {
362 compatible = "ralink,rt5350-esw", "ralink,rt3050-esw";
363 reg = <0x10110000 0x8000>;
364
365 resets = <&sysc 23>, <&sysc 24>;
366 reset-names = "esw", "ephy";
367
368 interrupt-parent = <&intc>;
369 interrupts = <17>;
370 };
371
372 wmac: wmac@10180000 {
373 compatible = "ralink,rt5350-wmac", "ralink,rt2880-wmac";
374 reg = <0x10180000 0x40000>;
375
376 clocks = <&sysc 13>;
377
378 interrupt-parent = <&cpuintc>;
379 interrupts = <6>;
380
381 ralink,eeprom = "soc_wmac.eeprom";
382 };
383
384 ehci: ehci@101c0000 {
385 #address-cells = <1>;
386 #size-cells = <0>;
387 compatible = "generic-ehci";
388 reg = <0x101c0000 0x1000>;
389
390 phys = <&usbphy>;
391 phy-names = "usb";
392
393 interrupt-parent = <&intc>;
394 interrupts = <18>;
395
396 ehci_port1: port@1 {
397 reg = <1>;
398 #trigger-source-cells = <0>;
399 };
400 };
401
402 ohci: ohci@101c1000 {
403 #address-cells = <1>;
404 #size-cells = <0>;
405 compatible = "generic-ohci";
406 reg = <0x101c1000 0x1000>;
407
408 phys = <&usbphy>;
409 phy-names = "usb";
410
411 interrupt-parent = <&intc>;
412 interrupts = <18>;
413
414 ohci_port1: port@1 {
415 reg = <1>;
416 #trigger-source-cells = <0>;
417 };
418 };
419 };