Loading...
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (c) 2013-2014 Linaro Ltd.
4 * Copyright (c) 2013-2014 Hisilicon Limited.
5 */
6
7#include <dt-bindings/clock/hix5hd2-clock.h>
8
9/ {
10 #address-cells = <1>;
11 #size-cells = <1>;
12
13 aliases {
14 serial0 = &uart0;
15 };
16
17 gic: interrupt-controller@f8a01000 {
18 compatible = "arm,cortex-a9-gic";
19 #interrupt-cells = <3>;
20 #address-cells = <0>;
21 interrupt-controller;
22 /* gic dist base, gic cpu base */
23 reg = <0xf8a01000 0x1000>, <0xf8a00100 0x100>;
24 };
25
26 soc {
27 #address-cells = <1>;
28 #size-cells = <1>;
29 compatible = "simple-bus";
30 interrupt-parent = <&gic>;
31 ranges = <0 0xf8000000 0x8000000>;
32
33 amba {
34 #address-cells = <1>;
35 #size-cells = <1>;
36 compatible = "simple-bus";
37 ranges;
38
39 timer0: timer@2000 {
40 compatible = "arm,sp804", "arm,primecell";
41 reg = <0x00002000 0x1000>;
42 /* timer00 & timer01 */
43 interrupts = <0 24 4>;
44 clocks = <&clock HIX5HD2_FIXED_24M>;
45 status = "disabled";
46 };
47
48 timer1: timer@a29000 {
49 /*
50 * Only used in NORMAL state, not available ins
51 * SLOW or DOZE state.
52 * The rate is fixed in 24MHz.
53 */
54 compatible = "arm,sp804", "arm,primecell";
55 reg = <0x00a29000 0x1000>;
56 /* timer10 & timer11 */
57 interrupts = <0 25 4>;
58 clocks = <&clock HIX5HD2_FIXED_24M>;
59 status = "disabled";
60 };
61
62 timer2: timer@a2a000 {
63 compatible = "arm,sp804", "arm,primecell";
64 reg = <0x00a2a000 0x1000>;
65 /* timer20 & timer21 */
66 interrupts = <0 26 4>;
67 clocks = <&clock HIX5HD2_FIXED_24M>;
68 status = "disabled";
69 };
70
71 timer3: timer@a2b000 {
72 compatible = "arm,sp804", "arm,primecell";
73 reg = <0x00a2b000 0x1000>;
74 /* timer30 & timer31 */
75 interrupts = <0 27 4>;
76 clocks = <&clock HIX5HD2_FIXED_24M>;
77 status = "disabled";
78 };
79
80 timer4: timer@a81000 {
81 compatible = "arm,sp804", "arm,primecell";
82 reg = <0x00a81000 0x1000>;
83 /* timer30 & timer31 */
84 interrupts = <0 28 4>;
85 clocks = <&clock HIX5HD2_FIXED_24M>;
86 status = "disabled";
87 };
88
89 uart0: uart@b00000 {
90 compatible = "arm,pl011", "arm,primecell";
91 reg = <0x00b00000 0x1000>;
92 interrupts = <0 49 4>;
93 clocks = <&clock HIX5HD2_FIXED_83M>;
94 clock-names = "apb_pclk";
95 status = "disabled";
96 };
97
98 uart1: uart@6000 {
99 compatible = "arm,pl011", "arm,primecell";
100 reg = <0x00006000 0x1000>;
101 interrupts = <0 50 4>;
102 clocks = <&clock HIX5HD2_FIXED_83M>;
103 clock-names = "apb_pclk";
104 status = "disabled";
105 };
106
107 uart2: uart@b02000 {
108 compatible = "arm,pl011", "arm,primecell";
109 reg = <0x00b02000 0x1000>;
110 interrupts = <0 51 4>;
111 clocks = <&clock HIX5HD2_FIXED_83M>;
112 clock-names = "apb_pclk";
113 status = "disabled";
114 };
115
116 uart3: uart@b03000 {
117 compatible = "arm,pl011", "arm,primecell";
118 reg = <0x00b03000 0x1000>;
119 interrupts = <0 52 4>;
120 clocks = <&clock HIX5HD2_FIXED_83M>;
121 clock-names = "apb_pclk";
122 status = "disabled";
123 };
124
125 uart4: uart@b04000 {
126 compatible = "arm,pl011", "arm,primecell";
127 reg = <0xb04000 0x1000>;
128 interrupts = <0 53 4>;
129 clocks = <&clock HIX5HD2_FIXED_83M>;
130 clock-names = "apb_pclk";
131 status = "disabled";
132 };
133
134 gpio0: gpio@b20000 {
135 compatible = "arm,pl061", "arm,primecell";
136 reg = <0xb20000 0x1000>;
137 interrupts = <0 108 0x4>;
138 gpio-controller;
139 #gpio-cells = <2>;
140 clocks = <&clock HIX5HD2_FIXED_100M>;
141 clock-names = "apb_pclk";
142 interrupt-controller;
143 #interrupt-cells = <2>;
144 status = "disabled";
145 };
146
147 gpio1: gpio@b21000 {
148 compatible = "arm,pl061", "arm,primecell";
149 reg = <0xb21000 0x1000>;
150 interrupts = <0 109 0x4>;
151 gpio-controller;
152 #gpio-cells = <2>;
153 clocks = <&clock HIX5HD2_FIXED_100M>;
154 clock-names = "apb_pclk";
155 interrupt-controller;
156 #interrupt-cells = <2>;
157 status = "disabled";
158 };
159
160 gpio2: gpio@b22000 {
161 compatible = "arm,pl061", "arm,primecell";
162 reg = <0xb22000 0x1000>;
163 interrupts = <0 110 0x4>;
164 gpio-controller;
165 #gpio-cells = <2>;
166 clocks = <&clock HIX5HD2_FIXED_100M>;
167 clock-names = "apb_pclk";
168 interrupt-controller;
169 #interrupt-cells = <2>;
170 status = "disabled";
171 };
172
173 gpio3: gpio@b23000 {
174 compatible = "arm,pl061", "arm,primecell";
175 reg = <0xb23000 0x1000>;
176 interrupts = <0 111 0x4>;
177 gpio-controller;
178 #gpio-cells = <2>;
179 clocks = <&clock HIX5HD2_FIXED_100M>;
180 clock-names = "apb_pclk";
181 interrupt-controller;
182 #interrupt-cells = <2>;
183 status = "disabled";
184 };
185
186 gpio4: gpio@b24000 {
187 compatible = "arm,pl061", "arm,primecell";
188 reg = <0xb24000 0x1000>;
189 interrupts = <0 112 0x4>;
190 gpio-controller;
191 #gpio-cells = <2>;
192 clocks = <&clock HIX5HD2_FIXED_100M>;
193 clock-names = "apb_pclk";
194 interrupt-controller;
195 #interrupt-cells = <2>;
196 status = "disabled";
197 };
198
199 gpio5: gpio@4000 {
200 compatible = "arm,pl061", "arm,primecell";
201 reg = <0x004000 0x1000>;
202 interrupts = <0 113 0x4>;
203 gpio-controller;
204 #gpio-cells = <2>;
205 clocks = <&clock HIX5HD2_FIXED_100M>;
206 clock-names = "apb_pclk";
207 interrupt-controller;
208 #interrupt-cells = <2>;
209 status = "disabled";
210 };
211
212 gpio6: gpio@b26000 {
213 compatible = "arm,pl061", "arm,primecell";
214 reg = <0xb26000 0x1000>;
215 interrupts = <0 114 0x4>;
216 gpio-controller;
217 #gpio-cells = <2>;
218 clocks = <&clock HIX5HD2_FIXED_100M>;
219 clock-names = "apb_pclk";
220 interrupt-controller;
221 #interrupt-cells = <2>;
222 status = "disabled";
223 };
224
225 gpio7: gpio@b27000 {
226 compatible = "arm,pl061", "arm,primecell";
227 reg = <0xb27000 0x1000>;
228 interrupts = <0 115 0x4>;
229 gpio-controller;
230 #gpio-cells = <2>;
231 clocks = <&clock HIX5HD2_FIXED_100M>;
232 clock-names = "apb_pclk";
233 interrupt-controller;
234 #interrupt-cells = <2>;
235 status = "disabled";
236 };
237
238 gpio8: gpio@b28000 {
239 compatible = "arm,pl061", "arm,primecell";
240 reg = <0xb28000 0x1000>;
241 interrupts = <0 116 0x4>;
242 gpio-controller;
243 #gpio-cells = <2>;
244 clocks = <&clock HIX5HD2_FIXED_100M>;
245 clock-names = "apb_pclk";
246 interrupt-controller;
247 #interrupt-cells = <2>;
248 status = "disabled";
249 };
250
251 gpio9: gpio@b29000 {
252 compatible = "arm,pl061", "arm,primecell";
253 reg = <0xb29000 0x1000>;
254 interrupts = <0 117 0x4>;
255 gpio-controller;
256 #gpio-cells = <2>;
257 clocks = <&clock HIX5HD2_FIXED_100M>;
258 clock-names = "apb_pclk";
259 interrupt-controller;
260 #interrupt-cells = <2>;
261 status = "disabled";
262 };
263
264 gpio10: gpio@b2a000 {
265 compatible = "arm,pl061", "arm,primecell";
266 reg = <0xb2a000 0x1000>;
267 interrupts = <0 118 0x4>;
268 gpio-controller;
269 #gpio-cells = <2>;
270 clocks = <&clock HIX5HD2_FIXED_100M>;
271 clock-names = "apb_pclk";
272 interrupt-controller;
273 #interrupt-cells = <2>;
274 status = "disabled";
275 };
276
277 gpio11: gpio@b2b000 {
278 compatible = "arm,pl061", "arm,primecell";
279 reg = <0xb2b000 0x1000>;
280 interrupts = <0 119 0x4>;
281 gpio-controller;
282 #gpio-cells = <2>;
283 clocks = <&clock HIX5HD2_FIXED_100M>;
284 clock-names = "apb_pclk";
285 interrupt-controller;
286 #interrupt-cells = <2>;
287 status = "disabled";
288 };
289
290 gpio12: gpio@b2c000 {
291 compatible = "arm,pl061", "arm,primecell";
292 reg = <0xb2c000 0x1000>;
293 interrupts = <0 120 0x4>;
294 gpio-controller;
295 #gpio-cells = <2>;
296 clocks = <&clock HIX5HD2_FIXED_100M>;
297 clock-names = "apb_pclk";
298 interrupt-controller;
299 #interrupt-cells = <2>;
300 status = "disabled";
301 };
302
303 gpio13: gpio@b2d000 {
304 compatible = "arm,pl061", "arm,primecell";
305 reg = <0xb2d000 0x1000>;
306 interrupts = <0 121 0x4>;
307 gpio-controller;
308 #gpio-cells = <2>;
309 clocks = <&clock HIX5HD2_FIXED_100M>;
310 clock-names = "apb_pclk";
311 interrupt-controller;
312 #interrupt-cells = <2>;
313 status = "disabled";
314 };
315
316 gpio14: gpio@b2e000 {
317 compatible = "arm,pl061", "arm,primecell";
318 reg = <0xb2e000 0x1000>;
319 interrupts = <0 122 0x4>;
320 gpio-controller;
321 #gpio-cells = <2>;
322 clocks = <&clock HIX5HD2_FIXED_100M>;
323 clock-names = "apb_pclk";
324 interrupt-controller;
325 #interrupt-cells = <2>;
326 status = "disabled";
327 };
328
329 gpio15: gpio@b2f000 {
330 compatible = "arm,pl061", "arm,primecell";
331 reg = <0xb2f000 0x1000>;
332 interrupts = <0 123 0x4>;
333 gpio-controller;
334 #gpio-cells = <2>;
335 clocks = <&clock HIX5HD2_FIXED_100M>;
336 clock-names = "apb_pclk";
337 interrupt-controller;
338 #interrupt-cells = <2>;
339 status = "disabled";
340 };
341
342 gpio16: gpio@b30000 {
343 compatible = "arm,pl061", "arm,primecell";
344 reg = <0xb30000 0x1000>;
345 interrupts = <0 124 0x4>;
346 gpio-controller;
347 #gpio-cells = <2>;
348 clocks = <&clock HIX5HD2_FIXED_100M>;
349 clock-names = "apb_pclk";
350 interrupt-controller;
351 #interrupt-cells = <2>;
352 status = "disabled";
353 };
354
355 gpio17: gpio@b31000 {
356 compatible = "arm,pl061", "arm,primecell";
357 reg = <0xb31000 0x1000>;
358 interrupts = <0 125 0x4>;
359 gpio-controller;
360 #gpio-cells = <2>;
361 clocks = <&clock HIX5HD2_FIXED_100M>;
362 clock-names = "apb_pclk";
363 interrupt-controller;
364 #interrupt-cells = <2>;
365 status = "disabled";
366 };
367
368 wdt0: watchdog@a2c000 {
369 compatible = "arm,sp805", "arm,primecell";
370 arm,primecell-periphid = <0x00141805>;
371 reg = <0xa2c000 0x1000>;
372 interrupts = <0 29 4>;
373 clocks = <&clock HIX5HD2_WDG0_RST>;
374 clock-names = "apb_pclk";
375 };
376 };
377
378 local_timer@a00600 {
379 compatible = "arm,cortex-a9-twd-timer";
380 reg = <0x00a00600 0x20>;
381 interrupts = <1 13 0xf01>;
382 };
383
384 l2: l2-cache {
385 compatible = "arm,pl310-cache";
386 reg = <0x00a10000 0x100000>;
387 interrupts = <0 15 4>;
388 cache-unified;
389 cache-level = <2>;
390 };
391
392 sysctrl: system-controller@0 {
393 compatible = "hisilicon,sysctrl", "syscon";
394 reg = <0x00000000 0x1000>;
395 };
396
397 reboot {
398 compatible = "syscon-reboot";
399 regmap = <&sysctrl>;
400 offset = <0x4>;
401 mask = <0xdeadbeef>;
402 };
403
404 cpuctrl@a22000 {
405 compatible = "hisilicon,cpuctrl";
406 #address-cells = <1>;
407 #size-cells = <1>;
408 reg = <0x00a22000 0x2000>;
409 ranges = <0 0x00a22000 0x2000>;
410
411 clock: clock@0 {
412 compatible = "hisilicon,hix5hd2-clock";
413 reg = <0 0x2000>;
414 #clock-cells = <1>;
415 };
416 };
417
418 /* unremovable emmc as mmcblk0 */
419 mmc: mmc@1830000 {
420 compatible = "snps,dw-mshc";
421 reg = <0x1830000 0x1000>;
422 interrupts = <0 35 4>;
423 clocks = <&clock HIX5HD2_MMC_CIU_RST>,
424 <&clock HIX5HD2_MMC_BIU_CLK>;
425 clock-names = "ciu", "biu";
426 };
427
428 sd: mmc@1820000 {
429 compatible = "snps,dw-mshc";
430 reg = <0x1820000 0x1000>;
431 interrupts = <0 34 4>;
432 clocks = <&clock HIX5HD2_SD_CIU_RST>,
433 <&clock HIX5HD2_SD_BIU_CLK>;
434 clock-names = "ciu","biu";
435 };
436
437 gmac0: ethernet@1840000 {
438 compatible = "hisilicon,hix5hd2-gmac", "hisilicon,hisi-gmac-v1";
439 reg = <0x1840000 0x1000>,<0x184300c 0x4>;
440 interrupts = <0 71 4>;
441 clocks = <&clock HIX5HD2_MAC0_CLK>;
442 clock-names = "mac_core";
443 status = "disabled";
444 };
445
446 gmac1: ethernet@1841000 {
447 compatible = "hisilicon,hix5hd2-gmac", "hisilicon,hisi-gmac-v1";
448 reg = <0x1841000 0x1000>,<0x1843010 0x4>;
449 interrupts = <0 72 4>;
450 clocks = <&clock HIX5HD2_MAC1_CLK>;
451 clock-names = "mac_core";
452 status = "disabled";
453 };
454
455 usb0: ehci@1890000 {
456 compatible = "generic-ehci";
457 reg = <0x1890000 0x1000>;
458 interrupts = <0 66 4>;
459 clocks = <&clock HIX5HD2_USB_CLK>;
460 };
461
462 usb1: ohci@1880000 {
463 compatible = "generic-ohci";
464 reg = <0x1880000 0x1000>;
465 interrupts = <0 67 4>;
466 clocks = <&clock HIX5HD2_USB_CLK>;
467 };
468
469 peripheral_ctrl: syscon@a20000 {
470 compatible = "syscon";
471 reg = <0xa20000 0x1000>;
472 };
473
474 sata_phy: phy@1900000 {
475 compatible = "hisilicon,hix5hd2-sata-phy";
476 reg = <0x1900000 0x10000>;
477 #phy-cells = <0>;
478 hisilicon,peripheral-syscon = <&peripheral_ctrl>;
479 hisilicon,power-reg = <0x8 10>;
480 };
481
482 ahci: sata@1900000 {
483 compatible = "hisilicon,hisi-ahci";
484 reg = <0x1900000 0x10000>;
485 interrupts = <0 70 4>;
486 clocks = <&clock HIX5HD2_SATA_CLK>;
487 };
488
489 ir: ir@1000 {
490 compatible = "hisilicon,hix5hd2-ir";
491 reg = <0x001000 0x1000>;
492 interrupts = <0 47 4>;
493 clocks = <&clock HIX5HD2_FIXED_24M>;
494 hisilicon,power-syscon = <&sysctrl>;
495 };
496
497 i2c0: i2c@b10000 {
498 compatible = "hisilicon,hix5hd2-i2c";
499 reg = <0xb10000 0x1000>;
500 interrupts = <0 38 4>;
501 clocks = <&clock HIX5HD2_I2C0_RST>;
502 #address-cells = <1>;
503 #size-cells = <0>;
504 status = "disabled";
505 };
506
507 i2c1: i2c@b11000 {
508 compatible = "hisilicon,hix5hd2-i2c";
509 reg = <0xb11000 0x1000>;
510 interrupts = <0 39 4>;
511 clocks = <&clock HIX5HD2_I2C1_RST>;
512 #address-cells = <1>;
513 #size-cells = <0>;
514 status = "disabled";
515 };
516
517 i2c2: i2c@b12000 {
518 compatible = "hisilicon,hix5hd2-i2c";
519 reg = <0xb12000 0x1000>;
520 interrupts = <0 40 4>;
521 clocks = <&clock HIX5HD2_I2C2_RST>;
522 #address-cells = <1>;
523 #size-cells = <0>;
524 status = "disabled";
525 };
526
527 i2c3: i2c@b13000 {
528 compatible = "hisilicon,hix5hd2-i2c";
529 reg = <0xb13000 0x1000>;
530 interrupts = <0 41 4>;
531 clocks = <&clock HIX5HD2_I2C3_RST>;
532 #address-cells = <1>;
533 #size-cells = <0>;
534 status = "disabled";
535 };
536
537 i2c4: i2c@b16000 {
538 compatible = "hisilicon,hix5hd2-i2c";
539 reg = <0xb16000 0x1000>;
540 interrupts = <0 43 4>;
541 clocks = <&clock HIX5HD2_I2C4_RST>;
542 #address-cells = <1>;
543 #size-cells = <0>;
544 status = "disabled";
545 };
546
547 i2c5: i2c@b17000 {
548 compatible = "hisilicon,hix5hd2-i2c";
549 reg = <0xb17000 0x1000>;
550 interrupts = <0 44 4>;
551 clocks = <&clock HIX5HD2_I2C5_RST>;
552 #address-cells = <1>;
553 #size-cells = <0>;
554 status = "disabled";
555 };
556 };
557};
1/*
2 * Copyright (c) 2013-2014 Linaro Ltd.
3 * Copyright (c) 2013-2014 Hisilicon Limited.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * publishhed by the Free Software Foundation.
8 */
9
10#include "skeleton.dtsi"
11#include <dt-bindings/clock/hix5hd2-clock.h>
12
13/ {
14 aliases {
15 serial0 = &uart0;
16 };
17
18 gic: interrupt-controller@f8a01000 {
19 compatible = "arm,cortex-a9-gic";
20 #interrupt-cells = <3>;
21 #address-cells = <0>;
22 interrupt-controller;
23 /* gic dist base, gic cpu base */
24 reg = <0xf8a01000 0x1000>, <0xf8a00100 0x100>;
25 };
26
27 soc {
28 #address-cells = <1>;
29 #size-cells = <1>;
30 compatible = "simple-bus";
31 interrupt-parent = <&gic>;
32 ranges = <0 0xf8000000 0x8000000>;
33
34 amba {
35 #address-cells = <1>;
36 #size-cells = <1>;
37 compatible = "simple-bus";
38 ranges;
39
40 timer0: timer@00002000 {
41 compatible = "arm,sp804", "arm,primecell";
42 reg = <0x00002000 0x1000>;
43 /* timer00 & timer01 */
44 interrupts = <0 24 4>;
45 clocks = <&clock HIX5HD2_FIXED_24M>;
46 status = "disabled";
47 };
48
49 timer1: timer@00a29000 {
50 /*
51 * Only used in NORMAL state, not available ins
52 * SLOW or DOZE state.
53 * The rate is fixed in 24MHz.
54 */
55 compatible = "arm,sp804", "arm,primecell";
56 reg = <0x00a29000 0x1000>;
57 /* timer10 & timer11 */
58 interrupts = <0 25 4>;
59 clocks = <&clock HIX5HD2_FIXED_24M>;
60 status = "disabled";
61 };
62
63 timer2: timer@00a2a000 {
64 compatible = "arm,sp804", "arm,primecell";
65 reg = <0x00a2a000 0x1000>;
66 /* timer20 & timer21 */
67 interrupts = <0 26 4>;
68 clocks = <&clock HIX5HD2_FIXED_24M>;
69 status = "disabled";
70 };
71
72 timer3: timer@00a2b000 {
73 compatible = "arm,sp804", "arm,primecell";
74 reg = <0x00a2b000 0x1000>;
75 /* timer30 & timer31 */
76 interrupts = <0 27 4>;
77 clocks = <&clock HIX5HD2_FIXED_24M>;
78 status = "disabled";
79 };
80
81 timer4: timer@00a81000 {
82 compatible = "arm,sp804", "arm,primecell";
83 reg = <0x00a81000 0x1000>;
84 /* timer30 & timer31 */
85 interrupts = <0 28 4>;
86 clocks = <&clock HIX5HD2_FIXED_24M>;
87 status = "disabled";
88 };
89
90 uart0: uart@00b00000 {
91 compatible = "arm,pl011", "arm,primecell";
92 reg = <0x00b00000 0x1000>;
93 interrupts = <0 49 4>;
94 clocks = <&clock HIX5HD2_FIXED_83M>;
95 clock-names = "apb_pclk";
96 status = "disabled";
97 };
98
99 uart1: uart@00006000 {
100 compatible = "arm,pl011", "arm,primecell";
101 reg = <0x00006000 0x1000>;
102 interrupts = <0 50 4>;
103 clocks = <&clock HIX5HD2_FIXED_83M>;
104 clock-names = "apb_pclk";
105 status = "disabled";
106 };
107
108 uart2: uart@00b02000 {
109 compatible = "arm,pl011", "arm,primecell";
110 reg = <0x00b02000 0x1000>;
111 interrupts = <0 51 4>;
112 clocks = <&clock HIX5HD2_FIXED_83M>;
113 clock-names = "apb_pclk";
114 status = "disabled";
115 };
116
117 uart3: uart@00b03000 {
118 compatible = "arm,pl011", "arm,primecell";
119 reg = <0x00b03000 0x1000>;
120 interrupts = <0 52 4>;
121 clocks = <&clock HIX5HD2_FIXED_83M>;
122 clock-names = "apb_pclk";
123 status = "disabled";
124 };
125
126 uart4: uart@00b04000 {
127 compatible = "arm,pl011", "arm,primecell";
128 reg = <0xb04000 0x1000>;
129 interrupts = <0 53 4>;
130 clocks = <&clock HIX5HD2_FIXED_83M>;
131 clock-names = "apb_pclk";
132 status = "disabled";
133 };
134
135 gpio0: gpio@b20000 {
136 compatible = "arm,pl061", "arm,primecell";
137 reg = <0xb20000 0x1000>;
138 interrupts = <0 108 0x4>;
139 gpio-controller;
140 #gpio-cells = <2>;
141 clocks = <&clock HIX5HD2_FIXED_100M>;
142 clock-names = "apb_pclk";
143 interrupt-controller;
144 #interrupt-cells = <2>;
145 status = "disabled";
146 };
147
148 gpio1: gpio@b21000 {
149 compatible = "arm,pl061", "arm,primecell";
150 reg = <0xb21000 0x1000>;
151 interrupts = <0 109 0x4>;
152 gpio-controller;
153 #gpio-cells = <2>;
154 clocks = <&clock HIX5HD2_FIXED_100M>;
155 clock-names = "apb_pclk";
156 interrupt-controller;
157 #interrupt-cells = <2>;
158 status = "disabled";
159 };
160
161 gpio2: gpio@b22000 {
162 compatible = "arm,pl061", "arm,primecell";
163 reg = <0xb22000 0x1000>;
164 interrupts = <0 110 0x4>;
165 gpio-controller;
166 #gpio-cells = <2>;
167 clocks = <&clock HIX5HD2_FIXED_100M>;
168 clock-names = "apb_pclk";
169 interrupt-controller;
170 #interrupt-cells = <2>;
171 status = "disabled";
172 };
173
174 gpio3: gpio@b23000 {
175 compatible = "arm,pl061", "arm,primecell";
176 reg = <0xb23000 0x1000>;
177 interrupts = <0 111 0x4>;
178 gpio-controller;
179 #gpio-cells = <2>;
180 clocks = <&clock HIX5HD2_FIXED_100M>;
181 clock-names = "apb_pclk";
182 interrupt-controller;
183 #interrupt-cells = <2>;
184 status = "disabled";
185 };
186
187 gpio4: gpio@b24000 {
188 compatible = "arm,pl061", "arm,primecell";
189 reg = <0xb24000 0x1000>;
190 interrupts = <0 112 0x4>;
191 gpio-controller;
192 #gpio-cells = <2>;
193 clocks = <&clock HIX5HD2_FIXED_100M>;
194 clock-names = "apb_pclk";
195 interrupt-controller;
196 #interrupt-cells = <2>;
197 status = "disabled";
198 };
199
200 gpio5: gpio@004000 {
201 compatible = "arm,pl061", "arm,primecell";
202 reg = <0x004000 0x1000>;
203 interrupts = <0 113 0x4>;
204 gpio-controller;
205 #gpio-cells = <2>;
206 clocks = <&clock HIX5HD2_FIXED_100M>;
207 clock-names = "apb_pclk";
208 interrupt-controller;
209 #interrupt-cells = <2>;
210 status = "disabled";
211 };
212
213 gpio6: gpio@b26000 {
214 compatible = "arm,pl061", "arm,primecell";
215 reg = <0xb26000 0x1000>;
216 interrupts = <0 114 0x4>;
217 gpio-controller;
218 #gpio-cells = <2>;
219 clocks = <&clock HIX5HD2_FIXED_100M>;
220 clock-names = "apb_pclk";
221 interrupt-controller;
222 #interrupt-cells = <2>;
223 status = "disabled";
224 };
225
226 gpio7: gpio@b27000 {
227 compatible = "arm,pl061", "arm,primecell";
228 reg = <0xb27000 0x1000>;
229 interrupts = <0 115 0x4>;
230 gpio-controller;
231 #gpio-cells = <2>;
232 clocks = <&clock HIX5HD2_FIXED_100M>;
233 clock-names = "apb_pclk";
234 interrupt-controller;
235 #interrupt-cells = <2>;
236 status = "disabled";
237 };
238
239 gpio8: gpio@b28000 {
240 compatible = "arm,pl061", "arm,primecell";
241 reg = <0xb28000 0x1000>;
242 interrupts = <0 116 0x4>;
243 gpio-controller;
244 #gpio-cells = <2>;
245 clocks = <&clock HIX5HD2_FIXED_100M>;
246 clock-names = "apb_pclk";
247 interrupt-controller;
248 #interrupt-cells = <2>;
249 status = "disabled";
250 };
251
252 gpio9: gpio@b29000 {
253 compatible = "arm,pl061", "arm,primecell";
254 reg = <0xb29000 0x1000>;
255 interrupts = <0 117 0x4>;
256 gpio-controller;
257 #gpio-cells = <2>;
258 clocks = <&clock HIX5HD2_FIXED_100M>;
259 clock-names = "apb_pclk";
260 interrupt-controller;
261 #interrupt-cells = <2>;
262 status = "disabled";
263 };
264
265 gpio10: gpio@b2a000 {
266 compatible = "arm,pl061", "arm,primecell";
267 reg = <0xb2a000 0x1000>;
268 interrupts = <0 118 0x4>;
269 gpio-controller;
270 #gpio-cells = <2>;
271 clocks = <&clock HIX5HD2_FIXED_100M>;
272 clock-names = "apb_pclk";
273 interrupt-controller;
274 #interrupt-cells = <2>;
275 status = "disabled";
276 };
277
278 gpio11: gpio@b2b000 {
279 compatible = "arm,pl061", "arm,primecell";
280 reg = <0xb2b000 0x1000>;
281 interrupts = <0 119 0x4>;
282 gpio-controller;
283 #gpio-cells = <2>;
284 clocks = <&clock HIX5HD2_FIXED_100M>;
285 clock-names = "apb_pclk";
286 interrupt-controller;
287 #interrupt-cells = <2>;
288 status = "disabled";
289 };
290
291 gpio12: gpio@b2c000 {
292 compatible = "arm,pl061", "arm,primecell";
293 reg = <0xb2c000 0x1000>;
294 interrupts = <0 120 0x4>;
295 gpio-controller;
296 #gpio-cells = <2>;
297 clocks = <&clock HIX5HD2_FIXED_100M>;
298 clock-names = "apb_pclk";
299 interrupt-controller;
300 #interrupt-cells = <2>;
301 status = "disabled";
302 };
303
304 gpio13: gpio@b2d000 {
305 compatible = "arm,pl061", "arm,primecell";
306 reg = <0xb2d000 0x1000>;
307 interrupts = <0 121 0x4>;
308 gpio-controller;
309 #gpio-cells = <2>;
310 clocks = <&clock HIX5HD2_FIXED_100M>;
311 clock-names = "apb_pclk";
312 interrupt-controller;
313 #interrupt-cells = <2>;
314 status = "disabled";
315 };
316
317 gpio14: gpio@b2e000 {
318 compatible = "arm,pl061", "arm,primecell";
319 reg = <0xb2e000 0x1000>;
320 interrupts = <0 122 0x4>;
321 gpio-controller;
322 #gpio-cells = <2>;
323 clocks = <&clock HIX5HD2_FIXED_100M>;
324 clock-names = "apb_pclk";
325 interrupt-controller;
326 #interrupt-cells = <2>;
327 status = "disabled";
328 };
329
330 gpio15: gpio@b2f000 {
331 compatible = "arm,pl061", "arm,primecell";
332 reg = <0xb2f000 0x1000>;
333 interrupts = <0 123 0x4>;
334 gpio-controller;
335 #gpio-cells = <2>;
336 clocks = <&clock HIX5HD2_FIXED_100M>;
337 clock-names = "apb_pclk";
338 interrupt-controller;
339 #interrupt-cells = <2>;
340 status = "disabled";
341 };
342
343 gpio16: gpio@b30000 {
344 compatible = "arm,pl061", "arm,primecell";
345 reg = <0xb30000 0x1000>;
346 interrupts = <0 124 0x4>;
347 gpio-controller;
348 #gpio-cells = <2>;
349 clocks = <&clock HIX5HD2_FIXED_100M>;
350 clock-names = "apb_pclk";
351 interrupt-controller;
352 #interrupt-cells = <2>;
353 status = "disabled";
354 };
355
356 gpio17: gpio@b31000 {
357 compatible = "arm,pl061", "arm,primecell";
358 reg = <0xb31000 0x1000>;
359 interrupts = <0 125 0x4>;
360 gpio-controller;
361 #gpio-cells = <2>;
362 clocks = <&clock HIX5HD2_FIXED_100M>;
363 clock-names = "apb_pclk";
364 interrupt-controller;
365 #interrupt-cells = <2>;
366 status = "disabled";
367 };
368
369 wdt0: watchdog@a2c000 {
370 compatible = "arm,sp805", "arm,primecell";
371 arm,primecell-periphid = <0x00141805>;
372 reg = <0xa2c000 0x1000>;
373 interrupts = <0 29 4>;
374 clocks = <&clock HIX5HD2_WDG0_RST>;
375 clock-names = "apb_pclk";
376 };
377 };
378
379 local_timer@00a00600 {
380 compatible = "arm,cortex-a9-twd-timer";
381 reg = <0x00a00600 0x20>;
382 interrupts = <1 13 0xf01>;
383 };
384
385 l2: l2-cache {
386 compatible = "arm,pl310-cache";
387 reg = <0x00a10000 0x100000>;
388 interrupts = <0 15 4>;
389 cache-unified;
390 cache-level = <2>;
391 };
392
393 sysctrl: system-controller@00000000 {
394 compatible = "hisilicon,sysctrl", "syscon";
395 reg = <0x00000000 0x1000>;
396 };
397
398 reboot {
399 compatible = "syscon-reboot";
400 regmap = <&sysctrl>;
401 offset = <0x4>;
402 mask = <0xdeadbeef>;
403 };
404
405 cpuctrl@00a22000 {
406 compatible = "hisilicon,cpuctrl";
407 #address-cells = <1>;
408 #size-cells = <1>;
409 reg = <0x00a22000 0x2000>;
410 ranges = <0 0x00a22000 0x2000>;
411
412 clock: clock@0 {
413 compatible = "hisilicon,hix5hd2-clock";
414 reg = <0 0x2000>;
415 #clock-cells = <1>;
416 };
417 };
418
419 /* unremovable emmc as mmcblk0 */
420 mmc: mmc@1830000 {
421 compatible = "snps,dw-mshc";
422 reg = <0x1830000 0x1000>;
423 interrupts = <0 35 4>;
424 clocks = <&clock HIX5HD2_MMC_CIU_RST>,
425 <&clock HIX5HD2_MMC_BIU_CLK>;
426 clock-names = "ciu", "biu";
427 };
428
429 sd: mmc@1820000 {
430 compatible = "snps,dw-mshc";
431 reg = <0x1820000 0x1000>;
432 interrupts = <0 34 4>;
433 clocks = <&clock HIX5HD2_SD_CIU_RST>,
434 <&clock HIX5HD2_SD_BIU_CLK>;
435 clock-names = "ciu","biu";
436 };
437
438 gmac0: ethernet@1840000 {
439 compatible = "hisilicon,hix5hd2-gmac";
440 reg = <0x1840000 0x1000>,<0x184300c 0x4>;
441 interrupts = <0 71 4>;
442 clocks = <&clock HIX5HD2_MAC0_CLK>;
443 status = "disabled";
444 };
445
446 gmac1: ethernet@1841000 {
447 compatible = "hisilicon,hix5hd2-gmac";
448 reg = <0x1841000 0x1000>,<0x1843010 0x4>;
449 interrupts = <0 72 4>;
450 clocks = <&clock HIX5HD2_MAC1_CLK>;
451 status = "disabled";
452 };
453
454 usb0: ehci@1890000 {
455 compatible = "generic-ehci";
456 reg = <0x1890000 0x1000>;
457 interrupts = <0 66 4>;
458 clocks = <&clock HIX5HD2_USB_CLK>;
459 };
460
461 usb1: ohci@1880000 {
462 compatible = "generic-ohci";
463 reg = <0x1880000 0x1000>;
464 interrupts = <0 67 4>;
465 clocks = <&clock HIX5HD2_USB_CLK>;
466 };
467
468 peripheral_ctrl: syscon@a20000 {
469 compatible = "syscon";
470 reg = <0xa20000 0x1000>;
471 };
472
473 sata_phy: phy@1900000 {
474 compatible = "hisilicon,hix5hd2-sata-phy";
475 reg = <0x1900000 0x10000>;
476 #phy-cells = <0>;
477 hisilicon,peripheral-syscon = <&peripheral_ctrl>;
478 hisilicon,power-reg = <0x8 10>;
479 };
480
481 ahci: sata@1900000 {
482 compatible = "hisilicon,hisi-ahci";
483 reg = <0x1900000 0x10000>;
484 interrupts = <0 70 4>;
485 clocks = <&clock HIX5HD2_SATA_CLK>;
486 };
487
488 ir: ir@001000 {
489 compatible = "hisilicon,hix5hd2-ir";
490 reg = <0x001000 0x1000>;
491 interrupts = <0 47 4>;
492 clocks = <&clock HIX5HD2_FIXED_24M>;
493 hisilicon,power-syscon = <&sysctrl>;
494 };
495
496 i2c0: i2c@b10000 {
497 compatible = "hisilicon,hix5hd2-i2c";
498 reg = <0xb10000 0x1000>;
499 interrupts = <0 38 4>;
500 clocks = <&clock HIX5HD2_I2C0_RST>;
501 #address-cells = <1>;
502 #size-cells = <0>;
503 status = "disabled";
504 };
505
506 i2c1: i2c@b11000 {
507 compatible = "hisilicon,hix5hd2-i2c";
508 reg = <0xb11000 0x1000>;
509 interrupts = <0 39 4>;
510 clocks = <&clock HIX5HD2_I2C1_RST>;
511 #address-cells = <1>;
512 #size-cells = <0>;
513 status = "disabled";
514 };
515
516 i2c2: i2c@b12000 {
517 compatible = "hisilicon,hix5hd2-i2c";
518 reg = <0xb12000 0x1000>;
519 interrupts = <0 40 4>;
520 clocks = <&clock HIX5HD2_I2C2_RST>;
521 #address-cells = <1>;
522 #size-cells = <0>;
523 status = "disabled";
524 };
525
526 i2c3: i2c@b13000 {
527 compatible = "hisilicon,hix5hd2-i2c";
528 reg = <0xb13000 0x1000>;
529 interrupts = <0 41 4>;
530 clocks = <&clock HIX5HD2_I2C3_RST>;
531 #address-cells = <1>;
532 #size-cells = <0>;
533 status = "disabled";
534 };
535
536 i2c4: i2c@b16000 {
537 compatible = "hisilicon,hix5hd2-i2c";
538 reg = <0xb16000 0x1000>;
539 interrupts = <0 43 4>;
540 clocks = <&clock HIX5HD2_I2C4_RST>;
541 #address-cells = <1>;
542 #size-cells = <0>;
543 status = "disabled";
544 };
545
546 i2c5: i2c@b17000 {
547 compatible = "hisilicon,hix5hd2-i2c";
548 reg = <0xb17000 0x1000>;
549 interrupts = <0 44 4>;
550 clocks = <&clock HIX5HD2_I2C5_RST>;
551 #address-cells = <1>;
552 #size-cells = <0>;
553 status = "disabled";
554 };
555 };
556};