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