]> git.sur5r.net Git - u-boot/blob - arch/arm/dts/rk3288.dtsi
Merge tag 'signed-efi-next' of git://github.com/agraf/u-boot
[u-boot] / arch / arm / dts / rk3288.dtsi
1 /*
2  * SPDX-License-Identifier:     GPL-2.0+
3  */
4
5 #include <dt-bindings/gpio/gpio.h>
6 #include <dt-bindings/interrupt-controller/irq.h>
7 #include <dt-bindings/interrupt-controller/arm-gic.h>
8 #include <dt-bindings/pinctrl/rockchip.h>
9 #include <dt-bindings/clock/rk3288-cru.h>
10 #include <dt-bindings/power-domain/rk3288.h>
11 #include <dt-bindings/thermal/thermal.h>
12 #include <dt-bindings/video/rk3288.h>
13 #include "skeleton.dtsi"
14
15 / {
16         compatible = "rockchip,rk3288";
17
18         interrupt-parent = <&gic>;
19         aliases {
20                 gpio0 = &gpio0;
21                 gpio1 = &gpio1;
22                 gpio2 = &gpio2;
23                 gpio3 = &gpio3;
24                 gpio4 = &gpio4;
25                 gpio5 = &gpio5;
26                 gpio6 = &gpio6;
27                 gpio7 = &gpio7;
28                 gpio8 = &gpio8;
29                 i2c0 = &i2c0;
30                 i2c1 = &i2c1;
31                 i2c2 = &i2c2;
32                 i2c3 = &i2c3;
33                 i2c4 = &i2c4;
34                 i2c5 = &i2c5;
35                 mmc0 = &emmc;
36                 mmc1 = &sdmmc;
37                 mmc2 = &sdio0;
38                 mmc3 = &sdio1;
39                 mshc0 = &emmc;
40                 mshc1 = &sdmmc;
41                 mshc2 = &sdio0;
42                 mshc3 = &sdio1;
43                 serial0 = &uart0;
44                 serial1 = &uart1;
45                 serial2 = &uart2;
46                 serial3 = &uart3;
47                 serial4 = &uart4;
48                 spi0 = &spi0;
49                 spi1 = &spi1;
50                 spi2 = &spi2;
51         };
52
53         cpus {
54                 #address-cells = <1>;
55                 #size-cells = <0>;
56                 enable-method = "rockchip,rk3066-smp";
57                 rockchip,pmu = <&pmu>;
58
59                 cpu0: cpu@500 {
60                         device_type = "cpu";
61                         compatible = "arm,cortex-a12";
62                         reg = <0x500>;
63                         operating-points = <
64                                 /* KHz    uV */
65                                 1800000 1400000
66                                 1704000 1350000
67                                 1608000 1300000
68                                 1512000 1250000
69                                 1416000 1200000
70                                 1200000 1100000
71                                 1008000 1050000
72                                  816000 1000000
73                                  696000  950000
74                                  600000  900000
75                                  408000  900000
76                                  216000  900000
77                                  126000  900000
78                         >;
79                         #cooling-cells = <2>; /* min followed by max */
80                         clock-latency = <40000>;
81                         clocks = <&cru ARMCLK>;
82                         resets = <&cru SRST_CORE0>;
83                 };
84                 cpu@501 {
85                         device_type = "cpu";
86                         compatible = "arm,cortex-a12";
87                         reg = <0x501>;
88                         resets = <&cru SRST_CORE1>;
89                 };
90                 cpu@502 {
91                         device_type = "cpu";
92                         compatible = "arm,cortex-a12";
93                         reg = <0x502>;
94                         resets = <&cru SRST_CORE2>;
95                 };
96                 cpu@503 {
97                         device_type = "cpu";
98                         compatible = "arm,cortex-a12";
99                         reg = <0x503>;
100                         resets = <&cru SRST_CORE3>;
101                 };
102         };
103
104         amba {
105                 compatible = "arm,amba-bus";
106                 #address-cells = <1>;
107                 #size-cells = <1>;
108                 ranges;
109
110                 dmac_peri: dma-controller@ff250000 {
111                         compatible = "arm,pl330", "arm,primecell";
112                         broken-no-flushp;
113                         reg = <0xff250000 0x4000>;
114                         interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
115                                      <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
116                         #dma-cells = <1>;
117                         clocks = <&cru ACLK_DMAC2>;
118                         clock-names = "apb_pclk";
119                 };
120
121                 dmac_bus_ns: dma-controller@ff600000 {
122                         compatible = "arm,pl330", "arm,primecell";
123                         broken-no-flushp;
124                         reg = <0xff600000 0x4000>;
125                         interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
126                                      <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
127                         #dma-cells = <1>;
128                         clocks = <&cru ACLK_DMAC1>;
129                         clock-names = "apb_pclk";
130                         status = "disabled";
131                 };
132
133                 dmac_bus_s: dma-controller@ffb20000 {
134                         compatible = "arm,pl330", "arm,primecell";
135                         broken-no-flushp;
136                         reg = <0xffb20000 0x4000>;
137                         interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
138                                      <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
139                         #dma-cells = <1>;
140                         clocks = <&cru ACLK_DMAC1>;
141                         clock-names = "apb_pclk";
142                 };
143         };
144
145         xin24m: oscillator {
146                 compatible = "fixed-clock";
147                 clock-frequency = <24000000>;
148                 clock-output-names = "xin24m";
149                 #clock-cells = <0>;
150         };
151
152         timer {
153                 arm,use-physical-timer;
154                 compatible = "arm,armv7-timer";
155                 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
156                              <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
157                              <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
158                              <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
159                 clock-frequency = <24000000>;
160                 always-on;
161         };
162
163         display-subsystem {
164                 compatible = "rockchip,display-subsystem";
165                 ports = <&vopl_out>, <&vopb_out>;
166         };
167
168         sdmmc: dwmmc@ff0c0000 {
169                 compatible = "rockchip,rk3288-dw-mshc";
170                 max-frequency = <150000000>;
171                 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
172                          <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
173                 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
174                 fifo-depth = <0x100>;
175                 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
176                 reg = <0xff0c0000 0x4000>;
177                 status = "disabled";
178         };
179
180         sdio0: dwmmc@ff0d0000 {
181                 compatible = "rockchip,rk3288-dw-mshc";
182                 max-frequency = <150000000>;
183                 clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
184                          <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
185                 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
186                 fifo-depth = <0x100>;
187                 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
188                 reg = <0xff0d0000 0x4000>;
189                 status = "disabled";
190         };
191
192         sdio1: dwmmc@ff0e0000 {
193                 compatible = "rockchip,rk3288-dw-mshc";
194                 max-frequency = <150000000>;
195                 clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>,
196                          <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>;
197                 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
198                 fifo-depth = <0x100>;
199                 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
200                 reg = <0xff0e0000 0x4000>;
201                 status = "disabled";
202         };
203
204         emmc: dwmmc@ff0f0000 {
205                 compatible = "rockchip,rk3288-dw-mshc";
206                 max-frequency = <150000000>;
207                 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
208                          <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
209                 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
210                 fifo-depth = <0x100>;
211                 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
212                 reg = <0xff0f0000 0x4000>;
213                 status = "disabled";
214         };
215
216         saradc: saradc@ff100000 {
217                 compatible = "rockchip,saradc";
218                 reg = <0xff100000 0x100>;
219                 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
220                 #io-channel-cells = <1>;
221                 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
222                 clock-names = "saradc", "apb_pclk";
223                 status = "disabled";
224         };
225
226         spi0: spi@ff110000 {
227                 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
228                 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
229                 clock-names = "spiclk", "apb_pclk";
230                 dmas = <&dmac_peri 11>, <&dmac_peri 12>;
231                 dma-names = "tx", "rx";
232                 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
233                 pinctrl-names = "default";
234                 pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
235                 reg = <0xff110000 0x1000>;
236                 #address-cells = <1>;
237                 #size-cells = <0>;
238                 status = "disabled";
239         };
240
241         spi1: spi@ff120000 {
242                 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
243                 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
244                 clock-names = "spiclk", "apb_pclk";
245                 dmas = <&dmac_peri 13>, <&dmac_peri 14>;
246                 dma-names = "tx", "rx";
247                 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
248                 pinctrl-names = "default";
249                 pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
250                 reg = <0xff120000 0x1000>;
251                 #address-cells = <1>;
252                 #size-cells = <0>;
253                 status = "disabled";
254         };
255
256         spi2: spi@ff130000 {
257                 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
258                 clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
259                 clock-names = "spiclk", "apb_pclk";
260                 dmas = <&dmac_peri 15>, <&dmac_peri 16>;
261                 dma-names = "tx", "rx";
262                 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
263                 pinctrl-names = "default";
264                 pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
265                 reg = <0xff130000 0x1000>;
266                 #address-cells = <1>;
267                 #size-cells = <0>;
268                 status = "disabled";
269         };
270
271         i2c1: i2c@ff140000 {
272                 compatible = "rockchip,rk3288-i2c";
273                 reg = <0xff140000 0x1000>;
274                 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
275                 #address-cells = <1>;
276                 #size-cells = <0>;
277                 clock-names = "i2c";
278                 clocks = <&cru PCLK_I2C1>;
279                 pinctrl-names = "default";
280                 pinctrl-0 = <&i2c1_xfer>;
281                 status = "disabled";
282         };
283
284         i2c3: i2c@ff150000 {
285                 compatible = "rockchip,rk3288-i2c";
286                 reg = <0xff150000 0x1000>;
287                 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
288                 #address-cells = <1>;
289                 #size-cells = <0>;
290                 clock-names = "i2c";
291                 clocks = <&cru PCLK_I2C3>;
292                 pinctrl-names = "default";
293                 pinctrl-0 = <&i2c3_xfer>;
294                 status = "disabled";
295         };
296
297         i2c4: i2c@ff160000 {
298                 compatible = "rockchip,rk3288-i2c";
299                 reg = <0xff160000 0x1000>;
300                 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
301                 #address-cells = <1>;
302                 #size-cells = <0>;
303                 clock-names = "i2c";
304                 clocks = <&cru PCLK_I2C4>;
305                 pinctrl-names = "default";
306                 pinctrl-0 = <&i2c4_xfer>;
307                 status = "disabled";
308         };
309
310         i2c5: i2c@ff170000 {
311                 compatible = "rockchip,rk3288-i2c";
312                 reg = <0xff170000 0x1000>;
313                 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
314                 #address-cells = <1>;
315                 #size-cells = <0>;
316                 clock-names = "i2c";
317                 clocks = <&cru PCLK_I2C5>;
318                 pinctrl-names = "default";
319                 pinctrl-0 = <&i2c5_xfer>;
320                 status = "disabled";
321         };
322         uart0: serial@ff180000 {
323                 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
324                 reg = <0xff180000 0x100>;
325                 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
326                 reg-shift = <2>;
327                 reg-io-width = <4>;
328                 clock-frequency = <24000000>;
329                 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
330                 clock-names = "baudclk", "apb_pclk";
331                 pinctrl-names = "default";
332                 pinctrl-0 = <&uart0_xfer>;
333                 status = "disabled";
334         };
335
336         uart1: serial@ff190000 {
337                 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
338                 reg = <0xff190000 0x100>;
339                 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
340                 reg-shift = <2>;
341                 reg-io-width = <4>;
342                 clock-frequency = <24000000>;
343                 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
344                 clock-names = "baudclk", "apb_pclk";
345                 pinctrl-names = "default";
346                 pinctrl-0 = <&uart1_xfer>;
347                 status = "disabled";
348         };
349
350         uart2: serial@ff690000 {
351                 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
352                 reg = <0xff690000 0x100>;
353                 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
354                 reg-shift = <2>;
355                 reg-io-width = <4>;
356                 clock-frequency = <24000000>;
357                 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
358                 clock-names = "baudclk", "apb_pclk";
359                 pinctrl-names = "default";
360                 pinctrl-0 = <&uart2_xfer>;
361                 status = "disabled";
362         };
363         uart3: serial@ff1b0000 {
364                 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
365                 reg = <0xff1b0000 0x100>;
366                 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
367                 reg-shift = <2>;
368                 reg-io-width = <4>;
369                 clock-frequency = <24000000>;
370                 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
371                 clock-names = "baudclk", "apb_pclk";
372                 pinctrl-names = "default";
373                 pinctrl-0 = <&uart3_xfer>;
374                 status = "disabled";
375         };
376
377         uart4: serial@ff1c0000 {
378                 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
379                 reg = <0xff1c0000 0x100>;
380                 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
381                 reg-shift = <2>;
382                 reg-io-width = <4>;
383                 clock-frequency = <24000000>;
384                 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
385                 clock-names = "baudclk", "apb_pclk";
386                 pinctrl-names = "default";
387                 pinctrl-0 = <&uart4_xfer>;
388                 status = "disabled";
389         };
390         thermal: thermal-zones {
391                 #include "rk3288-thermal.dtsi"
392         };
393
394         tsadc: tsadc@ff280000 {
395                 compatible = "rockchip,rk3288-tsadc";
396                 reg = <0xff280000 0x100>;
397                 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
398                 clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
399                 clock-names = "tsadc", "apb_pclk";
400                 resets = <&cru SRST_TSADC>;
401                 reset-names = "tsadc-apb";
402                 pinctrl-names = "otp_out";
403                 pinctrl-0 = <&otp_out>;
404                 #thermal-sensor-cells = <1>;
405                 hw-shut-temp = <125000>;
406                 status = "disabled";
407         };
408
409         gmac: ethernet@ff290000 {
410                 compatible = "rockchip,rk3288-gmac";
411                 reg = <0xff290000 0x10000>;
412                 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
413                 interrupt-names = "macirq";
414                 rockchip,grf = <&grf>;
415                 clocks = <&cru SCLK_MAC>,
416                         <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
417                         <&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
418                         <&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
419                 clock-names = "stmmaceth",
420                         "mac_clk_rx", "mac_clk_tx",
421                         "clk_mac_ref", "clk_mac_refout",
422                         "aclk_mac", "pclk_mac";
423         };
424
425         usb_host0_ehci: usb@ff500000 {
426                 compatible = "generic-ehci";
427                 reg = <0xff500000 0x100>;
428                 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
429                 clocks = <&cru HCLK_USBHOST0>;
430                 clock-names = "usbhost";
431                 phys = <&usbphy1>;
432                 phy-names = "usb";
433                 status = "disabled";
434         };
435
436         /* NOTE: ohci@ff520000 doesn't actually work on hardware */
437
438         usb_host1: usb@ff540000 {
439                 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
440                                 "snps,dwc2";
441                 reg = <0xff540000 0x40000>;
442                 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
443                 clocks = <&cru HCLK_USBHOST1>;
444                 clock-names = "otg";
445                 phys = <&usbphy2>;
446                 phy-names = "usb2-phy";
447                 status = "disabled";
448         };
449
450         usb_otg: usb@ff580000 {
451                 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
452                                 "snps,dwc2";
453                 reg = <0xff580000 0x40000>;
454                 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
455                 clocks = <&cru HCLK_OTG0>;
456                 clock-names = "otg";
457                 dr_mode = "otg";
458                 phys = <&usbphy0>;
459                 phy-names = "usb2-phy";
460                 status = "disabled";
461         };
462
463         usb_hsic: usb@ff5c0000 {
464                 compatible = "generic-ehci";
465                 reg = <0xff5c0000 0x100>;
466                 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
467                 clocks = <&cru HCLK_HSIC>;
468                 clock-names = "usbhost";
469                 status = "disabled";
470         };
471
472         dmc: dmc@ff610000 {
473                 u-boot,dm-pre-reloc;
474                 compatible = "rockchip,rk3288-dmc", "syscon";
475                 rockchip,cru = <&cru>;
476                 rockchip,grf = <&grf>;
477                 rockchip,pmu = <&pmu>;
478                 rockchip,sgrf = <&sgrf>;
479                 rockchip,noc = <&noc>;
480                 reg = <0xff610000 0x3fc
481                        0xff620000 0x294
482                        0xff630000 0x3fc
483                        0xff640000 0x294>;
484                 rockchip,sram = <&ddr_sram>;
485                 clocks = <&cru PCLK_DDRUPCTL0>, <&cru PCLK_PUBL0>,
486                          <&cru PCLK_DDRUPCTL1>, <&cru PCLK_PUBL1>,
487                          <&cru ARMCLK>;
488                 clock-names = "pclk_ddrupctl0", "pclk_publ0",
489                               "pclk_ddrupctl1", "pclk_publ1",
490                               "arm_clk";
491         };
492
493         i2c0: i2c@ff650000 {
494                 compatible = "rockchip,rk3288-i2c";
495                 reg = <0xff650000 0x1000>;
496                 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
497                 #address-cells = <1>;
498                 #size-cells = <0>;
499                 clock-names = "i2c";
500                 clocks = <&cru PCLK_I2C0>;
501                 pinctrl-names = "default";
502                 pinctrl-0 = <&i2c0_xfer>;
503                 status = "disabled";
504         };
505
506         i2c2: i2c@ff660000 {
507                 compatible = "rockchip,rk3288-i2c";
508                 reg = <0xff660000 0x1000>;
509                 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
510                 #address-cells = <1>;
511                 #size-cells = <0>;
512                 clock-names = "i2c";
513                 clocks = <&cru PCLK_I2C2>;
514                 pinctrl-names = "default";
515                 pinctrl-0 = <&i2c2_xfer>;
516                 status = "disabled";
517         };
518
519         pwm0: pwm@ff680000 {
520                 compatible = "rockchip,rk3288-pwm";
521                 reg = <0xff680000 0x10>;
522                 #pwm-cells = <3>;
523                 pinctrl-names = "default";
524                 pinctrl-0 = <&pwm0_pin>;
525                 clocks = <&cru PCLK_PWM>;
526                 clock-names = "pwm";
527                 rockchip,grf = <&grf>;
528                 status = "disabled";
529         };
530
531         pwm1: pwm@ff680010 {
532                 compatible = "rockchip,rk3288-pwm";
533                 reg = <0xff680010 0x10>;
534                 #pwm-cells = <3>;
535                 pinctrl-names = "default";
536                 pinctrl-0 = <&pwm1_pin>;
537                 clocks = <&cru PCLK_PWM>;
538                 clock-names = "pwm";
539                 rockchip,grf = <&grf>;
540                 status = "disabled";
541         };
542
543         pwm2: pwm@ff680020 {
544                 compatible = "rockchip,rk3288-pwm";
545                 reg = <0xff680020 0x10>;
546                 #pwm-cells = <3>;
547                 pinctrl-names = "default";
548                 pinctrl-0 = <&pwm2_pin>;
549                 clocks = <&cru PCLK_PWM>;
550                 clock-names = "pwm";
551                 rockchip,grf = <&grf>;
552                 status = "disabled";
553         };
554
555         pwm3: pwm@ff680030 {
556                 compatible = "rockchip,rk3288-pwm";
557                 reg = <0xff680030 0x10>;
558                 #pwm-cells = <2>;
559                 pinctrl-names = "default";
560                 pinctrl-0 = <&pwm3_pin>;
561                 clocks = <&cru PCLK_PWM>;
562                 clock-names = "pwm";
563                 rockchip,grf = <&grf>;
564                 status = "disabled";
565         };
566
567         bus_intmem@ff700000 {
568                 compatible = "mmio-sram";
569                 reg = <0xff700000 0x18000>;
570                 #address-cells = <1>;
571                 #size-cells = <1>;
572                 ranges = <0 0xff700000 0x18000>;
573                 smp-sram@0 {
574                         compatible = "rockchip,rk3066-smp-sram";
575                         reg = <0x00 0x10>;
576                 };
577                 ddr_sram: ddr-sram@1000 {
578                         compatible = "rockchip,rk3288-ddr-sram";
579                         reg = <0x1000 0x4000>;
580                 };
581         };
582
583         sram@ff720000 {
584                 compatible = "rockchip,rk3288-pmu-sram", "mmio-sram";
585                 reg = <0xff720000 0x1000>;
586         };
587
588         pmu: power-management@ff730000 {
589                 u-boot,dm-pre-reloc;
590                 compatible = "rockchip,rk3288-pmu", "syscon";
591                 reg = <0xff730000 0x100>;
592         };
593
594         sgrf: syscon@ff740000 {
595                 u-boot,dm-pre-reloc;
596                 compatible = "rockchip,rk3288-sgrf", "syscon";
597                 reg = <0xff740000 0x1000>;
598         };
599
600         cru: clock-controller@ff760000 {
601                 compatible = "rockchip,rk3288-cru";
602                 reg = <0xff760000 0x1000>;
603                 rockchip,grf = <&grf>;
604                 u-boot,dm-pre-reloc;
605                 #clock-cells = <1>;
606                 #reset-cells = <1>;
607                 assigned-clocks = <&cru PLL_GPLL>, <&cru PLL_CPLL>,
608                                   <&cru PLL_NPLL>, <&cru ACLK_CPU>,
609                                   <&cru HCLK_CPU>, <&cru PCLK_CPU>,
610                                   <&cru ACLK_PERI>, <&cru HCLK_PERI>,
611                                   <&cru PCLK_PERI>;
612                 assigned-clock-rates = <594000000>, <400000000>,
613                                        <500000000>, <300000000>,
614                                        <150000000>, <75000000>,
615                                        <300000000>, <150000000>,
616                                        <75000000>;
617         };
618
619         grf: syscon@ff770000 {
620                 u-boot,dm-pre-reloc;
621                 compatible = "rockchip,rk3288-grf", "syscon";
622                 reg = <0xff770000 0x1000>;
623         };
624
625         wdt: watchdog@ff800000 {
626                 compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
627                 reg = <0xff800000 0x100>;
628                 clocks = <&cru PCLK_WDT>;
629                 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
630                 status = "disabled";
631         };
632
633         spdif: sound@ff88b0000 {
634                 compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
635                 reg = <0xff8b0000 0x10000>;
636                 #sound-dai-cells = <0>;
637                 clock-names = "hclk", "mclk";
638                 clocks = <&cru HCLK_SPDIF8CH>, <&cru SCLK_SPDIF8CH>;
639                 dmas = <&dmac_bus_s 3>;
640                 dma-names = "tx";
641                 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
642                 pinctrl-names = "default";
643                 pinctrl-0 = <&spdif_tx>;
644                 rockchip,grf = <&grf>;
645                 status = "disabled";
646         };
647
648         i2s: i2s@ff890000 {
649                 compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
650                 reg = <0xff890000 0x10000>;
651                 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
652                 #address-cells = <1>;
653                 #size-cells = <0>;
654                 dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
655                 dma-names = "tx", "rx";
656                 clock-names = "i2s_hclk", "i2s_clk";
657                 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
658                 pinctrl-names = "default";
659                 pinctrl-0 = <&i2s0_bus>;
660                 status = "disabled";
661         };
662
663         vopb: vop@ff930000 {
664                 u-boot,dm-pre-reloc;
665                 compatible = "rockchip,rk3288-vop";
666                 reg = <0xff930000 0x19c>;
667                 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
668                 clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
669                 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
670                 resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
671                 reset-names = "axi", "ahb", "dclk";
672                 iommus = <&vopb_mmu>;
673                 power-domains = <&power RK3288_PD_VIO>;
674                 status = "disabled";
675                 vopb_out: port {
676                         #address-cells = <1>;
677                         #size-cells = <0>;
678                         vopb_out_edp: endpoint@0 {
679                                 reg = <0>;
680                                 remote-endpoint = <&edp_in_vopb>;
681                         };
682                         vopb_out_hdmi: endpoint@1 {
683                                 reg = <1>;
684                                 remote-endpoint = <&hdmi_in_vopb>;
685                         };
686                         vopb_out_lvds: endpoint@2 {
687                                 reg = <2>;
688                                 remote-endpoint = <&lvds_in_vopb>;
689                         };
690                         vopb_out_mipi: endpoint@3 {
691                                 reg = <3>;
692                                 remote-endpoint = <&mipi_in_vopb>;
693                         };
694
695                 };
696         };
697
698         vopb_mmu: iommu@ff930300 {
699                 compatible = "rockchip,iommu";
700                 reg = <0xff930300 0x100>;
701                 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
702                 interrupt-names = "vopb_mmu";
703                 power-domains = <&power RK3288_PD_VIO>;
704                 #iommu-cells = <0>;
705                 status = "disabled";
706         };
707
708         vopl: vop@ff940000 {
709                 compatible = "rockchip,rk3288-vop";
710                 reg = <0xff940000 0x19c>;
711                 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
712                 clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
713                 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
714                 resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
715                 reset-names = "axi", "ahb", "dclk";
716                 iommus = <&vopl_mmu>;
717                 power-domains = <&power RK3288_PD_VIO>;
718                 status = "disabled";
719                 u-boot,dm-pre-reloc;
720                 vopl_out: port {
721                         #address-cells = <1>;
722                         #size-cells = <0>;
723                         vopl_out_edp: endpoint@0 {
724                                 reg = <0>;
725                                 remote-endpoint = <&edp_in_vopl>;
726                         };
727                         vopl_out_hdmi: endpoint@1 {
728                                 reg = <1>;
729                                 remote-endpoint = <&hdmi_in_vopl>;
730                         };
731                         vopl_out_lvds: endpoint@2 {
732                                 reg = <2>;
733                                 remote-endpoint = <&lvds_in_vopl>;
734                         };
735                         vopl_out_mipi: endpoint@3 {
736                                 reg = <3>;
737                                 remote-endpoint = <&mipi_in_vopl>;
738                         };
739
740                 };
741         };
742
743         vopl_mmu: iommu@ff940300 {
744                 compatible = "rockchip,iommu";
745                 reg = <0xff940300 0x100>;
746                 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
747                 interrupt-names = "vopl_mmu";
748                 power-domains = <&power RK3288_PD_VIO>;
749                 #iommu-cells = <0>;
750                 status = "disabled";
751         };
752
753         edp: edp@ff970000 {
754                 compatible = "rockchip,rk3288-edp";
755                 reg = <0xff970000 0x4000>;
756                 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
757                 clocks = <&cru SCLK_EDP>, <&cru SCLK_EDP_24M>, <&cru PCLK_EDP_CTRL>;
758                 rockchip,grf = <&grf>;
759                 clock-names = "clk_edp", "clk_edp_24m", "pclk_edp";
760                 resets = <&cru 111>;
761                 reset-names = "edp";
762                 power-domains = <&power RK3288_PD_VIO>;
763                 status = "disabled";
764                 ports {
765                         edp_in: port {
766                                 #address-cells = <1>;
767                                 #size-cells = <0>;
768                                 edp_in_vopb: endpoint@0 {
769                                         reg = <0>;
770                                         remote-endpoint = <&vopb_out_edp>;
771                                 };
772                                 edp_in_vopl: endpoint@1 {
773                                         reg = <1>;
774                                         remote-endpoint = <&vopl_out_edp>;
775                                 };
776                         };
777                 };
778         };
779
780         hdmi: hdmi@ff980000 {
781                 compatible = "rockchip,rk3288-dw-hdmi";
782                 reg = <0xff980000 0x20000>;
783                 reg-io-width = <4>;
784                 ddc-i2c-bus = <&i2c5>;
785                 rockchip,grf = <&grf>;
786                 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
787                 clocks = <&cru  PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
788                 clock-names = "iahb", "isfr";
789                 status = "disabled";
790                 ports {
791                         hdmi_in: port {
792                                 #address-cells = <1>;
793                                 #size-cells = <0>;
794                                 hdmi_in_vopb: endpoint@0 {
795                                         reg = <0>;
796                                         remote-endpoint = <&vopb_out_hdmi>;
797                                 };
798                                 hdmi_in_vopl: endpoint@1 {
799                                         reg = <1>;
800                                         remote-endpoint = <&vopl_out_hdmi>;
801                                 };
802                         };
803                 };
804         };
805
806         lvds: lvds@ff96c000 {
807                 compatible = "rockchip,rk3288-lvds";
808                 reg = <0xff96c000 0x4000>;
809                 clocks = <&cru PCLK_LVDS_PHY>;
810                 clock-names = "pclk_lvds";
811                 pinctrl-names = "default";
812                 pinctrl-0 = <&lcdc0_ctl>;
813                 rockchip,grf = <&grf>;
814                 status = "disabled";
815                 ports {
816                         #address-cells = <1>;
817                         #size-cells = <0>;
818                         lvds_in: port@0 {
819                                 reg = <0>;
820                                 #address-cells = <1>;
821                                 #size-cells = <0>;
822                                 lvds_in_vopb: endpoint@0 {
823                                         reg = <0>;
824                                         remote-endpoint = <&vopb_out_lvds>;
825                                 };
826                                 lvds_in_vopl: endpoint@1 {
827                                         reg = <1>;
828                                         remote-endpoint = <&vopl_out_lvds>;
829                                 };
830                         };
831                 };
832         };
833
834         mipi_dsi0: mipi@ff960000 {
835                 compatible = "rockchip,rk3288_mipi_dsi";
836                 reg = <0xff960000 0x4000>;
837                 clocks = <&cru PCLK_MIPI_DSI0>;
838                 clock-names = "pclk_mipi";
839                 /*pinctrl-names = "default";
840                 pinctrl-0 = <&lcdc0_ctl>;*/
841                 rockchip,grf = <&grf>;
842                 #address-cells = <1>;
843                 #size-cells = <0>;
844                 status = "disabled";
845                 ports {
846                         #address-cells = <1>;
847                         #size-cells = <0>;
848                         reg = <1>;
849                         mipi_in: port {
850                                 #address-cells = <1>;
851                                 #size-cells = <0>;
852                                 mipi_in_vopb: endpoint@0 {
853                                         reg = <0>;
854                                         remote-endpoint = <&vopb_out_mipi>;
855                                 };
856                                 mipi_in_vopl: endpoint@1 {
857                                         reg = <1>;
858                                         remote-endpoint = <&vopl_out_mipi>;
859                                 };
860                         };
861                 };
862         };
863
864         hdmi_audio: hdmi_audio {
865                 compatible = "rockchip,rk3288-hdmi-audio";
866                 i2s-controller = <&i2s>;
867                 status = "disable";
868         };
869
870         vpu: video-codec@ff9a0000 {
871                 compatible = "rockchip,rk3288-vpu";
872                 reg = <0xff9a0000 0x800>;
873                 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
874                                 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
875                 interrupt-names = "vepu", "vdpu";
876                 clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
877                 clock-names = "aclk_vcodec", "hclk_vcodec";
878                 power-domains = <&power RK3288_PD_VIDEO>;
879                 iommus = <&vpu_mmu>;
880         };
881
882         vpu_mmu: iommu@ff9a0800 {
883                 compatible = "rockchip,iommu";
884                 reg = <0xff9a0800 0x100>;
885                 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
886                 interrupt-names = "vpu_mmu";
887                 power-domains = <&power RK3288_PD_VIDEO>;
888                 #iommu-cells = <0>;
889         };
890
891         gpu: gpu@ffa30000 {
892                 compatible = "arm,malit764",
893                              "arm,malit76x",
894                              "arm,malit7xx",
895                              "arm,mali-midgard";
896                 reg = <0xffa30000 0x10000>;
897                 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
898                              <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
899                              <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
900                 interrupt-names = "JOB", "MMU", "GPU";
901                 clocks = <&cru ACLK_GPU>;
902                 clock-names = "aclk_gpu";
903                 operating-points = <
904                         /* KHz uV */
905                         100000 950000
906                         200000 950000
907                         300000 1000000
908                         400000 1100000
909                         /* 500000 1200000 - See crosbug.com/p/33857 */
910                         600000 1250000
911                 >;
912                 power-domains = <&power RK3288_PD_GPU>;
913                 status = "disabled";
914         };
915
916         noc: syscon@ffac0000 {
917                 u-boot,dm-pre-reloc;
918                 compatible = "rockchip,rk3288-noc", "syscon";
919                 reg = <0xffac0000 0x2000>;
920         };
921
922         efuse: efuse@ffb40000 {
923                 compatible = "rockchip,rk3288-efuse";
924                 reg = <0xffb40000 0x10000>;
925                 status = "disabled";
926         };
927
928         gic: interrupt-controller@ffc01000 {
929                 compatible = "arm,gic-400";
930                 interrupt-controller;
931                 #interrupt-cells = <3>;
932                 #address-cells = <0>;
933
934                 reg = <0xffc01000 0x1000>,
935                       <0xffc02000 0x1000>,
936                       <0xffc04000 0x2000>,
937                       <0xffc06000 0x2000>;
938                 interrupts = <GIC_PPI 9 0xf04>;
939         };
940
941         cpuidle: cpuidle {
942                 compatible = "rockchip,rk3288-cpuidle";
943         };
944
945         usbphy: phy {
946                 compatible = "rockchip,rk3288-usb-phy";
947                 rockchip,grf = <&grf>;
948                 #address-cells = <1>;
949                 #size-cells = <0>;
950                 status = "disabled";
951
952                 usbphy0: usb-phy0 {
953                         #phy-cells = <0>;
954                         reg = <0x320>;
955                         clocks = <&cru SCLK_OTGPHY0>;
956                         clock-names = "phyclk";
957                 };
958
959                 usbphy1: usb-phy1 {
960                         #phy-cells = <0>;
961                         reg = <0x334>;
962                         clocks = <&cru SCLK_OTGPHY1>;
963                         clock-names = "phyclk";
964                 };
965
966                 usbphy2: usb-phy2 {
967                         #phy-cells = <0>;
968                         reg = <0x348>;
969                         clocks = <&cru SCLK_OTGPHY2>;
970                         clock-names = "phyclk";
971                 };
972         };
973
974         pinctrl: pinctrl {
975                 compatible = "rockchip,rk3288-pinctrl";
976                 rockchip,grf = <&grf>;
977                 rockchip,pmu = <&pmu>;
978                 #address-cells = <1>;
979                 #size-cells = <1>;
980                 ranges;
981
982                 gpio0: gpio0@ff750000 {
983                         compatible = "rockchip,gpio-bank";
984                         reg =   <0xff750000 0x100>;
985                         interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
986                         clocks = <&cru PCLK_GPIO0>;
987
988                         gpio-controller;
989                         #gpio-cells = <2>;
990
991                         interrupt-controller;
992                         #interrupt-cells = <2>;
993                 };
994
995                 gpio1: gpio1@ff780000 {
996                         compatible = "rockchip,gpio-bank";
997                         reg = <0xff780000 0x100>;
998                         interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
999                         clocks = <&cru PCLK_GPIO1>;
1000
1001                         gpio-controller;
1002                         #gpio-cells = <2>;
1003
1004                         interrupt-controller;
1005                         #interrupt-cells = <2>;
1006                 };
1007
1008                 gpio2: gpio2@ff790000 {
1009                         compatible = "rockchip,gpio-bank";
1010                         reg = <0xff790000 0x100>;
1011                         interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
1012                         clocks = <&cru PCLK_GPIO2>;
1013
1014                         gpio-controller;
1015                         #gpio-cells = <2>;
1016
1017                         interrupt-controller;
1018                         #interrupt-cells = <2>;
1019                 };
1020
1021                 gpio3: gpio3@ff7a0000 {
1022                         compatible = "rockchip,gpio-bank";
1023                         reg = <0xff7a0000 0x100>;
1024                         interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
1025                         clocks = <&cru PCLK_GPIO3>;
1026
1027                         gpio-controller;
1028                         #gpio-cells = <2>;
1029
1030                         interrupt-controller;
1031                         #interrupt-cells = <2>;
1032                 };
1033
1034                 gpio4: gpio4@ff7b0000 {
1035                         compatible = "rockchip,gpio-bank";
1036                         reg = <0xff7b0000 0x100>;
1037                         interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
1038                         clocks = <&cru PCLK_GPIO4>;
1039
1040                         gpio-controller;
1041                         #gpio-cells = <2>;
1042
1043                         interrupt-controller;
1044                         #interrupt-cells = <2>;
1045                 };
1046
1047                 gpio5: gpio5@ff7c0000 {
1048                         compatible = "rockchip,gpio-bank";
1049                         reg = <0xff7c0000 0x100>;
1050                         interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1051                         clocks = <&cru PCLK_GPIO5>;
1052
1053                         gpio-controller;
1054                         #gpio-cells = <2>;
1055
1056                         interrupt-controller;
1057                         #interrupt-cells = <2>;
1058                 };
1059
1060                 gpio6: gpio6@ff7d0000 {
1061                         compatible = "rockchip,gpio-bank";
1062                         reg = <0xff7d0000 0x100>;
1063                         interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
1064                         clocks = <&cru PCLK_GPIO6>;
1065
1066                         gpio-controller;
1067                         #gpio-cells = <2>;
1068
1069                         interrupt-controller;
1070                         #interrupt-cells = <2>;
1071                 };
1072
1073                 gpio7: gpio7@ff7e0000 {
1074                         compatible = "rockchip,gpio-bank";
1075                         reg = <0xff7e0000 0x100>;
1076                         interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1077                         clocks = <&cru PCLK_GPIO7>;
1078
1079                         gpio-controller;
1080                         #gpio-cells = <2>;
1081
1082                         interrupt-controller;
1083                         #interrupt-cells = <2>;
1084                 };
1085
1086                 gpio8: gpio8@ff7f0000 {
1087                         compatible = "rockchip,gpio-bank";
1088                         reg = <0xff7f0000 0x100>;
1089                         interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1090                         clocks = <&cru PCLK_GPIO8>;
1091
1092                         gpio-controller;
1093                         #gpio-cells = <2>;
1094
1095                         interrupt-controller;
1096                         #interrupt-cells = <2>;
1097                 };
1098
1099                 pcfg_pull_up: pcfg-pull-up {
1100                         bias-pull-up;
1101                 };
1102
1103                 pcfg_pull_down: pcfg-pull-down {
1104                         bias-pull-down;
1105                 };
1106
1107                 pcfg_pull_none: pcfg-pull-none {
1108                         bias-disable;
1109                 };
1110
1111                 pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1112                         bias-disable;
1113                         drive-strength = <12>;
1114                 };
1115
1116                 sleep {
1117                         global_pwroff: global-pwroff {
1118                                 rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>;
1119                         };
1120
1121                         ddrio_pwroff: ddrio-pwroff {
1122                                 rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
1123                         };
1124
1125                         ddr0_retention: ddr0-retention {
1126                                 rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_up>;
1127                         };
1128
1129                         ddr1_retention: ddr1-retention {
1130                                 rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_up>;
1131                         };
1132                 };
1133
1134                 i2c0 {
1135                         i2c0_xfer: i2c0-xfer {
1136                                 rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,
1137                                                 <0 16 RK_FUNC_1 &pcfg_pull_none>;
1138                         };
1139                 };
1140
1141                 i2c1 {
1142                         i2c1_xfer: i2c1-xfer {
1143                                 rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>,
1144                                                 <8 5 RK_FUNC_1 &pcfg_pull_none>;
1145                         };
1146                 };
1147
1148                 i2c2 {
1149                         i2c2_xfer: i2c2-xfer {
1150                                 rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>,
1151                                                 <6 10 RK_FUNC_1 &pcfg_pull_none>;
1152                         };
1153                 };
1154
1155                 i2c3 {
1156                         i2c3_xfer: i2c3-xfer {
1157                                 rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>,
1158                                                 <2 17 RK_FUNC_1 &pcfg_pull_none>;
1159                         };
1160                 };
1161
1162                 i2c4 {
1163                         i2c4_xfer: i2c4-xfer {
1164                                 rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>,
1165                                                 <7 18 RK_FUNC_1 &pcfg_pull_none>;
1166                         };
1167                 };
1168
1169                 i2c5 {
1170                         i2c5_xfer: i2c5-xfer {
1171                                 rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>,
1172                                                 <7 20 RK_FUNC_1 &pcfg_pull_none>;
1173                         };
1174                 };
1175
1176                 i2s0 {
1177                         i2s0_bus: i2s0-bus {
1178                                 rockchip,pins = <6 0 RK_FUNC_1 &pcfg_pull_none>,
1179                                                 <6 1 RK_FUNC_1 &pcfg_pull_none>,
1180                                                 <6 2 RK_FUNC_1 &pcfg_pull_none>,
1181                                                 <6 3 RK_FUNC_1 &pcfg_pull_none>,
1182                                                 <6 4 RK_FUNC_1 &pcfg_pull_none>,
1183                                                 <6 8 RK_FUNC_1 &pcfg_pull_none>;
1184                         };
1185                 };
1186
1187                 lcdc0 {
1188                         lcdc0_ctl: lcdc0-ctl {
1189                                 rockchip,pins = <1 24 RK_FUNC_1 &pcfg_pull_none>,
1190                                                 <1 25 RK_FUNC_1 &pcfg_pull_none>,
1191                                                 <1 26 RK_FUNC_1 &pcfg_pull_none>,
1192                                                 <1 27 RK_FUNC_1 &pcfg_pull_none>;
1193                         };
1194                 };
1195
1196                 sdmmc {
1197                         sdmmc_clk: sdmmc-clk {
1198                                 rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
1199                         };
1200
1201                         sdmmc_cmd: sdmmc-cmd {
1202                                 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
1203                         };
1204
1205                         sdmmc_cd: sdmcc-cd {
1206                                 rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
1207                         };
1208
1209                         sdmmc_bus1: sdmmc-bus1 {
1210                                 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>;
1211                         };
1212
1213                         sdmmc_bus4: sdmmc-bus4 {
1214                                 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>,
1215                                                 <6 17 RK_FUNC_1 &pcfg_pull_up>,
1216                                                 <6 18 RK_FUNC_1 &pcfg_pull_up>,
1217                                                 <6 19 RK_FUNC_1 &pcfg_pull_up>;
1218                         };
1219                 };
1220
1221                 sdio0 {
1222                         sdio0_bus1: sdio0-bus1 {
1223                                 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>;
1224                         };
1225
1226                         sdio0_bus4: sdio0-bus4 {
1227                                 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>,
1228                                                 <4 21 RK_FUNC_1 &pcfg_pull_up>,
1229                                                 <4 22 RK_FUNC_1 &pcfg_pull_up>,
1230                                                 <4 23 RK_FUNC_1 &pcfg_pull_up>;
1231                         };
1232
1233                         sdio0_cmd: sdio0-cmd {
1234                                 rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>;
1235                         };
1236
1237                         sdio0_clk: sdio0-clk {
1238                                 rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>;
1239                         };
1240
1241                         sdio0_cd: sdio0-cd {
1242                                 rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>;
1243                         };
1244
1245                         sdio0_wp: sdio0-wp {
1246                                 rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>;
1247                         };
1248
1249                         sdio0_pwr: sdio0-pwr {
1250                                 rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>;
1251                         };
1252
1253                         sdio0_bkpwr: sdio0-bkpwr {
1254                                 rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>;
1255                         };
1256
1257                         sdio0_int: sdio0-int {
1258                                 rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>;
1259                         };
1260                 };
1261
1262                 sdio1 {
1263                         sdio1_bus1: sdio1-bus1 {
1264                                 rockchip,pins = <3 24 RK_FUNC_4 &pcfg_pull_up>;
1265                         };
1266
1267                         sdio1_bus4: sdio1-bus4 {
1268                                 rockchip,pins = <3 24 RK_FUNC_4 &pcfg_pull_up>,
1269                                                 <3 25 RK_FUNC_4 &pcfg_pull_up>,
1270                                                 <3 26 RK_FUNC_4 &pcfg_pull_up>,
1271                                                 <3 27 RK_FUNC_4 &pcfg_pull_up>;
1272                         };
1273
1274                         sdio1_cd: sdio1-cd {
1275                                 rockchip,pins = <3 28 RK_FUNC_4 &pcfg_pull_up>;
1276                         };
1277
1278                         sdio1_wp: sdio1-wp {
1279                                 rockchip,pins = <3 29 RK_FUNC_4 &pcfg_pull_up>;
1280                         };
1281
1282                         sdio1_bkpwr: sdio1-bkpwr {
1283                                 rockchip,pins = <3 30 RK_FUNC_4 &pcfg_pull_up>;
1284                         };
1285
1286                         sdio1_int: sdio1-int {
1287                                 rockchip,pins = <3 31 RK_FUNC_4 &pcfg_pull_up>;
1288                         };
1289
1290                         sdio1_cmd: sdio1-cmd {
1291                                 rockchip,pins = <4 6 RK_FUNC_4 &pcfg_pull_up>;
1292                         };
1293
1294                         sdio1_clk: sdio1-clk {
1295                                 rockchip,pins = <4 7 RK_FUNC_4 &pcfg_pull_none>;
1296                         };
1297
1298                         sdio1_pwr: sdio1-pwr {
1299                                 rockchip,pins = <4 9 RK_FUNC_4 &pcfg_pull_up>;
1300                         };
1301                 };
1302
1303                 emmc {
1304                         emmc_clk: emmc-clk {
1305                                 rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>;
1306                         };
1307
1308                         emmc_cmd: emmc-cmd {
1309                                 rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>;
1310                         };
1311
1312                         emmc_pwr: emmc-pwr {
1313                                 rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>;
1314                         };
1315
1316                         emmc_bus1: emmc-bus1 {
1317                                 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>;
1318                         };
1319
1320                         emmc_bus4: emmc-bus4 {
1321                                 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1322                                                 <3 1 RK_FUNC_2 &pcfg_pull_up>,
1323                                                 <3 2 RK_FUNC_2 &pcfg_pull_up>,
1324                                                 <3 3 RK_FUNC_2 &pcfg_pull_up>;
1325                         };
1326
1327                         emmc_bus8: emmc-bus8 {
1328                                 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1329                                                 <3 1 RK_FUNC_2 &pcfg_pull_up>,
1330                                                 <3 2 RK_FUNC_2 &pcfg_pull_up>,
1331                                                 <3 3 RK_FUNC_2 &pcfg_pull_up>,
1332                                                 <3 4 RK_FUNC_2 &pcfg_pull_up>,
1333                                                 <3 5 RK_FUNC_2 &pcfg_pull_up>,
1334                                                 <3 6 RK_FUNC_2 &pcfg_pull_up>,
1335                                                 <3 7 RK_FUNC_2 &pcfg_pull_up>;
1336                         };
1337                 };
1338
1339                 spi0 {
1340                         spi0_clk: spi0-clk {
1341                                 rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>;
1342                         };
1343                         spi0_cs0: spi0-cs0 {
1344                                 rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>;
1345                         };
1346                         spi0_tx: spi0-tx {
1347                                 rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>;
1348                         };
1349                         spi0_rx: spi0-rx {
1350                                 rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>;
1351                         };
1352                         spi0_cs1: spi0-cs1 {
1353                                 rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>;
1354                         };
1355                 };
1356                 spi1 {
1357                         spi1_clk: spi1-clk {
1358                                 rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>;
1359                         };
1360                         spi1_cs0: spi1-cs0 {
1361                                 rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>;
1362                         };
1363                         spi1_rx: spi1-rx {
1364                                 rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>;
1365                         };
1366                         spi1_tx: spi1-tx {
1367                                 rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>;
1368                         };
1369                 };
1370
1371                 spi2 {
1372                         spi2_cs1: spi2-cs1 {
1373                                 rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>;
1374                         };
1375                         spi2_clk: spi2-clk {
1376                                 rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>;
1377                         };
1378                         spi2_cs0: spi2-cs0 {
1379                                 rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>;
1380                         };
1381                         spi2_rx: spi2-rx {
1382                                 rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>;
1383                         };
1384                         spi2_tx: spi2-tx {
1385                                 rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>;
1386                         };
1387                 };
1388
1389                 uart0 {
1390                         uart0_xfer: uart0-xfer {
1391                                 rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>,
1392                                                 <4 17 RK_FUNC_1 &pcfg_pull_none>;
1393                         };
1394
1395                         uart0_cts: uart0-cts {
1396                                 rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_none>;
1397                         };
1398
1399                         uart0_rts: uart0-rts {
1400                                 rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>;
1401                         };
1402                 };
1403
1404                 uart1 {
1405                         uart1_xfer: uart1-xfer {
1406                                 rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>,
1407                                                 <5 9 RK_FUNC_1 &pcfg_pull_none>;
1408                         };
1409
1410                         uart1_cts: uart1-cts {
1411                                 rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_none>;
1412                         };
1413
1414                         uart1_rts: uart1-rts {
1415                                 rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>;
1416                         };
1417                 };
1418
1419                 uart2 {
1420                         uart2_xfer: uart2-xfer {
1421                                 rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>,
1422                                                 <7 23 RK_FUNC_1 &pcfg_pull_none>;
1423                         };
1424                         /* no rts / cts for uart2 */
1425                 };
1426
1427                 uart3 {
1428                         uart3_xfer: uart3-xfer {
1429                                 rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>,
1430                                                 <7 8 RK_FUNC_1 &pcfg_pull_none>;
1431                         };
1432
1433                         uart3_cts: uart3-cts {
1434                                 rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_none>;
1435                         };
1436
1437                         uart3_rts: uart3-rts {
1438                                 rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>;
1439                         };
1440                 };
1441
1442                 uart4 {
1443                         uart4_xfer: uart4-xfer {
1444                                 rockchip,pins = <5 12 3 &pcfg_pull_up>,
1445                                                 <5 13 3 &pcfg_pull_none>;
1446                         };
1447
1448                         uart4_cts: uart4-cts {
1449                                 rockchip,pins = <5 14 3 &pcfg_pull_none>;
1450                         };
1451
1452                         uart4_rts: uart4-rts {
1453                                 rockchip,pins = <5 15 3 &pcfg_pull_none>;
1454                         };
1455                 };
1456
1457                 tsadc {
1458                         otp_out: otp-out {
1459                                 rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>;
1460                         };
1461                 };
1462
1463                 pwm0 {
1464                         pwm0_pin: pwm0-pin {
1465                                 rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;
1466                         };
1467                 };
1468
1469                 pwm1 {
1470                         pwm1_pin: pwm1-pin {
1471                                 rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>;
1472                         };
1473                 };
1474
1475                 pwm2 {
1476                         pwm2_pin: pwm2-pin {
1477                                 rockchip,pins = <7 22 RK_FUNC_3 &pcfg_pull_none>;
1478                         };
1479                 };
1480
1481                 pwm3 {
1482                         pwm3_pin: pwm3-pin {
1483                                 rockchip,pins = <7 23 RK_FUNC_3 &pcfg_pull_none>;
1484                         };
1485                 };
1486
1487                 gmac {
1488                         rgmii_pins: rgmii-pins {
1489                                 rockchip,pins = <3 30 3 &pcfg_pull_none>,
1490                                                 <3 31 3 &pcfg_pull_none>,
1491                                                 <3 26 3 &pcfg_pull_none>,
1492                                                 <3 27 3 &pcfg_pull_none>,
1493                                                 <3 28 3 &pcfg_pull_none_12ma>,
1494                                                 <3 29 3 &pcfg_pull_none_12ma>,
1495                                                 <3 24 3 &pcfg_pull_none_12ma>,
1496                                                 <3 25 3 &pcfg_pull_none_12ma>,
1497                                                 <4 0 3 &pcfg_pull_none>,
1498                                                 <4 5 3 &pcfg_pull_none>,
1499                                                 <4 6 3 &pcfg_pull_none>,
1500                                                 <4 9 3 &pcfg_pull_none_12ma>,
1501                                                 <4 4 3 &pcfg_pull_none_12ma>,
1502                                                 <4 1 3 &pcfg_pull_none>,
1503                                                 <4 3 3 &pcfg_pull_none>;
1504                         };
1505
1506                         rmii_pins: rmii-pins {
1507                                 rockchip,pins = <3 30 3 &pcfg_pull_none>,
1508                                                 <3 31 3 &pcfg_pull_none>,
1509                                                 <3 28 3 &pcfg_pull_none>,
1510                                                 <3 29 3 &pcfg_pull_none>,
1511                                                 <4 0 3 &pcfg_pull_none>,
1512                                                 <4 5 3 &pcfg_pull_none>,
1513                                                 <4 4 3 &pcfg_pull_none>,
1514                                                 <4 1 3 &pcfg_pull_none>,
1515                                                 <4 2 3 &pcfg_pull_none>,
1516                                                 <4 3 3 &pcfg_pull_none>;
1517                         };
1518                 };
1519
1520                 spdif {
1521                         spdif_tx: spdif-tx {
1522                                 rockchip,pins = <RK_GPIO6 11 RK_FUNC_1 &pcfg_pull_none>;
1523                         };
1524                 };
1525         };
1526
1527         power: power-controller {
1528                 compatible = "rockchip,rk3288-power-controller";
1529                 #power-domain-cells = <1>;
1530                 rockchip,pmu = <&pmu>;
1531                 #address-cells = <1>;
1532                 #size-cells = <0>;
1533
1534                 pd_gpu {
1535                         reg = <RK3288_PD_GPU>;
1536                         clocks = <&cru ACLK_GPU>;
1537                 };
1538
1539                 pd_hevc {
1540                         reg = <RK3288_PD_HEVC>;
1541                         clocks = <&cru ACLK_HEVC>,
1542                                  <&cru SCLK_HEVC_CABAC>,
1543                                  <&cru SCLK_HEVC_CORE>,
1544                                  <&cru HCLK_HEVC>;
1545                 };
1546
1547                 pd_vio {
1548                         reg = <RK3288_PD_VIO>;
1549                         clocks = <&cru ACLK_IEP>,
1550                                  <&cru ACLK_ISP>,
1551                                  <&cru ACLK_RGA>,
1552                                  <&cru ACLK_VIP>,
1553                                  <&cru ACLK_VOP0>,
1554                                  <&cru ACLK_VOP1>,
1555                                  <&cru DCLK_VOP0>,
1556                                  <&cru DCLK_VOP1>,
1557                                  <&cru HCLK_IEP>,
1558                                  <&cru HCLK_ISP>,
1559                                  <&cru HCLK_RGA>,
1560                                  <&cru HCLK_VIP>,
1561                                  <&cru HCLK_VOP0>,
1562                                  <&cru HCLK_VOP1>,
1563                                  <&cru PCLK_EDP_CTRL>,
1564                                  <&cru PCLK_HDMI_CTRL>,
1565                                  <&cru PCLK_LVDS_PHY>,
1566                                  <&cru PCLK_MIPI_CSI>,
1567                                  <&cru PCLK_MIPI_DSI0>,
1568                                  <&cru PCLK_MIPI_DSI1>,
1569                                  <&cru SCLK_EDP_24M>,
1570                                  <&cru SCLK_EDP>,
1571                                  <&cru SCLK_HDMI_CEC>,
1572                                  <&cru SCLK_HDMI_HDCP>,
1573                                  <&cru SCLK_ISP_JPE>,
1574                                  <&cru SCLK_ISP>,
1575                                  <&cru SCLK_RGA>;
1576                 };
1577
1578                 pd_video {
1579                         reg = <RK3288_PD_VIDEO>;
1580                         clocks = <&cru ACLK_VCODEC>,
1581                                  <&cru HCLK_VCODEC>;
1582                 };
1583         };
1584 };