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