]> git.sur5r.net Git - u-boot/blob - arch/arm/dts/rk3288.dtsi
rockchip: dts: evb_rk3288: Add mipi display support
[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                 clock-freq-min-max = <400000 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                 clock-freq-min-max = <400000 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                 clock-freq-min-max = <400000 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                 clock-freq-min-max = <400000 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 DCLK_VOP0>, <&cru DCLK_VOP1>,
608                                   <&cru PLL_GPLL>, <&cru PLL_CPLL>,
609                                   <&cru PLL_NPLL>, <&cru ACLK_CPU>,
610                                   <&cru HCLK_CPU>, <&cru PCLK_CPU>,
611                                   <&cru ACLK_PERI>, <&cru HCLK_PERI>,
612                                   <&cru PCLK_PERI>;
613                 assigned-clock-rates = <0>, <0>,
614                                        <594000000>, <400000000>,
615                                        <500000000>, <300000000>,
616                                        <150000000>, <75000000>,
617                                        <300000000>, <150000000>,
618                                        <75000000>;
619                 assigned-clock-parents = <&cru PLL_NPLL>, <&cru PLL_GPLL>;
620         };
621
622         grf: syscon@ff770000 {
623                 u-boot,dm-pre-reloc;
624                 compatible = "rockchip,rk3288-grf", "syscon";
625                 reg = <0xff770000 0x1000>;
626         };
627
628         wdt: watchdog@ff800000 {
629                 compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
630                 reg = <0xff800000 0x100>;
631                 clocks = <&cru PCLK_WDT>;
632                 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
633                 status = "disabled";
634         };
635
636         spdif: sound@ff88b0000 {
637                 compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
638                 reg = <0xff8b0000 0x10000>;
639                 #sound-dai-cells = <0>;
640                 clock-names = "hclk", "mclk";
641                 clocks = <&cru HCLK_SPDIF8CH>, <&cru SCLK_SPDIF8CH>;
642                 dmas = <&dmac_bus_s 3>;
643                 dma-names = "tx";
644                 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
645                 pinctrl-names = "default";
646                 pinctrl-0 = <&spdif_tx>;
647                 rockchip,grf = <&grf>;
648                 status = "disabled";
649         };
650
651         i2s: i2s@ff890000 {
652                 compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
653                 reg = <0xff890000 0x10000>;
654                 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
655                 #address-cells = <1>;
656                 #size-cells = <0>;
657                 dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
658                 dma-names = "tx", "rx";
659                 clock-names = "i2s_hclk", "i2s_clk";
660                 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
661                 pinctrl-names = "default";
662                 pinctrl-0 = <&i2s0_bus>;
663                 status = "disabled";
664         };
665
666         vopb: vop@ff930000 {
667                 u-boot,dm-pre-reloc;
668                 compatible = "rockchip,rk3288-vop";
669                 reg = <0xff930000 0x19c>;
670                 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
671                 clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
672                 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
673                 resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
674                 reset-names = "axi", "ahb", "dclk";
675                 iommus = <&vopb_mmu>;
676                 power-domains = <&power RK3288_PD_VIO>;
677                 status = "disabled";
678                 vopb_out: port {
679                         #address-cells = <1>;
680                         #size-cells = <0>;
681                         vopb_out_edp: endpoint@0 {
682                                 reg = <0>;
683                                 remote-endpoint = <&edp_in_vopb>;
684                         };
685                         vopb_out_hdmi: endpoint@1 {
686                                 reg = <1>;
687                                 remote-endpoint = <&hdmi_in_vopb>;
688                         };
689                         vopb_out_lvds: endpoint@2 {
690                                 reg = <2>;
691                                 remote-endpoint = <&lvds_in_vopb>;
692                         };
693                         vopb_out_mipi: endpoint@3 {
694                                 reg = <3>;
695                                 remote-endpoint = <&mipi_in_vopb>;
696                         };
697
698                 };
699         };
700
701         vopb_mmu: iommu@ff930300 {
702                 compatible = "rockchip,iommu";
703                 reg = <0xff930300 0x100>;
704                 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
705                 interrupt-names = "vopb_mmu";
706                 power-domains = <&power RK3288_PD_VIO>;
707                 #iommu-cells = <0>;
708                 status = "disabled";
709         };
710
711         vopl: vop@ff940000 {
712                 compatible = "rockchip,rk3288-vop";
713                 reg = <0xff940000 0x19c>;
714                 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
715                 clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
716                 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
717                 resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
718                 reset-names = "axi", "ahb", "dclk";
719                 iommus = <&vopl_mmu>;
720                 power-domains = <&power RK3288_PD_VIO>;
721                 status = "disabled";
722                 u-boot,dm-pre-reloc;
723                 vopl_out: port {
724                         #address-cells = <1>;
725                         #size-cells = <0>;
726                         vopl_out_edp: endpoint@0 {
727                                 reg = <0>;
728                                 remote-endpoint = <&edp_in_vopl>;
729                         };
730                         vopl_out_hdmi: endpoint@1 {
731                                 reg = <1>;
732                                 remote-endpoint = <&hdmi_in_vopl>;
733                         };
734                         vopl_out_lvds: endpoint@2 {
735                                 reg = <2>;
736                                 remote-endpoint = <&lvds_in_vopl>;
737                         };
738                         vopl_out_mipi: endpoint@3 {
739                                 reg = <3>;
740                                 remote-endpoint = <&mipi_in_vopl>;
741                         };
742
743                 };
744         };
745
746         vopl_mmu: iommu@ff940300 {
747                 compatible = "rockchip,iommu";
748                 reg = <0xff940300 0x100>;
749                 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
750                 interrupt-names = "vopl_mmu";
751                 power-domains = <&power RK3288_PD_VIO>;
752                 #iommu-cells = <0>;
753                 status = "disabled";
754         };
755
756         edp: edp@ff970000 {
757                 compatible = "rockchip,rk3288-edp";
758                 reg = <0xff970000 0x4000>;
759                 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
760                 clocks = <&cru SCLK_EDP>, <&cru SCLK_EDP_24M>, <&cru PCLK_EDP_CTRL>;
761                 rockchip,grf = <&grf>;
762                 clock-names = "clk_edp", "clk_edp_24m", "pclk_edp";
763                 resets = <&cru 111>;
764                 reset-names = "edp";
765                 power-domains = <&power RK3288_PD_VIO>;
766                 status = "disabled";
767                 ports {
768                         edp_in: port {
769                                 #address-cells = <1>;
770                                 #size-cells = <0>;
771                                 edp_in_vopb: endpoint@0 {
772                                         reg = <0>;
773                                         remote-endpoint = <&vopb_out_edp>;
774                                 };
775                                 edp_in_vopl: endpoint@1 {
776                                         reg = <1>;
777                                         remote-endpoint = <&vopl_out_edp>;
778                                 };
779                         };
780                 };
781         };
782
783         hdmi: hdmi@ff980000 {
784                 compatible = "rockchip,rk3288-dw-hdmi";
785                 reg = <0xff980000 0x20000>;
786                 reg-io-width = <4>;
787                 ddc-i2c-bus = <&i2c5>;
788                 rockchip,grf = <&grf>;
789                 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
790                 clocks = <&cru  PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
791                 clock-names = "iahb", "isfr";
792                 status = "disabled";
793                 ports {
794                         hdmi_in: port {
795                                 #address-cells = <1>;
796                                 #size-cells = <0>;
797                                 hdmi_in_vopb: endpoint@0 {
798                                         reg = <0>;
799                                         remote-endpoint = <&vopb_out_hdmi>;
800                                 };
801                                 hdmi_in_vopl: endpoint@1 {
802                                         reg = <1>;
803                                         remote-endpoint = <&vopl_out_hdmi>;
804                                 };
805                         };
806                 };
807         };
808
809         lvds: lvds@ff96c000 {
810                 compatible = "rockchip,rk3288-lvds";
811                 reg = <0xff96c000 0x4000>;
812                 clocks = <&cru PCLK_LVDS_PHY>;
813                 clock-names = "pclk_lvds";
814                 pinctrl-names = "default";
815                 pinctrl-0 = <&lcdc0_ctl>;
816                 rockchip,grf = <&grf>;
817                 status = "disabled";
818                 ports {
819                         #address-cells = <1>;
820                         #size-cells = <0>;
821                         lvds_in: port@0 {
822                                 reg = <0>;
823                                 #address-cells = <1>;
824                                 #size-cells = <0>;
825                                 lvds_in_vopb: endpoint@0 {
826                                         reg = <0>;
827                                         remote-endpoint = <&vopb_out_lvds>;
828                                 };
829                                 lvds_in_vopl: endpoint@1 {
830                                         reg = <1>;
831                                         remote-endpoint = <&vopl_out_lvds>;
832                                 };
833                         };
834                 };
835         };
836
837         mipi_dsi0: mipi@ff960000 {
838                 compatible = "rockchip,rk3288_mipi_dsi";
839                 reg = <0xff960000 0x4000>;
840                 clocks = <&cru PCLK_MIPI_DSI0>;
841                 clock-names = "pclk_mipi";
842                 /*pinctrl-names = "default";
843                 pinctrl-0 = <&lcdc0_ctl>;*/
844                 rockchip,grf = <&grf>;
845                 #address-cells = <1>;
846                 #size-cells = <0>;
847                 status = "disabled";
848                 ports {
849                         #address-cells = <1>;
850                         #size-cells = <0>;
851                         reg = <1>;
852                         mipi_in: port {
853                                 #address-cells = <1>;
854                                 #size-cells = <0>;
855                                 mipi_in_vopb: endpoint@0 {
856                                         reg = <0>;
857                                         remote-endpoint = <&vopb_out_mipi>;
858                                 };
859                                 mipi_in_vopl: endpoint@1 {
860                                         reg = <1>;
861                                         remote-endpoint = <&vopl_out_mipi>;
862                                 };
863                         };
864                 };
865         };
866
867         hdmi_audio: hdmi_audio {
868                 compatible = "rockchip,rk3288-hdmi-audio";
869                 i2s-controller = <&i2s>;
870                 status = "disable";
871         };
872
873         vpu: video-codec@ff9a0000 {
874                 compatible = "rockchip,rk3288-vpu";
875                 reg = <0xff9a0000 0x800>;
876                 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
877                                 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
878                 interrupt-names = "vepu", "vdpu";
879                 clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
880                 clock-names = "aclk_vcodec", "hclk_vcodec";
881                 power-domains = <&power RK3288_PD_VIDEO>;
882                 iommus = <&vpu_mmu>;
883         };
884
885         vpu_mmu: iommu@ff9a0800 {
886                 compatible = "rockchip,iommu";
887                 reg = <0xff9a0800 0x100>;
888                 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
889                 interrupt-names = "vpu_mmu";
890                 power-domains = <&power RK3288_PD_VIDEO>;
891                 #iommu-cells = <0>;
892         };
893
894         gpu: gpu@ffa30000 {
895                 compatible = "arm,malit764",
896                              "arm,malit76x",
897                              "arm,malit7xx",
898                              "arm,mali-midgard";
899                 reg = <0xffa30000 0x10000>;
900                 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
901                              <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
902                              <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
903                 interrupt-names = "JOB", "MMU", "GPU";
904                 clocks = <&cru ACLK_GPU>;
905                 clock-names = "aclk_gpu";
906                 operating-points = <
907                         /* KHz uV */
908                         100000 950000
909                         200000 950000
910                         300000 1000000
911                         400000 1100000
912                         /* 500000 1200000 - See crosbug.com/p/33857 */
913                         600000 1250000
914                 >;
915                 power-domains = <&power RK3288_PD_GPU>;
916                 status = "disabled";
917         };
918
919         noc: syscon@ffac0000 {
920                 u-boot,dm-pre-reloc;
921                 compatible = "rockchip,rk3288-noc", "syscon";
922                 reg = <0xffac0000 0x2000>;
923         };
924
925         efuse: efuse@ffb40000 {
926                 compatible = "rockchip,rk3288-efuse";
927                 reg = <0xffb40000 0x10000>;
928                 status = "disabled";
929         };
930
931         gic: interrupt-controller@ffc01000 {
932                 compatible = "arm,gic-400";
933                 interrupt-controller;
934                 #interrupt-cells = <3>;
935                 #address-cells = <0>;
936
937                 reg = <0xffc01000 0x1000>,
938                       <0xffc02000 0x1000>,
939                       <0xffc04000 0x2000>,
940                       <0xffc06000 0x2000>;
941                 interrupts = <GIC_PPI 9 0xf04>;
942         };
943
944         cpuidle: cpuidle {
945                 compatible = "rockchip,rk3288-cpuidle";
946         };
947
948         usbphy: phy {
949                 compatible = "rockchip,rk3288-usb-phy";
950                 rockchip,grf = <&grf>;
951                 #address-cells = <1>;
952                 #size-cells = <0>;
953                 status = "disabled";
954
955                 usbphy0: usb-phy0 {
956                         #phy-cells = <0>;
957                         reg = <0x320>;
958                         clocks = <&cru SCLK_OTGPHY0>;
959                         clock-names = "phyclk";
960                 };
961
962                 usbphy1: usb-phy1 {
963                         #phy-cells = <0>;
964                         reg = <0x334>;
965                         clocks = <&cru SCLK_OTGPHY1>;
966                         clock-names = "phyclk";
967                 };
968
969                 usbphy2: usb-phy2 {
970                         #phy-cells = <0>;
971                         reg = <0x348>;
972                         clocks = <&cru SCLK_OTGPHY2>;
973                         clock-names = "phyclk";
974                 };
975         };
976
977         pinctrl: pinctrl {
978                 compatible = "rockchip,rk3288-pinctrl";
979                 rockchip,grf = <&grf>;
980                 rockchip,pmu = <&pmu>;
981                 #address-cells = <1>;
982                 #size-cells = <1>;
983                 ranges;
984
985                 gpio0: gpio0@ff750000 {
986                         compatible = "rockchip,gpio-bank";
987                         reg =   <0xff750000 0x100>;
988                         interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
989                         clocks = <&cru PCLK_GPIO0>;
990
991                         gpio-controller;
992                         #gpio-cells = <2>;
993
994                         interrupt-controller;
995                         #interrupt-cells = <2>;
996                 };
997
998                 gpio1: gpio1@ff780000 {
999                         compatible = "rockchip,gpio-bank";
1000                         reg = <0xff780000 0x100>;
1001                         interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1002                         clocks = <&cru PCLK_GPIO1>;
1003
1004                         gpio-controller;
1005                         #gpio-cells = <2>;
1006
1007                         interrupt-controller;
1008                         #interrupt-cells = <2>;
1009                 };
1010
1011                 gpio2: gpio2@ff790000 {
1012                         compatible = "rockchip,gpio-bank";
1013                         reg = <0xff790000 0x100>;
1014                         interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
1015                         clocks = <&cru PCLK_GPIO2>;
1016
1017                         gpio-controller;
1018                         #gpio-cells = <2>;
1019
1020                         interrupt-controller;
1021                         #interrupt-cells = <2>;
1022                 };
1023
1024                 gpio3: gpio3@ff7a0000 {
1025                         compatible = "rockchip,gpio-bank";
1026                         reg = <0xff7a0000 0x100>;
1027                         interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
1028                         clocks = <&cru PCLK_GPIO3>;
1029
1030                         gpio-controller;
1031                         #gpio-cells = <2>;
1032
1033                         interrupt-controller;
1034                         #interrupt-cells = <2>;
1035                 };
1036
1037                 gpio4: gpio4@ff7b0000 {
1038                         compatible = "rockchip,gpio-bank";
1039                         reg = <0xff7b0000 0x100>;
1040                         interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
1041                         clocks = <&cru PCLK_GPIO4>;
1042
1043                         gpio-controller;
1044                         #gpio-cells = <2>;
1045
1046                         interrupt-controller;
1047                         #interrupt-cells = <2>;
1048                 };
1049
1050                 gpio5: gpio5@ff7c0000 {
1051                         compatible = "rockchip,gpio-bank";
1052                         reg = <0xff7c0000 0x100>;
1053                         interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1054                         clocks = <&cru PCLK_GPIO5>;
1055
1056                         gpio-controller;
1057                         #gpio-cells = <2>;
1058
1059                         interrupt-controller;
1060                         #interrupt-cells = <2>;
1061                 };
1062
1063                 gpio6: gpio6@ff7d0000 {
1064                         compatible = "rockchip,gpio-bank";
1065                         reg = <0xff7d0000 0x100>;
1066                         interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
1067                         clocks = <&cru PCLK_GPIO6>;
1068
1069                         gpio-controller;
1070                         #gpio-cells = <2>;
1071
1072                         interrupt-controller;
1073                         #interrupt-cells = <2>;
1074                 };
1075
1076                 gpio7: gpio7@ff7e0000 {
1077                         compatible = "rockchip,gpio-bank";
1078                         reg = <0xff7e0000 0x100>;
1079                         interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1080                         clocks = <&cru PCLK_GPIO7>;
1081
1082                         gpio-controller;
1083                         #gpio-cells = <2>;
1084
1085                         interrupt-controller;
1086                         #interrupt-cells = <2>;
1087                 };
1088
1089                 gpio8: gpio8@ff7f0000 {
1090                         compatible = "rockchip,gpio-bank";
1091                         reg = <0xff7f0000 0x100>;
1092                         interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1093                         clocks = <&cru PCLK_GPIO8>;
1094
1095                         gpio-controller;
1096                         #gpio-cells = <2>;
1097
1098                         interrupt-controller;
1099                         #interrupt-cells = <2>;
1100                 };
1101
1102                 pcfg_pull_up: pcfg-pull-up {
1103                         bias-pull-up;
1104                 };
1105
1106                 pcfg_pull_down: pcfg-pull-down {
1107                         bias-pull-down;
1108                 };
1109
1110                 pcfg_pull_none: pcfg-pull-none {
1111                         bias-disable;
1112                 };
1113
1114                 pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1115                         bias-disable;
1116                         drive-strength = <12>;
1117                 };
1118
1119                 sleep {
1120                         global_pwroff: global-pwroff {
1121                                 rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>;
1122                         };
1123
1124                         ddrio_pwroff: ddrio-pwroff {
1125                                 rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
1126                         };
1127
1128                         ddr0_retention: ddr0-retention {
1129                                 rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_up>;
1130                         };
1131
1132                         ddr1_retention: ddr1-retention {
1133                                 rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_up>;
1134                         };
1135                 };
1136
1137                 i2c0 {
1138                         i2c0_xfer: i2c0-xfer {
1139                                 rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,
1140                                                 <0 16 RK_FUNC_1 &pcfg_pull_none>;
1141                         };
1142                 };
1143
1144                 i2c1 {
1145                         i2c1_xfer: i2c1-xfer {
1146                                 rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>,
1147                                                 <8 5 RK_FUNC_1 &pcfg_pull_none>;
1148                         };
1149                 };
1150
1151                 i2c2 {
1152                         i2c2_xfer: i2c2-xfer {
1153                                 rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>,
1154                                                 <6 10 RK_FUNC_1 &pcfg_pull_none>;
1155                         };
1156                 };
1157
1158                 i2c3 {
1159                         i2c3_xfer: i2c3-xfer {
1160                                 rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>,
1161                                                 <2 17 RK_FUNC_1 &pcfg_pull_none>;
1162                         };
1163                 };
1164
1165                 i2c4 {
1166                         i2c4_xfer: i2c4-xfer {
1167                                 rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>,
1168                                                 <7 18 RK_FUNC_1 &pcfg_pull_none>;
1169                         };
1170                 };
1171
1172                 i2c5 {
1173                         i2c5_xfer: i2c5-xfer {
1174                                 rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>,
1175                                                 <7 20 RK_FUNC_1 &pcfg_pull_none>;
1176                         };
1177                 };
1178
1179                 i2s0 {
1180                         i2s0_bus: i2s0-bus {
1181                                 rockchip,pins = <6 0 RK_FUNC_1 &pcfg_pull_none>,
1182                                                 <6 1 RK_FUNC_1 &pcfg_pull_none>,
1183                                                 <6 2 RK_FUNC_1 &pcfg_pull_none>,
1184                                                 <6 3 RK_FUNC_1 &pcfg_pull_none>,
1185                                                 <6 4 RK_FUNC_1 &pcfg_pull_none>,
1186                                                 <6 8 RK_FUNC_1 &pcfg_pull_none>;
1187                         };
1188                 };
1189
1190                 lcdc0 {
1191                         lcdc0_ctl: lcdc0-ctl {
1192                                 rockchip,pins = <1 24 RK_FUNC_1 &pcfg_pull_none>,
1193                                                 <1 25 RK_FUNC_1 &pcfg_pull_none>,
1194                                                 <1 26 RK_FUNC_1 &pcfg_pull_none>,
1195                                                 <1 27 RK_FUNC_1 &pcfg_pull_none>;
1196                         };
1197                 };
1198
1199                 sdmmc {
1200                         sdmmc_clk: sdmmc-clk {
1201                                 rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
1202                         };
1203
1204                         sdmmc_cmd: sdmmc-cmd {
1205                                 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
1206                         };
1207
1208                         sdmmc_cd: sdmcc-cd {
1209                                 rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
1210                         };
1211
1212                         sdmmc_bus1: sdmmc-bus1 {
1213                                 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>;
1214                         };
1215
1216                         sdmmc_bus4: sdmmc-bus4 {
1217                                 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>,
1218                                                 <6 17 RK_FUNC_1 &pcfg_pull_up>,
1219                                                 <6 18 RK_FUNC_1 &pcfg_pull_up>,
1220                                                 <6 19 RK_FUNC_1 &pcfg_pull_up>;
1221                         };
1222                 };
1223
1224                 sdio0 {
1225                         sdio0_bus1: sdio0-bus1 {
1226                                 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>;
1227                         };
1228
1229                         sdio0_bus4: sdio0-bus4 {
1230                                 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>,
1231                                                 <4 21 RK_FUNC_1 &pcfg_pull_up>,
1232                                                 <4 22 RK_FUNC_1 &pcfg_pull_up>,
1233                                                 <4 23 RK_FUNC_1 &pcfg_pull_up>;
1234                         };
1235
1236                         sdio0_cmd: sdio0-cmd {
1237                                 rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>;
1238                         };
1239
1240                         sdio0_clk: sdio0-clk {
1241                                 rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>;
1242                         };
1243
1244                         sdio0_cd: sdio0-cd {
1245                                 rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>;
1246                         };
1247
1248                         sdio0_wp: sdio0-wp {
1249                                 rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>;
1250                         };
1251
1252                         sdio0_pwr: sdio0-pwr {
1253                                 rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>;
1254                         };
1255
1256                         sdio0_bkpwr: sdio0-bkpwr {
1257                                 rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>;
1258                         };
1259
1260                         sdio0_int: sdio0-int {
1261                                 rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>;
1262                         };
1263                 };
1264
1265                 sdio1 {
1266                         sdio1_bus1: sdio1-bus1 {
1267                                 rockchip,pins = <3 24 RK_FUNC_4 &pcfg_pull_up>;
1268                         };
1269
1270                         sdio1_bus4: sdio1-bus4 {
1271                                 rockchip,pins = <3 24 RK_FUNC_4 &pcfg_pull_up>,
1272                                                 <3 25 RK_FUNC_4 &pcfg_pull_up>,
1273                                                 <3 26 RK_FUNC_4 &pcfg_pull_up>,
1274                                                 <3 27 RK_FUNC_4 &pcfg_pull_up>;
1275                         };
1276
1277                         sdio1_cd: sdio1-cd {
1278                                 rockchip,pins = <3 28 RK_FUNC_4 &pcfg_pull_up>;
1279                         };
1280
1281                         sdio1_wp: sdio1-wp {
1282                                 rockchip,pins = <3 29 RK_FUNC_4 &pcfg_pull_up>;
1283                         };
1284
1285                         sdio1_bkpwr: sdio1-bkpwr {
1286                                 rockchip,pins = <3 30 RK_FUNC_4 &pcfg_pull_up>;
1287                         };
1288
1289                         sdio1_int: sdio1-int {
1290                                 rockchip,pins = <3 31 RK_FUNC_4 &pcfg_pull_up>;
1291                         };
1292
1293                         sdio1_cmd: sdio1-cmd {
1294                                 rockchip,pins = <4 6 RK_FUNC_4 &pcfg_pull_up>;
1295                         };
1296
1297                         sdio1_clk: sdio1-clk {
1298                                 rockchip,pins = <4 7 RK_FUNC_4 &pcfg_pull_none>;
1299                         };
1300
1301                         sdio1_pwr: sdio1-pwr {
1302                                 rockchip,pins = <4 9 RK_FUNC_4 &pcfg_pull_up>;
1303                         };
1304                 };
1305
1306                 emmc {
1307                         emmc_clk: emmc-clk {
1308                                 rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>;
1309                         };
1310
1311                         emmc_cmd: emmc-cmd {
1312                                 rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>;
1313                         };
1314
1315                         emmc_pwr: emmc-pwr {
1316                                 rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>;
1317                         };
1318
1319                         emmc_bus1: emmc-bus1 {
1320                                 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>;
1321                         };
1322
1323                         emmc_bus4: emmc-bus4 {
1324                                 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1325                                                 <3 1 RK_FUNC_2 &pcfg_pull_up>,
1326                                                 <3 2 RK_FUNC_2 &pcfg_pull_up>,
1327                                                 <3 3 RK_FUNC_2 &pcfg_pull_up>;
1328                         };
1329
1330                         emmc_bus8: emmc-bus8 {
1331                                 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1332                                                 <3 1 RK_FUNC_2 &pcfg_pull_up>,
1333                                                 <3 2 RK_FUNC_2 &pcfg_pull_up>,
1334                                                 <3 3 RK_FUNC_2 &pcfg_pull_up>,
1335                                                 <3 4 RK_FUNC_2 &pcfg_pull_up>,
1336                                                 <3 5 RK_FUNC_2 &pcfg_pull_up>,
1337                                                 <3 6 RK_FUNC_2 &pcfg_pull_up>,
1338                                                 <3 7 RK_FUNC_2 &pcfg_pull_up>;
1339                         };
1340                 };
1341
1342                 spi0 {
1343                         spi0_clk: spi0-clk {
1344                                 rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>;
1345                         };
1346                         spi0_cs0: spi0-cs0 {
1347                                 rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>;
1348                         };
1349                         spi0_tx: spi0-tx {
1350                                 rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>;
1351                         };
1352                         spi0_rx: spi0-rx {
1353                                 rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>;
1354                         };
1355                         spi0_cs1: spi0-cs1 {
1356                                 rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>;
1357                         };
1358                 };
1359                 spi1 {
1360                         spi1_clk: spi1-clk {
1361                                 rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>;
1362                         };
1363                         spi1_cs0: spi1-cs0 {
1364                                 rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>;
1365                         };
1366                         spi1_rx: spi1-rx {
1367                                 rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>;
1368                         };
1369                         spi1_tx: spi1-tx {
1370                                 rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>;
1371                         };
1372                 };
1373
1374                 spi2 {
1375                         spi2_cs1: spi2-cs1 {
1376                                 rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>;
1377                         };
1378                         spi2_clk: spi2-clk {
1379                                 rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>;
1380                         };
1381                         spi2_cs0: spi2-cs0 {
1382                                 rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>;
1383                         };
1384                         spi2_rx: spi2-rx {
1385                                 rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>;
1386                         };
1387                         spi2_tx: spi2-tx {
1388                                 rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>;
1389                         };
1390                 };
1391
1392                 uart0 {
1393                         uart0_xfer: uart0-xfer {
1394                                 rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>,
1395                                                 <4 17 RK_FUNC_1 &pcfg_pull_none>;
1396                         };
1397
1398                         uart0_cts: uart0-cts {
1399                                 rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_none>;
1400                         };
1401
1402                         uart0_rts: uart0-rts {
1403                                 rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>;
1404                         };
1405                 };
1406
1407                 uart1 {
1408                         uart1_xfer: uart1-xfer {
1409                                 rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>,
1410                                                 <5 9 RK_FUNC_1 &pcfg_pull_none>;
1411                         };
1412
1413                         uart1_cts: uart1-cts {
1414                                 rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_none>;
1415                         };
1416
1417                         uart1_rts: uart1-rts {
1418                                 rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>;
1419                         };
1420                 };
1421
1422                 uart2 {
1423                         uart2_xfer: uart2-xfer {
1424                                 rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>,
1425                                                 <7 23 RK_FUNC_1 &pcfg_pull_none>;
1426                         };
1427                         /* no rts / cts for uart2 */
1428                 };
1429
1430                 uart3 {
1431                         uart3_xfer: uart3-xfer {
1432                                 rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>,
1433                                                 <7 8 RK_FUNC_1 &pcfg_pull_none>;
1434                         };
1435
1436                         uart3_cts: uart3-cts {
1437                                 rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_none>;
1438                         };
1439
1440                         uart3_rts: uart3-rts {
1441                                 rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>;
1442                         };
1443                 };
1444
1445                 uart4 {
1446                         uart4_xfer: uart4-xfer {
1447                                 rockchip,pins = <5 12 3 &pcfg_pull_up>,
1448                                                 <5 13 3 &pcfg_pull_none>;
1449                         };
1450
1451                         uart4_cts: uart4-cts {
1452                                 rockchip,pins = <5 14 3 &pcfg_pull_none>;
1453                         };
1454
1455                         uart4_rts: uart4-rts {
1456                                 rockchip,pins = <5 15 3 &pcfg_pull_none>;
1457                         };
1458                 };
1459
1460                 tsadc {
1461                         otp_out: otp-out {
1462                                 rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>;
1463                         };
1464                 };
1465
1466                 pwm0 {
1467                         pwm0_pin: pwm0-pin {
1468                                 rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;
1469                         };
1470                 };
1471
1472                 pwm1 {
1473                         pwm1_pin: pwm1-pin {
1474                                 rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>;
1475                         };
1476                 };
1477
1478                 pwm2 {
1479                         pwm2_pin: pwm2-pin {
1480                                 rockchip,pins = <7 22 RK_FUNC_3 &pcfg_pull_none>;
1481                         };
1482                 };
1483
1484                 pwm3 {
1485                         pwm3_pin: pwm3-pin {
1486                                 rockchip,pins = <7 23 RK_FUNC_3 &pcfg_pull_none>;
1487                         };
1488                 };
1489
1490                 gmac {
1491                         rgmii_pins: rgmii-pins {
1492                                 rockchip,pins = <3 30 3 &pcfg_pull_none>,
1493                                                 <3 31 3 &pcfg_pull_none>,
1494                                                 <3 26 3 &pcfg_pull_none>,
1495                                                 <3 27 3 &pcfg_pull_none>,
1496                                                 <3 28 3 &pcfg_pull_none_12ma>,
1497                                                 <3 29 3 &pcfg_pull_none_12ma>,
1498                                                 <3 24 3 &pcfg_pull_none_12ma>,
1499                                                 <3 25 3 &pcfg_pull_none_12ma>,
1500                                                 <4 0 3 &pcfg_pull_none>,
1501                                                 <4 5 3 &pcfg_pull_none>,
1502                                                 <4 6 3 &pcfg_pull_none>,
1503                                                 <4 9 3 &pcfg_pull_none_12ma>,
1504                                                 <4 4 3 &pcfg_pull_none_12ma>,
1505                                                 <4 1 3 &pcfg_pull_none>,
1506                                                 <4 3 3 &pcfg_pull_none>;
1507                         };
1508
1509                         rmii_pins: rmii-pins {
1510                                 rockchip,pins = <3 30 3 &pcfg_pull_none>,
1511                                                 <3 31 3 &pcfg_pull_none>,
1512                                                 <3 28 3 &pcfg_pull_none>,
1513                                                 <3 29 3 &pcfg_pull_none>,
1514                                                 <4 0 3 &pcfg_pull_none>,
1515                                                 <4 5 3 &pcfg_pull_none>,
1516                                                 <4 4 3 &pcfg_pull_none>,
1517                                                 <4 1 3 &pcfg_pull_none>,
1518                                                 <4 2 3 &pcfg_pull_none>,
1519                                                 <4 3 3 &pcfg_pull_none>;
1520                         };
1521                 };
1522
1523                 spdif {
1524                         spdif_tx: spdif-tx {
1525                                 rockchip,pins = <RK_GPIO6 11 RK_FUNC_1 &pcfg_pull_none>;
1526                         };
1527                 };
1528         };
1529
1530         power: power-controller {
1531                 compatible = "rockchip,rk3288-power-controller";
1532                 #power-domain-cells = <1>;
1533                 rockchip,pmu = <&pmu>;
1534                 #address-cells = <1>;
1535                 #size-cells = <0>;
1536
1537                 pd_gpu {
1538                         reg = <RK3288_PD_GPU>;
1539                         clocks = <&cru ACLK_GPU>;
1540                 };
1541
1542                 pd_hevc {
1543                         reg = <RK3288_PD_HEVC>;
1544                         clocks = <&cru ACLK_HEVC>,
1545                                  <&cru SCLK_HEVC_CABAC>,
1546                                  <&cru SCLK_HEVC_CORE>,
1547                                  <&cru HCLK_HEVC>;
1548                 };
1549
1550                 pd_vio {
1551                         reg = <RK3288_PD_VIO>;
1552                         clocks = <&cru ACLK_IEP>,
1553                                  <&cru ACLK_ISP>,
1554                                  <&cru ACLK_RGA>,
1555                                  <&cru ACLK_VIP>,
1556                                  <&cru ACLK_VOP0>,
1557                                  <&cru ACLK_VOP1>,
1558                                  <&cru DCLK_VOP0>,
1559                                  <&cru DCLK_VOP1>,
1560                                  <&cru HCLK_IEP>,
1561                                  <&cru HCLK_ISP>,
1562                                  <&cru HCLK_RGA>,
1563                                  <&cru HCLK_VIP>,
1564                                  <&cru HCLK_VOP0>,
1565                                  <&cru HCLK_VOP1>,
1566                                  <&cru PCLK_EDP_CTRL>,
1567                                  <&cru PCLK_HDMI_CTRL>,
1568                                  <&cru PCLK_LVDS_PHY>,
1569                                  <&cru PCLK_MIPI_CSI>,
1570                                  <&cru PCLK_MIPI_DSI0>,
1571                                  <&cru PCLK_MIPI_DSI1>,
1572                                  <&cru SCLK_EDP_24M>,
1573                                  <&cru SCLK_EDP>,
1574                                  <&cru SCLK_HDMI_CEC>,
1575                                  <&cru SCLK_HDMI_HDCP>,
1576                                  <&cru SCLK_ISP_JPE>,
1577                                  <&cru SCLK_ISP>,
1578                                  <&cru SCLK_RGA>;
1579                 };
1580
1581                 pd_video {
1582                         reg = <RK3288_PD_VIDEO>;
1583                         clocks = <&cru ACLK_VCODEC>,
1584                                  <&cru HCLK_VCODEC>;
1585                 };
1586         };
1587 };