162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * HiSilicon Ltd. Hi3620 SoC
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 2012-2013 HiSilicon Ltd.
662306a36Sopenharmony_ci * Copyright (C) 2012-2013 Linaro Ltd.
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci * Author: Haojian Zhuang <haojian.zhuang@linaro.org>
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include <dt-bindings/clock/hi3620-clock.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci/ {
1462306a36Sopenharmony_ci	#address-cells = <1>;
1562306a36Sopenharmony_ci	#size-cells = <1>;
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci	aliases {
1862306a36Sopenharmony_ci		serial0 = &uart0;
1962306a36Sopenharmony_ci		serial1 = &uart1;
2062306a36Sopenharmony_ci		serial2 = &uart2;
2162306a36Sopenharmony_ci		serial3 = &uart3;
2262306a36Sopenharmony_ci		serial4 = &uart4;
2362306a36Sopenharmony_ci	};
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci	pclk: clk {
2662306a36Sopenharmony_ci		compatible = "fixed-clock";
2762306a36Sopenharmony_ci		#clock-cells = <0>;
2862306a36Sopenharmony_ci		clock-frequency = <26000000>;
2962306a36Sopenharmony_ci		clock-output-names = "apb_pclk";
3062306a36Sopenharmony_ci	};
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci	cpus {
3362306a36Sopenharmony_ci		#address-cells = <1>;
3462306a36Sopenharmony_ci		#size-cells = <0>;
3562306a36Sopenharmony_ci		enable-method = "hisilicon,hi3620-smp";
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci		cpu@0 {
3862306a36Sopenharmony_ci			device_type = "cpu";
3962306a36Sopenharmony_ci			compatible = "arm,cortex-a9";
4062306a36Sopenharmony_ci			reg = <0x0>;
4162306a36Sopenharmony_ci			next-level-cache = <&L2>;
4262306a36Sopenharmony_ci		};
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci		cpu@1 {
4562306a36Sopenharmony_ci			compatible = "arm,cortex-a9";
4662306a36Sopenharmony_ci			device_type = "cpu";
4762306a36Sopenharmony_ci			reg = <1>;
4862306a36Sopenharmony_ci			next-level-cache = <&L2>;
4962306a36Sopenharmony_ci		};
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci		cpu@2 {
5262306a36Sopenharmony_ci			compatible = "arm,cortex-a9";
5362306a36Sopenharmony_ci			device_type = "cpu";
5462306a36Sopenharmony_ci			reg = <2>;
5562306a36Sopenharmony_ci			next-level-cache = <&L2>;
5662306a36Sopenharmony_ci		};
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci		cpu@3 {
5962306a36Sopenharmony_ci			compatible = "arm,cortex-a9";
6062306a36Sopenharmony_ci			device_type = "cpu";
6162306a36Sopenharmony_ci			reg = <3>;
6262306a36Sopenharmony_ci			next-level-cache = <&L2>;
6362306a36Sopenharmony_ci		};
6462306a36Sopenharmony_ci	};
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci	amba-bus {
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci		#address-cells = <1>;
6962306a36Sopenharmony_ci		#size-cells = <1>;
7062306a36Sopenharmony_ci		compatible = "simple-bus";
7162306a36Sopenharmony_ci		interrupt-parent = <&gic>;
7262306a36Sopenharmony_ci		ranges = <0 0xfc000000 0x2000000>;
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci		L2: cache-controller {
7562306a36Sopenharmony_ci			compatible = "arm,pl310-cache";
7662306a36Sopenharmony_ci			reg = <0x100000 0x100000>;
7762306a36Sopenharmony_ci			interrupts = <0 15 4>;
7862306a36Sopenharmony_ci			cache-unified;
7962306a36Sopenharmony_ci			cache-level = <2>;
8062306a36Sopenharmony_ci		};
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci		gic: interrupt-controller@1000 {
8362306a36Sopenharmony_ci			compatible = "arm,cortex-a9-gic";
8462306a36Sopenharmony_ci			#interrupt-cells = <3>;
8562306a36Sopenharmony_ci			#address-cells = <0>;
8662306a36Sopenharmony_ci			interrupt-controller;
8762306a36Sopenharmony_ci			/* gic dist base, gic cpu base */
8862306a36Sopenharmony_ci			reg = <0x1000 0x1000>, <0x100 0x100>;
8962306a36Sopenharmony_ci		};
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci		sysctrl: system-controller@802000 {
9262306a36Sopenharmony_ci			compatible = "hisilicon,sysctrl", "syscon";
9362306a36Sopenharmony_ci			#address-cells = <1>;
9462306a36Sopenharmony_ci			#size-cells = <1>;
9562306a36Sopenharmony_ci			ranges = <0 0x802000 0x1000>;
9662306a36Sopenharmony_ci			reg = <0x802000 0x1000>;
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci			smp-offset = <0x31c>;
9962306a36Sopenharmony_ci			resume-offset = <0x308>;
10062306a36Sopenharmony_ci			reboot-offset = <0x4>;
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci			clock: clock@0 {
10362306a36Sopenharmony_ci				compatible = "hisilicon,hi3620-clock";
10462306a36Sopenharmony_ci				reg = <0 0x10000>;
10562306a36Sopenharmony_ci				#clock-cells = <1>;
10662306a36Sopenharmony_ci			};
10762306a36Sopenharmony_ci		};
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci		dual_timer0: dual_timer@800000 {
11062306a36Sopenharmony_ci			compatible = "arm,sp804", "arm,primecell";
11162306a36Sopenharmony_ci			reg = <0x800000 0x1000>;
11262306a36Sopenharmony_ci			/* timer00 & timer01 */
11362306a36Sopenharmony_ci			interrupts = <0 0 4>, <0 1 4>;
11462306a36Sopenharmony_ci			clocks = <&clock HI3620_TIMER0_MUX>,
11562306a36Sopenharmony_ci				 <&clock HI3620_TIMER1_MUX>,
11662306a36Sopenharmony_ci				 <&clock HI3620_TIMER0_MUX>;
11762306a36Sopenharmony_ci			clock-names = "timer0clk", "timer1clk", "apb_pclk";
11862306a36Sopenharmony_ci			status = "disabled";
11962306a36Sopenharmony_ci		};
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ci		dual_timer1: dual_timer@801000 {
12262306a36Sopenharmony_ci			compatible = "arm,sp804", "arm,primecell";
12362306a36Sopenharmony_ci			reg = <0x801000 0x1000>;
12462306a36Sopenharmony_ci			/* timer10 & timer11 */
12562306a36Sopenharmony_ci			interrupts = <0 2 4>, <0 3 4>;
12662306a36Sopenharmony_ci			clocks = <&clock HI3620_TIMER2_MUX>,
12762306a36Sopenharmony_ci				 <&clock HI3620_TIMER3_MUX>,
12862306a36Sopenharmony_ci				 <&clock HI3620_TIMER2_MUX>;
12962306a36Sopenharmony_ci			clock-names = "timer0clk", "timer1clk", "apb_pclk";
13062306a36Sopenharmony_ci			status = "disabled";
13162306a36Sopenharmony_ci		};
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci		dual_timer2: dual_timer@a01000 {
13462306a36Sopenharmony_ci			compatible = "arm,sp804", "arm,primecell";
13562306a36Sopenharmony_ci			reg = <0xa01000 0x1000>;
13662306a36Sopenharmony_ci			/* timer20 & timer21 */
13762306a36Sopenharmony_ci			interrupts = <0 4 4>, <0 5 4>;
13862306a36Sopenharmony_ci			clocks = <&clock HI3620_TIMER4_MUX>,
13962306a36Sopenharmony_ci				 <&clock HI3620_TIMER5_MUX>,
14062306a36Sopenharmony_ci				 <&clock HI3620_TIMER4_MUX>;
14162306a36Sopenharmony_ci			clock-names = "timer0lck", "timer1clk", "apb_pclk";
14262306a36Sopenharmony_ci			status = "disabled";
14362306a36Sopenharmony_ci		};
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci		dual_timer3: dual_timer@a02000 {
14662306a36Sopenharmony_ci			compatible = "arm,sp804", "arm,primecell";
14762306a36Sopenharmony_ci			reg = <0xa02000 0x1000>;
14862306a36Sopenharmony_ci			/* timer30 & timer31 */
14962306a36Sopenharmony_ci			interrupts = <0 6 4>, <0 7 4>;
15062306a36Sopenharmony_ci			clocks = <&clock HI3620_TIMER6_MUX>,
15162306a36Sopenharmony_ci				 <&clock HI3620_TIMER7_MUX>,
15262306a36Sopenharmony_ci				 <&clock HI3620_TIMER6_MUX>;
15362306a36Sopenharmony_ci			clock-names = "timer0clk", "timer1clk", "apb_pclk";
15462306a36Sopenharmony_ci			status = "disabled";
15562306a36Sopenharmony_ci		};
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci		dual_timer4: dual_timer@a03000 {
15862306a36Sopenharmony_ci			compatible = "arm,sp804", "arm,primecell";
15962306a36Sopenharmony_ci			reg = <0xa03000 0x1000>;
16062306a36Sopenharmony_ci			/* timer40 & timer41 */
16162306a36Sopenharmony_ci			interrupts = <0 96 4>, <0 97 4>;
16262306a36Sopenharmony_ci			clocks = <&clock HI3620_TIMER8_MUX>,
16362306a36Sopenharmony_ci				 <&clock HI3620_TIMER9_MUX>,
16462306a36Sopenharmony_ci				 <&clock HI3620_TIMER8_MUX>;
16562306a36Sopenharmony_ci			clock-names = "timer0clk", "timer1clk", "apb_pclk";
16662306a36Sopenharmony_ci			status = "disabled";
16762306a36Sopenharmony_ci		};
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci		timer5: timer@600 {
17062306a36Sopenharmony_ci			compatible = "arm,cortex-a9-twd-timer";
17162306a36Sopenharmony_ci			reg = <0x600 0x20>;
17262306a36Sopenharmony_ci			interrupts = <1 13 0xf01>;
17362306a36Sopenharmony_ci		};
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci		uart0: serial@b00000 {
17662306a36Sopenharmony_ci			compatible = "arm,pl011", "arm,primecell";
17762306a36Sopenharmony_ci			reg = <0xb00000 0x1000>;
17862306a36Sopenharmony_ci			interrupts = <0 20 4>;
17962306a36Sopenharmony_ci			clocks = <&clock HI3620_UARTCLK0>, <&clock HI3620_UARTCLK0>;
18062306a36Sopenharmony_ci			clock-names = "uartclk", "apb_pclk";
18162306a36Sopenharmony_ci			status = "disabled";
18262306a36Sopenharmony_ci		};
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ci		uart1: serial@b01000 {
18562306a36Sopenharmony_ci			compatible = "arm,pl011", "arm,primecell";
18662306a36Sopenharmony_ci			reg = <0xb01000 0x1000>;
18762306a36Sopenharmony_ci			interrupts = <0 21 4>;
18862306a36Sopenharmony_ci			clocks = <&clock HI3620_UARTCLK1>, <&clock HI3620_UARTCLK1>;
18962306a36Sopenharmony_ci			clock-names = "uartclk", "apb_pclk";
19062306a36Sopenharmony_ci			status = "disabled";
19162306a36Sopenharmony_ci		};
19262306a36Sopenharmony_ci
19362306a36Sopenharmony_ci		uart2: serial@b02000 {
19462306a36Sopenharmony_ci			compatible = "arm,pl011", "arm,primecell";
19562306a36Sopenharmony_ci			reg = <0xb02000 0x1000>;
19662306a36Sopenharmony_ci			interrupts = <0 22 4>;
19762306a36Sopenharmony_ci			clocks = <&clock HI3620_UARTCLK2>, <&clock HI3620_UARTCLK2>;
19862306a36Sopenharmony_ci			clock-names = "uartclk", "apb_pclk";
19962306a36Sopenharmony_ci			status = "disabled";
20062306a36Sopenharmony_ci		};
20162306a36Sopenharmony_ci
20262306a36Sopenharmony_ci		uart3: serial@b03000 {
20362306a36Sopenharmony_ci			compatible = "arm,pl011", "arm,primecell";
20462306a36Sopenharmony_ci			reg = <0xb03000 0x1000>;
20562306a36Sopenharmony_ci			interrupts = <0 23 4>;
20662306a36Sopenharmony_ci			clocks = <&clock HI3620_UARTCLK3>, <&clock HI3620_UARTCLK3>;
20762306a36Sopenharmony_ci			clock-names = "uartclk", "apb_pclk";
20862306a36Sopenharmony_ci			status = "disabled";
20962306a36Sopenharmony_ci		};
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_ci		uart4: serial@b04000 {
21262306a36Sopenharmony_ci			compatible = "arm,pl011", "arm,primecell";
21362306a36Sopenharmony_ci			reg = <0xb04000 0x1000>;
21462306a36Sopenharmony_ci			interrupts = <0 24 4>;
21562306a36Sopenharmony_ci			clocks = <&clock HI3620_UARTCLK4>, <&clock HI3620_UARTCLK4>;
21662306a36Sopenharmony_ci			clock-names = "uartclk", "apb_pclk";
21762306a36Sopenharmony_ci			status = "disabled";
21862306a36Sopenharmony_ci		};
21962306a36Sopenharmony_ci
22062306a36Sopenharmony_ci		gpio0: gpio@806000 {
22162306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
22262306a36Sopenharmony_ci			reg = <0x806000 0x1000>;
22362306a36Sopenharmony_ci			interrupts = <0 64 0x4>;
22462306a36Sopenharmony_ci			gpio-controller;
22562306a36Sopenharmony_ci			#gpio-cells = <2>;
22662306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 2 0 1 &pmx0 3 0 1 &pmx0 4 0 1
22762306a36Sopenharmony_ci					&pmx0 5 0 1 &pmx0 6 1 1 &pmx0 7 2 1>;
22862306a36Sopenharmony_ci			interrupt-controller;
22962306a36Sopenharmony_ci			#interrupt-cells = <2>;
23062306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK0>;
23162306a36Sopenharmony_ci			clock-names = "apb_pclk";
23262306a36Sopenharmony_ci		};
23362306a36Sopenharmony_ci
23462306a36Sopenharmony_ci		gpio1: gpio@807000 {
23562306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
23662306a36Sopenharmony_ci			reg = <0x807000 0x1000>;
23762306a36Sopenharmony_ci			interrupts = <0 65 0x4>;
23862306a36Sopenharmony_ci			gpio-controller;
23962306a36Sopenharmony_ci			#gpio-cells = <2>;
24062306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 3 1 &pmx0 1 3 1 &pmx0 2 3 1
24162306a36Sopenharmony_ci					&pmx0 3 3 1 &pmx0 4 3 1 &pmx0 5 4 1
24262306a36Sopenharmony_ci					&pmx0 6 5 1 &pmx0 7 6 1>;
24362306a36Sopenharmony_ci			interrupt-controller;
24462306a36Sopenharmony_ci			#interrupt-cells = <2>;
24562306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK1>;
24662306a36Sopenharmony_ci			clock-names = "apb_pclk";
24762306a36Sopenharmony_ci		};
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_ci		gpio2: gpio@808000 {
25062306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
25162306a36Sopenharmony_ci			reg = <0x808000 0x1000>;
25262306a36Sopenharmony_ci			interrupts = <0 66 0x4>;
25362306a36Sopenharmony_ci			gpio-controller;
25462306a36Sopenharmony_ci			#gpio-cells = <2>;
25562306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 7 1 &pmx0 1 8 1 &pmx0 2 9 1
25662306a36Sopenharmony_ci					&pmx0 3 10 1 &pmx0 4 3 1 &pmx0 5 3 1
25762306a36Sopenharmony_ci					&pmx0 6 3 1 &pmx0 7 3 1>;
25862306a36Sopenharmony_ci			interrupt-controller;
25962306a36Sopenharmony_ci			#interrupt-cells = <2>;
26062306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK2>;
26162306a36Sopenharmony_ci			clock-names = "apb_pclk";
26262306a36Sopenharmony_ci		};
26362306a36Sopenharmony_ci
26462306a36Sopenharmony_ci		gpio3: gpio@809000 {
26562306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
26662306a36Sopenharmony_ci			reg = <0x809000 0x1000>;
26762306a36Sopenharmony_ci			interrupts = <0 67 0x4>;
26862306a36Sopenharmony_ci			gpio-controller;
26962306a36Sopenharmony_ci			#gpio-cells = <2>;
27062306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 3 1 &pmx0 1 3 1 &pmx0 2 3 1
27162306a36Sopenharmony_ci					&pmx0 3 3 1 &pmx0 4 11 1 &pmx0 5 11 1
27262306a36Sopenharmony_ci					&pmx0 6 11 1 &pmx0 7 11 1>;
27362306a36Sopenharmony_ci			interrupt-controller;
27462306a36Sopenharmony_ci			#interrupt-cells = <2>;
27562306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK3>;
27662306a36Sopenharmony_ci			clock-names = "apb_pclk";
27762306a36Sopenharmony_ci		};
27862306a36Sopenharmony_ci
27962306a36Sopenharmony_ci		gpio4: gpio@80a000 {
28062306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
28162306a36Sopenharmony_ci			reg = <0x80a000 0x1000>;
28262306a36Sopenharmony_ci			interrupts = <0 68 0x4>;
28362306a36Sopenharmony_ci			gpio-controller;
28462306a36Sopenharmony_ci			#gpio-cells = <2>;
28562306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 11 1 &pmx0 1 11 1 &pmx0 2 11 1
28662306a36Sopenharmony_ci					&pmx0 3 11 1 &pmx0 4 12 1 &pmx0 5 12 1
28762306a36Sopenharmony_ci					&pmx0 6 13 1 &pmx0 7 13 1>;
28862306a36Sopenharmony_ci			interrupt-controller;
28962306a36Sopenharmony_ci			#interrupt-cells = <2>;
29062306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK4>;
29162306a36Sopenharmony_ci			clock-names = "apb_pclk";
29262306a36Sopenharmony_ci		};
29362306a36Sopenharmony_ci
29462306a36Sopenharmony_ci		gpio5: gpio@80b000 {
29562306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
29662306a36Sopenharmony_ci			reg = <0x80b000 0x1000>;
29762306a36Sopenharmony_ci			interrupts = <0 69 0x4>;
29862306a36Sopenharmony_ci			gpio-controller;
29962306a36Sopenharmony_ci			#gpio-cells = <2>;
30062306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 14 1 &pmx0 1 15 1 &pmx0 2 16 1
30162306a36Sopenharmony_ci					&pmx0 3 16 1 &pmx0 4 16 1 &pmx0 5 16 1
30262306a36Sopenharmony_ci					&pmx0 6 16 1 &pmx0 7 16 1>;
30362306a36Sopenharmony_ci			interrupt-controller;
30462306a36Sopenharmony_ci			#interrupt-cells = <2>;
30562306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK5>;
30662306a36Sopenharmony_ci			clock-names = "apb_pclk";
30762306a36Sopenharmony_ci		};
30862306a36Sopenharmony_ci
30962306a36Sopenharmony_ci		gpio6: gpio@80c000 {
31062306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
31162306a36Sopenharmony_ci			reg = <0x80c000 0x1000>;
31262306a36Sopenharmony_ci			interrupts = <0 70 0x4>;
31362306a36Sopenharmony_ci			gpio-controller;
31462306a36Sopenharmony_ci			#gpio-cells = <2>;
31562306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 16 1 &pmx0 1 16 1 &pmx0 2 17 1
31662306a36Sopenharmony_ci					&pmx0 3 17 1 &pmx0 4 18 1 &pmx0 5 18 1
31762306a36Sopenharmony_ci					&pmx0 6 18 1 &pmx0 7 19 1>;
31862306a36Sopenharmony_ci			interrupt-controller;
31962306a36Sopenharmony_ci			#interrupt-cells = <2>;
32062306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK6>;
32162306a36Sopenharmony_ci			clock-names = "apb_pclk";
32262306a36Sopenharmony_ci		};
32362306a36Sopenharmony_ci
32462306a36Sopenharmony_ci		gpio7: gpio@80d000 {
32562306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
32662306a36Sopenharmony_ci			reg = <0x80d000 0x1000>;
32762306a36Sopenharmony_ci			interrupts = <0 71 0x4>;
32862306a36Sopenharmony_ci			gpio-controller;
32962306a36Sopenharmony_ci			#gpio-cells = <2>;
33062306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 19 1 &pmx0 1 20 1 &pmx0 2 21 1
33162306a36Sopenharmony_ci					&pmx0 3 22 1 &pmx0 4 23 1 &pmx0 5 24 1
33262306a36Sopenharmony_ci					&pmx0 6 25 1 &pmx0 7 26 1>;
33362306a36Sopenharmony_ci			interrupt-controller;
33462306a36Sopenharmony_ci			#interrupt-cells = <2>;
33562306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK7>;
33662306a36Sopenharmony_ci			clock-names = "apb_pclk";
33762306a36Sopenharmony_ci		};
33862306a36Sopenharmony_ci
33962306a36Sopenharmony_ci		gpio8: gpio@80e000 {
34062306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
34162306a36Sopenharmony_ci			reg = <0x80e000 0x1000>;
34262306a36Sopenharmony_ci			interrupts = <0 72 0x4>;
34362306a36Sopenharmony_ci			gpio-controller;
34462306a36Sopenharmony_ci			#gpio-cells = <2>;
34562306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 27 1 &pmx0 1 28 1 &pmx0 2 29 1
34662306a36Sopenharmony_ci					&pmx0 3 30 1 &pmx0 4 31 1 &pmx0 5 32 1
34762306a36Sopenharmony_ci					&pmx0 6 33 1 &pmx0 7 34 1>;
34862306a36Sopenharmony_ci			interrupt-controller;
34962306a36Sopenharmony_ci			#interrupt-cells = <2>;
35062306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK8>;
35162306a36Sopenharmony_ci			clock-names = "apb_pclk";
35262306a36Sopenharmony_ci		};
35362306a36Sopenharmony_ci
35462306a36Sopenharmony_ci		gpio9: gpio@80f000 {
35562306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
35662306a36Sopenharmony_ci			reg = <0x80f000 0x1000>;
35762306a36Sopenharmony_ci			interrupts = <0 73 0x4>;
35862306a36Sopenharmony_ci			gpio-controller;
35962306a36Sopenharmony_ci			#gpio-cells = <2>;
36062306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 35 1 &pmx0 1 36 1 &pmx0 2 37 1
36162306a36Sopenharmony_ci					&pmx0 3 38 1 &pmx0 4 39 1 &pmx0 5 40 1
36262306a36Sopenharmony_ci					&pmx0 6 41 1>;
36362306a36Sopenharmony_ci			interrupt-controller;
36462306a36Sopenharmony_ci			#interrupt-cells = <2>;
36562306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK9>;
36662306a36Sopenharmony_ci			clock-names = "apb_pclk";
36762306a36Sopenharmony_ci		};
36862306a36Sopenharmony_ci
36962306a36Sopenharmony_ci		gpio10: gpio@810000 {
37062306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
37162306a36Sopenharmony_ci			reg = <0x810000 0x1000>;
37262306a36Sopenharmony_ci			interrupts = <0 74 0x4>;
37362306a36Sopenharmony_ci			gpio-controller;
37462306a36Sopenharmony_ci			#gpio-cells = <2>;
37562306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 2 43 1 &pmx0 3 44 1 &pmx0 4 45 1
37662306a36Sopenharmony_ci					&pmx0 5 45 1 &pmx0 6 46 1 &pmx0 7 46 1>;
37762306a36Sopenharmony_ci			interrupt-controller;
37862306a36Sopenharmony_ci			#interrupt-cells = <2>;
37962306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK10>;
38062306a36Sopenharmony_ci			clock-names = "apb_pclk";
38162306a36Sopenharmony_ci		};
38262306a36Sopenharmony_ci
38362306a36Sopenharmony_ci		gpio11: gpio@811000 {
38462306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
38562306a36Sopenharmony_ci			reg = <0x811000 0x1000>;
38662306a36Sopenharmony_ci			interrupts = <0 75 0x4>;
38762306a36Sopenharmony_ci			gpio-controller;
38862306a36Sopenharmony_ci			#gpio-cells = <2>;
38962306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 47 1 &pmx0 1 47 1 &pmx0 2 47 1
39062306a36Sopenharmony_ci					&pmx0 3 47 1 &pmx0 4 47 1 &pmx0 5 48 1
39162306a36Sopenharmony_ci					&pmx0 6 49 1 &pmx0 7 49 1>;
39262306a36Sopenharmony_ci			interrupt-controller;
39362306a36Sopenharmony_ci			#interrupt-cells = <2>;
39462306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK11>;
39562306a36Sopenharmony_ci			clock-names = "apb_pclk";
39662306a36Sopenharmony_ci		};
39762306a36Sopenharmony_ci
39862306a36Sopenharmony_ci		gpio12: gpio@812000 {
39962306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
40062306a36Sopenharmony_ci			reg = <0x812000 0x1000>;
40162306a36Sopenharmony_ci			interrupts = <0 76 0x4>;
40262306a36Sopenharmony_ci			gpio-controller;
40362306a36Sopenharmony_ci			#gpio-cells = <2>;
40462306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 49 1 &pmx0 1 50 1 &pmx0 2 49 1
40562306a36Sopenharmony_ci					&pmx0 3 49 1 &pmx0 4 51 1 &pmx0 5 51 1
40662306a36Sopenharmony_ci					&pmx0 6 51 1 &pmx0 7 52 1>;
40762306a36Sopenharmony_ci			interrupt-controller;
40862306a36Sopenharmony_ci			#interrupt-cells = <2>;
40962306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK12>;
41062306a36Sopenharmony_ci			clock-names = "apb_pclk";
41162306a36Sopenharmony_ci		};
41262306a36Sopenharmony_ci
41362306a36Sopenharmony_ci		gpio13: gpio@813000 {
41462306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
41562306a36Sopenharmony_ci			reg = <0x813000 0x1000>;
41662306a36Sopenharmony_ci			interrupts = <0 77 0x4>;
41762306a36Sopenharmony_ci			gpio-controller;
41862306a36Sopenharmony_ci			#gpio-cells = <2>;
41962306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 51 1 &pmx0 1 51 1 &pmx0 2 53 1
42062306a36Sopenharmony_ci					&pmx0 3 53 1 &pmx0 4 53 1 &pmx0 5 54 1
42162306a36Sopenharmony_ci					&pmx0 6 55 1 &pmx0 7 56 1>;
42262306a36Sopenharmony_ci			interrupt-controller;
42362306a36Sopenharmony_ci			#interrupt-cells = <2>;
42462306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK13>;
42562306a36Sopenharmony_ci			clock-names = "apb_pclk";
42662306a36Sopenharmony_ci		};
42762306a36Sopenharmony_ci
42862306a36Sopenharmony_ci		gpio14: gpio@814000 {
42962306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
43062306a36Sopenharmony_ci			reg = <0x814000 0x1000>;
43162306a36Sopenharmony_ci			interrupts = <0 78 0x4>;
43262306a36Sopenharmony_ci			gpio-controller;
43362306a36Sopenharmony_ci			#gpio-cells = <2>;
43462306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 57 1 &pmx0 1 97 1 &pmx0 2 97 1
43562306a36Sopenharmony_ci					&pmx0 3 58 1 &pmx0 4 59 1 &pmx0 5 60 1
43662306a36Sopenharmony_ci					&pmx0 6 60 1 &pmx0 7 61 1>;
43762306a36Sopenharmony_ci			interrupt-controller;
43862306a36Sopenharmony_ci			#interrupt-cells = <2>;
43962306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK14>;
44062306a36Sopenharmony_ci			clock-names = "apb_pclk";
44162306a36Sopenharmony_ci		};
44262306a36Sopenharmony_ci
44362306a36Sopenharmony_ci		gpio15: gpio@815000 {
44462306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
44562306a36Sopenharmony_ci			reg = <0x815000 0x1000>;
44662306a36Sopenharmony_ci			interrupts = <0 79 0x4>;
44762306a36Sopenharmony_ci			gpio-controller;
44862306a36Sopenharmony_ci			#gpio-cells = <2>;
44962306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 61 1 &pmx0 1 62 1 &pmx0 2 62 1
45062306a36Sopenharmony_ci					&pmx0 3 63 1 &pmx0 4 63 1 &pmx0 5 64 1
45162306a36Sopenharmony_ci					&pmx0 6 64 1 &pmx0 7 65 1>;
45262306a36Sopenharmony_ci			interrupt-controller;
45362306a36Sopenharmony_ci			#interrupt-cells = <2>;
45462306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK15>;
45562306a36Sopenharmony_ci			clock-names = "apb_pclk";
45662306a36Sopenharmony_ci		};
45762306a36Sopenharmony_ci
45862306a36Sopenharmony_ci		gpio16: gpio@816000 {
45962306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
46062306a36Sopenharmony_ci			reg = <0x816000 0x1000>;
46162306a36Sopenharmony_ci			interrupts = <0 80 0x4>;
46262306a36Sopenharmony_ci			gpio-controller;
46362306a36Sopenharmony_ci			#gpio-cells = <2>;
46462306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 66 1 &pmx0 1 67 1 &pmx0 2 68 1
46562306a36Sopenharmony_ci					&pmx0 3 69 1 &pmx0 4 70 1 &pmx0 5 71 1
46662306a36Sopenharmony_ci					&pmx0 6 72 1 &pmx0 7 73 1>;
46762306a36Sopenharmony_ci			interrupt-controller;
46862306a36Sopenharmony_ci			#interrupt-cells = <2>;
46962306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK16>;
47062306a36Sopenharmony_ci			clock-names = "apb_pclk";
47162306a36Sopenharmony_ci		};
47262306a36Sopenharmony_ci
47362306a36Sopenharmony_ci		gpio17: gpio@817000 {
47462306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
47562306a36Sopenharmony_ci			reg = <0x817000 0x1000>;
47662306a36Sopenharmony_ci			interrupts = <0 81 0x4>;
47762306a36Sopenharmony_ci			gpio-controller;
47862306a36Sopenharmony_ci			#gpio-cells = <2>;
47962306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 74 1 &pmx0 1 75 1 &pmx0 2 76 1
48062306a36Sopenharmony_ci					&pmx0 3 77 1 &pmx0 4 78 1 &pmx0 5 79 1
48162306a36Sopenharmony_ci					&pmx0 6 80 1 &pmx0 7 81 1>;
48262306a36Sopenharmony_ci			interrupt-controller;
48362306a36Sopenharmony_ci			#interrupt-cells = <2>;
48462306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK17>;
48562306a36Sopenharmony_ci			clock-names = "apb_pclk";
48662306a36Sopenharmony_ci		};
48762306a36Sopenharmony_ci
48862306a36Sopenharmony_ci		gpio18: gpio@818000 {
48962306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
49062306a36Sopenharmony_ci			reg = <0x818000 0x1000>;
49162306a36Sopenharmony_ci			interrupts = <0 82 0x4>;
49262306a36Sopenharmony_ci			gpio-controller;
49362306a36Sopenharmony_ci			#gpio-cells = <2>;
49462306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 82 1 &pmx0 1 83 1 &pmx0 2 83 1
49562306a36Sopenharmony_ci					&pmx0 3 84 1 &pmx0 4 84 1 &pmx0 5 85 1
49662306a36Sopenharmony_ci					&pmx0 6 86 1 &pmx0 7 87 1>;
49762306a36Sopenharmony_ci			interrupt-controller;
49862306a36Sopenharmony_ci			#interrupt-cells = <2>;
49962306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK18>;
50062306a36Sopenharmony_ci			clock-names = "apb_pclk";
50162306a36Sopenharmony_ci		};
50262306a36Sopenharmony_ci
50362306a36Sopenharmony_ci		gpio19: gpio@819000 {
50462306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
50562306a36Sopenharmony_ci			reg = <0x819000 0x1000>;
50662306a36Sopenharmony_ci			interrupts = <0 83 0x4>;
50762306a36Sopenharmony_ci			gpio-controller;
50862306a36Sopenharmony_ci			#gpio-cells = <2>;
50962306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 87 1 &pmx0 1 87 1 &pmx0 2 88 1
51062306a36Sopenharmony_ci					&pmx0 3 88 1>;
51162306a36Sopenharmony_ci			interrupt-controller;
51262306a36Sopenharmony_ci			#interrupt-cells = <2>;
51362306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK19>;
51462306a36Sopenharmony_ci			clock-names = "apb_pclk";
51562306a36Sopenharmony_ci		};
51662306a36Sopenharmony_ci
51762306a36Sopenharmony_ci		gpio20: gpio@81a000 {
51862306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
51962306a36Sopenharmony_ci			reg = <0x81a000 0x1000>;
52062306a36Sopenharmony_ci			interrupts = <0 84 0x4>;
52162306a36Sopenharmony_ci			gpio-controller;
52262306a36Sopenharmony_ci			#gpio-cells = <2>;
52362306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 0 89 1 &pmx0 1 89 1 &pmx0 2 90 1
52462306a36Sopenharmony_ci					&pmx0 3 90 1 &pmx0 4 91 1 &pmx0 5 92 1>;
52562306a36Sopenharmony_ci			interrupt-controller;
52662306a36Sopenharmony_ci			#interrupt-cells = <2>;
52762306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK20>;
52862306a36Sopenharmony_ci			clock-names = "apb_pclk";
52962306a36Sopenharmony_ci		};
53062306a36Sopenharmony_ci
53162306a36Sopenharmony_ci		gpio21: gpio@81b000 {
53262306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
53362306a36Sopenharmony_ci			reg = <0x81b000 0x1000>;
53462306a36Sopenharmony_ci			interrupts = <0 85 0x4>;
53562306a36Sopenharmony_ci			gpio-controller;
53662306a36Sopenharmony_ci			#gpio-cells = <2>;
53762306a36Sopenharmony_ci			gpio-ranges = <	&pmx0 3 94 1 &pmx0 7 96 1>;
53862306a36Sopenharmony_ci			interrupt-controller;
53962306a36Sopenharmony_ci			#interrupt-cells = <2>;
54062306a36Sopenharmony_ci			clocks = <&clock HI3620_GPIOCLK21>;
54162306a36Sopenharmony_ci			clock-names = "apb_pclk";
54262306a36Sopenharmony_ci		};
54362306a36Sopenharmony_ci
54462306a36Sopenharmony_ci		pmx0: pinmux@803000 {
54562306a36Sopenharmony_ci			compatible = "pinctrl-single";
54662306a36Sopenharmony_ci			reg = <0x803000 0x188>;
54762306a36Sopenharmony_ci			#address-cells = <1>;
54862306a36Sopenharmony_ci			#size-cells = <0>;
54962306a36Sopenharmony_ci			#pinctrl-cells = <1>;
55062306a36Sopenharmony_ci			#gpio-range-cells = <3>;
55162306a36Sopenharmony_ci
55262306a36Sopenharmony_ci			pinctrl-single,register-width = <32>;
55362306a36Sopenharmony_ci			pinctrl-single,function-mask = <7>;
55462306a36Sopenharmony_ci			/* pin base, nr pins & gpio function */
55562306a36Sopenharmony_ci			pinctrl-single,gpio-range = <&range 0 3 0 &range 3 9 1
55662306a36Sopenharmony_ci						&range 12 1 0 &range 13 29 1
55762306a36Sopenharmony_ci						&range 43 1 0 &range 44 49 1
55862306a36Sopenharmony_ci						&range 94 1 1 &range 96 2 1>;
55962306a36Sopenharmony_ci
56062306a36Sopenharmony_ci			range: gpio-range {
56162306a36Sopenharmony_ci				#pinctrl-single,gpio-range-cells = <3>;
56262306a36Sopenharmony_ci			};
56362306a36Sopenharmony_ci		};
56462306a36Sopenharmony_ci
56562306a36Sopenharmony_ci		pmx1: pinmux@803800 {
56662306a36Sopenharmony_ci			compatible = "pinconf-single";
56762306a36Sopenharmony_ci			reg = <0x803800 0x2dc>;
56862306a36Sopenharmony_ci			#address-cells = <1>;
56962306a36Sopenharmony_ci			#size-cells = <0>;
57062306a36Sopenharmony_ci			#pinctrl-cells = <1>;
57162306a36Sopenharmony_ci
57262306a36Sopenharmony_ci			pinctrl-single,register-width = <32>;
57362306a36Sopenharmony_ci		};
57462306a36Sopenharmony_ci	};
57562306a36Sopenharmony_ci};
576