1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (c) 2013-2014 Linaro Ltd.
4 * Copyright (c) 2013-2014 Hisilicon Limited.
7 #include <dt-bindings/clock/hix5hd2-clock.h>
17 gic: interrupt-controller@f8a01000 {
18 compatible = "arm,cortex-a9-gic";
19 #interrupt-cells = <3>;
22 /* gic dist base, gic cpu base */
23 reg = <0xf8a01000 0x1000>, <0xf8a00100 0x100>;
29 compatible = "simple-bus";
30 interrupt-parent = <&gic>;
31 ranges = <0 0xf8000000 0x8000000>;
36 compatible = "simple-bus";
40 compatible = "arm,sp804", "arm,primecell";
41 reg = <0x00002000 0x1000>;
42 /* timer00 & timer01 */
43 interrupts = <0 24 4>;
44 clocks = <&clock HIX5HD2_FIXED_24M>;
48 timer1: timer@a29000 {
50 * Only used in NORMAL state, not available ins
52 * The rate is fixed in 24MHz.
54 compatible = "arm,sp804", "arm,primecell";
55 reg = <0x00a29000 0x1000>;
56 /* timer10 & timer11 */
57 interrupts = <0 25 4>;
58 clocks = <&clock HIX5HD2_FIXED_24M>;
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>;
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>;
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>;
89 uart0: serial@b00000 {
90 compatible = "arm,pl011", "arm,primecell";
91 reg = <0x00b00000 0x1000>;
92 interrupts = <0 49 4>;
93 clocks = <&clock HIX5HD2_FIXED_83M>, <&clock HIX5HD2_FIXED_83M>;
94 clock-names = "uartclk", "apb_pclk";
99 compatible = "arm,pl011", "arm,primecell";
100 reg = <0x00006000 0x1000>;
101 interrupts = <0 50 4>;
102 clocks = <&clock HIX5HD2_FIXED_83M>, <&clock HIX5HD2_FIXED_83M>;
103 clock-names = "uartclk", "apb_pclk";
107 uart2: serial@b02000 {
108 compatible = "arm,pl011", "arm,primecell";
109 reg = <0x00b02000 0x1000>;
110 interrupts = <0 51 4>;
111 clocks = <&clock HIX5HD2_FIXED_83M>, <&clock HIX5HD2_FIXED_83M>;
112 clock-names = "uartclk", "apb_pclk";
116 uart3: serial@b03000 {
117 compatible = "arm,pl011", "arm,primecell";
118 reg = <0x00b03000 0x1000>;
119 interrupts = <0 52 4>;
120 clocks = <&clock HIX5HD2_FIXED_83M>, <&clock HIX5HD2_FIXED_83M>;
121 clock-names = "uartclk", "apb_pclk";
125 uart4: serial@b04000 {
126 compatible = "arm,pl011", "arm,primecell";
127 reg = <0xb04000 0x1000>;
128 interrupts = <0 53 4>;
129 clocks = <&clock HIX5HD2_FIXED_83M>, <&clock HIX5HD2_FIXED_83M>;
130 clock-names = "uartclk", "apb_pclk";
135 compatible = "arm,pl061", "arm,primecell";
136 reg = <0xb20000 0x1000>;
137 interrupts = <0 108 0x4>;
140 clocks = <&clock HIX5HD2_FIXED_100M>;
141 clock-names = "apb_pclk";
142 interrupt-controller;
143 #interrupt-cells = <2>;
148 compatible = "arm,pl061", "arm,primecell";
149 reg = <0xb21000 0x1000>;
150 interrupts = <0 109 0x4>;
153 clocks = <&clock HIX5HD2_FIXED_100M>;
154 clock-names = "apb_pclk";
155 interrupt-controller;
156 #interrupt-cells = <2>;
161 compatible = "arm,pl061", "arm,primecell";
162 reg = <0xb22000 0x1000>;
163 interrupts = <0 110 0x4>;
166 clocks = <&clock HIX5HD2_FIXED_100M>;
167 clock-names = "apb_pclk";
168 interrupt-controller;
169 #interrupt-cells = <2>;
174 compatible = "arm,pl061", "arm,primecell";
175 reg = <0xb23000 0x1000>;
176 interrupts = <0 111 0x4>;
179 clocks = <&clock HIX5HD2_FIXED_100M>;
180 clock-names = "apb_pclk";
181 interrupt-controller;
182 #interrupt-cells = <2>;
187 compatible = "arm,pl061", "arm,primecell";
188 reg = <0xb24000 0x1000>;
189 interrupts = <0 112 0x4>;
192 clocks = <&clock HIX5HD2_FIXED_100M>;
193 clock-names = "apb_pclk";
194 interrupt-controller;
195 #interrupt-cells = <2>;
200 compatible = "arm,pl061", "arm,primecell";
201 reg = <0x004000 0x1000>;
202 interrupts = <0 113 0x4>;
205 clocks = <&clock HIX5HD2_FIXED_100M>;
206 clock-names = "apb_pclk";
207 interrupt-controller;
208 #interrupt-cells = <2>;
213 compatible = "arm,pl061", "arm,primecell";
214 reg = <0xb26000 0x1000>;
215 interrupts = <0 114 0x4>;
218 clocks = <&clock HIX5HD2_FIXED_100M>;
219 clock-names = "apb_pclk";
220 interrupt-controller;
221 #interrupt-cells = <2>;
226 compatible = "arm,pl061", "arm,primecell";
227 reg = <0xb27000 0x1000>;
228 interrupts = <0 115 0x4>;
231 clocks = <&clock HIX5HD2_FIXED_100M>;
232 clock-names = "apb_pclk";
233 interrupt-controller;
234 #interrupt-cells = <2>;
239 compatible = "arm,pl061", "arm,primecell";
240 reg = <0xb28000 0x1000>;
241 interrupts = <0 116 0x4>;
244 clocks = <&clock HIX5HD2_FIXED_100M>;
245 clock-names = "apb_pclk";
246 interrupt-controller;
247 #interrupt-cells = <2>;
252 compatible = "arm,pl061", "arm,primecell";
253 reg = <0xb29000 0x1000>;
254 interrupts = <0 117 0x4>;
257 clocks = <&clock HIX5HD2_FIXED_100M>;
258 clock-names = "apb_pclk";
259 interrupt-controller;
260 #interrupt-cells = <2>;
264 gpio10: gpio@b2a000 {
265 compatible = "arm,pl061", "arm,primecell";
266 reg = <0xb2a000 0x1000>;
267 interrupts = <0 118 0x4>;
270 clocks = <&clock HIX5HD2_FIXED_100M>;
271 clock-names = "apb_pclk";
272 interrupt-controller;
273 #interrupt-cells = <2>;
277 gpio11: gpio@b2b000 {
278 compatible = "arm,pl061", "arm,primecell";
279 reg = <0xb2b000 0x1000>;
280 interrupts = <0 119 0x4>;
283 clocks = <&clock HIX5HD2_FIXED_100M>;
284 clock-names = "apb_pclk";
285 interrupt-controller;
286 #interrupt-cells = <2>;
290 gpio12: gpio@b2c000 {
291 compatible = "arm,pl061", "arm,primecell";
292 reg = <0xb2c000 0x1000>;
293 interrupts = <0 120 0x4>;
296 clocks = <&clock HIX5HD2_FIXED_100M>;
297 clock-names = "apb_pclk";
298 interrupt-controller;
299 #interrupt-cells = <2>;
303 gpio13: gpio@b2d000 {
304 compatible = "arm,pl061", "arm,primecell";
305 reg = <0xb2d000 0x1000>;
306 interrupts = <0 121 0x4>;
309 clocks = <&clock HIX5HD2_FIXED_100M>;
310 clock-names = "apb_pclk";
311 interrupt-controller;
312 #interrupt-cells = <2>;
316 gpio14: gpio@b2e000 {
317 compatible = "arm,pl061", "arm,primecell";
318 reg = <0xb2e000 0x1000>;
319 interrupts = <0 122 0x4>;
322 clocks = <&clock HIX5HD2_FIXED_100M>;
323 clock-names = "apb_pclk";
324 interrupt-controller;
325 #interrupt-cells = <2>;
329 gpio15: gpio@b2f000 {
330 compatible = "arm,pl061", "arm,primecell";
331 reg = <0xb2f000 0x1000>;
332 interrupts = <0 123 0x4>;
335 clocks = <&clock HIX5HD2_FIXED_100M>;
336 clock-names = "apb_pclk";
337 interrupt-controller;
338 #interrupt-cells = <2>;
342 gpio16: gpio@b30000 {
343 compatible = "arm,pl061", "arm,primecell";
344 reg = <0xb30000 0x1000>;
345 interrupts = <0 124 0x4>;
348 clocks = <&clock HIX5HD2_FIXED_100M>;
349 clock-names = "apb_pclk";
350 interrupt-controller;
351 #interrupt-cells = <2>;
355 gpio17: gpio@b31000 {
356 compatible = "arm,pl061", "arm,primecell";
357 reg = <0xb31000 0x1000>;
358 interrupts = <0 125 0x4>;
361 clocks = <&clock HIX5HD2_FIXED_100M>;
362 clock-names = "apb_pclk";
363 interrupt-controller;
364 #interrupt-cells = <2>;
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 HIX5HD2_WDG0_RST>;
375 clock-names = "wdog_clk", "apb_pclk";
380 compatible = "arm,cortex-a9-twd-timer";
381 reg = <0x00a00600 0x20>;
382 interrupts = <1 13 0xf01>;
385 l2: cache-controller {
386 compatible = "arm,pl310-cache";
387 reg = <0x00a10000 0x100000>;
388 interrupts = <0 15 4>;
393 sysctrl: system-controller@0 {
394 compatible = "hisilicon,sysctrl", "syscon";
395 reg = <0x00000000 0x1000>;
399 compatible = "syscon-reboot";
406 compatible = "hisilicon,cpuctrl";
407 #address-cells = <1>;
409 reg = <0x00a22000 0x2000>;
410 ranges = <0 0x00a22000 0x2000>;
413 compatible = "hisilicon,hix5hd2-clock";
419 /* unremovable emmc as mmcblk0 */
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 = "biu", "ciu";
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 = "biu", "ciu";
438 gmac0: ethernet@1840000 {
439 compatible = "hisilicon,hix5hd2-gmac", "hisilicon,hisi-gmac-v1";
440 reg = <0x1840000 0x1000>,<0x184300c 0x4>;
441 interrupts = <0 71 4>;
442 clocks = <&clock HIX5HD2_MAC0_CLK>;
443 clock-names = "mac_core";
447 gmac1: ethernet@1841000 {
448 compatible = "hisilicon,hix5hd2-gmac", "hisilicon,hisi-gmac-v1";
449 reg = <0x1841000 0x1000>,<0x1843010 0x4>;
450 interrupts = <0 72 4>;
451 clocks = <&clock HIX5HD2_MAC1_CLK>;
452 clock-names = "mac_core";
457 compatible = "generic-ehci";
458 reg = <0x1890000 0x1000>;
459 interrupts = <0 66 4>;
460 clocks = <&clock HIX5HD2_USB_CLK>;
464 compatible = "generic-ohci";
465 reg = <0x1880000 0x1000>;
466 interrupts = <0 67 4>;
467 clocks = <&clock HIX5HD2_USB_CLK>;
470 peripheral_ctrl: syscon@a20000 {
471 compatible = "hisilicon,peri-subctrl", "syscon";
472 reg = <0xa20000 0x1000>;
475 sata_phy: phy@1900000 {
476 compatible = "hisilicon,hix5hd2-sata-phy";
477 reg = <0x1900000 0x10000>;
479 hisilicon,peripheral-syscon = <&peripheral_ctrl>;
480 hisilicon,power-reg = <0x8 10>;
484 compatible = "hisilicon,hisi-ahci";
485 reg = <0x1900000 0x10000>;
486 interrupts = <0 70 4>;
487 clocks = <&clock HIX5HD2_SATA_CLK>;
491 compatible = "hisilicon,hix5hd2-ir";
492 reg = <0x001000 0x1000>;
493 interrupts = <0 47 4>;
494 clocks = <&clock HIX5HD2_FIXED_24M>;
495 hisilicon,power-syscon = <&sysctrl>;
499 compatible = "hisilicon,hix5hd2-i2c";
500 reg = <0xb10000 0x1000>;
501 interrupts = <0 38 4>;
502 clocks = <&clock HIX5HD2_I2C0_RST>;
503 #address-cells = <1>;
509 compatible = "hisilicon,hix5hd2-i2c";
510 reg = <0xb11000 0x1000>;
511 interrupts = <0 39 4>;
512 clocks = <&clock HIX5HD2_I2C1_RST>;
513 #address-cells = <1>;
519 compatible = "hisilicon,hix5hd2-i2c";
520 reg = <0xb12000 0x1000>;
521 interrupts = <0 40 4>;
522 clocks = <&clock HIX5HD2_I2C2_RST>;
523 #address-cells = <1>;
529 compatible = "hisilicon,hix5hd2-i2c";
530 reg = <0xb13000 0x1000>;
531 interrupts = <0 41 4>;
532 clocks = <&clock HIX5HD2_I2C3_RST>;
533 #address-cells = <1>;
539 compatible = "hisilicon,hix5hd2-i2c";
540 reg = <0xb16000 0x1000>;
541 interrupts = <0 43 4>;
542 clocks = <&clock HIX5HD2_I2C4_RST>;
543 #address-cells = <1>;
549 compatible = "hisilicon,hix5hd2-i2c";
550 reg = <0xb17000 0x1000>;
551 interrupts = <0 44 4>;
552 clocks = <&clock HIX5HD2_I2C5_RST>;
553 #address-cells = <1>;