Merge git://git.denx.de/u-boot-video
[oweals/u-boot.git] / arch / arm / dts / rk3xxx.dtsi
1 /*
2  * Copyright (c) 2013 MundoReader S.L.
3  * Author: Heiko Stuebner <heiko@sntech.de>
4  *
5  * SPDX-License-Identifier:     GPL-2.0+ or X11
6  */
7
8 #include <dt-bindings/interrupt-controller/irq.h>
9 #include <dt-bindings/interrupt-controller/arm-gic.h>
10 #include "skeleton.dtsi"
11
12 / {
13         interrupt-parent = <&gic>;
14
15         aliases {
16                 ethernet0 = &emac;
17                 i2c0 = &i2c0;
18                 i2c1 = &i2c1;
19                 i2c2 = &i2c2;
20                 i2c3 = &i2c3;
21                 i2c4 = &i2c4;
22                 mshc0 = &emmc;
23                 mshc1 = &mmc0;
24                 mshc2 = &mmc1;
25                 serial0 = &uart0;
26                 serial1 = &uart1;
27                 serial2 = &uart2;
28                 serial3 = &uart3;
29                 spi0 = &spi0;
30                 spi1 = &spi1;
31         };
32
33         amba {
34                 compatible = "simple-bus";
35                 #address-cells = <1>;
36                 #size-cells = <1>;
37                 ranges;
38
39                 dmac1_s: dma-controller@20018000 {
40                         compatible = "arm,pl330", "arm,primecell";
41                         reg = <0x20018000 0x4000>;
42                         interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
43                                      <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
44                         #dma-cells = <1>;
45                         arm,pl330-broken-no-flushp;
46                         clocks = <&cru ACLK_DMA1>;
47                         clock-names = "apb_pclk";
48                 };
49
50                 dmac1_ns: dma-controller@2001c000 {
51                         compatible = "arm,pl330", "arm,primecell";
52                         reg = <0x2001c000 0x4000>;
53                         interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
54                                      <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
55                         #dma-cells = <1>;
56                         arm,pl330-broken-no-flushp;
57                         clocks = <&cru ACLK_DMA1>;
58                         clock-names = "apb_pclk";
59                         status = "disabled";
60                 };
61
62                 dmac2: dma-controller@20078000 {
63                         compatible = "arm,pl330", "arm,primecell";
64                         reg = <0x20078000 0x4000>;
65                         interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
66                                      <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
67                         #dma-cells = <1>;
68                         arm,pl330-broken-no-flushp;
69                         clocks = <&cru ACLK_DMA2>;
70                         clock-names = "apb_pclk";
71                 };
72         };
73
74         xin24m: oscillator {
75                 compatible = "fixed-clock";
76                 clock-frequency = <24000000>;
77                 #clock-cells = <0>;
78                 clock-output-names = "xin24m";
79         };
80
81         L2: l2-cache-controller@10138000 {
82                 compatible = "arm,pl310-cache";
83                 reg = <0x10138000 0x1000>;
84                 cache-unified;
85                 cache-level = <2>;
86         };
87
88         scu@1013c000 {
89                 compatible = "arm,cortex-a9-scu";
90                 reg = <0x1013c000 0x100>;
91         };
92
93         global_timer: global-timer@1013c200 {
94                 compatible = "arm,cortex-a9-global-timer";
95                 reg = <0x1013c200 0x20>;
96                 interrupts = <GIC_PPI 11 0x304>;
97                 clocks = <&cru CORE_PERI>;
98         };
99
100         local_timer: local-timer@1013c600 {
101                 compatible = "arm,cortex-a9-twd-timer";
102                 reg = <0x1013c600 0x20>;
103                 interrupts = <GIC_PPI 13 0x304>;
104                 clocks = <&cru CORE_PERI>;
105         };
106
107         gic: interrupt-controller@1013d000 {
108                 compatible = "arm,cortex-a9-gic";
109                 interrupt-controller;
110                 #interrupt-cells = <3>;
111                 reg = <0x1013d000 0x1000>,
112                       <0x1013c100 0x0100>;
113         };
114
115         uart0: serial@10124000 {
116                 compatible = "snps,dw-apb-uart";
117                 reg = <0x10124000 0x400>;
118                 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
119                 reg-shift = <2>;
120                 reg-io-width = <1>;
121                 clock-names = "baudclk", "apb_pclk";
122                 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
123                 status = "disabled";
124         };
125
126         uart1: serial@10126000 {
127                 compatible = "snps,dw-apb-uart";
128                 reg = <0x10126000 0x400>;
129                 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
130                 reg-shift = <2>;
131                 reg-io-width = <1>;
132                 clock-names = "baudclk", "apb_pclk";
133                 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
134                 status = "disabled";
135         };
136
137         noc: syscon@10128000 {
138                 u-boot,dm-spl;
139                 compatible = "rockchip,rk3188-noc", "syscon";
140                 reg = <0x10128000 0x2000>;
141         };
142
143         usb_otg: usb@10180000 {
144                 compatible = "rockchip,rk3066-usb", "snps,dwc2";
145                 reg = <0x10180000 0x40000>;
146                 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
147                 clocks = <&cru HCLK_OTG0>;
148                 clock-names = "otg";
149                 dr_mode = "otg";
150                 g-np-tx-fifo-size = <16>;
151                 g-rx-fifo-size = <275>;
152                 g-tx-fifo-size = <256 128 128 64 64 32>;
153                 g-use-dma;
154                 phys = <&usbphy0>;
155                 phy-names = "usb2-phy";
156                 status = "disabled";
157         };
158
159         usb_host: usb@101c0000 {
160                 compatible = "snps,dwc2";
161                 reg = <0x101c0000 0x40000>;
162                 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
163                 clocks = <&cru HCLK_OTG1>;
164                 clock-names = "otg";
165                 dr_mode = "host";
166                 phys = <&usbphy1>;
167                 phy-names = "usb2-phy";
168                 status = "disabled";
169         };
170
171         emac: ethernet@10204000 {
172                 compatible = "snps,arc-emac";
173                 reg = <0x10204000 0x3c>;
174                 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
175                 #address-cells = <1>;
176                 #size-cells = <0>;
177
178                 rockchip,grf = <&grf>;
179
180                 clocks = <&cru HCLK_EMAC>, <&cru SCLK_MAC>;
181                 clock-names = "hclk", "macref";
182                 max-speed = <100>;
183                 phy-mode = "rmii";
184
185                 status = "disabled";
186         };
187
188         mmc0: dwmmc@10214000 {
189                 compatible = "rockchip,rk2928-dw-mshc";
190                 reg = <0x10214000 0x1000>;
191                 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
192                 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>;
193                 clock-names = "biu", "ciu";
194                 fifo-depth = <256>;
195                 status = "disabled";
196         };
197
198         mmc1: dwmmc@10218000 {
199                 compatible = "rockchip,rk2928-dw-mshc";
200                 reg = <0x10218000 0x1000>;
201                 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
202                 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>;
203                 clock-names = "biu", "ciu";
204                 fifo-depth = <256>;
205                 status = "disabled";
206         };
207
208         emmc: dwmmc@1021c000 {
209                 compatible = "rockchip,rk2928-dw-mshc";
210                 reg = <0x1021c000 0x1000>;
211                 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
212                 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>;
213                 clock-names = "biu", "ciu";
214                 fifo-depth = <256>;
215                 status = "disabled";
216         };
217
218         pmu: pmu@20004000 {
219                 compatible = "rockchip,rk3066-pmu", "syscon";
220                 reg = <0x20004000 0x100>;
221                 u-boot,dm-spl;
222         };
223
224         grf: grf@20008000 {
225                 compatible = "syscon";
226                 reg = <0x20008000 0x200>;
227                 u-boot,dm-spl;
228         };
229
230         dmc: dmc@20020000 {
231                 /* unreviewed u-boot-specific binding */
232                 compatible = "rockchip,rk3188-dmc", "syscon";
233                 rockchip,cru = <&cru>;
234                 rockchip,grf = <&grf>;
235                 rockchip,pmu = <&pmu>;
236                 rockchip,noc = <&noc>;
237                 reg = <0x20020000 0x3fc
238                        0x20040000 0x294>;
239                 clocks = <&cru PCLK_DDRUPCTL>, <&cru PCLK_PUBL>;
240                 clock-names = "pclk_ddrupctl", "pclk_publ";
241                 u-boot,dm-spl;
242         };
243
244         i2c0: i2c@2002d000 {
245                 compatible = "rockchip,rk3066-i2c";
246                 reg = <0x2002d000 0x1000>;
247                 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
248                 #address-cells = <1>;
249                 #size-cells = <0>;
250
251                 rockchip,grf = <&grf>;
252
253                 clock-names = "i2c";
254                 clocks = <&cru PCLK_I2C0>;
255
256                 status = "disabled";
257         };
258
259         i2c1: i2c@2002f000 {
260                 compatible = "rockchip,rk3066-i2c";
261                 reg = <0x2002f000 0x1000>;
262                 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
263                 #address-cells = <1>;
264                 #size-cells = <0>;
265
266                 rockchip,grf = <&grf>;
267
268                 clocks = <&cru PCLK_I2C1>;
269                 clock-names = "i2c";
270
271                 status = "disabled";
272         };
273
274         pwm0: pwm@20030000 {
275                 compatible = "rockchip,rk2928-pwm";
276                 reg = <0x20030000 0x10>;
277                 #pwm-cells = <2>;
278                 clocks = <&cru PCLK_PWM01>;
279                 status = "disabled";
280         };
281
282         pwm1: pwm@20030010 {
283                 compatible = "rockchip,rk2928-pwm";
284                 reg = <0x20030010 0x10>;
285                 #pwm-cells = <2>;
286                 clocks = <&cru PCLK_PWM01>;
287                 status = "disabled";
288         };
289
290         wdt: watchdog@2004c000 {
291                 compatible = "snps,dw-wdt";
292                 reg = <0x2004c000 0x100>;
293                 clocks = <&cru PCLK_WDT>;
294                 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
295                 status = "disabled";
296         };
297
298         pwm2: pwm@20050020 {
299                 compatible = "rockchip,rk2928-pwm";
300                 reg = <0x20050020 0x10>;
301                 #pwm-cells = <2>;
302                 clocks = <&cru PCLK_PWM23>;
303                 status = "disabled";
304         };
305
306         pwm3: pwm@20050030 {
307                 compatible = "rockchip,rk2928-pwm";
308                 reg = <0x20050030 0x10>;
309                 #pwm-cells = <2>;
310                 clocks = <&cru PCLK_PWM23>;
311                 status = "disabled";
312         };
313
314         i2c2: i2c@20056000 {
315                 compatible = "rockchip,rk3066-i2c";
316                 reg = <0x20056000 0x1000>;
317                 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
318                 #address-cells = <1>;
319                 #size-cells = <0>;
320
321                 rockchip,grf = <&grf>;
322
323                 clocks = <&cru PCLK_I2C2>;
324                 clock-names = "i2c";
325
326                 status = "disabled";
327         };
328
329         i2c3: i2c@2005a000 {
330                 compatible = "rockchip,rk3066-i2c";
331                 reg = <0x2005a000 0x1000>;
332                 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
333                 #address-cells = <1>;
334                 #size-cells = <0>;
335
336                 rockchip,grf = <&grf>;
337
338                 clocks = <&cru PCLK_I2C3>;
339                 clock-names = "i2c";
340
341                 status = "disabled";
342         };
343
344         i2c4: i2c@2005e000 {
345                 compatible = "rockchip,rk3066-i2c";
346                 reg = <0x2005e000 0x1000>;
347                 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
348                 #address-cells = <1>;
349                 #size-cells = <0>;
350
351                 rockchip,grf = <&grf>;
352
353                 clocks = <&cru PCLK_I2C4>;
354                 clock-names = "i2c";
355
356                 status = "disabled";
357         };
358
359         uart2: serial@20064000 {
360                 compatible = "snps,dw-apb-uart";
361                 reg = <0x20064000 0x400>;
362                 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
363                 reg-shift = <2>;
364                 reg-io-width = <1>;
365                 clock-frequency = <24000000>;
366                 clock-names = "baudclk", "apb_pclk";
367                 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
368                 status = "disabled";
369         };
370
371         uart3: serial@20068000 {
372                 compatible = "snps,dw-apb-uart";
373                 reg = <0x20068000 0x400>;
374                 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
375                 reg-shift = <2>;
376                 reg-io-width = <1>;
377                 clock-names = "baudclk", "apb_pclk";
378                 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
379                 status = "disabled";
380         };
381
382         saradc: saradc@2006c000 {
383                 compatible = "rockchip,saradc";
384                 reg = <0x2006c000 0x100>;
385                 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
386                 #io-channel-cells = <1>;
387                 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
388                 clock-names = "saradc", "apb_pclk";
389                 status = "disabled";
390         };
391
392         spi0: spi@20070000 {
393                 compatible = "rockchip,rk3066-spi";
394                 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
395                 clock-names = "spiclk", "apb_pclk";
396                 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
397                 reg = <0x20070000 0x1000>;
398                 #address-cells = <1>;
399                 #size-cells = <0>;
400                 dmas = <&dmac2 10>, <&dmac2 11>;
401                 dma-names = "tx", "rx";
402                 status = "disabled";
403         };
404
405         spi1: spi@20074000 {
406                 compatible = "rockchip,rk3066-spi";
407                 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
408                 clock-names = "spiclk", "apb_pclk";
409                 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
410                 reg = <0x20074000 0x1000>;
411                 #address-cells = <1>;
412                 #size-cells = <0>;
413                 dmas = <&dmac2 12>, <&dmac2 13>;
414                 dma-names = "tx", "rx";
415                 status = "disabled";
416         };
417 };