Merge tag 'keys-namespace-20190627' of git://git.kernel.org/pub/scm/linux/kernel...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / rv1108.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2
3 #include <dt-bindings/gpio/gpio.h>
4 #include <dt-bindings/interrupt-controller/irq.h>
5 #include <dt-bindings/interrupt-controller/arm-gic.h>
6 #include <dt-bindings/clock/rv1108-cru.h>
7 #include <dt-bindings/pinctrl/rockchip.h>
8 #include <dt-bindings/thermal/thermal.h>
9 / {
10         #address-cells = <1>;
11         #size-cells = <1>;
12
13         compatible = "rockchip,rv1108";
14
15         interrupt-parent = <&gic>;
16
17         aliases {
18                 i2c0 = &i2c0;
19                 i2c1 = &i2c1;
20                 i2c2 = &i2c2;
21                 i2c3 = &i2c3;
22                 serial0 = &uart0;
23                 serial1 = &uart1;
24                 serial2 = &uart2;
25         };
26
27         cpus {
28                 #address-cells = <1>;
29                 #size-cells = <0>;
30
31                 cpu0: cpu@f00 {
32                         device_type = "cpu";
33                         compatible = "arm,cortex-a7";
34                         reg = <0xf00>;
35                         clock-latency = <40000>;
36                         clocks = <&cru ARMCLK>;
37                         #cooling-cells = <2>; /* min followed by max */
38                         dynamic-power-coefficient = <75>;
39                         operating-points-v2 = <&cpu_opp_table>;
40                 };
41         };
42
43         cpu_opp_table: opp_table {
44                 compatible = "operating-points-v2";
45
46                 opp-408000000 {
47                         opp-hz = /bits/ 64 <408000000>;
48                         opp-microvolt = <975000>;
49                         clock-latency-ns = <40000>;
50                 };
51                 opp-600000000 {
52                         opp-hz = /bits/ 64 <600000000>;
53                         opp-microvolt = <975000>;
54                         clock-latency-ns = <40000>;
55                 };
56                 opp-816000000 {
57                         opp-hz = /bits/ 64 <816000000>;
58                         opp-microvolt = <1025000>;
59                         clock-latency-ns = <40000>;
60                 };
61                 opp-1008000000 {
62                         opp-hz = /bits/ 64 <1008000000>;
63                         opp-microvolt = <1150000>;
64                         clock-latency-ns = <40000>;
65                 };
66         };
67
68         arm-pmu {
69                 compatible = "arm,cortex-a7-pmu";
70                 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
71         };
72
73         timer {
74                 compatible = "arm,armv7-timer";
75                 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>,
76                              <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
77                 arm,cpu-registers-not-fw-configured;
78                 clock-frequency = <24000000>;
79         };
80
81         xin24m: oscillator {
82                 compatible = "fixed-clock";
83                 clock-frequency = <24000000>;
84                 clock-output-names = "xin24m";
85                 #clock-cells = <0>;
86         };
87
88         amba {
89                 compatible = "simple-bus";
90                 #address-cells = <1>;
91                 #size-cells = <1>;
92                 ranges;
93
94                 pdma: pdma@102a0000 {
95                         compatible = "arm,pl330", "arm,primecell";
96                         reg = <0x102a0000 0x4000>;
97                         interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
98                         #dma-cells = <1>;
99                         arm,pl330-broken-no-flushp;
100                         clocks = <&cru ACLK_DMAC>;
101                         clock-names = "apb_pclk";
102                 };
103         };
104
105         bus_intmem@10080000 {
106                 compatible = "mmio-sram";
107                 reg = <0x10080000 0x2000>;
108                 #address-cells = <1>;
109                 #size-cells = <1>;
110                 ranges = <0 0x10080000 0x2000>;
111         };
112
113         uart2: serial@10210000 {
114                 compatible = "rockchip,rv1108-uart", "snps,dw-apb-uart";
115                 reg = <0x10210000 0x100>;
116                 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
117                 reg-shift = <2>;
118                 reg-io-width = <4>;
119                 clock-frequency = <24000000>;
120                 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
121                 clock-names = "baudclk", "apb_pclk";
122                 dmas = <&pdma 6>, <&pdma 7>;
123                 #dma-cells = <2>;
124                 pinctrl-names = "default";
125                 pinctrl-0 = <&uart2m0_xfer>;
126                 status = "disabled";
127         };
128
129         uart1: serial@10220000 {
130                 compatible = "rockchip,rv1108-uart", "snps,dw-apb-uart";
131                 reg = <0x10220000 0x100>;
132                 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
133                 reg-shift = <2>;
134                 reg-io-width = <4>;
135                 clock-frequency = <24000000>;
136                 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
137                 clock-names = "baudclk", "apb_pclk";
138                 dmas = <&pdma 4>, <&pdma 5>;
139                 #dma-cells = <2>;
140                 pinctrl-names = "default";
141                 pinctrl-0 = <&uart1_xfer>;
142                 status = "disabled";
143         };
144
145         uart0: serial@10230000 {
146                 compatible = "rockchip,rv1108-uart", "snps,dw-apb-uart";
147                 reg = <0x10230000 0x100>;
148                 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
149                 reg-shift = <2>;
150                 reg-io-width = <4>;
151                 clock-frequency = <24000000>;
152                 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
153                 clock-names = "baudclk", "apb_pclk";
154                 dmas = <&pdma 2>, <&pdma 3>;
155                 #dma-cells = <2>;
156                 pinctrl-names = "default";
157                 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
158                 status = "disabled";
159         };
160
161         i2c1: i2c@10240000 {
162                 compatible = "rockchip,rv1108-i2c";
163                 reg = <0x10240000 0x1000>;
164                 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
165                 #address-cells = <1>;
166                 #size-cells = <0>;
167                 clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
168                 clock-names = "i2c", "pclk";
169                 pinctrl-names = "default";
170                 pinctrl-0 = <&i2c1_xfer>;
171                 rockchip,grf = <&grf>;
172                 status = "disabled";
173         };
174
175         i2c2: i2c@10250000 {
176                 compatible = "rockchip,rv1108-i2c";
177                 reg = <0x10250000 0x1000>;
178                 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
179                 #address-cells = <1>;
180                 #size-cells = <0>;
181                 clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
182                 clock-names = "i2c", "pclk";
183                 pinctrl-names = "default";
184                 pinctrl-0 = <&i2c2m1_xfer>;
185                 rockchip,grf = <&grf>;
186                 status = "disabled";
187         };
188
189         i2c3: i2c@10260000 {
190                 compatible = "rockchip,rv1108-i2c";
191                 reg = <0x10260000 0x1000>;
192                 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
193                 #address-cells = <1>;
194                 #size-cells = <0>;
195                 clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
196                 clock-names = "i2c", "pclk";
197                 pinctrl-names = "default";
198                 pinctrl-0 = <&i2c3_xfer>;
199                 rockchip,grf = <&grf>;
200                 status = "disabled";
201         };
202
203         spi: spi@10270000 {
204                 compatible = "rockchip,rv1108-spi";
205                 reg = <0x10270000 0x1000>;
206                 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
207                 clocks = <&cru SCLK_SPI>, <&cru PCLK_SPI>;
208                 clock-names = "spiclk", "apb_pclk";
209                 dmas = <&pdma 8>, <&pdma 9>;
210                 dma-names = "tx", "rx";
211                 #dma-cells = <2>;
212                 #address-cells = <1>;
213                 #size-cells = <0>;
214                 status = "disabled";
215         };
216
217         pwm4: pwm@10280000 {
218                 compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
219                 reg = <0x10280000 0x10>;
220                 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
221                 clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
222                 clock-names = "pwm", "pclk";
223                 pinctrl-names = "default";
224                 pinctrl-0 = <&pwm4_pin>;
225                 #pwm-cells = <3>;
226                 status = "disabled";
227         };
228
229         pwm5: pwm@10280010 {
230                 compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
231                 reg = <0x10280010 0x10>;
232                 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
233                 clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
234                 clock-names = "pwm", "pclk";
235                 pinctrl-names = "default";
236                 pinctrl-0 = <&pwm5_pin>;
237                 #pwm-cells = <3>;
238                 status = "disabled";
239         };
240
241         pwm6: pwm@10280020 {
242                 compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
243                 reg = <0x10280020 0x10>;
244                 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
245                 clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
246                 clock-names = "pwm", "pclk";
247                 pinctrl-names = "default";
248                 pinctrl-0 = <&pwm6_pin>;
249                 #pwm-cells = <3>;
250                 status = "disabled";
251         };
252
253         pwm7: pwm@10280030 {
254                 compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
255                 reg = <0x10280030 0x10>;
256                 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
257                 clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
258                 clock-names = "pwm", "pclk";
259                 pinctrl-names = "default";
260                 pinctrl-0 = <&pwm7_pin>;
261                 #pwm-cells = <3>;
262                 status = "disabled";
263         };
264
265         grf: syscon@10300000 {
266                 compatible = "rockchip,rv1108-grf", "syscon", "simple-mfd";
267                 reg = <0x10300000 0x1000>;
268                 #address-cells = <1>;
269                 #size-cells = <1>;
270
271                 u2phy: usb2-phy@100 {
272                         compatible = "rockchip,rv1108-usb2phy";
273                         reg = <0x100 0x0c>;
274                         clocks = <&cru SCLK_USBPHY>;
275                         clock-names = "phyclk";
276                         #clock-cells = <0>;
277                         clock-output-names = "usbphy";
278                         rockchip,usbgrf = <&usbgrf>;
279                         status = "disabled";
280
281                         u2phy_otg: otg-port {
282                                 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
283                                 interrupt-names = "otg-mux";
284                                 #phy-cells = <0>;
285                                 status = "disabled";
286                         };
287
288                         u2phy_host: host-port {
289                                 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
290                                 interrupt-names = "linestate";
291                                 #phy-cells = <0>;
292                                 status = "disabled";
293                         };
294                 };
295         };
296
297         timer: timer@10350000 {
298                 compatible = "rockchip,rv1108-timer", "rockchip,rk3288-timer";
299                 reg = <0x10350000 0x20>;
300                 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
301                 clocks = <&xin24m>, <&cru PCLK_TIMER>;
302                 clock-names = "timer", "pclk";
303         };
304
305         watchdog: wdt@10360000 {
306                 compatible = "snps,dw-wdt";
307                 reg = <0x10360000 0x100>;
308                 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
309                 clocks = <&cru PCLK_WDT>;
310                 clock-names = "pclk_wdt";
311                 status = "disabled";
312         };
313
314         thermal-zones {
315                 soc_thermal: soc-thermal {
316                         polling-delay-passive = <20>;
317                         polling-delay = <1000>;
318                         sustainable-power = <50>;
319                         thermal-sensors = <&tsadc 0>;
320
321                         trips {
322                                 threshold: trip-point0 {
323                                         temperature = <70000>;
324                                         hysteresis = <2000>;
325                                         type = "passive";
326                                 };
327                                 target: trip-point1 {
328                                         temperature = <85000>;
329                                         hysteresis = <2000>;
330                                         type = "passive";
331                                 };
332                                 soc_crit: soc-crit {
333                                         temperature = <95000>;
334                                         hysteresis = <2000>;
335                                         type = "critical";
336                                 };
337                         };
338
339                         cooling-maps {
340                                 map0 {
341                                         trip = <&target>;
342                                         cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
343                                         contribution = <4096>;
344                                 };
345                         };
346                 };
347         };
348
349         tsadc: tsadc@10370000 {
350                 compatible = "rockchip,rv1108-tsadc";
351                 reg = <0x10370000 0x100>;
352                 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
353                 assigned-clocks = <&cru SCLK_TSADC>;
354                 assigned-clock-rates = <750000>;
355                 clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
356                 clock-names = "tsadc", "apb_pclk";
357                 pinctrl-names = "init", "default", "sleep";
358                 pinctrl-0 = <&otp_gpio>;
359                 pinctrl-1 = <&otp_out>;
360                 pinctrl-2 = <&otp_gpio>;
361                 resets = <&cru SRST_TSADC>;
362                 reset-names = "tsadc-apb";
363                 rockchip,hw-tshut-temp = <120000>;
364                 #thermal-sensor-cells = <1>;
365                 status = "disabled";
366         };
367
368         adc: adc@1038c000 {
369                 compatible = "rockchip,rv1108-saradc", "rockchip,rk3399-saradc";
370                 reg = <0x1038c000 0x100>;
371                 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
372                 #io-channel-cells = <1>;
373                 clock-frequency = <1000000>;
374                 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
375                 clock-names = "saradc", "apb_pclk";
376                 status = "disabled";
377         };
378
379         i2c0: i2c@20000000 {
380                 compatible = "rockchip,rv1108-i2c";
381                 reg = <0x20000000 0x1000>;
382                 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
383                 #address-cells = <1>;
384                 #size-cells = <0>;
385                 clocks = <&cru SCLK_I2C0_PMU>, <&cru PCLK_I2C0_PMU>;
386                 clock-names = "i2c", "pclk";
387                 pinctrl-names = "default";
388                 pinctrl-0 = <&i2c0_xfer>;
389                 rockchip,grf = <&grf>;
390                 status = "disabled";
391         };
392
393         pwm0: pwm@20040000 {
394                 compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
395                 reg = <0x20040000 0x10>;
396                 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
397                 clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
398                 clock-names = "pwm", "pclk";
399                 pinctrl-names = "default";
400                 pinctrl-0 = <&pwm0_pin>;
401                 #pwm-cells = <3>;
402                 status = "disabled";
403         };
404
405         pwm1: pwm@20040010 {
406                 compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
407                 reg = <0x20040010 0x10>;
408                 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
409                 clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
410                 clock-names = "pwm", "pclk";
411                 pinctrl-names = "default";
412                 pinctrl-0 = <&pwm1_pin>;
413                 #pwm-cells = <3>;
414                 status = "disabled";
415         };
416
417         pwm2: pwm@20040020 {
418                 compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
419                 reg = <0x20040020 0x10>;
420                 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
421                 clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
422                 clock-names = "pwm", "pclk";
423                 pinctrl-names = "default";
424                 pinctrl-0 = <&pwm2_pin>;
425                 #pwm-cells = <3>;
426                 status = "disabled";
427         };
428
429         pwm3: pwm@20040030 {
430                 compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
431                 reg = <0x20040030 0x10>;
432                 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
433                 clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
434                 clock-names = "pwm", "pclk";
435                 pinctrl-names = "default";
436                 pinctrl-0 = <&pwm3_pin>;
437                 #pwm-cells = <3>;
438                 status = "disabled";
439         };
440
441         pmugrf: syscon@20060000 {
442                 compatible = "rockchip,rv1108-pmugrf", "syscon";
443                 reg = <0x20060000 0x1000>;
444         };
445
446         usbgrf: syscon@202a0000 {
447                 compatible = "rockchip,rv1108-usbgrf", "syscon";
448                 reg = <0x202a0000 0x1000>;
449         };
450
451         cru: clock-controller@20200000 {
452                 compatible = "rockchip,rv1108-cru";
453                 reg = <0x20200000 0x1000>;
454                 rockchip,grf = <&grf>;
455                 #clock-cells = <1>;
456                 #reset-cells = <1>;
457         };
458
459         emmc: dwmmc@30110000 {
460                 compatible = "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc";
461                 reg = <0x30110000 0x4000>;
462                 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
463                 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
464                          <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
465                 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
466                 fifo-depth = <0x100>;
467                 max-frequency = <150000000>;
468                 status = "disabled";
469         };
470
471         sdio: dwmmc@30120000 {
472                 compatible = "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc";
473                 reg = <0x30120000 0x4000>;
474                 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
475                 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
476                          <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
477                 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
478                 fifo-depth = <0x100>;
479                 max-frequency = <150000000>;
480                 status = "disabled";
481         };
482
483         sdmmc: dwmmc@30130000 {
484                 compatible = "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc";
485                 reg = <0x30130000 0x4000>;
486                 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
487                 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
488                          <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
489                 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
490                 fifo-depth = <0x100>;
491                 max-frequency = <100000000>;
492                 pinctrl-names = "default";
493                 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
494                 status = "disabled";
495         };
496
497         usb_host_ehci: usb@30140000 {
498                 compatible = "generic-ehci";
499                 reg = <0x30140000 0x20000>;
500                 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
501                 clocks = <&cru HCLK_HOST0>, <&u2phy>;
502                 clock-names = "usbhost", "utmi";
503                 phys = <&u2phy_host>;
504                 phy-names = "usb";
505                 status = "disabled";
506         };
507
508         usb_host_ohci: usb@30160000 {
509                 compatible = "generic-ohci";
510                 reg = <0x30160000 0x20000>;
511                 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
512                 clocks = <&cru HCLK_HOST0>, <&u2phy>;
513                 clock-names = "usbhost", "utmi";
514                 phys = <&u2phy_host>;
515                 phy-names = "usb";
516                 status = "disabled";
517         };
518
519         usb_otg: usb@30180000 {
520                 compatible = "rockchip,rv1108-usb", "rockchip,rk3066-usb",
521                              "snps,dwc2";
522                 reg = <0x30180000 0x40000>;
523                 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
524                 clocks = <&cru HCLK_OTG>;
525                 clock-names = "otg";
526                 dr_mode = "otg";
527                 g-np-tx-fifo-size = <16>;
528                 g-rx-fifo-size = <280>;
529                 g-tx-fifo-size = <256 128 128 64 32 16>;
530                 g-use-dma;
531                 phys = <&u2phy_otg>;
532                 phy-names = "usb2-phy";
533                 status = "disabled";
534         };
535
536         gmac: eth@30200000 {
537                 compatible = "rockchip,rv1108-gmac";
538                 reg = <0x30200000 0x10000>;
539                 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
540                              <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
541                 interrupt-names = "macirq", "eth_wake_irq";
542                 clocks = <&cru SCLK_MAC>,
543                         <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_RX>,
544                         <&cru SCLK_MAC_REF>, <&cru SCLK_MAC_REFOUT>,
545                         <&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
546                 clock-names = "stmmaceth",
547                         "mac_clk_rx", "mac_clk_tx",
548                         "clk_mac_ref", "clk_mac_refout",
549                         "aclk_mac", "pclk_mac";
550                 /* rv1108 only supports an rmii interface */
551                 phy-mode = "rmii";
552                 pinctrl-names = "default";
553                 pinctrl-0 = <&rmii_pins>;
554                 rockchip,grf = <&grf>;
555                 status = "disabled";
556         };
557
558         gic: interrupt-controller@32010000 {
559                 compatible = "arm,gic-400";
560                 interrupt-controller;
561                 #interrupt-cells = <3>;
562                 #address-cells = <0>;
563
564                 reg = <0x32011000 0x1000>,
565                       <0x32012000 0x2000>,
566                       <0x32014000 0x2000>,
567                       <0x32016000 0x2000>;
568                 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
569         };
570
571         pinctrl: pinctrl {
572                 compatible = "rockchip,rv1108-pinctrl";
573                 rockchip,grf = <&grf>;
574                 rockchip,pmu = <&pmugrf>;
575                 #address-cells = <1>;
576                 #size-cells = <1>;
577                 ranges;
578
579                 gpio0: gpio0@20030000 {
580                         compatible = "rockchip,gpio-bank";
581                         reg = <0x20030000 0x100>;
582                         interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
583                         clocks = <&cru PCLK_GPIO0_PMU>;
584
585                         gpio-controller;
586                         #gpio-cells = <2>;
587
588                         interrupt-controller;
589                         #interrupt-cells = <2>;
590                 };
591
592                 gpio1: gpio1@10310000 {
593                         compatible = "rockchip,gpio-bank";
594                         reg = <0x10310000 0x100>;
595                         interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
596                         clocks = <&cru PCLK_GPIO1>;
597
598                         gpio-controller;
599                         #gpio-cells = <2>;
600
601                         interrupt-controller;
602                         #interrupt-cells = <2>;
603                 };
604
605                 gpio2: gpio2@10320000 {
606                         compatible = "rockchip,gpio-bank";
607                         reg = <0x10320000 0x100>;
608                         interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
609                         clocks = <&cru PCLK_GPIO2>;
610
611                         gpio-controller;
612                         #gpio-cells = <2>;
613
614                         interrupt-controller;
615                         #interrupt-cells = <2>;
616                 };
617
618                 gpio3: gpio3@10330000 {
619                         compatible = "rockchip,gpio-bank";
620                         reg = <0x10330000 0x100>;
621                         interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
622                         clocks = <&cru PCLK_GPIO3>;
623
624                         gpio-controller;
625                         #gpio-cells = <2>;
626
627                         interrupt-controller;
628                         #interrupt-cells = <2>;
629                 };
630
631                 pcfg_pull_up: pcfg-pull-up {
632                         bias-pull-up;
633                 };
634
635                 pcfg_pull_down: pcfg-pull-down {
636                         bias-pull-down;
637                 };
638
639                 pcfg_pull_none: pcfg-pull-none {
640                         bias-disable;
641                 };
642
643                 pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
644                         drive-strength = <8>;
645                 };
646
647                 pcfg_pull_none_drv_12ma: pcfg-pull-none-drv-12ma {
648                         drive-strength = <12>;
649                 };
650
651                 pcfg_pull_none_smt: pcfg-pull-none-smt {
652                         bias-disable;
653                         input-schmitt-enable;
654                 };
655
656                 pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
657                         bias-pull-up;
658                         drive-strength = <8>;
659                 };
660
661                 pcfg_pull_none_drv_4ma: pcfg-pull-none-drv-4ma {
662                         drive-strength = <4>;
663                 };
664
665                 pcfg_pull_up_drv_4ma: pcfg-pull-up-drv-4ma {
666                         bias-pull-up;
667                         drive-strength = <4>;
668                 };
669
670                 pcfg_output_high: pcfg-output-high {
671                         output-high;
672                 };
673
674                 pcfg_output_low: pcfg-output-low {
675                         output-low;
676                 };
677
678                 pcfg_input_high: pcfg-input-high {
679                         bias-pull-up;
680                         input-enable;
681                 };
682
683                 emmc {
684                         emmc_bus8: emmc-bus8 {
685                                 rockchip,pins = <2 RK_PA0 2 &pcfg_pull_up_drv_8ma>,
686                                                 <2 RK_PA1 2 &pcfg_pull_up_drv_8ma>,
687                                                 <2 RK_PA2 2 &pcfg_pull_up_drv_8ma>,
688                                                 <2 RK_PA3 2 &pcfg_pull_up_drv_8ma>,
689                                                 <2 RK_PA4 2 &pcfg_pull_up_drv_8ma>,
690                                                 <2 RK_PA5 2 &pcfg_pull_up_drv_8ma>,
691                                                 <2 RK_PA6 2 &pcfg_pull_up_drv_8ma>,
692                                                 <2 RK_PA7 2 &pcfg_pull_up_drv_8ma>;
693                         };
694
695                         emmc_clk: emmc-clk {
696                                 rockchip,pins = <2 RK_PB6 1 &pcfg_pull_none_drv_8ma>;
697                         };
698
699                         emmc_cmd: emmc-cmd {
700                                 rockchip,pins = <2 RK_PB4 2 &pcfg_pull_up_drv_8ma>;
701                         };
702                 };
703
704                 gmac {
705                         rmii_pins: rmii-pins {
706                                 rockchip,pins = <1 RK_PC5 2 &pcfg_pull_none>,
707                                                 <1 RK_PC3 2 &pcfg_pull_none>,
708                                                 <1 RK_PC4 2 &pcfg_pull_none>,
709                                                 <1 RK_PB2 3 &pcfg_pull_none_drv_12ma>,
710                                                 <1 RK_PB3 3 &pcfg_pull_none_drv_12ma>,
711                                                 <1 RK_PB4 3 &pcfg_pull_none_drv_12ma>,
712                                                 <1 RK_PB5 3 &pcfg_pull_none>,
713                                                 <1 RK_PB6 3 &pcfg_pull_none>,
714                                                 <1 RK_PB7 3 &pcfg_pull_none>,
715                                                 <1 RK_PC2 3 &pcfg_pull_none>;
716                         };
717                 };
718
719                 i2c0 {
720                         i2c0_xfer: i2c0-xfer {
721                                 rockchip,pins = <0 RK_PB1 1 &pcfg_pull_none_smt>,
722                                                 <0 RK_PB2 1 &pcfg_pull_none_smt>;
723                         };
724                 };
725
726                 i2c1 {
727                         i2c1_xfer: i2c1-xfer {
728                                 rockchip,pins = <2 RK_PD3 1 &pcfg_pull_up>,
729                                                 <2 RK_PD4 1 &pcfg_pull_up>;
730                         };
731                 };
732
733                 i2c2m1 {
734                         i2c2m1_xfer: i2c2m1-xfer {
735                                 rockchip,pins = <0 RK_PC2 2 &pcfg_pull_none>,
736                                                 <0 RK_PC6 3 &pcfg_pull_none>;
737                         };
738
739                         i2c2m1_gpio: i2c2m1-gpio {
740                                 rockchip,pins = <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>,
741                                                 <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
742                         };
743                 };
744
745                 i2c2m05v {
746                         i2c2m05v_xfer: i2c2m05v-xfer {
747                                 rockchip,pins = <1 RK_PD5 2 &pcfg_pull_none>,
748                                                 <1 RK_PD4 2 &pcfg_pull_none>;
749                         };
750
751                         i2c2m05v_gpio: i2c2m05v-gpio {
752                                 rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>,
753                                                 <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
754                         };
755                 };
756
757                 i2c3 {
758                         i2c3_xfer: i2c3-xfer {
759                                 rockchip,pins = <0 RK_PB6 1 &pcfg_pull_none>,
760                                                 <0 RK_PC4 2 &pcfg_pull_none>;
761                         };
762                 };
763
764                 pwm0 {
765                         pwm0_pin: pwm0-pin {
766                                 rockchip,pins = <0 RK_PC5 1 &pcfg_pull_none>;
767                         };
768                 };
769
770                 pwm1 {
771                         pwm1_pin: pwm1-pin {
772                                 rockchip,pins = <0 RK_PC4 1 &pcfg_pull_none>;
773                         };
774                 };
775
776                 pwm2 {
777                         pwm2_pin: pwm2-pin {
778                                 rockchip,pins = <0 RK_PC6 1 &pcfg_pull_none>;
779                         };
780                 };
781
782                 pwm3 {
783                         pwm3_pin: pwm3-pin {
784                                 rockchip,pins = <0 RK_PC0 1 &pcfg_pull_none>;
785                         };
786                 };
787
788                 pwm4 {
789                         pwm4_pin: pwm4-pin {
790                                 rockchip,pins = <1 RK_PC1 3 &pcfg_pull_none>;
791                         };
792                 };
793
794                 pwm5 {
795                         pwm5_pin: pwm5-pin {
796                                 rockchip,pins = <1 RK_PA7 2 &pcfg_pull_none>;
797                         };
798                 };
799
800                 pwm6 {
801                         pwm6_pin: pwm6-pin {
802                                 rockchip,pins = <1 RK_PB0 2 &pcfg_pull_none>;
803                         };
804                 };
805
806                 pwm7 {
807                         pwm7_pin: pwm7-pin {
808                                 rockchip,pins = <1 RK_PB1 2 &pcfg_pull_none>;
809                         };
810                 };
811
812                 sdmmc {
813                         sdmmc_clk: sdmmc-clk {
814                                 rockchip,pins = <3 RK_PC4 1 &pcfg_pull_none_drv_4ma>;
815                         };
816
817                         sdmmc_cmd: sdmmc-cmd {
818                                 rockchip,pins = <3 RK_PC5 1 &pcfg_pull_up_drv_4ma>;
819                         };
820
821                         sdmmc_cd: sdmmc-cd {
822                                 rockchip,pins = <0 RK_PA1 1 &pcfg_pull_up_drv_4ma>;
823                         };
824
825                         sdmmc_bus1: sdmmc-bus1 {
826                                 rockchip,pins = <3 RK_PC3 1 &pcfg_pull_up_drv_4ma>;
827                         };
828
829                         sdmmc_bus4: sdmmc-bus4 {
830                                 rockchip,pins = <3 RK_PC3 1 &pcfg_pull_up_drv_4ma>,
831                                                 <3 RK_PC2 1 &pcfg_pull_up_drv_4ma>,
832                                                 <3 RK_PC1 1 &pcfg_pull_up_drv_4ma>,
833                                                 <3 RK_PC0 1 &pcfg_pull_up_drv_4ma>;
834                         };
835                 };
836
837                 spim0 {
838                         spim0_clk: spim0-clk {
839                                 rockchip,pins = <1 RK_PD0 2 &pcfg_pull_up>;
840                         };
841
842                         spim0_cs0: spim0-cs0 {
843                                 rockchip,pins = <1 RK_PD1 2 &pcfg_pull_up>;
844                         };
845
846                         spim0_tx: spim0-tx {
847                                 rockchip,pins = <1 RK_PD3 2 &pcfg_pull_up>;
848                         };
849
850                         spim0_rx: spim0-rx {
851                                 rockchip,pins = <1 RK_PD2 2 &pcfg_pull_up>;
852                         };
853                 };
854
855                 spim1 {
856                         spim1_clk: spim1-clk {
857                                 rockchip,pins = <0 RK_PA3 1 &pcfg_pull_up>;
858                         };
859
860                         spim1_cs0: spim1-cs0 {
861                                 rockchip,pins = <0 RK_PA4 1 &pcfg_pull_up>;
862                         };
863
864                         spim1_rx: spim1-rx {
865                                 rockchip,pins = <0 RK_PB0 1 &pcfg_pull_up>;
866                         };
867
868                         spim1_tx: spim1-tx {
869                                 rockchip,pins = <0 RK_PA7 1 &pcfg_pull_up>;
870                         };
871                 };
872
873                 tsadc {
874                         otp_out: otp-out {
875                                 rockchip,pins = <0 RK_PB7 1 &pcfg_pull_none>;
876                         };
877
878                         otp_gpio: otp-gpio {
879                                 rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
880                         };
881                 };
882
883                 uart0 {
884                         uart0_xfer: uart0-xfer {
885                                 rockchip,pins = <3 RK_PA6 1 &pcfg_pull_up>,
886                                                 <3 RK_PA5 1 &pcfg_pull_none>;
887                         };
888
889                         uart0_cts: uart0-cts {
890                                 rockchip,pins = <3 RK_PA4 1 &pcfg_pull_none>;
891                         };
892
893                         uart0_rts: uart0-rts {
894                                 rockchip,pins = <3 RK_PA3 1 &pcfg_pull_none>;
895                         };
896
897                         uart0_rts_gpio: uart0-rts-gpio {
898                                 rockchip,pins = <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
899                         };
900                 };
901
902                 uart1 {
903                         uart1_xfer: uart1-xfer {
904                                 rockchip,pins = <1 RK_PD3 1 &pcfg_pull_up>,
905                                                 <1 RK_PD2 1 &pcfg_pull_none>;
906                         };
907
908                         uart1_cts: uart1-cts {
909                                 rockchip,pins = <1 RK_PD0 1 &pcfg_pull_none>;
910                         };
911
912                         uart1_rts: uart1-rts {
913                                 rockchip,pins = <1 RK_PD1 1 &pcfg_pull_none>;
914                         };
915                 };
916
917                 uart2m0 {
918                         uart2m0_xfer: uart2m0-xfer {
919                                 rockchip,pins = <2 RK_PD2 1 &pcfg_pull_up>,
920                                                 <2 RK_PD1 1 &pcfg_pull_none>;
921                         };
922                 };
923
924                 uart2m1 {
925                         uart2m1_xfer: uart2m1-xfer {
926                                 rockchip,pins = <3 RK_PC3 2 &pcfg_pull_up>,
927                                                 <3 RK_PC2 2 &pcfg_pull_none>;
928                         };
929                 };
930
931                 uart2_5v {
932                         uart2_5v_cts: uart2_5v-cts {
933                                 rockchip,pins = <1 RK_PD4 1 &pcfg_pull_none>;
934                         };
935
936                         uart2_5v_rts: uart2_5v-rts {
937                                 rockchip,pins = <1 RK_PD5 1 &pcfg_pull_none>;
938                         };
939                 };
940         };
941 };