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