blob: 87df6a8955aaf428dbf59f178080f4572baa2532 [file] [log] [blame]
Heiko Stuebnerf75efdd2013-09-29 13:25:08 +02001/*
2 * Copyright (c) 2013 MundoReader S.L.
3 * Author: Heiko Stuebner <heiko@sntech.de>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16#include <dt-bindings/interrupt-controller/irq.h>
17#include <dt-bindings/interrupt-controller/arm-gic.h>
18#include "skeleton.dtsi"
19
20/ {
21 interrupt-parent = <&gic>;
22
Heiko Stuebner9cdffd82014-06-24 20:12:06 +020023 aliases {
24 i2c0 = &i2c0;
25 i2c1 = &i2c1;
26 i2c2 = &i2c2;
27 i2c3 = &i2c3;
28 i2c4 = &i2c4;
Heiko Stuebner4ff4ae12014-09-10 17:04:36 +020029 mshc0 = &emmc;
30 mshc1 = &mmc0;
31 mshc2 = &mmc1;
Julien CHAUVEAUe5b0ded2014-10-30 16:51:17 +010032 serial0 = &uart0;
33 serial1 = &uart1;
34 serial2 = &uart2;
35 serial3 = &uart3;
Heiko Stuebner39c2bd72014-09-10 16:28:02 +020036 spi0 = &spi0;
37 spi1 = &spi1;
Heiko Stuebner9cdffd82014-06-24 20:12:06 +020038 };
39
Heiko Stübnerac42f482014-08-14 23:01:50 +020040 amba {
41 compatible = "arm,amba-bus";
42 #address-cells = <1>;
43 #size-cells = <1>;
44 ranges;
45
46 dmac1_s: dma-controller@20018000 {
47 compatible = "arm,pl330", "arm,primecell";
48 reg = <0x20018000 0x4000>;
49 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
50 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
51 #dma-cells = <1>;
52 clocks = <&cru ACLK_DMA1>;
53 clock-names = "apb_pclk";
54 };
55
56 dmac1_ns: dma-controller@2001c000 {
57 compatible = "arm,pl330", "arm,primecell";
58 reg = <0x2001c000 0x4000>;
59 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
60 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
61 #dma-cells = <1>;
62 clocks = <&cru ACLK_DMA1>;
63 clock-names = "apb_pclk";
64 status = "disabled";
65 };
66
67 dmac2: dma-controller@20078000 {
68 compatible = "arm,pl330", "arm,primecell";
69 reg = <0x20078000 0x4000>;
70 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
71 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
72 #dma-cells = <1>;
73 clocks = <&cru ACLK_DMA2>;
74 clock-names = "apb_pclk";
75 };
76 };
77
Heiko Stuebner560106c2014-04-15 19:44:59 +020078 xin24m: oscillator {
79 compatible = "fixed-clock";
80 clock-frequency = <24000000>;
81 #clock-cells = <0>;
82 clock-output-names = "xin24m";
83 };
84
Heiko Stuebnerc3030d32014-07-26 18:44:35 +020085 L2: l2-cache-controller@10138000 {
86 compatible = "arm,pl310-cache";
87 reg = <0x10138000 0x1000>;
88 cache-unified;
89 cache-level = <2>;
90 };
91
Heiko Stuebnerff84b902014-07-26 23:28:03 +020092 scu@1013c000 {
93 compatible = "arm,cortex-a9-scu";
94 reg = <0x1013c000 0x100>;
95 };
96
Heiko Stuebnere40b43d2014-07-26 18:53:07 +020097 global_timer: global-timer@1013c200 {
Heiko Stuebnerc3030d32014-07-26 18:44:35 +020098 compatible = "arm,cortex-a9-global-timer";
99 reg = <0x1013c200 0x20>;
100 interrupts = <GIC_PPI 11 0x304>;
101 clocks = <&cru CORE_PERI>;
102 };
103
Heiko Stuebnere40b43d2014-07-26 18:53:07 +0200104 local_timer: local-timer@1013c600 {
Heiko Stuebnerc3030d32014-07-26 18:44:35 +0200105 compatible = "arm,cortex-a9-twd-timer";
106 reg = <0x1013c600 0x20>;
107 interrupts = <GIC_PPI 13 0x304>;
108 clocks = <&cru CORE_PERI>;
109 };
110
Heiko Stuebnerff84b902014-07-26 23:28:03 +0200111 gic: interrupt-controller@1013d000 {
112 compatible = "arm,cortex-a9-gic";
113 interrupt-controller;
114 #interrupt-cells = <3>;
115 reg = <0x1013d000 0x1000>,
116 <0x1013c100 0x0100>;
117 };
118
Heiko Stuebnerc3030d32014-07-26 18:44:35 +0200119 uart0: serial@10124000 {
120 compatible = "snps,dw-apb-uart";
121 reg = <0x10124000 0x400>;
122 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
123 reg-shift = <2>;
124 reg-io-width = <1>;
Heiko Stuebner69667ca2014-06-26 16:06:12 +0200125 clock-names = "baudclk", "apb_pclk";
126 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
Heiko Stuebnerc3030d32014-07-26 18:44:35 +0200127 status = "disabled";
128 };
129
130 uart1: serial@10126000 {
131 compatible = "snps,dw-apb-uart";
132 reg = <0x10126000 0x400>;
133 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
134 reg-shift = <2>;
135 reg-io-width = <1>;
Heiko Stuebner69667ca2014-06-26 16:06:12 +0200136 clock-names = "baudclk", "apb_pclk";
137 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
Heiko Stuebnerc3030d32014-07-26 18:44:35 +0200138 status = "disabled";
139 };
140
Heiko Stuebnerfd14e6f2014-09-09 15:37:27 +0200141 usb_otg: usb@10180000 {
142 compatible = "rockchip,rk3066-usb", "snps,dwc2";
143 reg = <0x10180000 0x40000>;
144 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
145 clocks = <&cru HCLK_OTG0>;
146 clock-names = "otg";
147 status = "disabled";
148 };
149
150 usb_host: usb@101c0000 {
151 compatible = "snps,dwc2";
152 reg = <0x101c0000 0x40000>;
153 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
154 clocks = <&cru HCLK_OTG1>;
155 clock-names = "otg";
156 status = "disabled";
157 };
158
Romain Perier18ec91e2014-09-08 17:14:49 +0000159 emac: ethernet@10204000 {
160 compatible = "snps,arc-emac";
161 reg = <0x10204000 0x3c>;
162 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
163 #address-cells = <1>;
164 #size-cells = <0>;
165
166 rockchip,grf = <&grf>;
167
168 clocks = <&cru HCLK_EMAC>, <&cru SCLK_MAC>;
169 clock-names = "hclk", "macref";
170 max-speed = <100>;
171 phy-mode = "rmii";
172
173 status = "disabled";
174 };
175
Heiko Stuebnere40b43d2014-07-26 18:53:07 +0200176 mmc0: dwmmc@10214000 {
Heiko Stuebnerc3030d32014-07-26 18:44:35 +0200177 compatible = "rockchip,rk2928-dw-mshc";
178 reg = <0x10214000 0x1000>;
179 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
Heiko Stuebnerf75efdd2013-09-29 13:25:08 +0200180
Heiko Stuebnerc3030d32014-07-26 18:44:35 +0200181 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>;
182 clock-names = "biu", "ciu";
Heiko Stuebnerf6f70cf2013-06-17 21:28:57 +0200183
Heiko Stuebnerc3030d32014-07-26 18:44:35 +0200184 status = "disabled";
185 };
Heiko Stuebner46b82192013-06-17 22:17:16 +0200186
Heiko Stuebnere40b43d2014-07-26 18:53:07 +0200187 mmc1: dwmmc@10218000 {
Heiko Stuebnerc3030d32014-07-26 18:44:35 +0200188 compatible = "rockchip,rk2928-dw-mshc";
189 reg = <0x10218000 0x1000>;
190 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
Heiko Stuebner56f2b892014-04-29 22:02:52 +0200191
Heiko Stuebnerc3030d32014-07-26 18:44:35 +0200192 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>;
193 clock-names = "biu", "ciu";
Heiko Stuebnerf75efdd2013-09-29 13:25:08 +0200194
Heiko Stuebnerc3030d32014-07-26 18:44:35 +0200195 status = "disabled";
Heiko Stuebnerf75efdd2013-09-29 13:25:08 +0200196 };
Heiko Stuebnerff84b902014-07-26 23:28:03 +0200197
Heiko Stuebner4ff4ae12014-09-10 17:04:36 +0200198 emmc: dwmmc@1021c000 {
199 compatible = "rockchip,rk2928-dw-mshc";
200 reg = <0x1021c000 0x1000>;
201 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
202
203 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>;
204 clock-names = "biu", "ciu";
205
206 status = "disabled";
207 };
208
Heiko Stuebnerff84b902014-07-26 23:28:03 +0200209 pmu: pmu@20004000 {
210 compatible = "rockchip,rk3066-pmu", "syscon";
211 reg = <0x20004000 0x100>;
212 };
213
214 grf: grf@20008000 {
215 compatible = "syscon";
216 reg = <0x20008000 0x200>;
217 };
218
Heiko Stuebner9cdffd82014-06-24 20:12:06 +0200219 i2c0: i2c@2002d000 {
220 compatible = "rockchip,rk3066-i2c";
221 reg = <0x2002d000 0x1000>;
222 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
223 #address-cells = <1>;
224 #size-cells = <0>;
225
226 rockchip,grf = <&grf>;
Heiko Stuebner9cdffd82014-06-24 20:12:06 +0200227
228 clock-names = "i2c";
229 clocks = <&cru PCLK_I2C0>;
230
231 status = "disabled";
232 };
233
234 i2c1: i2c@2002f000 {
235 compatible = "rockchip,rk3066-i2c";
236 reg = <0x2002f000 0x1000>;
237 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
238 #address-cells = <1>;
239 #size-cells = <0>;
240
241 rockchip,grf = <&grf>;
242
243 clocks = <&cru PCLK_I2C1>;
244 clock-names = "i2c";
245
246 status = "disabled";
247 };
248
Beniamino Galvani550c7f42014-06-26 20:03:41 +0200249 pwm0: pwm@20030000 {
250 compatible = "rockchip,rk2928-pwm";
251 reg = <0x20030000 0x10>;
252 #pwm-cells = <2>;
253 clocks = <&cru PCLK_PWM01>;
254 status = "disabled";
255 };
256
257 pwm1: pwm@20030010 {
258 compatible = "rockchip,rk2928-pwm";
259 reg = <0x20030010 0x10>;
260 #pwm-cells = <2>;
261 clocks = <&cru PCLK_PWM01>;
262 status = "disabled";
263 };
264
Heiko Stuebnereb2b9d42014-07-30 10:16:17 +0200265 wdt: watchdog@2004c000 {
266 compatible = "snps,dw-wdt";
267 reg = <0x2004c000 0x100>;
268 clocks = <&cru PCLK_WDT>;
269 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
270 status = "disabled";
271 };
272
Beniamino Galvani550c7f42014-06-26 20:03:41 +0200273 pwm2: pwm@20050020 {
274 compatible = "rockchip,rk2928-pwm";
275 reg = <0x20050020 0x10>;
276 #pwm-cells = <2>;
277 clocks = <&cru PCLK_PWM23>;
278 status = "disabled";
279 };
280
281 pwm3: pwm@20050030 {
282 compatible = "rockchip,rk2928-pwm";
283 reg = <0x20050030 0x10>;
284 #pwm-cells = <2>;
285 clocks = <&cru PCLK_PWM23>;
286 status = "disabled";
287 };
288
Heiko Stuebner9cdffd82014-06-24 20:12:06 +0200289 i2c2: i2c@20056000 {
290 compatible = "rockchip,rk3066-i2c";
291 reg = <0x20056000 0x1000>;
292 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
293 #address-cells = <1>;
294 #size-cells = <0>;
295
296 rockchip,grf = <&grf>;
297
298 clocks = <&cru PCLK_I2C2>;
299 clock-names = "i2c";
300
301 status = "disabled";
302 };
303
304 i2c3: i2c@2005a000 {
305 compatible = "rockchip,rk3066-i2c";
306 reg = <0x2005a000 0x1000>;
307 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
308 #address-cells = <1>;
309 #size-cells = <0>;
310
311 rockchip,grf = <&grf>;
312
313 clocks = <&cru PCLK_I2C3>;
314 clock-names = "i2c";
315
316 status = "disabled";
317 };
318
319 i2c4: i2c@2005e000 {
320 compatible = "rockchip,rk3066-i2c";
321 reg = <0x2005e000 0x1000>;
322 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
323 #address-cells = <1>;
324 #size-cells = <0>;
325
326 rockchip,grf = <&grf>;
327
328 clocks = <&cru PCLK_I2C4>;
329 clock-names = "i2c";
330
331 status = "disabled";
332 };
333
Heiko Stuebnerff84b902014-07-26 23:28:03 +0200334 uart2: serial@20064000 {
335 compatible = "snps,dw-apb-uart";
336 reg = <0x20064000 0x400>;
337 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
338 reg-shift = <2>;
339 reg-io-width = <1>;
Heiko Stuebner69667ca2014-06-26 16:06:12 +0200340 clock-names = "baudclk", "apb_pclk";
341 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
Heiko Stuebnerff84b902014-07-26 23:28:03 +0200342 status = "disabled";
343 };
344
345 uart3: serial@20068000 {
346 compatible = "snps,dw-apb-uart";
347 reg = <0x20068000 0x400>;
348 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
349 reg-shift = <2>;
350 reg-io-width = <1>;
Heiko Stuebner69667ca2014-06-26 16:06:12 +0200351 clock-names = "baudclk", "apb_pclk";
352 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
Heiko Stuebnerff84b902014-07-26 23:28:03 +0200353 status = "disabled";
354 };
Heiko Stübnerf23a6172014-08-20 21:09:24 +0200355
356 saradc: saradc@2006c000 {
357 compatible = "rockchip,saradc";
358 reg = <0x2006c000 0x100>;
359 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
360 #io-channel-cells = <1>;
361 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
362 clock-names = "saradc", "apb_pclk";
363 status = "disabled";
364 };
Heiko Stuebner39c2bd72014-09-10 16:28:02 +0200365
366 spi0: spi@20070000 {
367 compatible = "rockchip,rk3066-spi";
368 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
369 clock-names = "spiclk", "apb_pclk";
370 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
371 reg = <0x20070000 0x1000>;
372 #address-cells = <1>;
373 #size-cells = <0>;
Julien CHAUVEAUb3e3a7b2014-10-10 10:04:13 +0200374 dmas = <&dmac2 10>, <&dmac2 11>;
375 dma-names = "tx", "rx";
Heiko Stuebner39c2bd72014-09-10 16:28:02 +0200376 status = "disabled";
377 };
378
379 spi1: spi@20074000 {
380 compatible = "rockchip,rk3066-spi";
381 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
382 clock-names = "spiclk", "apb_pclk";
383 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
384 reg = <0x20074000 0x1000>;
385 #address-cells = <1>;
386 #size-cells = <0>;
Julien CHAUVEAUb3e3a7b2014-10-10 10:04:13 +0200387 dmas = <&dmac2 12>, <&dmac2 13>;
388 dma-names = "tx", "rx";
Heiko Stuebner39c2bd72014-09-10 16:28:02 +0200389 status = "disabled";
390 };
Heiko Stuebnerf75efdd2013-09-29 13:25:08 +0200391};