Merge tag 'block-5.14-2021-08-07' of git://git.kernel.dk/linux-block
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / hisilicon / hi3670.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * dts file for Hisilicon Hi3670 SoC
4  *
5  * Copyright (C) 2016, HiSilicon Ltd.
6  * Copyright (C) 2018, Linaro Ltd.
7  */
8
9 #include <dt-bindings/interrupt-controller/arm-gic.h>
10 #include <dt-bindings/clock/hi3670-clock.h>
11
12 / {
13         compatible = "hisilicon,hi3670";
14         interrupt-parent = <&gic>;
15         #address-cells = <2>;
16         #size-cells = <2>;
17
18         psci {
19                 compatible = "arm,psci-0.2";
20                 method = "smc";
21         };
22
23         cpus {
24                 #address-cells = <2>;
25                 #size-cells = <0>;
26
27                 cpu-map {
28                         cluster0 {
29                                 core0 {
30                                         cpu = <&cpu0>;
31                                 };
32                                 core1 {
33                                         cpu = <&cpu1>;
34                                 };
35                                 core2 {
36                                         cpu = <&cpu2>;
37                                 };
38                                 core3 {
39                                         cpu = <&cpu3>;
40                                 };
41                         };
42                         cluster1 {
43                                 core0 {
44                                         cpu = <&cpu4>;
45                                 };
46                                 core1 {
47                                         cpu = <&cpu5>;
48                                 };
49                                 core2 {
50                                         cpu = <&cpu6>;
51                                 };
52                                 core3 {
53                                         cpu = <&cpu7>;
54                                 };
55                         };
56                 };
57
58                 cpu0: cpu@0 {
59                         compatible = "arm,cortex-a53";
60                         device_type = "cpu";
61                         reg = <0x0 0x0>;
62                         enable-method = "psci";
63                 };
64
65                 cpu1: cpu@1 {
66                         compatible = "arm,cortex-a53";
67                         device_type = "cpu";
68                         reg = <0x0 0x1>;
69                         enable-method = "psci";
70                 };
71
72                 cpu2: cpu@2 {
73                         compatible = "arm,cortex-a53";
74                         device_type = "cpu";
75                         reg = <0x0 0x2>;
76                         enable-method = "psci";
77                 };
78
79                 cpu3: cpu@3 {
80                         compatible = "arm,cortex-a53";
81                         device_type = "cpu";
82                         reg = <0x0 0x3>;
83                         enable-method = "psci";
84                 };
85
86                 cpu4: cpu@100 {
87                         compatible = "arm,cortex-a73";
88                         device_type = "cpu";
89                         reg = <0x0 0x100>;
90                         enable-method = "psci";
91                 };
92
93                 cpu5: cpu@101 {
94                         compatible = "arm,cortex-a73";
95                         device_type = "cpu";
96                         reg = <0x0 0x101>;
97                         enable-method = "psci";
98                 };
99
100                 cpu6: cpu@102 {
101                         compatible = "arm,cortex-a73";
102                         device_type = "cpu";
103                         reg = <0x0 0x102>;
104                         enable-method = "psci";
105                 };
106
107                 cpu7: cpu@103 {
108                         compatible = "arm,cortex-a73";
109                         device_type = "cpu";
110                         reg = <0x0 0x103>;
111                         enable-method = "psci";
112                 };
113         };
114
115         gic: interrupt-controller@e82b0000 {
116                 compatible = "arm,gic-400";
117                 reg = <0x0 0xe82b1000 0 0x1000>, /* GICD */
118                       <0x0 0xe82b2000 0 0x2000>, /* GICC */
119                       <0x0 0xe82b4000 0 0x2000>, /* GICH */
120                       <0x0 0xe82b6000 0 0x2000>; /* GICV */
121                 #interrupt-cells = <3>;
122                 #address-cells = <0>;
123                 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) |
124                                          IRQ_TYPE_LEVEL_HIGH)>;
125                 interrupt-controller;
126         };
127
128         timer {
129                 compatible = "arm,armv8-timer";
130                 interrupt-parent = <&gic>;
131                 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) |
132                                           IRQ_TYPE_LEVEL_LOW)>,
133                              <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) |
134                                           IRQ_TYPE_LEVEL_LOW)>,
135                              <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) |
136                                           IRQ_TYPE_LEVEL_LOW)>,
137                              <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) |
138                                           IRQ_TYPE_LEVEL_LOW)>;
139                 clock-frequency = <1920000>;
140         };
141
142         soc {
143                 compatible = "simple-bus";
144                 #address-cells = <2>;
145                 #size-cells = <2>;
146                 ranges;
147
148                 crg_ctrl: crg_ctrl@fff35000 {
149                         compatible = "hisilicon,hi3670-crgctrl", "syscon";
150                         reg = <0x0 0xfff35000 0x0 0x1000>;
151                         #clock-cells = <1>;
152                 };
153
154                 crg_rst: crg_rst_controller {
155                         compatible = "hisilicon,hi3670-reset",
156                                      "hisilicon,hi3660-reset";
157                         #reset-cells = <2>;
158                         hisi,rst-syscon = <&crg_ctrl>;
159                 };
160
161                 pctrl: pctrl@e8a09000 {
162                         compatible = "hisilicon,hi3670-pctrl", "syscon";
163                         reg = <0x0 0xe8a09000 0x0 0x1000>;
164                         #clock-cells = <1>;
165                 };
166
167                 pmuctrl: crg_ctrl@fff34000 {
168                         compatible = "hisilicon,hi3670-pmuctrl", "syscon";
169                         reg = <0x0 0xfff34000 0x0 0x1000>;
170                         #clock-cells = <1>;
171                 };
172
173                 sctrl: sctrl@fff0a000 {
174                         compatible = "hisilicon,hi3670-sctrl", "syscon";
175                         reg = <0x0 0xfff0a000 0x0 0x1000>;
176                         #clock-cells = <1>;
177                 };
178
179                 iomcu: iomcu@ffd7e000 {
180                         compatible = "hisilicon,hi3670-iomcu", "syscon";
181                         reg = <0x0 0xffd7e000 0x0 0x1000>;
182                         #clock-cells = <1>;
183                 };
184
185                 media1_crg: media1_crgctrl@e87ff000 {
186                         compatible = "hisilicon,hi3670-media1-crg", "syscon";
187                         reg = <0x0 0xe87ff000 0x0 0x1000>;
188                         #clock-cells = <1>;
189                 };
190
191                 media2_crg: media2_crgctrl@e8900000 {
192                         compatible = "hisilicon,hi3670-media2-crg","syscon";
193                         reg = <0x0 0xe8900000 0x0 0x1000>;
194                         #clock-cells = <1>;
195                 };
196
197                 iomcu_rst: reset {
198                         compatible = "hisilicon,hi3660-reset";
199                         hisi,rst-syscon = <&iomcu>;
200                         #reset-cells = <2>;
201                 };
202
203                 uart0: serial@fdf02000 {
204                         compatible = "arm,pl011", "arm,primecell";
205                         reg = <0x0 0xfdf02000 0x0 0x1000>;
206                         interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
207                         clocks = <&crg_ctrl HI3670_CLK_GATE_UART0>,
208                                  <&crg_ctrl HI3670_PCLK>;
209                         clock-names = "uartclk", "apb_pclk";
210                         pinctrl-names = "default";
211                         pinctrl-0 = <&uart0_pmx_func &uart0_cfg_func>;
212                         status = "disabled";
213                 };
214
215                 uart1: serial@fdf00000 {
216                         compatible = "arm,pl011", "arm,primecell";
217                         reg = <0x0 0xfdf00000 0x0 0x1000>;
218                         interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
219                         clocks = <&crg_ctrl HI3670_CLK_GATE_UART1>,
220                                  <&crg_ctrl HI3670_PCLK>;
221                         clock-names = "uartclk", "apb_pclk";
222                         status = "disabled";
223                 };
224
225                 uart2: serial@fdf03000 {
226                         compatible = "arm,pl011", "arm,primecell";
227                         reg = <0x0 0xfdf03000 0x0 0x1000>;
228                         interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
229                         clocks = <&crg_ctrl HI3670_CLK_GATE_UART2>,
230                                  <&crg_ctrl HI3670_PCLK>;
231                         clock-names = "uartclk", "apb_pclk";
232                         pinctrl-names = "default";
233                         pinctrl-0 = <&uart2_pmx_func &uart2_cfg_func>;
234                         status = "disabled";
235                 };
236
237                 uart3: serial@ffd74000 {
238                         compatible = "arm,pl011", "arm,primecell";
239                         reg = <0x0 0xffd74000 0x0 0x1000>;
240                         interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
241                         clocks = <&crg_ctrl HI3670_CLK_GATE_UART3>,
242                                  <&crg_ctrl HI3670_PCLK>;
243                         clock-names = "uartclk", "apb_pclk";
244                         pinctrl-names = "default";
245                         pinctrl-0 = <&uart3_pmx_func &uart3_cfg_func>;
246                         status = "disabled";
247                 };
248
249                 uart4: serial@fdf01000 {
250                         compatible = "arm,pl011", "arm,primecell";
251                         reg = <0x0 0xfdf01000 0x0 0x1000>;
252                         interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
253                         clocks = <&crg_ctrl HI3670_CLK_GATE_UART4>,
254                                  <&crg_ctrl HI3670_PCLK>;
255                         clock-names = "uartclk", "apb_pclk";
256                         pinctrl-names = "default";
257                         pinctrl-0 = <&uart4_pmx_func &uart4_cfg_func>;
258                         status = "disabled";
259                 };
260
261                 uart5: serial@fdf05000 {
262                         compatible = "arm,pl011", "arm,primecell";
263                         reg = <0x0 0xfdf05000 0x0 0x1000>;
264                         interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
265                         clocks = <&crg_ctrl HI3670_CLK_GATE_UART5>,
266                                  <&crg_ctrl HI3670_PCLK>;
267                         clock-names = "uartclk", "apb_pclk";
268                         status = "disabled";
269                 };
270
271                 uart6: serial@fff32000 {
272                         compatible = "arm,pl011", "arm,primecell";
273                         reg = <0x0 0xfff32000 0x0 0x1000>;
274                         interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
275                         clocks = <&crg_ctrl HI3670_CLK_UART6>,
276                                  <&crg_ctrl HI3670_PCLK>;
277                         clock-names = "uartclk", "apb_pclk";
278                         pinctrl-names = "default";
279                         pinctrl-0 = <&uart6_pmx_func &uart6_cfg_func>;
280                         status = "disabled";
281                 };
282
283                 gpio0: gpio@e8a0b000 {
284                         compatible = "arm,pl061", "arm,primecell";
285                         reg = <0x0 0xe8a0b000 0x0 0x1000>;
286                         interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
287                         gpio-controller;
288                         #gpio-cells = <2>;
289                         gpio-ranges = <&pmx0 1 0 1 &pmx0 3 1 5>;
290                         interrupt-controller;
291                         #interrupt-cells = <2>;
292                         clocks = <&crg_ctrl HI3670_PCLK_GPIO0>;
293                         clock-names = "apb_pclk";
294                 };
295
296                 gpio1: gpio@e8a0c000 {
297                         compatible = "arm,pl061", "arm,primecell";
298                         reg = <0x0 0xe8a0c000 0x0 0x1000>;
299                         interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
300                         gpio-controller;
301                         #gpio-cells = <2>;
302                         interrupt-controller;
303                         #interrupt-cells = <2>;
304                         clocks = <&crg_ctrl HI3670_PCLK_GPIO1>;
305                         clock-names = "apb_pclk";
306                 };
307
308                 gpio2: gpio@e8a0d000 {
309                         compatible = "arm,pl061", "arm,primecell";
310                         reg = <0x0 0xe8a0d000 0x0 0x1000>;
311                         interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
312                         gpio-controller;
313                         #gpio-cells = <2>;
314                         gpio-ranges = <&pmx0 1 6 7>;
315                         interrupt-controller;
316                         #interrupt-cells = <2>;
317                         clocks = <&crg_ctrl HI3670_PCLK_GPIO2>;
318                         clock-names = "apb_pclk";
319                 };
320
321                 gpio3: gpio@e8a0e000 {
322                         compatible = "arm,pl061", "arm,primecell";
323                         reg = <0x0 0xe8a0e000 0x0 0x1000>;
324                         interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
325                         gpio-controller;
326                         #gpio-cells = <2>;
327                         gpio-ranges =  <&pmx0 0 13 4 &pmx0 7 17 1>;
328                         interrupt-controller;
329                         #interrupt-cells = <2>;
330                         clocks = <&crg_ctrl HI3670_PCLK_GPIO3>;
331                         clock-names = "apb_pclk";
332                 };
333
334                 gpio4: gpio@e8a0f000 {
335                         compatible = "arm,pl061", "arm,primecell";
336                         reg = <0x0 0xe8a0f000 0x0 0x1000>;
337                         interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
338                         gpio-controller;
339                         #gpio-cells = <2>;
340                         gpio-ranges = <&pmx0 0 18 8>;
341                         interrupt-controller;
342                         #interrupt-cells = <2>;
343                         clocks = <&crg_ctrl HI3670_PCLK_GPIO4>;
344                         clock-names = "apb_pclk";
345                 };
346
347                 gpio5: gpio@e8a10000 {
348                         compatible = "arm,pl061", "arm,primecell";
349                         reg = <0x0 0xe8a10000 0x0 0x1000>;
350                         interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
351                         gpio-controller;
352                         #gpio-cells = <2>;
353                         gpio-ranges = <&pmx0 0 26 8>;
354                         interrupt-controller;
355                         #interrupt-cells = <2>;
356                         clocks = <&crg_ctrl HI3670_PCLK_GPIO5>;
357                         clock-names = "apb_pclk";
358                 };
359
360                 gpio6: gpio@e8a11000 {
361                         compatible = "arm,pl061", "arm,primecell";
362                         reg = <0x0 0xe8a11000 0x0 0x1000>;
363                         interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
364                         gpio-controller;
365                         #gpio-cells = <2>;
366                         gpio-ranges = <&pmx0 1 34 7>;
367                         interrupt-controller;
368                         #interrupt-cells = <2>;
369                         clocks = <&crg_ctrl HI3670_PCLK_GPIO6>;
370                         clock-names = "apb_pclk";
371                 };
372
373                 gpio7: gpio@e8a12000 {
374                         compatible = "arm,pl061", "arm,primecell";
375                         reg = <0x0 0xe8a12000 0x0 0x1000>;
376                         interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
377                         gpio-controller;
378                         #gpio-cells = <2>;
379                         gpio-ranges = <&pmx0 0 41 8>;
380                         interrupt-controller;
381                         #interrupt-cells = <2>;
382                         clocks = <&crg_ctrl HI3670_PCLK_GPIO7>;
383                         clock-names = "apb_pclk";
384                 };
385
386                 gpio8: gpio@e8a13000 {
387                         compatible = "arm,pl061", "arm,primecell";
388                         reg = <0x0 0xe8a13000 0x0 0x1000>;
389                         interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
390                         gpio-controller;
391                         #gpio-cells = <2>;
392                         gpio-ranges = <&pmx0 0 49 8>;
393                         interrupt-controller;
394                         #interrupt-cells = <2>;
395                         clocks = <&crg_ctrl HI3670_PCLK_GPIO8>;
396                         clock-names = "apb_pclk";
397                 };
398
399                 gpio9: gpio@e8a14000 {
400                         compatible = "arm,pl061", "arm,primecell";
401                         reg = <0x0 0xe8a14000 0x0 0x1000>;
402                         interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
403                         gpio-controller;
404                         #gpio-cells = <2>;
405                         gpio-ranges = <&pmx0 0 57 8>;
406                         interrupt-controller;
407                         #interrupt-cells = <2>;
408                         clocks = <&crg_ctrl HI3670_PCLK_GPIO9>;
409                         clock-names = "apb_pclk";
410                 };
411
412                 gpio10: gpio@e8a15000 {
413                         compatible = "arm,pl061", "arm,primecell";
414                         reg = <0x0 0xe8a15000 0x0 0x1000>;
415                         interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
416                         gpio-controller;
417                         #gpio-cells = <2>;
418                         gpio-ranges = <&pmx0 0 65 8>;
419                         interrupt-controller;
420                         #interrupt-cells = <2>;
421                         clocks = <&crg_ctrl HI3670_PCLK_GPIO10>;
422                         clock-names = "apb_pclk";
423                 };
424
425                 gpio11: gpio@e8a16000 {
426                         compatible = "arm,pl061", "arm,primecell";
427                         reg = <0x0 0xe8a16000 0x0 0x1000>;
428                         interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
429                         gpio-controller;
430                         #gpio-cells = <2>;
431                         gpio-ranges = <&pmx0 0 73 8>;
432                         interrupt-controller;
433                         #interrupt-cells = <2>;
434                         clocks = <&crg_ctrl HI3670_PCLK_GPIO11>;
435                         clock-names = "apb_pclk";
436                 };
437
438                 gpio12: gpio@e8a17000 {
439                         compatible = "arm,pl061", "arm,primecell";
440                         reg = <0x0 0xe8a17000 0x0 0x1000>;
441                         interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
442                         gpio-controller;
443                         #gpio-cells = <2>;
444                         gpio-ranges = <&pmx0 0 81 1>;
445                         interrupt-controller;
446                         #interrupt-cells = <2>;
447                         clocks = <&crg_ctrl HI3670_PCLK_GPIO12>;
448                         clock-names = "apb_pclk";
449                 };
450
451                 gpio13: gpio@e8a18000 {
452                         compatible = "arm,pl061", "arm,primecell";
453                         reg = <0x0 0xe8a18000 0x0 0x1000>;
454                         interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
455                         gpio-controller;
456                         #gpio-cells = <2>;
457                         interrupt-controller;
458                         #interrupt-cells = <2>;
459                         clocks = <&crg_ctrl HI3670_PCLK_GPIO13>;
460                         clock-names = "apb_pclk";
461                 };
462
463                 gpio14: gpio@e8a19000 {
464                         compatible = "arm,pl061", "arm,primecell";
465                         reg = <0x0 0xe8a19000 0x0 0x1000>;
466                         interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
467                         gpio-controller;
468                         #gpio-cells = <2>;
469                         interrupt-controller;
470                         #interrupt-cells = <2>;
471                         clocks = <&crg_ctrl HI3670_PCLK_GPIO14>;
472                         clock-names = "apb_pclk";
473                 };
474
475                 gpio15: gpio@e8a1a000 {
476                         compatible = "arm,pl061", "arm,primecell";
477                         reg = <0x0 0xe8a1a000 0x0 0x1000>;
478                         interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
479                         gpio-controller;
480                         #gpio-cells = <2>;
481                         interrupt-controller;
482                         #interrupt-cells = <2>;
483                         clocks = <&crg_ctrl HI3670_PCLK_GPIO15>;
484                         clock-names = "apb_pclk";
485                 };
486
487                 gpio16: gpio@e8a1b000 {
488                         compatible = "arm,pl061", "arm,primecell";
489                         reg = <0x0 0xe8a1b000 0x0 0x1000>;
490                         interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
491                         gpio-controller;
492                         #gpio-cells = <2>;
493                         gpio-ranges = <&pmx5 0 0 8>;
494                         interrupt-controller;
495                         #interrupt-cells = <2>;
496                         clocks = <&crg_ctrl HI3670_PCLK_GPIO16>;
497                         clock-names = "apb_pclk";
498                 };
499
500                 gpio17: gpio@e8a1c000 {
501                         compatible = "arm,pl061", "arm,primecell";
502                         reg = <0x0 0xe8a1c000 0x0 0x1000>;
503                         interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
504                         gpio-controller;
505                         #gpio-cells = <2>;
506                         gpio-ranges = <&pmx5 0 8 2>;
507                         interrupt-controller;
508                         #interrupt-cells = <2>;
509                         clocks = <&crg_ctrl HI3670_PCLK_GPIO17>;
510                         clock-names = "apb_pclk";
511                 };
512
513                 gpio18: gpio@fff28000 {
514                         compatible = "arm,pl061", "arm,primecell";
515                         reg = <0x0 0xfff28000 0x0 0x1000>;
516                         interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
517                         gpio-controller;
518                         #gpio-cells = <2>;
519                         gpio-ranges = <&pmx1 4 42 4>;
520                         interrupt-controller;
521                         #interrupt-cells = <2>;
522                         clocks = <&sctrl HI3670_PCLK_GPIO18>;
523                         clock-names = "apb_pclk";
524                 };
525
526                 gpio19: gpio@fff29000 {
527                         compatible = "arm,pl061", "arm,primecell";
528                         reg = <0x0 0xfff29000 0x0 0x1000>;
529                         interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
530                         gpio-controller;
531                         #gpio-cells = <2>;
532                         gpio-ranges = <&pmx1 0 61 2>;
533                         interrupt-controller;
534                         #interrupt-cells = <2>;
535                         clocks = <&sctrl HI3670_PCLK_GPIO19>;
536                         clock-names = "apb_pclk";
537                 };
538
539                 gpio20: gpio@e8a1f000 {
540                         compatible = "arm,pl061", "arm,primecell";
541                         reg = <0x0 0xe8a1f000 0x0 0x1000>;
542                         interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
543                         gpio-controller;
544                         #gpio-cells = <2>;
545                         gpio-ranges = <&pmx7 0 0 8>;
546                         interrupt-controller;
547                         #interrupt-cells = <2>;
548                         clocks = <&crg_ctrl HI3670_PCLK_GPIO20>;
549                         clock-names = "apb_pclk";
550                 };
551
552                 gpio21: gpio@e8a20000 {
553                         compatible = "arm,pl061", "arm,primecell";
554                         reg = <0x0 0xe8a20000 0x0 0x1000>;
555                         interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
556                         gpio-controller;
557                         #gpio-cells = <2>;
558                         gpio-ranges = <&pmx7 0 8 4>;
559                         interrupt-controller;
560                         #interrupt-cells = <2>;
561                         clocks = <&crg_ctrl HI3670_PCLK_GPIO21>;
562                         clock-names = "apb_pclk";
563                 };
564
565                 gpio22: gpio@fff0b000 {
566                         compatible = "arm,pl061", "arm,primecell";
567                         reg = <0x0 0xfff0b000 0x0 0x1000>;
568                         interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
569                         gpio-controller;
570                         #gpio-cells = <2>;
571                         /* GPIO176 */
572                         gpio-ranges = <&pmx1 2 0 6>;
573                         interrupt-controller;
574                         #interrupt-cells = <2>;
575                         clocks = <&sctrl HI3670_PCLK_AO_GPIO0>;
576                         clock-names = "apb_pclk";
577                 };
578
579                 gpio23: gpio@fff0c000 {
580                         compatible = "arm,pl061", "arm,primecell";
581                         reg = <0x0 0xfff0c000 0x0 0x1000>;
582                         interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
583                         gpio-controller;
584                         #gpio-cells = <2>;
585                         /* GPIO184 */
586                         gpio-ranges = <&pmx1 0 6 8>;
587                         interrupt-controller;
588                         #interrupt-cells = <2>;
589                         clocks = <&sctrl HI3670_PCLK_AO_GPIO1>;
590                         clock-names = "apb_pclk";
591                 };
592
593                 gpio24: gpio@fff0d000 {
594                         compatible = "arm,pl061", "arm,primecell";
595                         reg = <0x0 0xfff0d000 0x0 0x1000>;
596                         interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
597                         gpio-controller;
598                         #gpio-cells = <2>;
599                         /* GPIO192 */
600                         gpio-ranges = <&pmx1 0 14 8>;
601                         interrupt-controller;
602                         #interrupt-cells = <2>;
603                         clocks = <&sctrl HI3670_PCLK_AO_GPIO2>;
604                         clock-names = "apb_pclk";
605                 };
606
607                 gpio25: gpio@fff0e000 {
608                         compatible = "arm,pl061", "arm,primecell";
609                         reg = <0x0 0xfff0e000 0x0 0x1000>;
610                         interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
611                         gpio-controller;
612                         #gpio-cells = <2>;
613                         /* GPIO200 */
614                         gpio-ranges = <&pmx1 0 22 8>;
615                         interrupt-controller;
616                         #interrupt-cells = <2>;
617                         clocks = <&sctrl HI3670_PCLK_AO_GPIO3>;
618                         clock-names = "apb_pclk";
619                 };
620
621                 gpio26: gpio@fff0f000 {
622                         compatible = "arm,pl061", "arm,primecell";
623                         reg = <0x0 0xfff0f000 0x0 0x1000>;
624                         interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
625                         gpio-controller;
626                         #gpio-cells = <2>;
627                         /* GPIO208 */
628                         gpio-ranges = <&pmx1 0 30 1>;
629                         interrupt-controller;
630                         #interrupt-cells = <2>;
631                         clocks = <&sctrl HI3670_PCLK_AO_GPIO4>;
632                         clock-names = "apb_pclk";
633                 };
634
635                 gpio27: gpio@fff10000 {
636                         compatible = "arm,pl061", "arm,primecell";
637                         reg = <0x0 0xfff10000 0x0 0x1000>;
638                         interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
639                         gpio-controller;
640                         #gpio-cells = <2>;
641                         /* GPIO216 */
642                         gpio-ranges = <&pmx1 4 31 4>;
643                         interrupt-controller;
644                         #interrupt-cells = <2>;
645                         clocks = <&sctrl HI3670_PCLK_AO_GPIO5>;
646                         clock-names = "apb_pclk";
647                 };
648
649                 gpio28: gpio@fff1d000 {
650                         compatible = "arm,pl061", "arm,primecell";
651                         reg = <0x0 0xfff1d000 0x0 0x1000>;
652                         interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
653                         gpio-controller;
654                         #gpio-cells = <2>;
655                         gpio-ranges = <&pmx1 1 35 7>;
656                         interrupt-controller;
657                         #interrupt-cells = <2>;
658                         clocks = <&sctrl HI3670_PCLK_AO_GPIO6>;
659                         clock-names = "apb_pclk";
660                 };
661
662                 /* UFS */
663                 ufs: ufs@ff3c0000 {
664                         compatible = "hisilicon,hi3670-ufs", "jedec,ufs-2.1";
665                         /* 0: HCI standard */
666                         /* 1: UFS SYS CTRL */
667                         reg = <0x0 0xff3c0000 0x0 0x1000>,
668                                 <0x0 0xff3e0000 0x0 0x1000>;
669                         interrupt-parent = <&gic>;
670                         interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>;
671                         clocks = <&crg_ctrl HI3670_CLK_GATE_UFSIO_REF>,
672                                 <&crg_ctrl HI3670_CLK_GATE_UFS_SUBSYS>;
673                         clock-names = "ref_clk", "phy_clk";
674                         freq-table-hz = <0 0
675                                          0 0>;
676                         /* offset: 0x84; bit: 12 */
677                         resets = <&crg_rst 0x84 12>;
678                         reset-names = "rst";
679                 };
680
681                 /* SD */
682                 dwmmc1: dwmmc1@ff37f000 {
683                         compatible = "hisilicon,hi3670-dw-mshc",
684                                      "hisilicon,hi3660-dw-mshc";
685                         reg = <0x0 0xff37f000 0x0 0x1000>;
686                         #address-cells = <1>;
687                         #size-cells = <0>;
688                         interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
689                         clocks = <&crg_ctrl HI3670_CLK_GATE_SD>,
690                                 <&crg_ctrl HI3670_HCLK_GATE_SD>;
691                         clock-names = "ciu", "biu";
692                         clock-frequency = <3200000>;
693                         resets = <&crg_rst 0x94 18>;
694                         reset-names = "reset";
695                         hisilicon,peripheral-syscon = <&sctrl>;
696                         card-detect-delay = <200>;
697                         status = "disabled";
698                 };
699
700                 /* SDIO */
701                 dwmmc2: dwmmc2@fc183000 {
702                         compatible = "hisilicon,hi3670-dw-mshc",
703                                      "hisilicon,hi3660-dw-mshc";
704                         reg = <0x0 0xfc183000 0x0 0x1000>;
705                         #address-cells = <1>;
706                         #size-cells = <0>;
707                         interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
708                         clocks = <&crg_ctrl HI3670_CLK_GATE_SDIO>,
709                                 <&crg_ctrl HI3670_HCLK_GATE_SDIO>;
710                         clock-names = "ciu", "biu";
711                         clock-frequency = <3200000>;
712                         resets = <&crg_rst 0x94 20>;
713                         reset-names = "reset";
714                         card-detect-delay = <200>;
715                         status = "disabled";
716                 };
717
718                 /* I2C */
719                 i2c0: i2c@ffd71000 {
720                         compatible = "snps,designware-i2c";
721                         reg = <0x0 0xffd71000 0x0 0x1000>;
722                         interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
723                         #address-cells = <1>;
724                         #size-cells = <0>;
725                         clock-frequency = <400000>;
726                         clocks = <&iomcu HI3670_CLK_GATE_I2C0>;
727                         resets = <&iomcu_rst 0x20 3>;
728                         pinctrl-names = "default";
729                         pinctrl-0 = <&i2c0_pmx_func &i2c0_cfg_func>;
730                         status = "disabled";
731                 };
732
733                 i2c1: i2c@ffd72000 {
734                         compatible = "snps,designware-i2c";
735                         reg = <0x0 0xffd72000 0x0 0x1000>;
736                         interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
737                         #address-cells = <1>;
738                         #size-cells = <0>;
739                         clock-frequency = <400000>;
740                         clocks = <&iomcu HI3670_CLK_GATE_I2C1>;
741                         resets = <&iomcu_rst 0x20 4>;
742                         pinctrl-names = "default";
743                         pinctrl-0 = <&i2c1_pmx_func &i2c1_cfg_func>;
744                         status = "disabled";
745                 };
746
747                 i2c2: i2c@ffd73000 {
748                         compatible = "snps,designware-i2c";
749                         reg = <0x0 0xffd73000 0x0 0x1000>;
750                         interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
751                         #address-cells = <1>;
752                         #size-cells = <0>;
753                         clock-frequency = <400000>;
754                         clocks = <&iomcu HI3670_CLK_GATE_I2C2>;
755                         resets = <&iomcu_rst 0x20 5>;
756                         pinctrl-names = "default";
757                         pinctrl-0 = <&i2c2_pmx_func &i2c2_cfg_func>;
758                         status = "disabled";
759                 };
760
761                 i2c3: i2c@fdf0c000 {
762                         compatible = "snps,designware-i2c";
763                         reg = <0x0 0xfdf0c000 0x0 0x1000>;
764                         interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
765                         #address-cells = <1>;
766                         #size-cells = <0>;
767                         clock-frequency = <400000>;
768                         clocks = <&crg_ctrl HI3670_CLK_GATE_I2C3>;
769                         resets = <&crg_rst 0x78 7>;
770                         pinctrl-names = "default";
771                         pinctrl-0 = <&i2c3_pmx_func &i2c3_cfg_func>;
772                         status = "disabled";
773                 };
774
775                 i2c4: i2c@fdf0d000 {
776                         compatible = "snps,designware-i2c";
777                         reg = <0x0 0xfdf0d000 0x0 0x1000>;
778                         interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
779                         #address-cells = <1>;
780                         #size-cells = <0>;
781                         clock-frequency = <400000>;
782                         clocks = <&crg_ctrl HI3670_CLK_GATE_I2C4>;
783                         resets = <&crg_rst 0x78 27>;
784                         pinctrl-names = "default";
785                         pinctrl-0 = <&i2c4_pmx_func &i2c4_cfg_func>;
786                         status = "disabled";
787                 };
788         };
789 };