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