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