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