UPSTREAM: ARM: dts: rockchip: add mipi_dsi to VIO power domain on rk3288
[firefly-linux-kernel-4.4.55.git] / arch / arm / boot / dts / rk3288.dtsi
1 /*
2  * This file is dual-licensed: you can use it either under the terms
3  * of the GPL or the X11 license, at your option. Note that this dual
4  * licensing only applies to this file, and not this project as a
5  * whole.
6  *
7  *  a) This file is free software; you can redistribute it and/or
8  *     modify it under the terms of the GNU General Public License as
9  *     published by the Free Software Foundation; either version 2 of the
10  *     License, or (at your option) any later version.
11  *
12  *     This file is distributed in the hope that it will be useful,
13  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  *     GNU General Public License for more details.
16  *
17  * Or, alternatively,
18  *
19  *  b) Permission is hereby granted, free of charge, to any person
20  *     obtaining a copy of this software and associated documentation
21  *     files (the "Software"), to deal in the Software without
22  *     restriction, including without limitation the rights to use,
23  *     copy, modify, merge, publish, distribute, sublicense, and/or
24  *     sell copies of the Software, and to permit persons to whom the
25  *     Software is furnished to do so, subject to the following
26  *     conditions:
27  *
28  *     The above copyright notice and this permission notice shall be
29  *     included in all copies or substantial portions of the Software.
30  *
31  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
32  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
33  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
34  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
35  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
36  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
38  *     OTHER DEALINGS IN THE SOFTWARE.
39  */
40
41 #include <dt-bindings/gpio/gpio.h>
42 #include <dt-bindings/interrupt-controller/irq.h>
43 #include <dt-bindings/interrupt-controller/arm-gic.h>
44 #include <dt-bindings/pinctrl/rockchip.h>
45 #include <dt-bindings/clock/rk3288-cru.h>
46 #include <dt-bindings/thermal/thermal.h>
47 #include <dt-bindings/power/rk3288-power.h>
48 #include <dt-bindings/soc/rockchip_boot-mode.h>
49 #include "skeleton.dtsi"
50
51 / {
52         compatible = "rockchip,rk3288";
53
54         interrupt-parent = <&gic>;
55
56         aliases {
57                 i2c0 = &i2c0;
58                 i2c1 = &i2c1;
59                 i2c2 = &i2c2;
60                 i2c3 = &i2c3;
61                 i2c4 = &i2c4;
62                 i2c5 = &i2c5;
63                 mshc0 = &emmc;
64                 mshc1 = &sdmmc;
65                 mshc2 = &sdio0;
66                 mshc3 = &sdio1;
67                 serial0 = &uart0;
68                 serial1 = &uart1;
69                 serial2 = &uart2;
70                 serial3 = &uart3;
71                 serial4 = &uart4;
72                 spi0 = &spi0;
73                 spi1 = &spi1;
74                 spi2 = &spi2;
75         };
76
77         arm-pmu {
78                 compatible = "arm,cortex-a12-pmu";
79                 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
80                              <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
81                              <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
82                              <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
83                 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
84         };
85
86         cpus {
87                 #address-cells = <1>;
88                 #size-cells = <0>;
89                 enable-method = "rockchip,rk3066-smp";
90                 rockchip,pmu = <&pmu>;
91
92                 cpu0: cpu@500 {
93                         device_type = "cpu";
94                         compatible = "arm,cortex-a12";
95                         reg = <0x500>;
96                         resets = <&cru SRST_CORE0>;
97                         operating-points = <
98                                 /* KHz    uV */
99                                 1608000 1350000
100                                 1512000 1300000
101                                 1416000 1200000
102                                 1200000 1100000
103                                 1008000 1050000
104                                  816000 1000000
105                                  696000  950000
106                                  600000  900000
107                                  408000  900000
108                                  312000  900000
109                                  216000  900000
110                                  126000  900000
111                         >;
112                         #cooling-cells = <2>; /* min followed by max */
113                         clock-latency = <40000>;
114                         clocks = <&cru ARMCLK>;
115                 };
116                 cpu1: cpu@501 {
117                         device_type = "cpu";
118                         compatible = "arm,cortex-a12";
119                         reg = <0x501>;
120                         resets = <&cru SRST_CORE1>;
121                 };
122                 cpu2: cpu@502 {
123                         device_type = "cpu";
124                         compatible = "arm,cortex-a12";
125                         reg = <0x502>;
126                         resets = <&cru SRST_CORE2>;
127                 };
128                 cpu3: cpu@503 {
129                         device_type = "cpu";
130                         compatible = "arm,cortex-a12";
131                         reg = <0x503>;
132                         resets = <&cru SRST_CORE3>;
133                 };
134         };
135
136         amba {
137                 compatible = "arm,amba-bus";
138                 #address-cells = <1>;
139                 #size-cells = <1>;
140                 ranges;
141
142                 dmac_peri: dma-controller@ff250000 {
143                         compatible = "arm,pl330", "arm,primecell";
144                         reg = <0xff250000 0x4000>;
145                         interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
146                                      <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
147                         #dma-cells = <1>;
148                         arm,pl330-broken-no-flushp;
149                         peripherals-req-type-burst;
150                         clocks = <&cru ACLK_DMAC2>;
151                         clock-names = "apb_pclk";
152                 };
153
154                 dmac_bus_ns: dma-controller@ff600000 {
155                         compatible = "arm,pl330", "arm,primecell";
156                         reg = <0xff600000 0x4000>;
157                         interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
158                                      <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
159                         #dma-cells = <1>;
160                         arm,pl330-broken-no-flushp;
161                         peripherals-req-type-burst;
162                         clocks = <&cru ACLK_DMAC1>;
163                         clock-names = "apb_pclk";
164                         status = "disabled";
165                 };
166
167                 dmac_bus_s: dma-controller@ffb20000 {
168                         compatible = "arm,pl330", "arm,primecell";
169                         reg = <0xffb20000 0x4000>;
170                         interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
171                                      <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
172                         #dma-cells = <1>;
173                         arm,pl330-broken-no-flushp;
174                         peripherals-req-type-burst;
175                         clocks = <&cru ACLK_DMAC1>;
176                         clock-names = "apb_pclk";
177                 };
178         };
179
180         reserved-memory {
181                 #address-cells = <1>;
182                 #size-cells = <1>;
183                 ranges;
184
185                 /*
186                  * The rk3288 cannot use the memory area above 0xfe000000
187                  * for dma operations for some reason. While there is
188                  * probably a better solution available somewhere, we
189                  * haven't found it yet and while devices with 2GB of ram
190                  * are not affected, this issue prevents 4GB from booting.
191                  * So to make these devices at least bootable, block
192                  * this area for the time being until the real solution
193                  * is found.
194                  */
195                 dma-unusable@fe000000 {
196                         reg = <0xfe000000 0x1000000>;
197                 };
198         };
199
200         xin24m: oscillator {
201                 compatible = "fixed-clock";
202                 clock-frequency = <24000000>;
203                 clock-output-names = "xin24m";
204                 #clock-cells = <0>;
205         };
206
207         timer {
208                 compatible = "arm,armv7-timer";
209                 arm,cpu-registers-not-fw-configured;
210                 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
211                              <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
212                              <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
213                              <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
214                 clock-frequency = <24000000>;
215         };
216
217         timer: timer@ff810000 {
218                 compatible = "rockchip,rk3288-timer";
219                 reg = <0xff810000 0x20>;
220                 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
221                 clocks = <&xin24m>, <&cru PCLK_TIMER>;
222                 clock-names = "timer", "pclk";
223         };
224
225         display-subsystem {
226                 compatible = "rockchip,display-subsystem";
227                 ports = <&vopl_out>, <&vopb_out>;
228         };
229
230         sdmmc: dwmmc@ff0c0000 {
231                 compatible = "rockchip,rk3288-dw-mshc";
232                 clock-freq-min-max = <400000 150000000>;
233                 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
234                          <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
235                 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
236                 fifo-depth = <0x100>;
237                 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
238                 reg = <0xff0c0000 0x4000>;
239                 status = "disabled";
240         };
241
242         sdio0: dwmmc@ff0d0000 {
243                 compatible = "rockchip,rk3288-dw-mshc";
244                 clock-freq-min-max = <400000 150000000>;
245                 clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
246                          <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
247                 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
248                 fifo-depth = <0x100>;
249                 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
250                 reg = <0xff0d0000 0x4000>;
251                 status = "disabled";
252         };
253
254         sdio1: dwmmc@ff0e0000 {
255                 compatible = "rockchip,rk3288-dw-mshc";
256                 clock-freq-min-max = <400000 150000000>;
257                 clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>,
258                          <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>;
259                 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
260                 fifo-depth = <0x100>;
261                 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
262                 reg = <0xff0e0000 0x4000>;
263                 status = "disabled";
264         };
265
266         emmc: dwmmc@ff0f0000 {
267                 compatible = "rockchip,rk3288-dw-mshc";
268                 clock-freq-min-max = <400000 150000000>;
269                 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
270                          <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
271                 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
272                 fifo-depth = <0x100>;
273                 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
274                 reg = <0xff0f0000 0x4000>;
275                 status = "disabled";
276                 supports-emmc;
277         };
278
279         saradc: saradc@ff100000 {
280                 compatible = "rockchip,saradc";
281                 reg = <0xff100000 0x100>;
282                 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
283                 #io-channel-cells = <1>;
284                 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
285                 clock-names = "saradc", "apb_pclk";
286                 resets = <&cru SRST_SARADC>;
287                 reset-names = "saradc-apb";
288                 status = "disabled";
289         };
290
291         spi0: spi@ff110000 {
292                 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
293                 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
294                 clock-names = "spiclk", "apb_pclk";
295                 dmas = <&dmac_peri 11>, <&dmac_peri 12>;
296                 dma-names = "tx", "rx";
297                 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
298                 pinctrl-names = "default";
299                 pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
300                 reg = <0xff110000 0x1000>;
301                 #address-cells = <1>;
302                 #size-cells = <0>;
303                 status = "disabled";
304         };
305
306         spi1: spi@ff120000 {
307                 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
308                 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
309                 clock-names = "spiclk", "apb_pclk";
310                 dmas = <&dmac_peri 13>, <&dmac_peri 14>;
311                 dma-names = "tx", "rx";
312                 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
313                 pinctrl-names = "default";
314                 pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
315                 reg = <0xff120000 0x1000>;
316                 #address-cells = <1>;
317                 #size-cells = <0>;
318                 status = "disabled";
319         };
320
321         spi2: spi@ff130000 {
322                 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
323                 clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
324                 clock-names = "spiclk", "apb_pclk";
325                 dmas = <&dmac_peri 15>, <&dmac_peri 16>;
326                 dma-names = "tx", "rx";
327                 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
328                 pinctrl-names = "default";
329                 pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
330                 reg = <0xff130000 0x1000>;
331                 #address-cells = <1>;
332                 #size-cells = <0>;
333                 status = "disabled";
334         };
335
336         i2c1: i2c@ff140000 {
337                 compatible = "rockchip,rk3288-i2c";
338                 reg = <0xff140000 0x1000>;
339                 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
340                 #address-cells = <1>;
341                 #size-cells = <0>;
342                 clock-names = "i2c";
343                 clocks = <&cru PCLK_I2C1>;
344                 pinctrl-names = "default";
345                 pinctrl-0 = <&i2c1_xfer>;
346                 status = "disabled";
347         };
348
349         i2c3: i2c@ff150000 {
350                 compatible = "rockchip,rk3288-i2c";
351                 reg = <0xff150000 0x1000>;
352                 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
353                 #address-cells = <1>;
354                 #size-cells = <0>;
355                 clock-names = "i2c";
356                 clocks = <&cru PCLK_I2C3>;
357                 pinctrl-names = "default";
358                 pinctrl-0 = <&i2c3_xfer>;
359                 status = "disabled";
360         };
361
362         i2c4: i2c@ff160000 {
363                 compatible = "rockchip,rk3288-i2c";
364                 reg = <0xff160000 0x1000>;
365                 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
366                 #address-cells = <1>;
367                 #size-cells = <0>;
368                 clock-names = "i2c";
369                 clocks = <&cru PCLK_I2C4>;
370                 pinctrl-names = "default";
371                 pinctrl-0 = <&i2c4_xfer>;
372                 status = "disabled";
373         };
374
375         i2c5: i2c@ff170000 {
376                 compatible = "rockchip,rk3288-i2c";
377                 reg = <0xff170000 0x1000>;
378                 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
379                 #address-cells = <1>;
380                 #size-cells = <0>;
381                 clock-names = "i2c";
382                 clocks = <&cru PCLK_I2C5>;
383                 pinctrl-names = "default";
384                 pinctrl-0 = <&i2c5_xfer>;
385                 status = "disabled";
386         };
387
388         uart0: serial@ff180000 {
389                 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
390                 reg = <0xff180000 0x100>;
391                 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
392                 reg-shift = <2>;
393                 reg-io-width = <4>;
394                 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
395                 clock-names = "baudclk", "apb_pclk";
396                 pinctrl-names = "default";
397                 pinctrl-0 = <&uart0_xfer>;
398                 status = "disabled";
399         };
400
401         uart1: serial@ff190000 {
402                 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
403                 reg = <0xff190000 0x100>;
404                 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
405                 reg-shift = <2>;
406                 reg-io-width = <4>;
407                 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
408                 clock-names = "baudclk", "apb_pclk";
409                 pinctrl-names = "default";
410                 pinctrl-0 = <&uart1_xfer>;
411                 status = "disabled";
412         };
413
414         uart2: serial@ff690000 {
415                 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
416                 reg = <0xff690000 0x100>;
417                 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
418                 reg-shift = <2>;
419                 reg-io-width = <4>;
420                 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
421                 clock-names = "baudclk", "apb_pclk";
422                 pinctrl-names = "default";
423                 pinctrl-0 = <&uart2_xfer>;
424                 status = "disabled";
425         };
426
427         uart3: serial@ff1b0000 {
428                 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
429                 reg = <0xff1b0000 0x100>;
430                 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
431                 reg-shift = <2>;
432                 reg-io-width = <4>;
433                 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
434                 clock-names = "baudclk", "apb_pclk";
435                 pinctrl-names = "default";
436                 pinctrl-0 = <&uart3_xfer>;
437                 status = "disabled";
438         };
439
440         uart4: serial@ff1c0000 {
441                 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
442                 reg = <0xff1c0000 0x100>;
443                 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
444                 reg-shift = <2>;
445                 reg-io-width = <4>;
446                 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
447                 clock-names = "baudclk", "apb_pclk";
448                 pinctrl-names = "default";
449                 pinctrl-0 = <&uart4_xfer>;
450                 status = "disabled";
451         };
452
453         thermal-zones {
454                 reserve_thermal: reserve_thermal {
455                         polling-delay-passive = <1000>; /* milliseconds */
456                         polling-delay = <5000>; /* milliseconds */
457
458                         thermal-sensors = <&tsadc 0>;
459                 };
460
461                 cpu_thermal: cpu_thermal {
462                         polling-delay-passive = <100>; /* milliseconds */
463                         polling-delay = <5000>; /* milliseconds */
464
465                         thermal-sensors = <&tsadc 1>;
466
467                         trips {
468                                 cpu_alert0: cpu_alert0 {
469                                         temperature = <70000>; /* millicelsius */
470                                         hysteresis = <2000>; /* millicelsius */
471                                         type = "passive";
472                                 };
473                                 cpu_alert1: cpu_alert1 {
474                                         temperature = <75000>; /* millicelsius */
475                                         hysteresis = <2000>; /* millicelsius */
476                                         type = "passive";
477                                 };
478                                 cpu_crit: cpu_crit {
479                                         temperature = <90000>; /* millicelsius */
480                                         hysteresis = <2000>; /* millicelsius */
481                                         type = "critical";
482                                 };
483                         };
484
485                         cooling-maps {
486                                 map0 {
487                                         trip = <&cpu_alert0>;
488                                         cooling-device =
489                                                 <&cpu0 THERMAL_NO_LIMIT 6>;
490                                 };
491                                 map1 {
492                                         trip = <&cpu_alert1>;
493                                         cooling-device =
494                                                 <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
495                                 };
496                         };
497                 };
498
499                 gpu_thermal: gpu_thermal {
500                         polling-delay-passive = <100>; /* milliseconds */
501                         polling-delay = <5000>; /* milliseconds */
502
503                         thermal-sensors = <&tsadc 2>;
504
505                         trips {
506                                 gpu_alert0: gpu_alert0 {
507                                         temperature = <70000>; /* millicelsius */
508                                         hysteresis = <2000>; /* millicelsius */
509                                         type = "passive";
510                                 };
511                                 gpu_crit: gpu_crit {
512                                         temperature = <90000>; /* millicelsius */
513                                         hysteresis = <2000>; /* millicelsius */
514                                         type = "critical";
515                                 };
516                         };
517
518                         cooling-maps {
519                                 map0 {
520                                         trip = <&gpu_alert0>;
521                                         cooling-device =
522                                                 <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
523                                 };
524                         };
525                 };
526         };
527
528         tsadc: tsadc@ff280000 {
529                 compatible = "rockchip,rk3288-tsadc";
530                 reg = <0xff280000 0x100>;
531                 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
532                 clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
533                 clock-names = "tsadc", "apb_pclk";
534                 resets = <&cru SRST_TSADC>;
535                 reset-names = "tsadc-apb";
536                 pinctrl-names = "init", "default", "sleep";
537                 pinctrl-0 = <&otp_gpio>;
538                 pinctrl-1 = <&otp_out>;
539                 pinctrl-2 = <&otp_gpio>;
540                 #thermal-sensor-cells = <1>;
541                 rockchip,hw-tshut-temp = <95000>;
542                 status = "disabled";
543         };
544
545         gmac: ethernet@ff290000 {
546                 compatible = "rockchip,rk3288-gmac";
547                 reg = <0xff290000 0x10000>;
548                 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
549                 interrupt-names = "macirq";
550                 rockchip,grf = <&grf>;
551                 clocks = <&cru SCLK_MAC>,
552                         <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
553                         <&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
554                         <&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
555                 clock-names = "stmmaceth",
556                         "mac_clk_rx", "mac_clk_tx",
557                         "clk_mac_ref", "clk_mac_refout",
558                         "aclk_mac", "pclk_mac";
559                 resets = <&cru SRST_MAC>;
560                 reset-names = "stmmaceth";
561                 max-speed = <100>;
562                 status = "disabled";
563         };
564
565         usb_host0_ehci: usb@ff500000 {
566                 compatible = "generic-ehci";
567                 reg = <0xff500000 0x100>;
568                 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
569                 clocks = <&cru HCLK_USBHOST0>;
570                 clock-names = "usbhost";
571                 phys = <&usbphy1>;
572                 phy-names = "usb";
573                 status = "disabled";
574         };
575
576         /* NOTE: ohci@ff520000 doesn't actually work on hardware */
577
578         usb_host1: usb@ff540000 {
579                 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
580                                 "snps,dwc2";
581                 reg = <0xff540000 0x40000>;
582                 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
583                 clocks = <&cru HCLK_USBHOST1>;
584                 clock-names = "otg";
585                 dr_mode = "host";
586                 phys = <&usbphy2>;
587                 phy-names = "usb2-phy";
588                 status = "disabled";
589         };
590
591         usb_otg: usb@ff580000 {
592                 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
593                                 "snps,dwc2";
594                 reg = <0xff580000 0x40000>;
595                 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
596                 clocks = <&cru HCLK_OTG0>;
597                 clock-names = "otg";
598                 dr_mode = "otg";
599                 g-np-tx-fifo-size = <16>;
600                 g-rx-fifo-size = <275>;
601                 g-tx-fifo-size = <256 128 128 64 64 32>;
602                 g-use-dma;
603                 phys = <&usbphy0>;
604                 phy-names = "usb2-phy";
605                 status = "disabled";
606         };
607
608         usb_hsic: usb@ff5c0000 {
609                 compatible = "generic-ehci";
610                 reg = <0xff5c0000 0x100>;
611                 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
612                 clocks = <&cru HCLK_HSIC>;
613                 clock-names = "usbhost";
614                 status = "disabled";
615         };
616
617         i2c0: i2c@ff650000 {
618                 compatible = "rockchip,rk3288-i2c";
619                 reg = <0xff650000 0x1000>;
620                 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
621                 #address-cells = <1>;
622                 #size-cells = <0>;
623                 clock-names = "i2c";
624                 clocks = <&cru PCLK_I2C0>;
625                 pinctrl-names = "default";
626                 pinctrl-0 = <&i2c0_xfer>;
627                 status = "disabled";
628         };
629
630         i2c2: i2c@ff660000 {
631                 compatible = "rockchip,rk3288-i2c";
632                 reg = <0xff660000 0x1000>;
633                 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
634                 #address-cells = <1>;
635                 #size-cells = <0>;
636                 clock-names = "i2c";
637                 clocks = <&cru PCLK_I2C2>;
638                 pinctrl-names = "default";
639                 pinctrl-0 = <&i2c2_xfer>;
640                 status = "disabled";
641         };
642
643         pwm0: pwm@ff680000 {
644                 compatible = "rockchip,rk3288-pwm";
645                 reg = <0xff680000 0x10>;
646                 #pwm-cells = <3>;
647                 pinctrl-names = "default";
648                 pinctrl-0 = <&pwm0_pin>;
649                 clocks = <&cru PCLK_PWM>;
650                 clock-names = "pwm";
651                 status = "disabled";
652         };
653
654         pwm1: pwm@ff680010 {
655                 compatible = "rockchip,rk3288-pwm";
656                 reg = <0xff680010 0x10>;
657                 #pwm-cells = <3>;
658                 pinctrl-names = "default";
659                 pinctrl-0 = <&pwm1_pin>;
660                 clocks = <&cru PCLK_PWM>;
661                 clock-names = "pwm";
662                 status = "disabled";
663         };
664
665         pwm2: pwm@ff680020 {
666                 compatible = "rockchip,rk3288-pwm";
667                 reg = <0xff680020 0x10>;
668                 #pwm-cells = <3>;
669                 pinctrl-names = "default";
670                 pinctrl-0 = <&pwm2_pin>;
671                 clocks = <&cru PCLK_PWM>;
672                 clock-names = "pwm";
673                 status = "disabled";
674         };
675
676         pwm3: pwm@ff680030 {
677                 compatible = "rockchip,rk3288-pwm";
678                 reg = <0xff680030 0x10>;
679                 #pwm-cells = <2>;
680                 pinctrl-names = "default";
681                 pinctrl-0 = <&pwm3_pin>;
682                 clocks = <&cru PCLK_PWM>;
683                 clock-names = "pwm";
684                 status = "disabled";
685         };
686
687         bus_intmem@ff700000 {
688                 compatible = "mmio-sram";
689                 reg = <0xff700000 0x18000>;
690                 #address-cells = <1>;
691                 #size-cells = <1>;
692                 ranges = <0 0xff700000 0x18000>;
693                 smp-sram@0 {
694                         compatible = "rockchip,rk3066-smp-sram";
695                         reg = <0x00 0x10>;
696                 };
697         };
698
699         sram@ff720000 {
700                 compatible = "rockchip,rk3288-pmu-sram", "mmio-sram";
701                 reg = <0xff720000 0x1000>;
702         };
703
704         qos_gpu_r: qos@ffaa0000 {
705                 compatible = "syscon";
706                 reg = <0xffaa0000 0x20>;
707         };
708
709         qos_gpu_w: qos@ffaa0080 {
710                 compatible = "syscon";
711                 reg = <0xffaa0080 0x20>;
712         };
713
714         qos_vio1_vop: qos@ffad0000 {
715                 compatible = "syscon";
716                 reg = <0xffad0000 0x20>;
717         };
718
719         qos_vio1_isp_w0: qos@ffad0100 {
720                 compatible = "syscon";
721                 reg = <0xffad0100 0x20>;
722         };
723
724         qos_vio1_isp_w1: qos@ffad0180 {
725                 compatible = "syscon";
726                 reg = <0xffad0180 0x20>;
727         };
728
729         qos_vio0_vop: qos@ffad0400 {
730                 compatible = "syscon";
731                 reg = <0xffad0400 0x20>;
732         };
733
734         qos_vio0_vip: qos@ffad0480 {
735                 compatible = "syscon";
736                 reg = <0xffad0480 0x20>;
737         };
738
739         qos_vio0_iep: qos@ffad0500 {
740                 compatible = "syscon";
741                 reg = <0xffad0500 0x20>;
742         };
743
744         qos_vio2_rga_r: qos@ffad0800 {
745                 compatible = "syscon";
746                 reg = <0xffad0800 0x20>;
747         };
748
749         qos_vio2_rga_w: qos@ffad0880 {
750                 compatible = "syscon";
751                 reg = <0xffad0880 0x20>;
752         };
753
754         qos_vio1_isp_r: qos@ffad0900 {
755                 compatible = "syscon";
756                 reg = <0xffad0900 0x20>;
757         };
758
759         qos_video: qos@ffae0000 {
760                 compatible = "syscon";
761                 reg = <0xffae0000 0x20>;
762         };
763
764         qos_hevc_r: qos@ffaf0000 {
765                 compatible = "syscon";
766                 reg = <0xffaf0000 0x20>;
767         };
768
769         qos_hevc_w: qos@ffaf0080 {
770                 compatible = "syscon";
771                 reg = <0xffaf0080 0x20>;
772         };
773
774         pmu: power-management@ff730000 {
775                 compatible = "rockchip,rk3288-pmu", "syscon", "simple-mfd";
776                 reg = <0xff730000 0x100>;
777
778                 power: power-controller {
779                         compatible = "rockchip,rk3288-power-controller";
780                         #power-domain-cells = <1>;
781                         #address-cells = <1>;
782                         #size-cells = <0>;
783
784                         /*
785                          * Note: Although SCLK_* are the working clocks
786                          * of device without including on the NOC, needed for
787                          * synchronous reset.
788                          *
789                          * The clocks on the which NOC:
790                          * ACLK_IEP/ACLK_VIP/ACLK_VOP0 are on ACLK_VIO0_NIU.
791                          * ACLK_ISP/ACLK_VOP1 are on ACLK_VIO1_NIU.
792                          * ACLK_RGA is on ACLK_RGA_NIU.
793                          * The others (HCLK_*,PLCK_*) are on HCLK_VIO_NIU.
794                          *
795                          * Which clock are device clocks:
796                          *      clocks          devices
797                          *      *_IEP           IEP:Image Enhancement Processor
798                          *      *_ISP           ISP:Image Signal Processing
799                          *      *_VIP           VIP:Video Input Processor
800                          *      *_VOP*          VOP:Visual Output Processor
801                          *      *_RGA           RGA
802                          *      *_EDP*          EDP
803                          *      *_LVDS_*        LVDS
804                          *      *_HDMI          HDMI
805                          *      *_MIPI_*        MIPI
806                          */
807                         pd_vio@RK3288_PD_VIO {
808                                 reg = <RK3288_PD_VIO>;
809                                 clocks = <&cru ACLK_IEP>,
810                                          <&cru ACLK_ISP>,
811                                          <&cru ACLK_RGA>,
812                                          <&cru ACLK_VIP>,
813                                          <&cru ACLK_VOP0>,
814                                          <&cru ACLK_VOP1>,
815                                          <&cru DCLK_VOP0>,
816                                          <&cru DCLK_VOP1>,
817                                          <&cru HCLK_IEP>,
818                                          <&cru HCLK_ISP>,
819                                          <&cru HCLK_RGA>,
820                                          <&cru HCLK_VIP>,
821                                          <&cru HCLK_VOP0>,
822                                          <&cru HCLK_VOP1>,
823                                          <&cru PCLK_EDP_CTRL>,
824                                          <&cru PCLK_HDMI_CTRL>,
825                                          <&cru PCLK_LVDS_PHY>,
826                                          <&cru PCLK_MIPI_CSI>,
827                                          <&cru PCLK_MIPI_DSI0>,
828                                          <&cru PCLK_MIPI_DSI1>,
829                                          <&cru SCLK_EDP_24M>,
830                                          <&cru SCLK_EDP>,
831                                          <&cru SCLK_ISP_JPE>,
832                                          <&cru SCLK_ISP>,
833                                          <&cru SCLK_RGA>;
834                                 pm_qos = <&qos_vio0_iep>,
835                                          <&qos_vio1_vop>,
836                                          <&qos_vio1_isp_w0>,
837                                          <&qos_vio1_isp_w1>,
838                                          <&qos_vio0_vop>,
839                                          <&qos_vio0_vip>,
840                                          <&qos_vio2_rga_r>,
841                                          <&qos_vio2_rga_w>,
842                                          <&qos_vio1_isp_r>;
843                         };
844
845                         /*
846                          * Note: The following 3 are HEVC(H.265) clocks,
847                          * and on the ACLK_HEVC_NIU (NOC).
848                          */
849                         pd_hevc@RK3288_PD_HEVC {
850                                 reg = <RK3288_PD_HEVC>;
851                                 clocks = <&cru ACLK_HEVC>,
852                                          <&cru SCLK_HEVC_CABAC>,
853                                          <&cru SCLK_HEVC_CORE>;
854                                 pm_qos = <&qos_hevc_r>,
855                                          <&qos_hevc_w>;
856                         };
857
858                         /*
859                          * Note: ACLK_VCODEC/HCLK_VCODEC are VCODEC
860                          * (video endecoder & decoder) clocks that on the
861                          * ACLK_VCODEC_NIU and HCLK_VCODEC_NIU (NOC).
862                          */
863                         pd_video@RK3288_PD_VIDEO {
864                                 reg = <RK3288_PD_VIDEO>;
865                                 clocks = <&cru ACLK_VCODEC>,
866                                          <&cru HCLK_VCODEC>;
867                                 pm_qos = <&qos_video>;
868                         };
869
870                         /*
871                          * Note: ACLK_GPU is the GPU clock,
872                          * and on the ACLK_GPU_NIU (NOC).
873                          */
874                         pd_gpu@RK3288_PD_GPU {
875                                 reg = <RK3288_PD_GPU>;
876                                 clocks = <&cru ACLK_GPU>;
877                                 pm_qos = <&qos_gpu_r>,
878                                          <&qos_gpu_w>;
879                         };
880                 };
881
882                 reboot-mode {
883                         compatible = "syscon-reboot-mode";
884                         offset = <0x94>;
885                         mode-normal = <BOOT_NORMAL>;
886                         mode-recovery = <BOOT_RECOVERY>;
887                         mode-bootloader = <BOOT_FASTBOOT>;
888                         mode-loader = <BOOT_LOADER>;
889                         mode-ums = <BOOT_UMS>;
890                 };
891         };
892
893         sgrf: syscon@ff740000 {
894                 compatible = "rockchip,rk3288-sgrf", "syscon";
895                 reg = <0xff740000 0x1000>;
896         };
897
898         cru: clock-controller@ff760000 {
899                 compatible = "rockchip,rk3288-cru";
900                 reg = <0xff760000 0x1000>;
901                 rockchip,grf = <&grf>;
902                 #clock-cells = <1>;
903                 #reset-cells = <1>;
904                 assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>,
905                                   <&cru PLL_GPLL>, <&cru PLL_CPLL>,
906                                   <&cru PLL_NPLL>, <&cru ACLK_CPU>,
907                                   <&cru HCLK_CPU>, <&cru PCLK_CPU>,
908                                   <&cru ACLK_PERI>, <&cru HCLK_PERI>,
909                                   <&cru PCLK_PERI>;
910                 assigned-clock-rates = <0>, <0>,
911                                        <594000000>, <400000000>,
912                                        <500000000>, <300000000>,
913                                        <150000000>, <75000000>,
914                                        <300000000>, <150000000>,
915                                        <75000000>;
916                 assigned-clock-parents = <&cru PLL_NPLL>, <&cru PLL_GPLL>;
917         };
918
919         grf: syscon@ff770000 {
920                 compatible = "rockchip,rk3288-grf", "syscon", "simple-mfd";
921                 reg = <0xff770000 0x1000>;
922
923                 edp_phy: edp-phy {
924                         compatible = "rockchip,rk3288-dp-phy";
925                         clocks = <&cru SCLK_EDP_24M>;
926                         clock-names = "24m";
927                         #phy-cells = <0>;
928                         status = "disabled";
929                 };
930
931                 io_domains: io-domains {
932                         compatible = "rockchip,rk3288-io-voltage-domain";
933                         status = "disabled";
934                 };
935
936                 usbphy: usbphy {
937                         compatible = "rockchip,rk3288-usb-phy";
938                         #address-cells = <1>;
939                         #size-cells = <0>;
940                         status = "disabled";
941
942                         usbphy0: usb-phy@320 {
943                                 #phy-cells = <0>;
944                                 reg = <0x320>;
945                                 clocks = <&cru SCLK_OTGPHY0>;
946                                 clock-names = "phyclk";
947                                 #clock-cells = <0>;
948                                 resets = <&cru SRST_USBOTG_PHY>;
949                                 reset-names = "phy-reset";
950                         };
951
952                         usbphy1: usb-phy@334 {
953                                 #phy-cells = <0>;
954                                 reg = <0x334>;
955                                 clocks = <&cru SCLK_OTGPHY1>;
956                                 clock-names = "phyclk";
957                                 #clock-cells = <0>;
958                         };
959
960                         usbphy2: usb-phy@348 {
961                                 #phy-cells = <0>;
962                                 reg = <0x348>;
963                                 clocks = <&cru SCLK_OTGPHY2>;
964                                 clock-names = "phyclk";
965                                 #clock-cells = <0>;
966                                 resets = <&cru SRST_USBHOST1_PHY>;
967                                 reset-names = "phy-reset";
968                         };
969                 };
970         };
971
972         wdt: watchdog@ff800000 {
973                 compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
974                 reg = <0xff800000 0x100>;
975                 clocks = <&cru PCLK_WDT>;
976                 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
977                 status = "disabled";
978         };
979
980         spdif: sound@ff88b0000 {
981                 compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
982                 reg = <0xff8b0000 0x10000>;
983                 #sound-dai-cells = <0>;
984                 clock-names = "hclk", "mclk";
985                 clocks = <&cru HCLK_SPDIF8CH>, <&cru SCLK_SPDIF8CH>;
986                 dmas = <&dmac_bus_s 3>;
987                 dma-names = "tx";
988                 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
989                 pinctrl-names = "default";
990                 pinctrl-0 = <&spdif_tx>;
991                 rockchip,grf = <&grf>;
992                 status = "disabled";
993         };
994
995         i2s: i2s@ff890000 {
996                 compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
997                 reg = <0xff890000 0x10000>;
998                 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
999                 #address-cells = <1>;
1000                 #size-cells = <0>;
1001                 dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
1002                 dma-names = "tx", "rx";
1003                 clock-names = "i2s_hclk", "i2s_clk";
1004                 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
1005                 pinctrl-names = "default";
1006                 pinctrl-0 = <&i2s0_bus>;
1007                 rockchip,playback-channels = <8>;
1008                 rockchip,capture-channels = <2>;
1009                 status = "disabled";
1010         };
1011
1012         vopb: vop@ff930000 {
1013                 compatible = "rockchip,rk3288-vop";
1014                 reg = <0xff930000 0x19c>;
1015                 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
1016                 clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
1017                 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
1018                 power-domains = <&power RK3288_PD_VIO>;
1019                 resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
1020                 reset-names = "axi", "ahb", "dclk";
1021                 iommus = <&vopb_mmu>;
1022                 status = "disabled";
1023
1024                 vopb_out: port {
1025                         #address-cells = <1>;
1026                         #size-cells = <0>;
1027
1028                         vopb_out_hdmi: endpoint@0 {
1029                                 reg = <0>;
1030                                 remote-endpoint = <&hdmi_in_vopb>;
1031                         };
1032
1033                         vopb_out_edp: endpoint@1 {
1034                                 reg = <1>;
1035                                 remote-endpoint = <&edp_in_vopb>;
1036                         };
1037
1038                         vopb_out_mipi: endpoint@2 {
1039                                 reg = <2>;
1040                                 remote-endpoint = <&mipi_in_vopb>;
1041                         };
1042
1043                         vopb_out_lvds: endpoint@3 {
1044                                 reg = <3>;
1045                                 remote-endpoint = <&lvds_in_vopb>;
1046                         };
1047                 };
1048         };
1049
1050         vopb_mmu: iommu@ff930300 {
1051                 compatible = "rockchip,iommu";
1052                 reg = <0xff930300 0x100>;
1053                 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
1054                 interrupt-names = "vopb_mmu";
1055                 power-domains = <&power RK3288_PD_VIO>;
1056                 #iommu-cells = <0>;
1057                 status = "disabled";
1058         };
1059
1060         vopl: vop@ff940000 {
1061                 compatible = "rockchip,rk3288-vop";
1062                 reg = <0xff940000 0x19c>;
1063                 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
1064                 clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
1065                 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
1066                 power-domains = <&power RK3288_PD_VIO>;
1067                 resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
1068                 reset-names = "axi", "ahb", "dclk";
1069                 iommus = <&vopl_mmu>;
1070                 status = "disabled";
1071
1072                 vopl_out: port {
1073                         #address-cells = <1>;
1074                         #size-cells = <0>;
1075
1076                         vopl_out_hdmi: endpoint@0 {
1077                                 reg = <0>;
1078                                 remote-endpoint = <&hdmi_in_vopl>;
1079                         };
1080
1081                         vopl_out_edp: endpoint@1 {
1082                                 reg = <1>;
1083                                 remote-endpoint = <&edp_in_vopl>;
1084                         };
1085
1086                         vopl_out_mipi: endpoint@2 {
1087                                 reg = <2>;
1088                                 remote-endpoint = <&mipi_in_vopl>;
1089                         };
1090
1091                         vopl_out_lvds: endpoint@3 {
1092                                 reg = <3>;
1093                                 remote-endpoint = <&lvds_in_vopl>;
1094                         };
1095
1096                 };
1097         };
1098
1099         vopl_mmu: iommu@ff940300 {
1100                 compatible = "rockchip,iommu";
1101                 reg = <0xff940300 0x100>;
1102                 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
1103                 interrupt-names = "vopl_mmu";
1104                 power-domains = <&power RK3288_PD_VIO>;
1105                 #iommu-cells = <0>;
1106                 status = "disabled";
1107         };
1108
1109         mipi_dsi: mipi@ff960000 {
1110                 compatible = "rockchip,rk3288-mipi-dsi", "snps,dw-mipi-dsi";
1111                 reg = <0xff960000 0x4000>;
1112                 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
1113                 clocks = <&cru SCLK_MIPIDSI_24M>, <&cru PCLK_MIPI_DSI0>;
1114                 clock-names = "ref", "pclk";
1115                 power-domains = <&power RK3288_PD_VIO>;
1116                 rockchip,grf = <&grf>;
1117                 #address-cells = <1>;
1118                 #size-cells = <0>;
1119                 status = "disabled";
1120
1121                 ports {
1122                         #address-cells = <1>;
1123                         #size-cells = <0>;
1124                         reg = <1>;
1125
1126                         mipi_in: port {
1127                                 #address-cells = <1>;
1128                                 #size-cells = <0>;
1129                                 mipi_in_vopb: endpoint@0 {
1130                                         reg = <0>;
1131                                         remote-endpoint = <&vopb_out_mipi>;
1132                                 };
1133                                 mipi_in_vopl: endpoint@1 {
1134                                         reg = <1>;
1135                                         remote-endpoint = <&vopl_out_mipi>;
1136                                 };
1137                         };
1138                 };
1139         };
1140
1141         edp: dp@ff970000 {
1142                 compatible = "rockchip,rk3288-dp";
1143                 reg = <0xff970000 0x4000>;
1144                 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1145                 clocks = <&cru SCLK_EDP>, <&cru PCLK_EDP_CTRL>;
1146                 clock-names = "dp", "pclk";
1147                 phys = <&edp_phy>;
1148                 phy-names = "dp";
1149                 resets = <&cru SRST_EDP>;
1150                 reset-names = "dp";
1151                 rockchip,grf = <&grf>;
1152                 status = "disabled";
1153
1154                 ports {
1155                         #address-cells = <1>;
1156                         #size-cells = <0>;
1157                         edp_in: port@0 {
1158                                 reg = <0>;
1159                                 #address-cells = <1>;
1160                                 #size-cells = <0>;
1161                                 edp_in_vopb: endpoint@0 {
1162                                         reg = <0>;
1163                                         remote-endpoint = <&vopb_out_edp>;
1164                                 };
1165                                 edp_in_vopl: endpoint@1 {
1166                                         reg = <1>;
1167                                         remote-endpoint = <&vopl_out_edp>;
1168                                 };
1169                         };
1170                 };
1171         };
1172
1173         lvds: lvds@ff96c000 {
1174                 compatible = "rockchip,rk3288-lvds";
1175                 reg = <0xff96c000 0x4000>;
1176                 clocks = <&cru PCLK_LVDS_PHY>;
1177                 clock-names = "pclk_lvds";
1178                 pinctrl-names = "default";
1179                 pinctrl-0 = <&lcdc0_ctl>;
1180                 power-domains = <&power RK3288_PD_VIO>;
1181                 rockchip,grf = <&grf>;
1182                 status = "disabled";
1183
1184                 ports {
1185                         #address-cells = <1>;
1186                         #size-cells = <0>;
1187
1188                         lvds_in: port@0 {
1189                                 reg = <0>;
1190
1191                                 #address-cells = <1>;
1192                                 #size-cells = <0>;
1193
1194                                 lvds_in_vopb: endpoint@0 {
1195                                         reg = <0>;
1196                                         remote-endpoint = <&vopb_out_lvds>;
1197                                 };
1198                                 lvds_in_vopl: endpoint@1 {
1199                                         reg = <1>;
1200                                         remote-endpoint = <&vopl_out_lvds>;
1201                                 };
1202                         };
1203                 };
1204         };
1205
1206         hdmi: hdmi@ff980000 {
1207                 compatible = "rockchip,rk3288-dw-hdmi";
1208                 reg = <0xff980000 0x20000>;
1209                 reg-io-width = <4>;
1210                 rockchip,grf = <&grf>;
1211                 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
1212                 clocks = <&cru  PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
1213                 clock-names = "iahb", "isfr";
1214                 power-domains = <&power RK3288_PD_VIO>;
1215                 status = "disabled";
1216
1217                 ports {
1218                         hdmi_in: port {
1219                                 #address-cells = <1>;
1220                                 #size-cells = <0>;
1221                                 hdmi_in_vopb: endpoint@0 {
1222                                         reg = <0>;
1223                                         remote-endpoint = <&vopb_out_hdmi>;
1224                                 };
1225                                 hdmi_in_vopl: endpoint@1 {
1226                                         reg = <1>;
1227                                         remote-endpoint = <&vopl_out_hdmi>;
1228                                 };
1229                         };
1230                 };
1231         };
1232
1233         gpu: gpu@ffa30000 {
1234                 compatible = "arm,malit764",
1235                              "arm,malit76x",
1236                              "arm,malit7xx",
1237                              "arm,mali-midgard";
1238                 reg = <0xffa30000 0x10000>;
1239                 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
1240                              <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
1241                              <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
1242                 interrupt-names = "JOB", "MMU", "GPU";
1243                 clocks = <&cru ACLK_GPU>;
1244                 clock-names = "clk_mali";
1245                 operating-points = <
1246                         /* KHz uV */
1247                         600000 1250000
1248                         /* 500000 1200000 - See crosbug.com/p/33857 */
1249                         400000 1100000
1250                         300000 1000000
1251                         200000 950000
1252                         100000 950000
1253                 >;
1254                 #cooling-cells = <2>; /* min followed by max */
1255                 power-domains = <&power RK3288_PD_GPU>;
1256                 status = "disabled";
1257         };
1258
1259         vpu: video-codec@ff9a0000 {
1260                 compatible = "rockchip,rk3288-vpu";
1261                 reg = <0xff9a0000 0x800>;
1262                 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
1263                                 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1264                 interrupt-names = "vepu", "vdpu";
1265                 clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
1266                 clock-names = "aclk", "hclk";
1267                 power-domains = <&power RK3288_PD_VIDEO>;
1268                 iommus = <&vpu_mmu>;
1269                 assigned-clocks = <&cru ACLK_VCODEC>;
1270                 assigned-clock-rates = <400000000>;
1271                 status = "disabled";
1272         };
1273
1274         vpu_service: vpu-service@ff9a0000 {
1275                 compatible = "rockchip,vpu_service";
1276                 reg = <0xff9a0000 0x800>;
1277                 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
1278                                 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1279                 interrupt-names = "irq_enc", "irq_dec";
1280                 clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
1281                 clock-names = "aclk_vcodec", "hclk_vcodec";
1282                 power-domains = <&power RK3288_PD_VIDEO>;
1283                 rockchip,grf = <&grf>;
1284                 resets = <&cru SRST_VCODEC_AXI>, <&cru SRST_VCODEC_AHB>;
1285                 reset-names = "video_a", "video_h";
1286                 iommus = <&vpu_mmu>;
1287                 iommu_enabled = <1>;
1288                 dev_mode = <0>;
1289                 status = "disabled";
1290         };
1291
1292         vpu_mmu: iommu@ff9a0800 {
1293                 compatible = "rockchip,iommu";
1294                 reg = <0xff9a0800 0x100>;
1295                 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1296                 interrupt-names = "vpu_mmu";
1297                 power-domains = <&power RK3288_PD_VIDEO>;
1298                 #iommu-cells = <0>;
1299         };
1300
1301         hevc_service: hevc-service@ff9c0000 {
1302                 compatible = "rockchip,hevc_service";
1303                 reg = <0xff9c0000 0x400>;
1304                 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1305                 interrupt-names = "irq_dec";
1306                 clocks = <&cru ACLK_HEVC>, <&cru HCLK_HEVC>,
1307                         <&cru SCLK_HEVC_CORE>,
1308                         <&cru SCLK_HEVC_CABAC>;
1309                 clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core",
1310                         "clk_cabac";
1311                 /*
1312                  * The 4K hevc would also work well with 500/125/300/300,
1313                  * no more err irq and reset request.
1314                  */
1315                 assigned-clocks = <&cru ACLK_HEVC>, <&cru HCLK_HEVC>,
1316                                   <&cru SCLK_HEVC_CORE>,
1317                                   <&cru SCLK_HEVC_CABAC>;
1318                 assigned-clock-rates = <400000000>, <100000000>,
1319                                        <300000000>, <300000000>;
1320
1321                 resets = <&cru SRST_HEVC>;
1322                 reset-names = "video";
1323                 power-domains = <&power RK3288_PD_HEVC>;
1324                 rockchip,grf = <&grf>;
1325                 dev_mode = <1>;
1326                 iommus = <&hevc_mmu>;
1327                 iommu_enabled = <1>;
1328                 status = "disabled";
1329         };
1330
1331         hevc_mmu: iommu@ff9c0440 {
1332                 compatible = "rockchip,iommu";
1333                 reg = <0xff9c0440 0x40>, <0xff9c0480 0x40>;
1334                 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
1335                 interrupt-names = "hevc_mmu";
1336                 power-domains = <&power RK3288_PD_HEVC>;
1337                 #iommu-cells = <0>;
1338         };
1339
1340         gic: interrupt-controller@ffc01000 {
1341                 compatible = "arm,gic-400";
1342                 interrupt-controller;
1343                 #interrupt-cells = <3>;
1344                 #address-cells = <0>;
1345
1346                 reg = <0xffc01000 0x1000>,
1347                       <0xffc02000 0x1000>,
1348                       <0xffc04000 0x2000>,
1349                       <0xffc06000 0x2000>;
1350                 interrupts = <GIC_PPI 9 0xf04>;
1351         };
1352
1353         efuse: efuse@ffb40000 {
1354                 compatible = "rockchip,rockchip-efuse";
1355                 reg = <0xffb40000 0x20>;
1356                 #address-cells = <1>;
1357                 #size-cells = <1>;
1358                 clocks = <&cru PCLK_EFUSE256>;
1359                 clock-names = "pclk_efuse";
1360
1361                 cpu_leakage: cpu_leakage@17 {
1362                         reg = <0x17 0x1>;
1363                 };
1364         };
1365
1366         cif_isp0: cif_isp@ff910000 {
1367                 compatible = "rockchip,rk3288-cif-isp";
1368                 rockchip,grf = <&grf>;
1369                 reg = <0xff910000 0x10000>, <0xff968000 0x4000>;
1370                 reg-names = "register", "csihost-register";
1371                 clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>,
1372                         <&cru SCLK_ISP>, <&cru SCLK_ISP_JPE>,
1373                         <&cru PCLK_MIPI_CSI>, <&cru PCLK_ISP_IN>,
1374                         <&cru SCLK_MIPIDSI_24M>;
1375                 clock-names = "aclk_isp", "hclk_isp",
1376                         "sclk_isp", "sclk_isp_jpe",
1377                         "pclk_mipi_csi", "pclk_isp_in",
1378                         "sclk_mipidsi_24m";
1379                 resets = <&cru SRST_ISP>;
1380                 reset-names = "rst_isp";
1381                 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1382                 interrupt-names = "cif_isp10_irq";
1383                 status = "disabled";
1384         };
1385
1386         pinctrl: pinctrl {
1387                 compatible = "rockchip,rk3288-pinctrl";
1388                 rockchip,grf = <&grf>;
1389                 rockchip,pmu = <&pmu>;
1390                 #address-cells = <1>;
1391                 #size-cells = <1>;
1392                 ranges;
1393
1394                 gpio0: gpio0@ff750000 {
1395                         compatible = "rockchip,gpio-bank";
1396                         reg =   <0xff750000 0x100>;
1397                         interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
1398                         clocks = <&cru PCLK_GPIO0>;
1399
1400                         gpio-controller;
1401                         #gpio-cells = <2>;
1402
1403                         interrupt-controller;
1404                         #interrupt-cells = <2>;
1405                 };
1406
1407                 gpio1: gpio1@ff780000 {
1408                         compatible = "rockchip,gpio-bank";
1409                         reg = <0xff780000 0x100>;
1410                         interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1411                         clocks = <&cru PCLK_GPIO1>;
1412
1413                         gpio-controller;
1414                         #gpio-cells = <2>;
1415
1416                         interrupt-controller;
1417                         #interrupt-cells = <2>;
1418                 };
1419
1420                 gpio2: gpio2@ff790000 {
1421                         compatible = "rockchip,gpio-bank";
1422                         reg = <0xff790000 0x100>;
1423                         interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
1424                         clocks = <&cru PCLK_GPIO2>;
1425
1426                         gpio-controller;
1427                         #gpio-cells = <2>;
1428
1429                         interrupt-controller;
1430                         #interrupt-cells = <2>;
1431                 };
1432
1433                 gpio3: gpio3@ff7a0000 {
1434                         compatible = "rockchip,gpio-bank";
1435                         reg = <0xff7a0000 0x100>;
1436                         interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
1437                         clocks = <&cru PCLK_GPIO3>;
1438
1439                         gpio-controller;
1440                         #gpio-cells = <2>;
1441
1442                         interrupt-controller;
1443                         #interrupt-cells = <2>;
1444                 };
1445
1446                 gpio4: gpio4@ff7b0000 {
1447                         compatible = "rockchip,gpio-bank";
1448                         reg = <0xff7b0000 0x100>;
1449                         interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
1450                         clocks = <&cru PCLK_GPIO4>;
1451
1452                         gpio-controller;
1453                         #gpio-cells = <2>;
1454
1455                         interrupt-controller;
1456                         #interrupt-cells = <2>;
1457                 };
1458
1459                 gpio5: gpio5@ff7c0000 {
1460                         compatible = "rockchip,gpio-bank";
1461                         reg = <0xff7c0000 0x100>;
1462                         interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1463                         clocks = <&cru PCLK_GPIO5>;
1464
1465                         gpio-controller;
1466                         #gpio-cells = <2>;
1467
1468                         interrupt-controller;
1469                         #interrupt-cells = <2>;
1470                 };
1471
1472                 gpio6: gpio6@ff7d0000 {
1473                         compatible = "rockchip,gpio-bank";
1474                         reg = <0xff7d0000 0x100>;
1475                         interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
1476                         clocks = <&cru PCLK_GPIO6>;
1477
1478                         gpio-controller;
1479                         #gpio-cells = <2>;
1480
1481                         interrupt-controller;
1482                         #interrupt-cells = <2>;
1483                 };
1484
1485                 gpio7: gpio7@ff7e0000 {
1486                         compatible = "rockchip,gpio-bank";
1487                         reg = <0xff7e0000 0x100>;
1488                         interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1489                         clocks = <&cru PCLK_GPIO7>;
1490
1491                         gpio-controller;
1492                         #gpio-cells = <2>;
1493
1494                         interrupt-controller;
1495                         #interrupt-cells = <2>;
1496                 };
1497
1498                 gpio8: gpio8@ff7f0000 {
1499                         compatible = "rockchip,gpio-bank";
1500                         reg = <0xff7f0000 0x100>;
1501                         interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1502                         clocks = <&cru PCLK_GPIO8>;
1503
1504                         gpio-controller;
1505                         #gpio-cells = <2>;
1506
1507                         interrupt-controller;
1508                         #interrupt-cells = <2>;
1509                 };
1510
1511                 hdmi {
1512                         hdmi_ddc: hdmi-ddc {
1513                                 rockchip,pins = <7 19 RK_FUNC_2 &pcfg_pull_none>,
1514                                                 <7 20 RK_FUNC_2 &pcfg_pull_none>;
1515                         };
1516                 };
1517
1518                 pcfg_pull_up: pcfg-pull-up {
1519                         bias-pull-up;
1520                 };
1521
1522                 pcfg_pull_down: pcfg-pull-down {
1523                         bias-pull-down;
1524                 };
1525
1526                 pcfg_pull_none: pcfg-pull-none {
1527                         bias-disable;
1528                 };
1529
1530                 pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1531                         bias-disable;
1532                         drive-strength = <12>;
1533                 };
1534
1535                 sleep {
1536                         global_pwroff: global-pwroff {
1537                                 rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>;
1538                         };
1539
1540                         ddrio_pwroff: ddrio-pwroff {
1541                                 rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
1542                         };
1543
1544                         ddr0_retention: ddr0-retention {
1545                                 rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_up>;
1546                         };
1547
1548                         ddr1_retention: ddr1-retention {
1549                                 rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_up>;
1550                         };
1551                 };
1552
1553                 edp {
1554                         edp_hpd: edp-hpd {
1555                                 rockchip,pins = <7 11 RK_FUNC_2 &pcfg_pull_down>;
1556                         };
1557                 };
1558
1559                 i2c0 {
1560                         i2c0_xfer: i2c0-xfer {
1561                                 rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,
1562                                                 <0 16 RK_FUNC_1 &pcfg_pull_none>;
1563                         };
1564                 };
1565
1566                 i2c1 {
1567                         i2c1_xfer: i2c1-xfer {
1568                                 rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>,
1569                                                 <8 5 RK_FUNC_1 &pcfg_pull_none>;
1570                         };
1571                 };
1572
1573                 i2c2 {
1574                         i2c2_xfer: i2c2-xfer {
1575                                 rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>,
1576                                                 <6 10 RK_FUNC_1 &pcfg_pull_none>;
1577                         };
1578                 };
1579
1580                 i2c3 {
1581                         i2c3_xfer: i2c3-xfer {
1582                                 rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>,
1583                                                 <2 17 RK_FUNC_1 &pcfg_pull_none>;
1584                         };
1585                 };
1586
1587                 i2c4 {
1588                         i2c4_xfer: i2c4-xfer {
1589                                 rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>,
1590                                                 <7 18 RK_FUNC_1 &pcfg_pull_none>;
1591                         };
1592                 };
1593
1594                 i2c5 {
1595                         i2c5_xfer: i2c5-xfer {
1596                                 rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>,
1597                                                 <7 20 RK_FUNC_1 &pcfg_pull_none>;
1598                         };
1599                 };
1600
1601                 i2s0 {
1602                         i2s0_bus: i2s0-bus {
1603                                 rockchip,pins = <6 0 RK_FUNC_1 &pcfg_pull_none>,
1604                                                 <6 1 RK_FUNC_1 &pcfg_pull_none>,
1605                                                 <6 2 RK_FUNC_1 &pcfg_pull_none>,
1606                                                 <6 3 RK_FUNC_1 &pcfg_pull_none>,
1607                                                 <6 4 RK_FUNC_1 &pcfg_pull_none>,
1608                                                 <6 8 RK_FUNC_1 &pcfg_pull_none>;
1609                         };
1610                 };
1611
1612                 lcdc0 {
1613                         lcdc0_ctl: lcdc0-ctl {
1614                                 rockchip,pins = <1 24 RK_FUNC_1 &pcfg_pull_none>,
1615                                                 <1 25 RK_FUNC_1 &pcfg_pull_none>,
1616                                                 <1 26 RK_FUNC_1 &pcfg_pull_none>,
1617                                                 <1 27 RK_FUNC_1 &pcfg_pull_none>;
1618                         };
1619                 };
1620
1621                 sdmmc {
1622                         sdmmc_clk: sdmmc-clk {
1623                                 rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
1624                         };
1625
1626                         sdmmc_cmd: sdmmc-cmd {
1627                                 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
1628                         };
1629
1630                         sdmmc_cd: sdmcc-cd {
1631                                 rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
1632                         };
1633
1634                         sdmmc_bus1: sdmmc-bus1 {
1635                                 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>;
1636                         };
1637
1638                         sdmmc_bus4: sdmmc-bus4 {
1639                                 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>,
1640                                                 <6 17 RK_FUNC_1 &pcfg_pull_up>,
1641                                                 <6 18 RK_FUNC_1 &pcfg_pull_up>,
1642                                                 <6 19 RK_FUNC_1 &pcfg_pull_up>;
1643                         };
1644                 };
1645
1646                 sdio0 {
1647                         sdio0_bus1: sdio0-bus1 {
1648                                 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>;
1649                         };
1650
1651                         sdio0_bus4: sdio0-bus4 {
1652                                 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>,
1653                                                 <4 21 RK_FUNC_1 &pcfg_pull_up>,
1654                                                 <4 22 RK_FUNC_1 &pcfg_pull_up>,
1655                                                 <4 23 RK_FUNC_1 &pcfg_pull_up>;
1656                         };
1657
1658                         sdio0_cmd: sdio0-cmd {
1659                                 rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>;
1660                         };
1661
1662                         sdio0_clk: sdio0-clk {
1663                                 rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>;
1664                         };
1665
1666                         sdio0_cd: sdio0-cd {
1667                                 rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>;
1668                         };
1669
1670                         sdio0_wp: sdio0-wp {
1671                                 rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>;
1672                         };
1673
1674                         sdio0_pwr: sdio0-pwr {
1675                                 rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>;
1676                         };
1677
1678                         sdio0_bkpwr: sdio0-bkpwr {
1679                                 rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>;
1680                         };
1681
1682                         sdio0_int: sdio0-int {
1683                                 rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>;
1684                         };
1685                 };
1686
1687                 sdio1 {
1688                         sdio1_bus1: sdio1-bus1 {
1689                                 rockchip,pins = <3 24 4 &pcfg_pull_up>;
1690                         };
1691
1692                         sdio1_bus4: sdio1-bus4 {
1693                                 rockchip,pins = <3 24 4 &pcfg_pull_up>,
1694                                                 <3 25 4 &pcfg_pull_up>,
1695                                                 <3 26 4 &pcfg_pull_up>,
1696                                                 <3 27 4 &pcfg_pull_up>;
1697                         };
1698
1699                         sdio1_cd: sdio1-cd {
1700                                 rockchip,pins = <3 28 4 &pcfg_pull_up>;
1701                         };
1702
1703                         sdio1_wp: sdio1-wp {
1704                                 rockchip,pins = <3 29 4 &pcfg_pull_up>;
1705                         };
1706
1707                         sdio1_bkpwr: sdio1-bkpwr {
1708                                 rockchip,pins = <3 30 4 &pcfg_pull_up>;
1709                         };
1710
1711                         sdio1_int: sdio1-int {
1712                                 rockchip,pins = <3 31 4 &pcfg_pull_up>;
1713                         };
1714
1715                         sdio1_cmd: sdio1-cmd {
1716                                 rockchip,pins = <4 6 4 &pcfg_pull_up>;
1717                         };
1718
1719                         sdio1_clk: sdio1-clk {
1720                                 rockchip,pins = <4 7 4 &pcfg_pull_none>;
1721                         };
1722
1723                         sdio1_pwr: sdio1-pwr {
1724                                 rockchip,pins = <4 9 4 &pcfg_pull_up>;
1725                         };
1726                 };
1727
1728                 emmc {
1729                         emmc_clk: emmc-clk {
1730                                 rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>;
1731                         };
1732
1733                         emmc_cmd: emmc-cmd {
1734                                 rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>;
1735                         };
1736
1737                         emmc_pwr: emmc-pwr {
1738                                 rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>;
1739                         };
1740
1741                         emmc_bus1: emmc-bus1 {
1742                                 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>;
1743                         };
1744
1745                         emmc_bus4: emmc-bus4 {
1746                                 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1747                                                 <3 1 RK_FUNC_2 &pcfg_pull_up>,
1748                                                 <3 2 RK_FUNC_2 &pcfg_pull_up>,
1749                                                 <3 3 RK_FUNC_2 &pcfg_pull_up>;
1750                         };
1751
1752                         emmc_bus8: emmc-bus8 {
1753                                 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1754                                                 <3 1 RK_FUNC_2 &pcfg_pull_up>,
1755                                                 <3 2 RK_FUNC_2 &pcfg_pull_up>,
1756                                                 <3 3 RK_FUNC_2 &pcfg_pull_up>,
1757                                                 <3 4 RK_FUNC_2 &pcfg_pull_up>,
1758                                                 <3 5 RK_FUNC_2 &pcfg_pull_up>,
1759                                                 <3 6 RK_FUNC_2 &pcfg_pull_up>,
1760                                                 <3 7 RK_FUNC_2 &pcfg_pull_up>;
1761                         };
1762                 };
1763
1764                 spi0 {
1765                         spi0_clk: spi0-clk {
1766                                 rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>;
1767                         };
1768                         spi0_cs0: spi0-cs0 {
1769                                 rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>;
1770                         };
1771                         spi0_tx: spi0-tx {
1772                                 rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>;
1773                         };
1774                         spi0_rx: spi0-rx {
1775                                 rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>;
1776                         };
1777                         spi0_cs1: spi0-cs1 {
1778                                 rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>;
1779                         };
1780                 };
1781                 spi1 {
1782                         spi1_clk: spi1-clk {
1783                                 rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>;
1784                         };
1785                         spi1_cs0: spi1-cs0 {
1786                                 rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>;
1787                         };
1788                         spi1_rx: spi1-rx {
1789                                 rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>;
1790                         };
1791                         spi1_tx: spi1-tx {
1792                                 rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>;
1793                         };
1794                 };
1795
1796                 spi2 {
1797                         spi2_cs1: spi2-cs1 {
1798                                 rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>;
1799                         };
1800                         spi2_clk: spi2-clk {
1801                                 rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>;
1802                         };
1803                         spi2_cs0: spi2-cs0 {
1804                                 rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>;
1805                         };
1806                         spi2_rx: spi2-rx {
1807                                 rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>;
1808                         };
1809                         spi2_tx: spi2-tx {
1810                                 rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>;
1811                         };
1812                 };
1813
1814                 uart0 {
1815                         uart0_xfer: uart0-xfer {
1816                                 rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>,
1817                                                 <4 17 RK_FUNC_1 &pcfg_pull_none>;
1818                         };
1819
1820                         uart0_cts: uart0-cts {
1821                                 rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_up>;
1822                         };
1823
1824                         uart0_rts: uart0-rts {
1825                                 rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>;
1826                         };
1827                 };
1828
1829                 uart1 {
1830                         uart1_xfer: uart1-xfer {
1831                                 rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>,
1832                                                 <5 9 RK_FUNC_1 &pcfg_pull_none>;
1833                         };
1834
1835                         uart1_cts: uart1-cts {
1836                                 rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_up>;
1837                         };
1838
1839                         uart1_rts: uart1-rts {
1840                                 rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>;
1841                         };
1842                 };
1843
1844                 uart2 {
1845                         uart2_xfer: uart2-xfer {
1846                                 rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>,
1847                                                 <7 23 RK_FUNC_1 &pcfg_pull_none>;
1848                         };
1849                         /* no rts / cts for uart2 */
1850                 };
1851
1852                 uart3 {
1853                         uart3_xfer: uart3-xfer {
1854                                 rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>,
1855                                                 <7 8 RK_FUNC_1 &pcfg_pull_none>;
1856                         };
1857
1858                         uart3_cts: uart3-cts {
1859                                 rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_up>;
1860                         };
1861
1862                         uart3_rts: uart3-rts {
1863                                 rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>;
1864                         };
1865                 };
1866
1867                 uart4 {
1868                         uart4_xfer: uart4-xfer {
1869                                 rockchip,pins = <5 12 3 &pcfg_pull_up>,
1870                                                 <5 13 3 &pcfg_pull_none>;
1871                         };
1872
1873                         uart4_cts: uart4-cts {
1874                                 rockchip,pins = <5 14 3 &pcfg_pull_up>;
1875                         };
1876
1877                         uart4_rts: uart4-rts {
1878                                 rockchip,pins = <5 15 3 &pcfg_pull_none>;
1879                         };
1880                 };
1881
1882                 tsadc {
1883                         otp_gpio: otp-gpio {
1884                                 rockchip,pins = <0 10 RK_FUNC_GPIO &pcfg_pull_none>;
1885                         };
1886
1887                         otp_out: otp-out {
1888                                 rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>;
1889                         };
1890                 };
1891
1892                 pwm0 {
1893                         pwm0_pin: pwm0-pin {
1894                                 rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;
1895                         };
1896                 };
1897
1898                 pwm1 {
1899                         pwm1_pin: pwm1-pin {
1900                                 rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>;
1901                         };
1902                 };
1903
1904                 pwm2 {
1905                         pwm2_pin: pwm2-pin {
1906                                 rockchip,pins = <7 22 3 &pcfg_pull_none>;
1907                         };
1908                 };
1909
1910                 pwm3 {
1911                         pwm3_pin: pwm3-pin {
1912                                 rockchip,pins = <7 23 3 &pcfg_pull_none>;
1913                         };
1914                 };
1915
1916                 gmac {
1917                         rgmii_pins: rgmii-pins {
1918                                 rockchip,pins = <3 30 3 &pcfg_pull_none>,
1919                                                 <3 31 3 &pcfg_pull_none>,
1920                                                 <3 26 3 &pcfg_pull_none>,
1921                                                 <3 27 3 &pcfg_pull_none>,
1922                                                 <3 28 3 &pcfg_pull_none_12ma>,
1923                                                 <3 29 3 &pcfg_pull_none_12ma>,
1924                                                 <3 24 3 &pcfg_pull_none_12ma>,
1925                                                 <3 25 3 &pcfg_pull_none_12ma>,
1926                                                 <4 0 3 &pcfg_pull_none>,
1927                                                 <4 5 3 &pcfg_pull_none>,
1928                                                 <4 6 3 &pcfg_pull_none>,
1929                                                 <4 9 3 &pcfg_pull_none_12ma>,
1930                                                 <4 4 3 &pcfg_pull_none_12ma>,
1931                                                 <4 1 3 &pcfg_pull_none>,
1932                                                 <4 3 3 &pcfg_pull_none>;
1933                         };
1934
1935                         rmii_pins: rmii-pins {
1936                                 rockchip,pins = <3 30 3 &pcfg_pull_none>,
1937                                                 <3 31 3 &pcfg_pull_none>,
1938                                                 <3 28 3 &pcfg_pull_none>,
1939                                                 <3 29 3 &pcfg_pull_none>,
1940                                                 <4 0 3 &pcfg_pull_none>,
1941                                                 <4 5 3 &pcfg_pull_none>,
1942                                                 <4 4 3 &pcfg_pull_none>,
1943                                                 <4 1 3 &pcfg_pull_none>,
1944                                                 <4 2 3 &pcfg_pull_none>,
1945                                                 <4 3 3 &pcfg_pull_none>;
1946                         };
1947                 };
1948
1949                 spdif {
1950                         spdif_tx: spdif-tx {
1951                                 rockchip,pins = <RK_GPIO6 11 RK_FUNC_1 &pcfg_pull_none>;
1952                         };
1953                 };
1954
1955                 cif {
1956                         cif_dvp_d2d9: cif-dvp-d2d9 {
1957                                 rockchip,pins = <2 0 RK_FUNC_1 &pcfg_pull_none>,
1958                                                 <2 1 RK_FUNC_1 &pcfg_pull_none>,
1959                                                 <2 2 RK_FUNC_1 &pcfg_pull_none>,
1960                                                 <2 3 RK_FUNC_1 &pcfg_pull_none>,
1961                                                 <2 4 RK_FUNC_1 &pcfg_pull_none>,
1962                                                 <2 5 RK_FUNC_1 &pcfg_pull_none>,
1963                                                 <2 6 RK_FUNC_1 &pcfg_pull_none>,
1964                                                 <2 7 RK_FUNC_1 &pcfg_pull_none>,
1965                                                 <2 8 RK_FUNC_1 &pcfg_pull_none>,
1966                                                 <2 9 RK_FUNC_1 &pcfg_pull_none>,
1967                                                 <2 11 RK_FUNC_1 &pcfg_pull_none>;
1968                         };
1969                 };
1970         };
1971 };