Merge tag 'v3.18-rockchip-dts2-v2' of git://git.kernel.org/pub/scm/linux/kernel/git...
[cascardo/linux.git] / arch / arm / boot / dts / rk3288.dtsi
1 /*
2  * This program is free software; you can redistribute it and/or modify
3  * it under the terms of the GNU General Public License as published by
4  * the Free Software Foundation; either version 2 of the License, or
5  * (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  */
12
13 #include <dt-bindings/gpio/gpio.h>
14 #include <dt-bindings/interrupt-controller/irq.h>
15 #include <dt-bindings/interrupt-controller/arm-gic.h>
16 #include <dt-bindings/pinctrl/rockchip.h>
17 #include <dt-bindings/clock/rk3288-cru.h>
18 #include "skeleton.dtsi"
19
20 / {
21         compatible = "rockchip,rk3288";
22
23         interrupt-parent = <&gic>;
24
25         aliases {
26                 i2c0 = &i2c0;
27                 i2c1 = &i2c1;
28                 i2c2 = &i2c2;
29                 i2c3 = &i2c3;
30                 i2c4 = &i2c4;
31                 i2c5 = &i2c5;
32                 mshc0 = &emmc;
33                 mshc1 = &sdmmc;
34                 mshc2 = &sdio0;
35                 mshc3 = &sdio1;
36                 serial0 = &uart0;
37                 serial1 = &uart1;
38                 serial2 = &uart2;
39                 serial3 = &uart3;
40                 serial4 = &uart4;
41                 spi0 = &spi0;
42                 spi1 = &spi1;
43                 spi2 = &spi2;
44         };
45
46         cpus {
47                 #address-cells = <1>;
48                 #size-cells = <0>;
49
50                 cpu@500 {
51                         device_type = "cpu";
52                         compatible = "arm,cortex-a12";
53                         reg = <0x500>;
54                 };
55                 cpu@501 {
56                         device_type = "cpu";
57                         compatible = "arm,cortex-a12";
58                         reg = <0x501>;
59                 };
60                 cpu@502 {
61                         device_type = "cpu";
62                         compatible = "arm,cortex-a12";
63                         reg = <0x502>;
64                 };
65                 cpu@503 {
66                         device_type = "cpu";
67                         compatible = "arm,cortex-a12";
68                         reg = <0x503>;
69                 };
70         };
71
72         amba {
73                 compatible = "arm,amba-bus";
74                 #address-cells = <1>;
75                 #size-cells = <1>;
76                 ranges;
77
78                 dmac_peri: dma-controller@ff250000 {
79                         compatible = "arm,pl330", "arm,primecell";
80                         reg = <0xff250000 0x4000>;
81                         interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
82                                      <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
83                         #dma-cells = <1>;
84                         clocks = <&cru ACLK_DMAC2>;
85                         clock-names = "apb_pclk";
86                 };
87
88                 dmac_bus_ns: dma-controller@ff600000 {
89                         compatible = "arm,pl330", "arm,primecell";
90                         reg = <0xff600000 0x4000>;
91                         interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
92                                      <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
93                         #dma-cells = <1>;
94                         clocks = <&cru ACLK_DMAC1>;
95                         clock-names = "apb_pclk";
96                         status = "disabled";
97                 };
98
99                 dmac_bus_s: dma-controller@ffb20000 {
100                         compatible = "arm,pl330", "arm,primecell";
101                         reg = <0xffb20000 0x4000>;
102                         interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
103                                      <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
104                         #dma-cells = <1>;
105                         clocks = <&cru ACLK_DMAC1>;
106                         clock-names = "apb_pclk";
107                 };
108         };
109
110         xin24m: oscillator {
111                 compatible = "fixed-clock";
112                 clock-frequency = <24000000>;
113                 clock-output-names = "xin24m";
114                 #clock-cells = <0>;
115         };
116
117         timer {
118                 compatible = "arm,armv7-timer";
119                 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
120                              <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
121                              <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
122                              <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
123                 clock-frequency = <24000000>;
124         };
125
126         sdmmc: dwmmc@ff0c0000 {
127                 compatible = "rockchip,rk3288-dw-mshc";
128                 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>;
129                 clock-names = "biu", "ciu";
130                 fifo-depth = <0x100>;
131                 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
132                 reg = <0xff0c0000 0x4000>;
133                 status = "disabled";
134         };
135
136         sdio0: dwmmc@ff0d0000 {
137                 compatible = "rockchip,rk3288-dw-mshc";
138                 clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>;
139                 clock-names = "biu", "ciu";
140                 fifo-depth = <0x100>;
141                 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
142                 reg = <0xff0d0000 0x4000>;
143                 status = "disabled";
144         };
145
146         sdio1: dwmmc@ff0e0000 {
147                 compatible = "rockchip,rk3288-dw-mshc";
148                 clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>;
149                 clock-names = "biu", "ciu";
150                 fifo-depth = <0x100>;
151                 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
152                 reg = <0xff0e0000 0x4000>;
153                 status = "disabled";
154         };
155
156         emmc: dwmmc@ff0f0000 {
157                 compatible = "rockchip,rk3288-dw-mshc";
158                 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>;
159                 clock-names = "biu", "ciu";
160                 fifo-depth = <0x100>;
161                 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
162                 reg = <0xff0f0000 0x4000>;
163                 status = "disabled";
164         };
165
166         saradc: saradc@ff100000 {
167                 compatible = "rockchip,saradc";
168                 reg = <0xff100000 0x100>;
169                 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
170                 #io-channel-cells = <1>;
171                 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
172                 clock-names = "saradc", "apb_pclk";
173                 status = "disabled";
174         };
175
176         spi0: spi@ff110000 {
177                 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
178                 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
179                 clock-names = "spiclk", "apb_pclk";
180                 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
181                 pinctrl-names = "default";
182                 pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
183                 reg = <0xff110000 0x1000>;
184                 #address-cells = <1>;
185                 #size-cells = <0>;
186                 status = "disabled";
187         };
188
189         spi1: spi@ff120000 {
190                 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
191                 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
192                 clock-names = "spiclk", "apb_pclk";
193                 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
194                 pinctrl-names = "default";
195                 pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
196                 reg = <0xff120000 0x1000>;
197                 #address-cells = <1>;
198                 #size-cells = <0>;
199                 status = "disabled";
200         };
201
202         spi2: spi@ff130000 {
203                 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
204                 clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
205                 clock-names = "spiclk", "apb_pclk";
206                 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
207                 pinctrl-names = "default";
208                 pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
209                 reg = <0xff130000 0x1000>;
210                 #address-cells = <1>;
211                 #size-cells = <0>;
212                 status = "disabled";
213         };
214
215         i2c1: i2c@ff140000 {
216                 compatible = "rockchip,rk3288-i2c";
217                 reg = <0xff140000 0x1000>;
218                 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
219                 #address-cells = <1>;
220                 #size-cells = <0>;
221                 clock-names = "i2c";
222                 clocks = <&cru PCLK_I2C1>;
223                 pinctrl-names = "default";
224                 pinctrl-0 = <&i2c1_xfer>;
225                 status = "disabled";
226         };
227
228         i2c3: i2c@ff150000 {
229                 compatible = "rockchip,rk3288-i2c";
230                 reg = <0xff150000 0x1000>;
231                 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
232                 #address-cells = <1>;
233                 #size-cells = <0>;
234                 clock-names = "i2c";
235                 clocks = <&cru PCLK_I2C3>;
236                 pinctrl-names = "default";
237                 pinctrl-0 = <&i2c3_xfer>;
238                 status = "disabled";
239         };
240
241         i2c4: i2c@ff160000 {
242                 compatible = "rockchip,rk3288-i2c";
243                 reg = <0xff160000 0x1000>;
244                 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
245                 #address-cells = <1>;
246                 #size-cells = <0>;
247                 clock-names = "i2c";
248                 clocks = <&cru PCLK_I2C4>;
249                 pinctrl-names = "default";
250                 pinctrl-0 = <&i2c4_xfer>;
251                 status = "disabled";
252         };
253
254         i2c5: i2c@ff170000 {
255                 compatible = "rockchip,rk3288-i2c";
256                 reg = <0xff170000 0x1000>;
257                 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
258                 #address-cells = <1>;
259                 #size-cells = <0>;
260                 clock-names = "i2c";
261                 clocks = <&cru PCLK_I2C5>;
262                 pinctrl-names = "default";
263                 pinctrl-0 = <&i2c5_xfer>;
264                 status = "disabled";
265         };
266
267         uart0: serial@ff180000 {
268                 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
269                 reg = <0xff180000 0x100>;
270                 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
271                 reg-shift = <2>;
272                 reg-io-width = <4>;
273                 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
274                 clock-names = "baudclk", "apb_pclk";
275                 pinctrl-names = "default";
276                 pinctrl-0 = <&uart0_xfer>;
277                 status = "disabled";
278         };
279
280         uart1: serial@ff190000 {
281                 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
282                 reg = <0xff190000 0x100>;
283                 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
284                 reg-shift = <2>;
285                 reg-io-width = <4>;
286                 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
287                 clock-names = "baudclk", "apb_pclk";
288                 pinctrl-names = "default";
289                 pinctrl-0 = <&uart1_xfer>;
290                 status = "disabled";
291         };
292
293         uart2: serial@ff690000 {
294                 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
295                 reg = <0xff690000 0x100>;
296                 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
297                 reg-shift = <2>;
298                 reg-io-width = <4>;
299                 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
300                 clock-names = "baudclk", "apb_pclk";
301                 pinctrl-names = "default";
302                 pinctrl-0 = <&uart2_xfer>;
303                 status = "disabled";
304         };
305
306         uart3: serial@ff1b0000 {
307                 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
308                 reg = <0xff1b0000 0x100>;
309                 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
310                 reg-shift = <2>;
311                 reg-io-width = <4>;
312                 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
313                 clock-names = "baudclk", "apb_pclk";
314                 pinctrl-names = "default";
315                 pinctrl-0 = <&uart3_xfer>;
316                 status = "disabled";
317         };
318
319         uart4: serial@ff1c0000 {
320                 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
321                 reg = <0xff1c0000 0x100>;
322                 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
323                 reg-shift = <2>;
324                 reg-io-width = <4>;
325                 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
326                 clock-names = "baudclk", "apb_pclk";
327                 pinctrl-names = "default";
328                 pinctrl-0 = <&uart4_xfer>;
329                 status = "disabled";
330         };
331
332         usb_host0_ehci: usb@ff500000 {
333                 compatible = "generic-ehci";
334                 reg = <0xff500000 0x100>;
335                 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
336                 clocks = <&cru HCLK_USBHOST0>;
337                 clock-names = "usbhost";
338                 status = "disabled";
339         };
340
341         /* NOTE: ohci@ff520000 doesn't actually work on hardware */
342
343         usb_host1: usb@ff540000 {
344                 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
345                                 "snps,dwc2";
346                 reg = <0xff540000 0x40000>;
347                 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
348                 clocks = <&cru HCLK_USBHOST1>;
349                 clock-names = "otg";
350                 status = "disabled";
351         };
352
353         usb_otg: usb@ff580000 {
354                 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
355                                 "snps,dwc2";
356                 reg = <0xff580000 0x40000>;
357                 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
358                 clocks = <&cru HCLK_OTG0>;
359                 clock-names = "otg";
360                 status = "disabled";
361         };
362
363         usb_hsic: usb@ff5c0000 {
364                 compatible = "generic-ehci";
365                 reg = <0xff5c0000 0x100>;
366                 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
367                 clocks = <&cru HCLK_HSIC>;
368                 clock-names = "usbhost";
369                 status = "disabled";
370         };
371
372         i2c0: i2c@ff650000 {
373                 compatible = "rockchip,rk3288-i2c";
374                 reg = <0xff650000 0x1000>;
375                 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
376                 #address-cells = <1>;
377                 #size-cells = <0>;
378                 clock-names = "i2c";
379                 clocks = <&cru PCLK_I2C0>;
380                 pinctrl-names = "default";
381                 pinctrl-0 = <&i2c0_xfer>;
382                 status = "disabled";
383         };
384
385         i2c2: i2c@ff660000 {
386                 compatible = "rockchip,rk3288-i2c";
387                 reg = <0xff660000 0x1000>;
388                 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
389                 #address-cells = <1>;
390                 #size-cells = <0>;
391                 clock-names = "i2c";
392                 clocks = <&cru PCLK_I2C2>;
393                 pinctrl-names = "default";
394                 pinctrl-0 = <&i2c2_xfer>;
395                 status = "disabled";
396         };
397
398         pwm0: pwm@ff680000 {
399                 compatible = "rockchip,rk3288-pwm";
400                 reg = <0xff680000 0x10>;
401                 #pwm-cells = <3>;
402                 pinctrl-names = "default";
403                 pinctrl-0 = <&pwm0_pin>;
404                 clocks = <&cru PCLK_PWM>;
405                 clock-names = "pwm";
406                 status = "disabled";
407         };
408
409         pwm1: pwm@ff680010 {
410                 compatible = "rockchip,rk3288-pwm";
411                 reg = <0xff680010 0x10>;
412                 #pwm-cells = <3>;
413                 pinctrl-names = "default";
414                 pinctrl-0 = <&pwm1_pin>;
415                 clocks = <&cru PCLK_PWM>;
416                 clock-names = "pwm";
417                 status = "disabled";
418         };
419
420         pwm2: pwm@ff680020 {
421                 compatible = "rockchip,rk3288-pwm";
422                 reg = <0xff680020 0x10>;
423                 #pwm-cells = <3>;
424                 pinctrl-names = "default";
425                 pinctrl-0 = <&pwm2_pin>;
426                 clocks = <&cru PCLK_PWM>;
427                 clock-names = "pwm";
428                 status = "disabled";
429         };
430
431         pwm3: pwm@ff680030 {
432                 compatible = "rockchip,rk3288-pwm";
433                 reg = <0xff680030 0x10>;
434                 #pwm-cells = <2>;
435                 pinctrl-names = "default";
436                 pinctrl-0 = <&pwm3_pin>;
437                 clocks = <&cru PCLK_PWM>;
438                 clock-names = "pwm";
439                 status = "disabled";
440         };
441
442         pmu: power-management@ff730000 {
443                 compatible = "rockchip,rk3288-pmu", "syscon";
444                 reg = <0xff730000 0x100>;
445         };
446
447         sgrf: syscon@ff740000 {
448                 compatible = "rockchip,rk3288-sgrf", "syscon";
449                 reg = <0xff740000 0x1000>;
450         };
451
452         cru: clock-controller@ff760000 {
453                 compatible = "rockchip,rk3288-cru";
454                 reg = <0xff760000 0x1000>;
455                 rockchip,grf = <&grf>;
456                 #clock-cells = <1>;
457                 #reset-cells = <1>;
458         };
459
460         grf: syscon@ff770000 {
461                 compatible = "rockchip,rk3288-grf", "syscon";
462                 reg = <0xff770000 0x1000>;
463         };
464
465         wdt: watchdog@ff800000 {
466                 compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
467                 reg = <0xff800000 0x100>;
468                 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
469                 status = "disabled";
470         };
471
472         gic: interrupt-controller@ffc01000 {
473                 compatible = "arm,gic-400";
474                 interrupt-controller;
475                 #interrupt-cells = <3>;
476                 #address-cells = <0>;
477
478                 reg = <0xffc01000 0x1000>,
479                       <0xffc02000 0x1000>,
480                       <0xffc04000 0x2000>,
481                       <0xffc06000 0x2000>;
482                 interrupts = <GIC_PPI 9 0xf04>;
483         };
484
485         pinctrl: pinctrl {
486                 compatible = "rockchip,rk3288-pinctrl";
487                 rockchip,grf = <&grf>;
488                 rockchip,pmu = <&pmu>;
489                 #address-cells = <1>;
490                 #size-cells = <1>;
491                 ranges;
492
493                 gpio0: gpio0@ff750000 {
494                         compatible = "rockchip,gpio-bank";
495                         reg =   <0xff750000 0x100>;
496                         interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
497                         clocks = <&cru PCLK_GPIO0>;
498
499                         gpio-controller;
500                         #gpio-cells = <2>;
501
502                         interrupt-controller;
503                         #interrupt-cells = <2>;
504                 };
505
506                 gpio1: gpio1@ff780000 {
507                         compatible = "rockchip,gpio-bank";
508                         reg = <0xff780000 0x100>;
509                         interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
510                         clocks = <&cru PCLK_GPIO1>;
511
512                         gpio-controller;
513                         #gpio-cells = <2>;
514
515                         interrupt-controller;
516                         #interrupt-cells = <2>;
517                 };
518
519                 gpio2: gpio2@ff790000 {
520                         compatible = "rockchip,gpio-bank";
521                         reg = <0xff790000 0x100>;
522                         interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
523                         clocks = <&cru PCLK_GPIO2>;
524
525                         gpio-controller;
526                         #gpio-cells = <2>;
527
528                         interrupt-controller;
529                         #interrupt-cells = <2>;
530                 };
531
532                 gpio3: gpio3@ff7a0000 {
533                         compatible = "rockchip,gpio-bank";
534                         reg = <0xff7a0000 0x100>;
535                         interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
536                         clocks = <&cru PCLK_GPIO3>;
537
538                         gpio-controller;
539                         #gpio-cells = <2>;
540
541                         interrupt-controller;
542                         #interrupt-cells = <2>;
543                 };
544
545                 gpio4: gpio4@ff7b0000 {
546                         compatible = "rockchip,gpio-bank";
547                         reg = <0xff7b0000 0x100>;
548                         interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
549                         clocks = <&cru PCLK_GPIO4>;
550
551                         gpio-controller;
552                         #gpio-cells = <2>;
553
554                         interrupt-controller;
555                         #interrupt-cells = <2>;
556                 };
557
558                 gpio5: gpio5@ff7c0000 {
559                         compatible = "rockchip,gpio-bank";
560                         reg = <0xff7c0000 0x100>;
561                         interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
562                         clocks = <&cru PCLK_GPIO5>;
563
564                         gpio-controller;
565                         #gpio-cells = <2>;
566
567                         interrupt-controller;
568                         #interrupt-cells = <2>;
569                 };
570
571                 gpio6: gpio6@ff7d0000 {
572                         compatible = "rockchip,gpio-bank";
573                         reg = <0xff7d0000 0x100>;
574                         interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
575                         clocks = <&cru PCLK_GPIO6>;
576
577                         gpio-controller;
578                         #gpio-cells = <2>;
579
580                         interrupt-controller;
581                         #interrupt-cells = <2>;
582                 };
583
584                 gpio7: gpio7@ff7e0000 {
585                         compatible = "rockchip,gpio-bank";
586                         reg = <0xff7e0000 0x100>;
587                         interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
588                         clocks = <&cru PCLK_GPIO7>;
589
590                         gpio-controller;
591                         #gpio-cells = <2>;
592
593                         interrupt-controller;
594                         #interrupt-cells = <2>;
595                 };
596
597                 gpio8: gpio8@ff7f0000 {
598                         compatible = "rockchip,gpio-bank";
599                         reg = <0xff7f0000 0x100>;
600                         interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
601                         clocks = <&cru PCLK_GPIO8>;
602
603                         gpio-controller;
604                         #gpio-cells = <2>;
605
606                         interrupt-controller;
607                         #interrupt-cells = <2>;
608                 };
609
610                 pcfg_pull_up: pcfg-pull-up {
611                         bias-pull-up;
612                 };
613
614                 pcfg_pull_down: pcfg-pull-down {
615                         bias-pull-down;
616                 };
617
618                 pcfg_pull_none: pcfg-pull-none {
619                         bias-disable;
620                 };
621
622                 i2c0 {
623                         i2c0_xfer: i2c0-xfer {
624                                 rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,
625                                                 <0 16 RK_FUNC_1 &pcfg_pull_none>;
626                         };
627                 };
628
629                 i2c1 {
630                         i2c1_xfer: i2c1-xfer {
631                                 rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>,
632                                                 <8 5 RK_FUNC_1 &pcfg_pull_none>;
633                         };
634                 };
635
636                 i2c2 {
637                         i2c2_xfer: i2c2-xfer {
638                                 rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>,
639                                                 <6 10 RK_FUNC_1 &pcfg_pull_none>;
640                         };
641                 };
642
643                 i2c3 {
644                         i2c3_xfer: i2c3-xfer {
645                                 rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>,
646                                                 <2 17 RK_FUNC_1 &pcfg_pull_none>;
647                         };
648                 };
649
650                 i2c4 {
651                         i2c4_xfer: i2c4-xfer {
652                                 rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>,
653                                                 <7 18 RK_FUNC_1 &pcfg_pull_none>;
654                         };
655                 };
656
657                 i2c5 {
658                         i2c5_xfer: i2c5-xfer {
659                                 rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>,
660                                                 <7 20 RK_FUNC_1 &pcfg_pull_none>;
661                         };
662                 };
663
664                 sdmmc {
665                         sdmmc_clk: sdmmc-clk {
666                                 rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
667                         };
668
669                         sdmmc_cmd: sdmmc-cmd {
670                                 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
671                         };
672
673                         sdmmc_cd: sdmcc-cd {
674                                 rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
675                         };
676
677                         sdmmc_bus1: sdmmc-bus1 {
678                                 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>;
679                         };
680
681                         sdmmc_bus4: sdmmc-bus4 {
682                                 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>,
683                                                 <6 17 RK_FUNC_1 &pcfg_pull_up>,
684                                                 <6 18 RK_FUNC_1 &pcfg_pull_up>,
685                                                 <6 19 RK_FUNC_1 &pcfg_pull_up>;
686                         };
687                 };
688
689                 sdio0 {
690                         sdio0_bus1: sdio0-bus1 {
691                                 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>;
692                         };
693
694                         sdio0_bus4: sdio0-bus4 {
695                                 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>,
696                                                 <4 21 RK_FUNC_1 &pcfg_pull_up>,
697                                                 <4 22 RK_FUNC_1 &pcfg_pull_up>,
698                                                 <4 23 RK_FUNC_1 &pcfg_pull_up>;
699                         };
700
701                         sdio0_cmd: sdio0-cmd {
702                                 rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>;
703                         };
704
705                         sdio0_clk: sdio0-clk {
706                                 rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>;
707                         };
708
709                         sdio0_cd: sdio0-cd {
710                                 rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>;
711                         };
712
713                         sdio0_wp: sdio0-wp {
714                                 rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>;
715                         };
716
717                         sdio0_pwr: sdio0-pwr {
718                                 rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>;
719                         };
720
721                         sdio0_bkpwr: sdio0-bkpwr {
722                                 rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>;
723                         };
724
725                         sdio0_int: sdio0-int {
726                                 rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>;
727                         };
728                 };
729
730                 sdio1 {
731                         sdio1_bus1: sdio1-bus1 {
732                                 rockchip,pins = <3 24 4 &pcfg_pull_up>;
733                         };
734
735                         sdio1_bus4: sdio1-bus4 {
736                                 rockchip,pins = <3 24 4 &pcfg_pull_up>,
737                                                 <3 25 4 &pcfg_pull_up>,
738                                                 <3 26 4 &pcfg_pull_up>,
739                                                 <3 27 4 &pcfg_pull_up>;
740                         };
741
742                         sdio1_cd: sdio1-cd {
743                                 rockchip,pins = <3 28 4 &pcfg_pull_up>;
744                         };
745
746                         sdio1_wp: sdio1-wp {
747                                 rockchip,pins = <3 29 4 &pcfg_pull_up>;
748                         };
749
750                         sdio1_bkpwr: sdio1-bkpwr {
751                                 rockchip,pins = <3 30 4 &pcfg_pull_up>;
752                         };
753
754                         sdio1_int: sdio1-int {
755                                 rockchip,pins = <3 31 4 &pcfg_pull_up>;
756                         };
757
758                         sdio1_cmd: sdio1-cmd {
759                                 rockchip,pins = <4 6 4 &pcfg_pull_up>;
760                         };
761
762                         sdio1_clk: sdio1-clk {
763                                 rockchip,pins = <4 7 4 &pcfg_pull_none>;
764                         };
765
766                         sdio1_pwr: sdio1-pwr {
767                                 rockchip,pins = <4 9 4 &pcfg_pull_up>;
768                         };
769                 };
770
771                 emmc {
772                         emmc_clk: emmc-clk {
773                                 rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>;
774                         };
775
776                         emmc_cmd: emmc-cmd {
777                                 rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>;
778                         };
779
780                         emmc_pwr: emmc-pwr {
781                                 rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>;
782                         };
783
784                         emmc_bus1: emmc-bus1 {
785                                 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>;
786                         };
787
788                         emmc_bus4: emmc-bus4 {
789                                 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
790                                                 <3 1 RK_FUNC_2 &pcfg_pull_up>,
791                                                 <3 2 RK_FUNC_2 &pcfg_pull_up>,
792                                                 <3 3 RK_FUNC_2 &pcfg_pull_up>;
793                         };
794
795                         emmc_bus8: emmc-bus8 {
796                                 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
797                                                 <3 1 RK_FUNC_2 &pcfg_pull_up>,
798                                                 <3 2 RK_FUNC_2 &pcfg_pull_up>,
799                                                 <3 3 RK_FUNC_2 &pcfg_pull_up>,
800                                                 <3 4 RK_FUNC_2 &pcfg_pull_up>,
801                                                 <3 5 RK_FUNC_2 &pcfg_pull_up>,
802                                                 <3 6 RK_FUNC_2 &pcfg_pull_up>,
803                                                 <3 7 RK_FUNC_2 &pcfg_pull_up>;
804                         };
805                 };
806
807                 spi0 {
808                         spi0_clk: spi0-clk {
809                                 rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>;
810                         };
811                         spi0_cs0: spi0-cs0 {
812                                 rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>;
813                         };
814                         spi0_tx: spi0-tx {
815                                 rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>;
816                         };
817                         spi0_rx: spi0-rx {
818                                 rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>;
819                         };
820                         spi0_cs1: spi0-cs1 {
821                                 rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>;
822                         };
823                 };
824                 spi1 {
825                         spi1_clk: spi1-clk {
826                                 rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>;
827                         };
828                         spi1_cs0: spi1-cs0 {
829                                 rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>;
830                         };
831                         spi1_rx: spi1-rx {
832                                 rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>;
833                         };
834                         spi1_tx: spi1-tx {
835                                 rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>;
836                         };
837                 };
838
839                 spi2 {
840                         spi2_cs1: spi2-cs1 {
841                                 rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>;
842                         };
843                         spi2_clk: spi2-clk {
844                                 rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>;
845                         };
846                         spi2_cs0: spi2-cs0 {
847                                 rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>;
848                         };
849                         spi2_rx: spi2-rx {
850                                 rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>;
851                         };
852                         spi2_tx: spi2-tx {
853                                 rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>;
854                         };
855                 };
856
857                 uart0 {
858                         uart0_xfer: uart0-xfer {
859                                 rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>,
860                                                 <4 17 RK_FUNC_1 &pcfg_pull_none>;
861                         };
862
863                         uart0_cts: uart0-cts {
864                                 rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_none>;
865                         };
866
867                         uart0_rts: uart0-rts {
868                                 rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>;
869                         };
870                 };
871
872                 uart1 {
873                         uart1_xfer: uart1-xfer {
874                                 rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>,
875                                                 <5 9 RK_FUNC_1 &pcfg_pull_none>;
876                         };
877
878                         uart1_cts: uart1-cts {
879                                 rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_none>;
880                         };
881
882                         uart1_rts: uart1-rts {
883                                 rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>;
884                         };
885                 };
886
887                 uart2 {
888                         uart2_xfer: uart2-xfer {
889                                 rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>,
890                                                 <7 23 RK_FUNC_1 &pcfg_pull_none>;
891                         };
892                         /* no rts / cts for uart2 */
893                 };
894
895                 uart3 {
896                         uart3_xfer: uart3-xfer {
897                                 rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>,
898                                                 <7 8 RK_FUNC_1 &pcfg_pull_none>;
899                         };
900
901                         uart3_cts: uart3-cts {
902                                 rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_none>;
903                         };
904
905                         uart3_rts: uart3-rts {
906                                 rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>;
907                         };
908                 };
909
910                 uart4 {
911                         uart4_xfer: uart4-xfer {
912                                 rockchip,pins = <5 12 3 &pcfg_pull_up>,
913                                                 <5 13 3 &pcfg_pull_none>;
914                         };
915
916                         uart4_cts: uart4-cts {
917                                 rockchip,pins = <5 14 3 &pcfg_pull_none>;
918                         };
919
920                         uart4_rts: uart4-rts {
921                                 rockchip,pins = <5 15 3 &pcfg_pull_none>;
922                         };
923                 };
924
925                 pwm0 {
926                         pwm0_pin: pwm0-pin {
927                                 rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;
928                         };
929                 };
930
931                 pwm1 {
932                         pwm1_pin: pwm1-pin {
933                                 rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>;
934                         };
935                 };
936
937                 pwm2 {
938                         pwm2_pin: pwm2-pin {
939                                 rockchip,pins = <7 22 3 &pcfg_pull_none>;
940                         };
941                 };
942
943                 pwm3 {
944                         pwm3_pin: pwm3-pin {
945                                 rockchip,pins = <7 23 3 &pcfg_pull_none>;
946                         };
947                 };
948         };
949 };