162306a36Sopenharmony_ci/*
262306a36Sopenharmony_ci * Spreadtrum SC9860 SoC
362306a36Sopenharmony_ci *
462306a36Sopenharmony_ci * Copyright (C) 2016, Spreadtrum Communications Inc.
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/arm-gic.h>
1062306a36Sopenharmony_ci#include <dt-bindings/input/input.h>
1162306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
1262306a36Sopenharmony_ci#include "whale2.dtsi"
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci/ {
1562306a36Sopenharmony_ci	cpus {
1662306a36Sopenharmony_ci		#address-cells = <2>;
1762306a36Sopenharmony_ci		#size-cells = <0>;
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci		cpu-map {
2062306a36Sopenharmony_ci			cluster0 {
2162306a36Sopenharmony_ci				core0 {
2262306a36Sopenharmony_ci					cpu = <&CPU0>;
2362306a36Sopenharmony_ci				};
2462306a36Sopenharmony_ci				core1 {
2562306a36Sopenharmony_ci					cpu = <&CPU1>;
2662306a36Sopenharmony_ci				};
2762306a36Sopenharmony_ci				core2 {
2862306a36Sopenharmony_ci					cpu = <&CPU2>;
2962306a36Sopenharmony_ci				};
3062306a36Sopenharmony_ci				core3 {
3162306a36Sopenharmony_ci					cpu = <&CPU3>;
3262306a36Sopenharmony_ci				};
3362306a36Sopenharmony_ci			};
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci			cluster1 {
3662306a36Sopenharmony_ci				core0 {
3762306a36Sopenharmony_ci					cpu = <&CPU4>;
3862306a36Sopenharmony_ci				};
3962306a36Sopenharmony_ci				core1 {
4062306a36Sopenharmony_ci					cpu = <&CPU5>;
4162306a36Sopenharmony_ci				};
4262306a36Sopenharmony_ci				core2 {
4362306a36Sopenharmony_ci					cpu = <&CPU6>;
4462306a36Sopenharmony_ci				};
4562306a36Sopenharmony_ci				core3 {
4662306a36Sopenharmony_ci					cpu = <&CPU7>;
4762306a36Sopenharmony_ci				};
4862306a36Sopenharmony_ci			};
4962306a36Sopenharmony_ci		};
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci		CPU0: cpu@530000 {
5262306a36Sopenharmony_ci			device_type = "cpu";
5362306a36Sopenharmony_ci			compatible = "arm,cortex-a53";
5462306a36Sopenharmony_ci			reg = <0x0 0x530000>;
5562306a36Sopenharmony_ci			enable-method = "psci";
5662306a36Sopenharmony_ci			cpu-idle-states = <&CORE_PD &CLUSTER_PD>;
5762306a36Sopenharmony_ci		};
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci		CPU1: cpu@530001 {
6062306a36Sopenharmony_ci			device_type = "cpu";
6162306a36Sopenharmony_ci			compatible = "arm,cortex-a53";
6262306a36Sopenharmony_ci			reg = <0x0 0x530001>;
6362306a36Sopenharmony_ci			enable-method = "psci";
6462306a36Sopenharmony_ci			cpu-idle-states = <&CORE_PD &CLUSTER_PD>;
6562306a36Sopenharmony_ci		};
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci		CPU2: cpu@530002 {
6862306a36Sopenharmony_ci			device_type = "cpu";
6962306a36Sopenharmony_ci			compatible = "arm,cortex-a53";
7062306a36Sopenharmony_ci			reg = <0x0 0x530002>;
7162306a36Sopenharmony_ci			enable-method = "psci";
7262306a36Sopenharmony_ci			cpu-idle-states = <&CORE_PD &CLUSTER_PD>;
7362306a36Sopenharmony_ci		};
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci		CPU3: cpu@530003 {
7662306a36Sopenharmony_ci			device_type = "cpu";
7762306a36Sopenharmony_ci			compatible = "arm,cortex-a53";
7862306a36Sopenharmony_ci			reg = <0x0 0x530003>;
7962306a36Sopenharmony_ci			enable-method = "psci";
8062306a36Sopenharmony_ci			cpu-idle-states = <&CORE_PD &CLUSTER_PD>;
8162306a36Sopenharmony_ci		};
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci		CPU4: cpu@530100 {
8462306a36Sopenharmony_ci			device_type = "cpu";
8562306a36Sopenharmony_ci			compatible = "arm,cortex-a53";
8662306a36Sopenharmony_ci			reg = <0x0 0x530100>;
8762306a36Sopenharmony_ci			enable-method = "psci";
8862306a36Sopenharmony_ci			cpu-idle-states = <&CORE_PD &CLUSTER_PD>;
8962306a36Sopenharmony_ci		};
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci		CPU5: cpu@530101 {
9262306a36Sopenharmony_ci			device_type = "cpu";
9362306a36Sopenharmony_ci			compatible = "arm,cortex-a53";
9462306a36Sopenharmony_ci			reg = <0x0 0x530101>;
9562306a36Sopenharmony_ci			enable-method = "psci";
9662306a36Sopenharmony_ci			cpu-idle-states = <&CORE_PD &CLUSTER_PD>;
9762306a36Sopenharmony_ci		};
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci		CPU6: cpu@530102 {
10062306a36Sopenharmony_ci			device_type = "cpu";
10162306a36Sopenharmony_ci			compatible = "arm,cortex-a53";
10262306a36Sopenharmony_ci			reg = <0x0 0x530102>;
10362306a36Sopenharmony_ci			enable-method = "psci";
10462306a36Sopenharmony_ci			cpu-idle-states = <&CORE_PD &CLUSTER_PD>;
10562306a36Sopenharmony_ci		};
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci		CPU7: cpu@530103 {
10862306a36Sopenharmony_ci			device_type = "cpu";
10962306a36Sopenharmony_ci			compatible = "arm,cortex-a53";
11062306a36Sopenharmony_ci			reg = <0x0 0x530103>;
11162306a36Sopenharmony_ci			enable-method = "psci";
11262306a36Sopenharmony_ci			cpu-idle-states = <&CORE_PD &CLUSTER_PD>;
11362306a36Sopenharmony_ci		};
11462306a36Sopenharmony_ci	};
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci	idle-states{
11762306a36Sopenharmony_ci		entry-method = "psci";
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci		CORE_PD: core_pd {
12062306a36Sopenharmony_ci			compatible = "arm,idle-state";
12162306a36Sopenharmony_ci			entry-latency-us = <1000>;
12262306a36Sopenharmony_ci			exit-latency-us = <700>;
12362306a36Sopenharmony_ci			min-residency-us = <2500>;
12462306a36Sopenharmony_ci			local-timer-stop;
12562306a36Sopenharmony_ci			arm,psci-suspend-param = <0x00010002>;
12662306a36Sopenharmony_ci		};
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci		CLUSTER_PD: cluster_pd {
12962306a36Sopenharmony_ci			compatible = "arm,idle-state";
13062306a36Sopenharmony_ci			entry-latency-us = <1000>;
13162306a36Sopenharmony_ci			exit-latency-us = <1000>;
13262306a36Sopenharmony_ci			min-residency-us = <3000>;
13362306a36Sopenharmony_ci			local-timer-stop;
13462306a36Sopenharmony_ci			arm,psci-suspend-param = <0x01010003>;
13562306a36Sopenharmony_ci		};
13662306a36Sopenharmony_ci	};
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci	gic: interrupt-controller@12001000 {
13962306a36Sopenharmony_ci		compatible = "arm,gic-400";
14062306a36Sopenharmony_ci		reg = <0 0x12001000 0 0x1000>,
14162306a36Sopenharmony_ci		      <0 0x12002000 0 0x2000>,
14262306a36Sopenharmony_ci		      <0 0x12004000 0 0x2000>,
14362306a36Sopenharmony_ci		      <0 0x12006000 0 0x2000>;
14462306a36Sopenharmony_ci		#interrupt-cells = <3>;
14562306a36Sopenharmony_ci		interrupt-controller;
14662306a36Sopenharmony_ci		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8)
14762306a36Sopenharmony_ci					| IRQ_TYPE_LEVEL_HIGH)>;
14862306a36Sopenharmony_ci	};
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci	psci {
15162306a36Sopenharmony_ci		compatible = "arm,psci-0.2";
15262306a36Sopenharmony_ci		method = "smc";
15362306a36Sopenharmony_ci	};
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ci	timer {
15662306a36Sopenharmony_ci		compatible = "arm,armv8-timer";
15762306a36Sopenharmony_ci		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8)
15862306a36Sopenharmony_ci					 | IRQ_TYPE_LEVEL_LOW)>,
15962306a36Sopenharmony_ci			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8)
16062306a36Sopenharmony_ci					 | IRQ_TYPE_LEVEL_LOW)>,
16162306a36Sopenharmony_ci			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8)
16262306a36Sopenharmony_ci					 | IRQ_TYPE_LEVEL_LOW)>,
16362306a36Sopenharmony_ci			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8)
16462306a36Sopenharmony_ci					 | IRQ_TYPE_LEVEL_LOW)>;
16562306a36Sopenharmony_ci	};
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ci	pmu {
16862306a36Sopenharmony_ci		compatible = "arm,cortex-a53-pmu", "arm,armv8-pmuv3";
16962306a36Sopenharmony_ci		interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
17062306a36Sopenharmony_ci			     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
17162306a36Sopenharmony_ci			     <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
17262306a36Sopenharmony_ci			     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
17362306a36Sopenharmony_ci			     <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
17462306a36Sopenharmony_ci			     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
17562306a36Sopenharmony_ci			     <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>,
17662306a36Sopenharmony_ci			     <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
17762306a36Sopenharmony_ci		interrupt-affinity = <&CPU0>,
17862306a36Sopenharmony_ci				     <&CPU1>,
17962306a36Sopenharmony_ci				     <&CPU2>,
18062306a36Sopenharmony_ci				     <&CPU3>,
18162306a36Sopenharmony_ci				     <&CPU4>,
18262306a36Sopenharmony_ci				     <&CPU5>,
18362306a36Sopenharmony_ci				     <&CPU6>,
18462306a36Sopenharmony_ci				     <&CPU7>;
18562306a36Sopenharmony_ci	};
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ci	soc {
18862306a36Sopenharmony_ci		pmu_gate: pmu-gate {
18962306a36Sopenharmony_ci			compatible = "sprd,sc9860-pmu-gate";
19062306a36Sopenharmony_ci			sprd,syscon = <&pmu_regs>; /* 0x402b0000 */
19162306a36Sopenharmony_ci			clocks = <&ext_26m>;
19262306a36Sopenharmony_ci			#clock-cells = <1>;
19362306a36Sopenharmony_ci		};
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ci		pll: pll {
19662306a36Sopenharmony_ci			compatible = "sprd,sc9860-pll";
19762306a36Sopenharmony_ci			sprd,syscon = <&ana_regs>; /* 0x40400000 */
19862306a36Sopenharmony_ci			clocks = <&pmu_gate 0>;
19962306a36Sopenharmony_ci			#clock-cells = <1>;
20062306a36Sopenharmony_ci		};
20162306a36Sopenharmony_ci
20262306a36Sopenharmony_ci		ap_clk: clock-controller@20000000 {
20362306a36Sopenharmony_ci			compatible = "sprd,sc9860-ap-clk";
20462306a36Sopenharmony_ci			reg = <0 0x20000000 0 0x400>;
20562306a36Sopenharmony_ci			clocks = <&ext_26m>, <&pll 0>,
20662306a36Sopenharmony_ci				 <&pmu_gate 0>;
20762306a36Sopenharmony_ci			#clock-cells = <1>;
20862306a36Sopenharmony_ci		};
20962306a36Sopenharmony_ci
21062306a36Sopenharmony_ci		aon_prediv: aon-prediv {
21162306a36Sopenharmony_ci			compatible = "sprd,sc9860-aon-prediv";
21262306a36Sopenharmony_ci			reg = <0 0x402d0000 0 0x400>;
21362306a36Sopenharmony_ci			clocks = <&ext_26m>, <&pll 0>,
21462306a36Sopenharmony_ci				 <&pmu_gate 0>;
21562306a36Sopenharmony_ci			#clock-cells = <1>;
21662306a36Sopenharmony_ci		};
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ci		apahb_gate: apahb-gate {
21962306a36Sopenharmony_ci			compatible = "sprd,sc9860-apahb-gate";
22062306a36Sopenharmony_ci			sprd,syscon = <&ap_ahb_regs>; /* 0x20210000 */
22162306a36Sopenharmony_ci			clocks = <&aon_prediv 0>;
22262306a36Sopenharmony_ci			#clock-cells = <1>;
22362306a36Sopenharmony_ci		};
22462306a36Sopenharmony_ci
22562306a36Sopenharmony_ci		aon_gate: aon-gate {
22662306a36Sopenharmony_ci			compatible = "sprd,sc9860-aon-gate";
22762306a36Sopenharmony_ci			sprd,syscon = <&aon_regs>; /* 0x402e0000 */
22862306a36Sopenharmony_ci			clocks = <&aon_prediv 0>;
22962306a36Sopenharmony_ci			#clock-cells = <1>;
23062306a36Sopenharmony_ci		};
23162306a36Sopenharmony_ci
23262306a36Sopenharmony_ci		aonsecure_clk: clock-controller@40880000 {
23362306a36Sopenharmony_ci			compatible = "sprd,sc9860-aonsecure-clk";
23462306a36Sopenharmony_ci			reg = <0 0x40880000 0 0x400>;
23562306a36Sopenharmony_ci			clocks = <&ext_26m>, <&pll 0>;
23662306a36Sopenharmony_ci			#clock-cells = <1>;
23762306a36Sopenharmony_ci		};
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_ci		agcp_gate: agcp-gate {
24062306a36Sopenharmony_ci			compatible = "sprd,sc9860-agcp-gate";
24162306a36Sopenharmony_ci			sprd,syscon = <&agcp_regs>; /* 0x415e0000 */
24262306a36Sopenharmony_ci			clocks = <&aon_prediv 0>;
24362306a36Sopenharmony_ci			#clock-cells = <1>;
24462306a36Sopenharmony_ci		};
24562306a36Sopenharmony_ci
24662306a36Sopenharmony_ci		gpu_clk: clock-controller@60200000 {
24762306a36Sopenharmony_ci			compatible = "sprd,sc9860-gpu-clk";
24862306a36Sopenharmony_ci			reg = <0 0x60200000 0 0x400>;
24962306a36Sopenharmony_ci			clocks = <&pll 0>;
25062306a36Sopenharmony_ci			#clock-cells = <1>;
25162306a36Sopenharmony_ci		};
25262306a36Sopenharmony_ci
25362306a36Sopenharmony_ci		vsp_clk: clock-controller@61000000 {
25462306a36Sopenharmony_ci			compatible = "sprd,sc9860-vsp-clk";
25562306a36Sopenharmony_ci			reg = <0 0x61000000 0 0x400>;
25662306a36Sopenharmony_ci			clocks = <&ext_26m>, <&pll 0>;
25762306a36Sopenharmony_ci			#clock-cells = <1>;
25862306a36Sopenharmony_ci		};
25962306a36Sopenharmony_ci
26062306a36Sopenharmony_ci		vsp_gate: vsp-gate {
26162306a36Sopenharmony_ci			compatible = "sprd,sc9860-vsp-gate";
26262306a36Sopenharmony_ci			sprd,syscon = <&vsp_regs>; /* 0x61100000 */
26362306a36Sopenharmony_ci			clocks = <&vsp_clk 0>;
26462306a36Sopenharmony_ci			#clock-cells = <1>;
26562306a36Sopenharmony_ci		};
26662306a36Sopenharmony_ci
26762306a36Sopenharmony_ci		cam_clk: clock-controller@62000000 {
26862306a36Sopenharmony_ci			compatible = "sprd,sc9860-cam-clk";
26962306a36Sopenharmony_ci			reg = <0 0x62000000 0 0x4000>;
27062306a36Sopenharmony_ci			clocks = <&ext_26m>, <&pll 0>;
27162306a36Sopenharmony_ci			#clock-cells = <1>;
27262306a36Sopenharmony_ci		};
27362306a36Sopenharmony_ci
27462306a36Sopenharmony_ci		cam_gate: cam-gate {
27562306a36Sopenharmony_ci			compatible = "sprd,sc9860-cam-gate";
27662306a36Sopenharmony_ci			sprd,syscon = <&cam_regs>; /* 0x62100000 */
27762306a36Sopenharmony_ci			clocks = <&cam_clk 0>;
27862306a36Sopenharmony_ci			#clock-cells = <1>;
27962306a36Sopenharmony_ci		};
28062306a36Sopenharmony_ci
28162306a36Sopenharmony_ci		disp_clk: clock-controller@63000000 {
28262306a36Sopenharmony_ci			compatible = "sprd,sc9860-disp-clk";
28362306a36Sopenharmony_ci			reg = <0 0x63000000 0 0x400>;
28462306a36Sopenharmony_ci			clocks = <&ext_26m>, <&pll 0>;
28562306a36Sopenharmony_ci			#clock-cells = <1>;
28662306a36Sopenharmony_ci		};
28762306a36Sopenharmony_ci
28862306a36Sopenharmony_ci		disp_gate: disp-gate {
28962306a36Sopenharmony_ci			compatible = "sprd,sc9860-disp-gate";
29062306a36Sopenharmony_ci			sprd,syscon = <&disp_regs>; /* 0x63100000 */
29162306a36Sopenharmony_ci			clocks = <&disp_clk 0>;
29262306a36Sopenharmony_ci			#clock-cells = <1>;
29362306a36Sopenharmony_ci		};
29462306a36Sopenharmony_ci
29562306a36Sopenharmony_ci		apapb_gate: apapb-gate {
29662306a36Sopenharmony_ci			compatible = "sprd,sc9860-apapb-gate";
29762306a36Sopenharmony_ci			sprd,syscon = <&ap_apb_regs>; /* 0x70b00000 */
29862306a36Sopenharmony_ci			clocks = <&ap_clk 0>;
29962306a36Sopenharmony_ci			#clock-cells = <1>;
30062306a36Sopenharmony_ci		};
30162306a36Sopenharmony_ci
30262306a36Sopenharmony_ci		funnel@10001000 { /* SoC Funnel */
30362306a36Sopenharmony_ci			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
30462306a36Sopenharmony_ci			reg = <0 0x10001000 0 0x1000>;
30562306a36Sopenharmony_ci			clocks = <&ext_26m>;
30662306a36Sopenharmony_ci			clock-names = "apb_pclk";
30762306a36Sopenharmony_ci			out-ports {
30862306a36Sopenharmony_ci				port {
30962306a36Sopenharmony_ci					soc_funnel_out_port: endpoint {
31062306a36Sopenharmony_ci						remote-endpoint = <&etb_in>;
31162306a36Sopenharmony_ci					};
31262306a36Sopenharmony_ci				};
31362306a36Sopenharmony_ci			};
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_ci			in-ports {
31662306a36Sopenharmony_ci				#address-cells = <1>;
31762306a36Sopenharmony_ci				#size-cells = <0>;
31862306a36Sopenharmony_ci
31962306a36Sopenharmony_ci				port@0 {
32062306a36Sopenharmony_ci					reg = <0>;
32162306a36Sopenharmony_ci					soc_funnel_in_port0: endpoint {
32262306a36Sopenharmony_ci						remote-endpoint =
32362306a36Sopenharmony_ci						<&main_funnel_out_port>;
32462306a36Sopenharmony_ci					};
32562306a36Sopenharmony_ci				};
32662306a36Sopenharmony_ci
32762306a36Sopenharmony_ci				port@4 {
32862306a36Sopenharmony_ci					reg = <4>;
32962306a36Sopenharmony_ci					soc_funnel_in_port1: endpoint {
33062306a36Sopenharmony_ci						remote-endpoint =
33162306a36Sopenharmony_ci							<&stm_out_port>;
33262306a36Sopenharmony_ci					};
33362306a36Sopenharmony_ci				};
33462306a36Sopenharmony_ci			};
33562306a36Sopenharmony_ci		};
33662306a36Sopenharmony_ci
33762306a36Sopenharmony_ci		etb@10003000 {
33862306a36Sopenharmony_ci			compatible = "arm,coresight-tmc", "arm,primecell";
33962306a36Sopenharmony_ci			reg = <0 0x10003000 0 0x1000>;
34062306a36Sopenharmony_ci			clocks = <&ext_26m>;
34162306a36Sopenharmony_ci			clock-names = "apb_pclk";
34262306a36Sopenharmony_ci			out-ports {
34362306a36Sopenharmony_ci				port {
34462306a36Sopenharmony_ci					etb_in: endpoint {
34562306a36Sopenharmony_ci						remote-endpoint =
34662306a36Sopenharmony_ci							<&soc_funnel_out_port>;
34762306a36Sopenharmony_ci					};
34862306a36Sopenharmony_ci				};
34962306a36Sopenharmony_ci			};
35062306a36Sopenharmony_ci		};
35162306a36Sopenharmony_ci
35262306a36Sopenharmony_ci		stm@10006000 {
35362306a36Sopenharmony_ci			compatible = "arm,coresight-stm", "arm,primecell";
35462306a36Sopenharmony_ci			reg = <0 0x10006000 0 0x1000>,
35562306a36Sopenharmony_ci			      <0 0x01000000 0 0x180000>;
35662306a36Sopenharmony_ci			reg-names = "stm-base", "stm-stimulus-base";
35762306a36Sopenharmony_ci			clocks = <&ext_26m>;
35862306a36Sopenharmony_ci			clock-names = "apb_pclk";
35962306a36Sopenharmony_ci			out-ports {
36062306a36Sopenharmony_ci				port {
36162306a36Sopenharmony_ci					stm_out_port: endpoint {
36262306a36Sopenharmony_ci						remote-endpoint =
36362306a36Sopenharmony_ci							<&soc_funnel_in_port1>;
36462306a36Sopenharmony_ci					};
36562306a36Sopenharmony_ci				};
36662306a36Sopenharmony_ci			};
36762306a36Sopenharmony_ci		};
36862306a36Sopenharmony_ci
36962306a36Sopenharmony_ci		funnel@11001000 { /* Cluster0 Funnel */
37062306a36Sopenharmony_ci			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
37162306a36Sopenharmony_ci			reg = <0 0x11001000 0 0x1000>;
37262306a36Sopenharmony_ci			clocks = <&ext_26m>;
37362306a36Sopenharmony_ci			clock-names = "apb_pclk";
37462306a36Sopenharmony_ci			out-ports {
37562306a36Sopenharmony_ci				port {
37662306a36Sopenharmony_ci					cluster0_funnel_out_port: endpoint {
37762306a36Sopenharmony_ci						remote-endpoint =
37862306a36Sopenharmony_ci							<&cluster0_etf_in>;
37962306a36Sopenharmony_ci					};
38062306a36Sopenharmony_ci				};
38162306a36Sopenharmony_ci			};
38262306a36Sopenharmony_ci
38362306a36Sopenharmony_ci			in-ports {
38462306a36Sopenharmony_ci				#address-cells = <1>;
38562306a36Sopenharmony_ci				#size-cells = <0>;
38662306a36Sopenharmony_ci
38762306a36Sopenharmony_ci				port@0 {
38862306a36Sopenharmony_ci					reg = <0>;
38962306a36Sopenharmony_ci					cluster0_funnel_in_port0: endpoint {
39062306a36Sopenharmony_ci						remote-endpoint = <&etm0_out>;
39162306a36Sopenharmony_ci					};
39262306a36Sopenharmony_ci				};
39362306a36Sopenharmony_ci
39462306a36Sopenharmony_ci				port@1 {
39562306a36Sopenharmony_ci					reg = <1>;
39662306a36Sopenharmony_ci					cluster0_funnel_in_port1: endpoint {
39762306a36Sopenharmony_ci						remote-endpoint = <&etm1_out>;
39862306a36Sopenharmony_ci					};
39962306a36Sopenharmony_ci				};
40062306a36Sopenharmony_ci
40162306a36Sopenharmony_ci				port@2 {
40262306a36Sopenharmony_ci					reg = <2>;
40362306a36Sopenharmony_ci					cluster0_funnel_in_port2: endpoint {
40462306a36Sopenharmony_ci						remote-endpoint = <&etm2_out>;
40562306a36Sopenharmony_ci					};
40662306a36Sopenharmony_ci				};
40762306a36Sopenharmony_ci
40862306a36Sopenharmony_ci				port@4 {
40962306a36Sopenharmony_ci					reg = <4>;
41062306a36Sopenharmony_ci					cluster0_funnel_in_port3: endpoint {
41162306a36Sopenharmony_ci						remote-endpoint = <&etm3_out>;
41262306a36Sopenharmony_ci					};
41362306a36Sopenharmony_ci				};
41462306a36Sopenharmony_ci			};
41562306a36Sopenharmony_ci		};
41662306a36Sopenharmony_ci
41762306a36Sopenharmony_ci		funnel@11002000 { /* Cluster1 Funnel */
41862306a36Sopenharmony_ci			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
41962306a36Sopenharmony_ci			reg = <0 0x11002000 0 0x1000>;
42062306a36Sopenharmony_ci			clocks = <&ext_26m>;
42162306a36Sopenharmony_ci			clock-names = "apb_pclk";
42262306a36Sopenharmony_ci			out-ports {
42362306a36Sopenharmony_ci				port {
42462306a36Sopenharmony_ci					cluster1_funnel_out_port: endpoint {
42562306a36Sopenharmony_ci						remote-endpoint =
42662306a36Sopenharmony_ci							<&cluster1_etf_in>;
42762306a36Sopenharmony_ci					};
42862306a36Sopenharmony_ci				};
42962306a36Sopenharmony_ci			};
43062306a36Sopenharmony_ci
43162306a36Sopenharmony_ci			in-ports {
43262306a36Sopenharmony_ci				#address-cells = <1>;
43362306a36Sopenharmony_ci				#size-cells = <0>;
43462306a36Sopenharmony_ci
43562306a36Sopenharmony_ci				port@0 {
43662306a36Sopenharmony_ci					reg = <0>;
43762306a36Sopenharmony_ci					cluster1_funnel_in_port0: endpoint {
43862306a36Sopenharmony_ci						remote-endpoint = <&etm4_out>;
43962306a36Sopenharmony_ci					};
44062306a36Sopenharmony_ci				};
44162306a36Sopenharmony_ci
44262306a36Sopenharmony_ci				port@1 {
44362306a36Sopenharmony_ci					reg = <1>;
44462306a36Sopenharmony_ci					cluster1_funnel_in_port1: endpoint {
44562306a36Sopenharmony_ci						remote-endpoint = <&etm5_out>;
44662306a36Sopenharmony_ci					};
44762306a36Sopenharmony_ci				};
44862306a36Sopenharmony_ci
44962306a36Sopenharmony_ci				port@2 {
45062306a36Sopenharmony_ci					reg = <2>;
45162306a36Sopenharmony_ci					cluster1_funnel_in_port2: endpoint {
45262306a36Sopenharmony_ci						remote-endpoint = <&etm6_out>;
45362306a36Sopenharmony_ci					};
45462306a36Sopenharmony_ci				};
45562306a36Sopenharmony_ci
45662306a36Sopenharmony_ci				port@3 {
45762306a36Sopenharmony_ci					reg = <3>;
45862306a36Sopenharmony_ci					cluster1_funnel_in_port3: endpoint {
45962306a36Sopenharmony_ci						remote-endpoint = <&etm7_out>;
46062306a36Sopenharmony_ci					};
46162306a36Sopenharmony_ci				};
46262306a36Sopenharmony_ci			};
46362306a36Sopenharmony_ci		};
46462306a36Sopenharmony_ci
46562306a36Sopenharmony_ci		etf@11003000 { /*  ETF on Cluster0 */
46662306a36Sopenharmony_ci			compatible = "arm,coresight-tmc", "arm,primecell";
46762306a36Sopenharmony_ci			reg = <0 0x11003000 0 0x1000>;
46862306a36Sopenharmony_ci			clocks = <&ext_26m>;
46962306a36Sopenharmony_ci			clock-names = "apb_pclk";
47062306a36Sopenharmony_ci
47162306a36Sopenharmony_ci			out-ports {
47262306a36Sopenharmony_ci				port {
47362306a36Sopenharmony_ci					cluster0_etf_out: endpoint {
47462306a36Sopenharmony_ci						remote-endpoint =
47562306a36Sopenharmony_ci						<&main_funnel_in_port0>;
47662306a36Sopenharmony_ci					};
47762306a36Sopenharmony_ci				};
47862306a36Sopenharmony_ci			};
47962306a36Sopenharmony_ci
48062306a36Sopenharmony_ci			in-ports {
48162306a36Sopenharmony_ci				port {
48262306a36Sopenharmony_ci					cluster0_etf_in: endpoint {
48362306a36Sopenharmony_ci						remote-endpoint =
48462306a36Sopenharmony_ci						<&cluster0_funnel_out_port>;
48562306a36Sopenharmony_ci					};
48662306a36Sopenharmony_ci				};
48762306a36Sopenharmony_ci			};
48862306a36Sopenharmony_ci		};
48962306a36Sopenharmony_ci
49062306a36Sopenharmony_ci		etf@11004000 { /* ETF on Cluster1 */
49162306a36Sopenharmony_ci			compatible = "arm,coresight-tmc", "arm,primecell";
49262306a36Sopenharmony_ci			reg = <0 0x11004000 0 0x1000>;
49362306a36Sopenharmony_ci			clocks = <&ext_26m>;
49462306a36Sopenharmony_ci			clock-names = "apb_pclk";
49562306a36Sopenharmony_ci
49662306a36Sopenharmony_ci			out-ports {
49762306a36Sopenharmony_ci				port {
49862306a36Sopenharmony_ci					cluster1_etf_out: endpoint {
49962306a36Sopenharmony_ci						remote-endpoint =
50062306a36Sopenharmony_ci						<&main_funnel_in_port1>;
50162306a36Sopenharmony_ci					};
50262306a36Sopenharmony_ci				};
50362306a36Sopenharmony_ci			};
50462306a36Sopenharmony_ci
50562306a36Sopenharmony_ci			in-ports {
50662306a36Sopenharmony_ci				port {
50762306a36Sopenharmony_ci					cluster1_etf_in: endpoint {
50862306a36Sopenharmony_ci						remote-endpoint =
50962306a36Sopenharmony_ci						<&cluster1_funnel_out_port>;
51062306a36Sopenharmony_ci					};
51162306a36Sopenharmony_ci				};
51262306a36Sopenharmony_ci			};
51362306a36Sopenharmony_ci		};
51462306a36Sopenharmony_ci
51562306a36Sopenharmony_ci		funnel@11005000 { /* Main Funnel */
51662306a36Sopenharmony_ci			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
51762306a36Sopenharmony_ci			reg = <0 0x11005000 0 0x1000>;
51862306a36Sopenharmony_ci			clocks = <&ext_26m>;
51962306a36Sopenharmony_ci			clock-names = "apb_pclk";
52062306a36Sopenharmony_ci
52162306a36Sopenharmony_ci			out-ports {
52262306a36Sopenharmony_ci				port {
52362306a36Sopenharmony_ci					main_funnel_out_port: endpoint {
52462306a36Sopenharmony_ci						remote-endpoint =
52562306a36Sopenharmony_ci							<&soc_funnel_in_port0>;
52662306a36Sopenharmony_ci					};
52762306a36Sopenharmony_ci				};
52862306a36Sopenharmony_ci			};
52962306a36Sopenharmony_ci
53062306a36Sopenharmony_ci			in-ports {
53162306a36Sopenharmony_ci				#address-cells = <1>;
53262306a36Sopenharmony_ci				#size-cells = <0>;
53362306a36Sopenharmony_ci
53462306a36Sopenharmony_ci				port@0 {
53562306a36Sopenharmony_ci					reg = <0>;
53662306a36Sopenharmony_ci					main_funnel_in_port0: endpoint {
53762306a36Sopenharmony_ci						remote-endpoint =
53862306a36Sopenharmony_ci							<&cluster0_etf_out>;
53962306a36Sopenharmony_ci					};
54062306a36Sopenharmony_ci				};
54162306a36Sopenharmony_ci
54262306a36Sopenharmony_ci				port@1 {
54362306a36Sopenharmony_ci					reg = <1>;
54462306a36Sopenharmony_ci					main_funnel_in_port1: endpoint {
54562306a36Sopenharmony_ci						remote-endpoint =
54662306a36Sopenharmony_ci							<&cluster1_etf_out>;
54762306a36Sopenharmony_ci					};
54862306a36Sopenharmony_ci				};
54962306a36Sopenharmony_ci			};
55062306a36Sopenharmony_ci		};
55162306a36Sopenharmony_ci
55262306a36Sopenharmony_ci		etm@11440000 {
55362306a36Sopenharmony_ci			compatible = "arm,coresight-etm4x", "arm,primecell";
55462306a36Sopenharmony_ci			reg = <0 0x11440000 0 0x1000>;
55562306a36Sopenharmony_ci			cpu = <&CPU0>;
55662306a36Sopenharmony_ci			clocks = <&ext_26m>;
55762306a36Sopenharmony_ci			clock-names = "apb_pclk";
55862306a36Sopenharmony_ci
55962306a36Sopenharmony_ci			out-ports {
56062306a36Sopenharmony_ci				port {
56162306a36Sopenharmony_ci					etm0_out: endpoint {
56262306a36Sopenharmony_ci						remote-endpoint =
56362306a36Sopenharmony_ci							<&cluster0_funnel_in_port0>;
56462306a36Sopenharmony_ci					};
56562306a36Sopenharmony_ci				};
56662306a36Sopenharmony_ci			};
56762306a36Sopenharmony_ci		};
56862306a36Sopenharmony_ci
56962306a36Sopenharmony_ci		etm@11540000 {
57062306a36Sopenharmony_ci			compatible = "arm,coresight-etm4x", "arm,primecell";
57162306a36Sopenharmony_ci			reg = <0 0x11540000 0 0x1000>;
57262306a36Sopenharmony_ci			cpu = <&CPU1>;
57362306a36Sopenharmony_ci			clocks = <&ext_26m>;
57462306a36Sopenharmony_ci			clock-names = "apb_pclk";
57562306a36Sopenharmony_ci
57662306a36Sopenharmony_ci			out-ports {
57762306a36Sopenharmony_ci				port {
57862306a36Sopenharmony_ci					etm1_out: endpoint {
57962306a36Sopenharmony_ci						remote-endpoint =
58062306a36Sopenharmony_ci							<&cluster0_funnel_in_port1>;
58162306a36Sopenharmony_ci					};
58262306a36Sopenharmony_ci				};
58362306a36Sopenharmony_ci			};
58462306a36Sopenharmony_ci		};
58562306a36Sopenharmony_ci
58662306a36Sopenharmony_ci		etm@11640000 {
58762306a36Sopenharmony_ci			compatible = "arm,coresight-etm4x", "arm,primecell";
58862306a36Sopenharmony_ci			reg = <0 0x11640000 0 0x1000>;
58962306a36Sopenharmony_ci			cpu = <&CPU2>;
59062306a36Sopenharmony_ci			clocks = <&ext_26m>;
59162306a36Sopenharmony_ci			clock-names = "apb_pclk";
59262306a36Sopenharmony_ci
59362306a36Sopenharmony_ci			out-ports {
59462306a36Sopenharmony_ci				port {
59562306a36Sopenharmony_ci					etm2_out: endpoint {
59662306a36Sopenharmony_ci						remote-endpoint =
59762306a36Sopenharmony_ci							<&cluster0_funnel_in_port2>;
59862306a36Sopenharmony_ci					};
59962306a36Sopenharmony_ci				};
60062306a36Sopenharmony_ci			};
60162306a36Sopenharmony_ci		};
60262306a36Sopenharmony_ci
60362306a36Sopenharmony_ci		etm@11740000 {
60462306a36Sopenharmony_ci			compatible = "arm,coresight-etm4x", "arm,primecell";
60562306a36Sopenharmony_ci			reg = <0 0x11740000 0 0x1000>;
60662306a36Sopenharmony_ci			cpu = <&CPU3>;
60762306a36Sopenharmony_ci			clocks = <&ext_26m>;
60862306a36Sopenharmony_ci			clock-names = "apb_pclk";
60962306a36Sopenharmony_ci
61062306a36Sopenharmony_ci			out-ports {
61162306a36Sopenharmony_ci				port {
61262306a36Sopenharmony_ci					etm3_out: endpoint {
61362306a36Sopenharmony_ci						remote-endpoint =
61462306a36Sopenharmony_ci							<&cluster0_funnel_in_port3>;
61562306a36Sopenharmony_ci					};
61662306a36Sopenharmony_ci				};
61762306a36Sopenharmony_ci			};
61862306a36Sopenharmony_ci		};
61962306a36Sopenharmony_ci
62062306a36Sopenharmony_ci		etm@11840000 {
62162306a36Sopenharmony_ci			compatible = "arm,coresight-etm4x", "arm,primecell";
62262306a36Sopenharmony_ci			reg = <0 0x11840000 0 0x1000>;
62362306a36Sopenharmony_ci			cpu = <&CPU4>;
62462306a36Sopenharmony_ci			clocks = <&ext_26m>;
62562306a36Sopenharmony_ci			clock-names = "apb_pclk";
62662306a36Sopenharmony_ci
62762306a36Sopenharmony_ci			out-ports {
62862306a36Sopenharmony_ci				port {
62962306a36Sopenharmony_ci					etm4_out: endpoint {
63062306a36Sopenharmony_ci						remote-endpoint =
63162306a36Sopenharmony_ci							<&cluster1_funnel_in_port0>;
63262306a36Sopenharmony_ci					};
63362306a36Sopenharmony_ci				};
63462306a36Sopenharmony_ci			};
63562306a36Sopenharmony_ci		};
63662306a36Sopenharmony_ci
63762306a36Sopenharmony_ci		etm@11940000 {
63862306a36Sopenharmony_ci			compatible = "arm,coresight-etm4x", "arm,primecell";
63962306a36Sopenharmony_ci			reg = <0 0x11940000 0 0x1000>;
64062306a36Sopenharmony_ci			cpu = <&CPU5>;
64162306a36Sopenharmony_ci			clocks = <&ext_26m>;
64262306a36Sopenharmony_ci			clock-names = "apb_pclk";
64362306a36Sopenharmony_ci
64462306a36Sopenharmony_ci			out-ports {
64562306a36Sopenharmony_ci				port {
64662306a36Sopenharmony_ci					etm5_out: endpoint {
64762306a36Sopenharmony_ci						remote-endpoint =
64862306a36Sopenharmony_ci							<&cluster1_funnel_in_port1>;
64962306a36Sopenharmony_ci					};
65062306a36Sopenharmony_ci				};
65162306a36Sopenharmony_ci			};
65262306a36Sopenharmony_ci		};
65362306a36Sopenharmony_ci
65462306a36Sopenharmony_ci		etm@11a40000 {
65562306a36Sopenharmony_ci			compatible = "arm,coresight-etm4x", "arm,primecell";
65662306a36Sopenharmony_ci			reg = <0 0x11a40000 0 0x1000>;
65762306a36Sopenharmony_ci			cpu = <&CPU6>;
65862306a36Sopenharmony_ci			clocks = <&ext_26m>;
65962306a36Sopenharmony_ci			clock-names = "apb_pclk";
66062306a36Sopenharmony_ci
66162306a36Sopenharmony_ci			out-ports {
66262306a36Sopenharmony_ci				port {
66362306a36Sopenharmony_ci					etm6_out: endpoint {
66462306a36Sopenharmony_ci						remote-endpoint =
66562306a36Sopenharmony_ci							<&cluster1_funnel_in_port2>;
66662306a36Sopenharmony_ci					};
66762306a36Sopenharmony_ci				};
66862306a36Sopenharmony_ci			};
66962306a36Sopenharmony_ci		};
67062306a36Sopenharmony_ci
67162306a36Sopenharmony_ci		etm@11b40000 {
67262306a36Sopenharmony_ci			compatible = "arm,coresight-etm4x", "arm,primecell";
67362306a36Sopenharmony_ci			reg = <0 0x11b40000 0 0x1000>;
67462306a36Sopenharmony_ci			cpu = <&CPU7>;
67562306a36Sopenharmony_ci			clocks = <&ext_26m>;
67662306a36Sopenharmony_ci			clock-names = "apb_pclk";
67762306a36Sopenharmony_ci
67862306a36Sopenharmony_ci			out-ports {
67962306a36Sopenharmony_ci				port {
68062306a36Sopenharmony_ci					etm7_out: endpoint {
68162306a36Sopenharmony_ci						remote-endpoint =
68262306a36Sopenharmony_ci							<&cluster1_funnel_in_port3>;
68362306a36Sopenharmony_ci					};
68462306a36Sopenharmony_ci				};
68562306a36Sopenharmony_ci			};
68662306a36Sopenharmony_ci		};
68762306a36Sopenharmony_ci
68862306a36Sopenharmony_ci		gpio-keys {
68962306a36Sopenharmony_ci			compatible = "gpio-keys";
69062306a36Sopenharmony_ci
69162306a36Sopenharmony_ci			key-volumedown {
69262306a36Sopenharmony_ci				label = "Volume Down Key";
69362306a36Sopenharmony_ci				linux,code = <KEY_VOLUMEDOWN>;
69462306a36Sopenharmony_ci				gpios = <&eic_debounce 2 GPIO_ACTIVE_LOW>;
69562306a36Sopenharmony_ci				debounce-interval = <2>;
69662306a36Sopenharmony_ci				wakeup-source;
69762306a36Sopenharmony_ci			};
69862306a36Sopenharmony_ci
69962306a36Sopenharmony_ci			key-volumeup {
70062306a36Sopenharmony_ci				label = "Volume Up Key";
70162306a36Sopenharmony_ci				linux,code = <KEY_VOLUMEUP>;
70262306a36Sopenharmony_ci				gpios = <&pmic_eic 10 GPIO_ACTIVE_HIGH>;
70362306a36Sopenharmony_ci				debounce-interval = <2>;
70462306a36Sopenharmony_ci				wakeup-source;
70562306a36Sopenharmony_ci			};
70662306a36Sopenharmony_ci
70762306a36Sopenharmony_ci			key-power {
70862306a36Sopenharmony_ci				label = "Power Key";
70962306a36Sopenharmony_ci				linux,code = <KEY_POWER>;
71062306a36Sopenharmony_ci				gpios = <&pmic_eic 1 GPIO_ACTIVE_HIGH>;
71162306a36Sopenharmony_ci				debounce-interval = <2>;
71262306a36Sopenharmony_ci				wakeup-source;
71362306a36Sopenharmony_ci			};
71462306a36Sopenharmony_ci		};
71562306a36Sopenharmony_ci	};
71662306a36Sopenharmony_ci};
717