13c0e3abdSOrson Zhai/*
23c0e3abdSOrson Zhai * Spreadtrum SC9860 SoC
33c0e3abdSOrson Zhai *
43c0e3abdSOrson Zhai * Copyright (C) 2016, Spreadtrum Communications Inc.
53c0e3abdSOrson Zhai *
63c0e3abdSOrson Zhai * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
73c0e3abdSOrson Zhai */
83c0e3abdSOrson Zhai
93c0e3abdSOrson Zhai#include <dt-bindings/interrupt-controller/arm-gic.h>
101cea2c22SBaolin Wang#include <dt-bindings/input/input.h>
111cea2c22SBaolin Wang#include <dt-bindings/gpio/gpio.h>
123c0e3abdSOrson Zhai#include "whale2.dtsi"
133c0e3abdSOrson Zhai
143c0e3abdSOrson Zhai/ {
153c0e3abdSOrson Zhai	cpus {
163c0e3abdSOrson Zhai		#address-cells = <2>;
173c0e3abdSOrson Zhai		#size-cells = <0>;
183c0e3abdSOrson Zhai
193c0e3abdSOrson Zhai		cpu-map {
203c0e3abdSOrson Zhai			cluster0 {
213c0e3abdSOrson Zhai				core0 {
223c0e3abdSOrson Zhai					cpu = <&CPU0>;
233c0e3abdSOrson Zhai				};
243c0e3abdSOrson Zhai				core1 {
253c0e3abdSOrson Zhai					cpu = <&CPU1>;
263c0e3abdSOrson Zhai				};
273c0e3abdSOrson Zhai				core2 {
283c0e3abdSOrson Zhai					cpu = <&CPU2>;
293c0e3abdSOrson Zhai				};
303c0e3abdSOrson Zhai				core3 {
313c0e3abdSOrson Zhai					cpu = <&CPU3>;
323c0e3abdSOrson Zhai				};
333c0e3abdSOrson Zhai			};
343c0e3abdSOrson Zhai
353c0e3abdSOrson Zhai			cluster1 {
363c0e3abdSOrson Zhai				core0 {
373c0e3abdSOrson Zhai					cpu = <&CPU4>;
383c0e3abdSOrson Zhai				};
393c0e3abdSOrson Zhai				core1 {
403c0e3abdSOrson Zhai					cpu = <&CPU5>;
413c0e3abdSOrson Zhai				};
423c0e3abdSOrson Zhai				core2 {
433c0e3abdSOrson Zhai					cpu = <&CPU6>;
443c0e3abdSOrson Zhai				};
453c0e3abdSOrson Zhai				core3 {
463c0e3abdSOrson Zhai					cpu = <&CPU7>;
473c0e3abdSOrson Zhai				};
483c0e3abdSOrson Zhai			};
493c0e3abdSOrson Zhai		};
503c0e3abdSOrson Zhai
513c0e3abdSOrson Zhai		CPU0: cpu@530000 {
523c0e3abdSOrson Zhai			device_type = "cpu";
533c0e3abdSOrson Zhai			compatible = "arm,cortex-a53", "arm,armv8";
543c0e3abdSOrson Zhai			reg = <0x0 0x530000>;
553c0e3abdSOrson Zhai			enable-method = "psci";
563c0e3abdSOrson Zhai			cpu-idle-states = <&CORE_PD &CLUSTER_PD>;
573c0e3abdSOrson Zhai		};
583c0e3abdSOrson Zhai
593c0e3abdSOrson Zhai		CPU1: cpu@530001 {
603c0e3abdSOrson Zhai			device_type = "cpu";
613c0e3abdSOrson Zhai			compatible = "arm,cortex-a53", "arm,armv8";
623c0e3abdSOrson Zhai			reg = <0x0 0x530001>;
633c0e3abdSOrson Zhai			enable-method = "psci";
643c0e3abdSOrson Zhai			cpu-idle-states = <&CORE_PD &CLUSTER_PD>;
653c0e3abdSOrson Zhai		};
663c0e3abdSOrson Zhai
673c0e3abdSOrson Zhai		CPU2: cpu@530002 {
683c0e3abdSOrson Zhai			device_type = "cpu";
693c0e3abdSOrson Zhai			compatible = "arm,cortex-a53", "arm,armv8";
703c0e3abdSOrson Zhai			reg = <0x0 0x530002>;
713c0e3abdSOrson Zhai			enable-method = "psci";
723c0e3abdSOrson Zhai			cpu-idle-states = <&CORE_PD &CLUSTER_PD>;
733c0e3abdSOrson Zhai		};
743c0e3abdSOrson Zhai
753c0e3abdSOrson Zhai		CPU3: cpu@530003 {
763c0e3abdSOrson Zhai			device_type = "cpu";
773c0e3abdSOrson Zhai			compatible = "arm,cortex-a53", "arm,armv8";
783c0e3abdSOrson Zhai			reg = <0x0 0x530003>;
793c0e3abdSOrson Zhai			enable-method = "psci";
803c0e3abdSOrson Zhai			cpu-idle-states = <&CORE_PD &CLUSTER_PD>;
813c0e3abdSOrson Zhai		};
823c0e3abdSOrson Zhai
833c0e3abdSOrson Zhai		CPU4: cpu@530100 {
843c0e3abdSOrson Zhai			device_type = "cpu";
853c0e3abdSOrson Zhai			compatible = "arm,cortex-a53", "arm,armv8";
863c0e3abdSOrson Zhai			reg = <0x0 0x530100>;
873c0e3abdSOrson Zhai			enable-method = "psci";
883c0e3abdSOrson Zhai			cpu-idle-states = <&CORE_PD &CLUSTER_PD>;
893c0e3abdSOrson Zhai		};
903c0e3abdSOrson Zhai
913c0e3abdSOrson Zhai		CPU5: cpu@530101 {
923c0e3abdSOrson Zhai			device_type = "cpu";
933c0e3abdSOrson Zhai			compatible = "arm,cortex-a53", "arm,armv8";
943c0e3abdSOrson Zhai			reg = <0x0 0x530101>;
953c0e3abdSOrson Zhai			enable-method = "psci";
963c0e3abdSOrson Zhai			cpu-idle-states = <&CORE_PD &CLUSTER_PD>;
973c0e3abdSOrson Zhai		};
983c0e3abdSOrson Zhai
993c0e3abdSOrson Zhai		CPU6: cpu@530102 {
1003c0e3abdSOrson Zhai			device_type = "cpu";
1013c0e3abdSOrson Zhai			compatible = "arm,cortex-a53", "arm,armv8";
1023c0e3abdSOrson Zhai			reg = <0x0 0x530102>;
1033c0e3abdSOrson Zhai			enable-method = "psci";
1043c0e3abdSOrson Zhai			cpu-idle-states = <&CORE_PD &CLUSTER_PD>;
1053c0e3abdSOrson Zhai		};
1063c0e3abdSOrson Zhai
1073c0e3abdSOrson Zhai		CPU7: cpu@530103 {
1083c0e3abdSOrson Zhai			device_type = "cpu";
1093c0e3abdSOrson Zhai			compatible = "arm,cortex-a53", "arm,armv8";
1103c0e3abdSOrson Zhai			reg = <0x0 0x530103>;
1113c0e3abdSOrson Zhai			enable-method = "psci";
1123c0e3abdSOrson Zhai			cpu-idle-states = <&CORE_PD &CLUSTER_PD>;
1133c0e3abdSOrson Zhai		};
1143c0e3abdSOrson Zhai	};
1153c0e3abdSOrson Zhai
1163c0e3abdSOrson Zhai	idle-states{
117e9880240SAmit Kucheria		entry-method = "psci";
1183c0e3abdSOrson Zhai
1193c0e3abdSOrson Zhai		CORE_PD: core_pd {
1203c0e3abdSOrson Zhai			compatible = "arm,idle-state";
1213c0e3abdSOrson Zhai			entry-latency-us = <1000>;
1223c0e3abdSOrson Zhai			exit-latency-us = <700>;
1233c0e3abdSOrson Zhai			min-residency-us = <2500>;
1243c0e3abdSOrson Zhai			local-timer-stop;
1253c0e3abdSOrson Zhai			arm,psci-suspend-param = <0x00010002>;
1263c0e3abdSOrson Zhai		};
1273c0e3abdSOrson Zhai
1283c0e3abdSOrson Zhai		CLUSTER_PD: cluster_pd {
1293c0e3abdSOrson Zhai			compatible = "arm,idle-state";
1303c0e3abdSOrson Zhai			entry-latency-us = <1000>;
1313c0e3abdSOrson Zhai			exit-latency-us = <1000>;
1323c0e3abdSOrson Zhai			min-residency-us = <3000>;
1333c0e3abdSOrson Zhai			local-timer-stop;
1343c0e3abdSOrson Zhai			arm,psci-suspend-param = <0x01010003>;
1353c0e3abdSOrson Zhai		};
1363c0e3abdSOrson Zhai	};
1373c0e3abdSOrson Zhai
1383c0e3abdSOrson Zhai	gic: interrupt-controller@12001000 {
1393c0e3abdSOrson Zhai		compatible = "arm,gic-400";
1403c0e3abdSOrson Zhai		reg = <0 0x12001000 0 0x1000>,
1413c0e3abdSOrson Zhai		      <0 0x12002000 0 0x2000>,
1423c0e3abdSOrson Zhai		      <0 0x12004000 0 0x2000>,
1433c0e3abdSOrson Zhai		      <0 0x12006000 0 0x2000>;
1443c0e3abdSOrson Zhai		#interrupt-cells = <3>;
1453c0e3abdSOrson Zhai		interrupt-controller;
1463c0e3abdSOrson Zhai		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8)
1473c0e3abdSOrson Zhai					| IRQ_TYPE_LEVEL_HIGH)>;
1483c0e3abdSOrson Zhai	};
1493c0e3abdSOrson Zhai
1503c0e3abdSOrson Zhai	psci {
1513c0e3abdSOrson Zhai		compatible = "arm,psci-0.2";
1523c0e3abdSOrson Zhai		method = "smc";
1533c0e3abdSOrson Zhai	};
1543c0e3abdSOrson Zhai
1553c0e3abdSOrson Zhai	timer {
1563c0e3abdSOrson Zhai		compatible = "arm,armv8-timer";
1573c0e3abdSOrson Zhai		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8)
1583c0e3abdSOrson Zhai					 | IRQ_TYPE_LEVEL_LOW)>,
1593c0e3abdSOrson Zhai			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8)
1603c0e3abdSOrson Zhai					 | IRQ_TYPE_LEVEL_LOW)>,
1613c0e3abdSOrson Zhai			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8)
1623c0e3abdSOrson Zhai					 | IRQ_TYPE_LEVEL_LOW)>,
1633c0e3abdSOrson Zhai			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8)
1643c0e3abdSOrson Zhai					 | IRQ_TYPE_LEVEL_LOW)>;
1653c0e3abdSOrson Zhai	};
1663c0e3abdSOrson Zhai
1673c0e3abdSOrson Zhai	pmu {
1683c0e3abdSOrson Zhai		compatible = "arm,cortex-a53-pmu", "arm,armv8-pmuv3";
1693c0e3abdSOrson Zhai		interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
1703c0e3abdSOrson Zhai			     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
1713c0e3abdSOrson Zhai			     <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
1723c0e3abdSOrson Zhai			     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
1733c0e3abdSOrson Zhai			     <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
1743c0e3abdSOrson Zhai			     <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
1753c0e3abdSOrson Zhai			     <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>,
1763c0e3abdSOrson Zhai			     <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
1773c0e3abdSOrson Zhai		interrupt-affinity = <&CPU0>,
1783c0e3abdSOrson Zhai				     <&CPU1>,
1793c0e3abdSOrson Zhai				     <&CPU2>,
1803c0e3abdSOrson Zhai				     <&CPU3>,
1813c0e3abdSOrson Zhai				     <&CPU4>,
1823c0e3abdSOrson Zhai				     <&CPU5>,
1833c0e3abdSOrson Zhai				     <&CPU6>,
1843c0e3abdSOrson Zhai				     <&CPU7>;
1853c0e3abdSOrson Zhai	};
1863c0e3abdSOrson Zhai
1873c0e3abdSOrson Zhai	soc {
18822f37a24SChunyan Zhang		pmu_gate: pmu-gate {
18922f37a24SChunyan Zhang			compatible = "sprd,sc9860-pmu-gate";
19022f37a24SChunyan Zhang			sprd,syscon = <&pmu_regs>; /* 0x402b0000 */
19122f37a24SChunyan Zhang			clocks = <&ext_26m>;
19222f37a24SChunyan Zhang			#clock-cells = <1>;
19322f37a24SChunyan Zhang		};
19422f37a24SChunyan Zhang
19522f37a24SChunyan Zhang		pll: pll {
19622f37a24SChunyan Zhang			compatible = "sprd,sc9860-pll";
19722f37a24SChunyan Zhang			sprd,syscon = <&ana_regs>; /* 0x40400000 */
19822f37a24SChunyan Zhang			clocks = <&pmu_gate 0>;
19922f37a24SChunyan Zhang			#clock-cells = <1>;
20022f37a24SChunyan Zhang		};
20122f37a24SChunyan Zhang
20222f37a24SChunyan Zhang		ap_clk: clock-controller@20000000 {
20322f37a24SChunyan Zhang			compatible = "sprd,sc9860-ap-clk";
20422f37a24SChunyan Zhang			reg = <0 0x20000000 0 0x400>;
20522f37a24SChunyan Zhang			clocks = <&ext_26m>, <&pll 0>,
20622f37a24SChunyan Zhang				 <&pmu_gate 0>;
20722f37a24SChunyan Zhang			#clock-cells = <1>;
20822f37a24SChunyan Zhang		};
20922f37a24SChunyan Zhang
21022f37a24SChunyan Zhang		aon_prediv: aon-prediv {
21122f37a24SChunyan Zhang			compatible = "sprd,sc9860-aon-prediv";
21222f37a24SChunyan Zhang			reg = <0 0x402d0000 0 0x400>;
21322f37a24SChunyan Zhang			clocks = <&ext_26m>, <&pll 0>,
21422f37a24SChunyan Zhang				 <&pmu_gate 0>;
21522f37a24SChunyan Zhang			#clock-cells = <1>;
21622f37a24SChunyan Zhang		};
21722f37a24SChunyan Zhang
21822f37a24SChunyan Zhang		apahb_gate: apahb-gate {
21922f37a24SChunyan Zhang			compatible = "sprd,sc9860-apahb-gate";
22022f37a24SChunyan Zhang			sprd,syscon = <&ap_ahb_regs>; /* 0x20210000 */
22122f37a24SChunyan Zhang			clocks = <&aon_prediv 0>;
22222f37a24SChunyan Zhang			#clock-cells = <1>;
22322f37a24SChunyan Zhang		};
22422f37a24SChunyan Zhang
22522f37a24SChunyan Zhang		aon_gate: aon-gate {
22622f37a24SChunyan Zhang			compatible = "sprd,sc9860-aon-gate";
22722f37a24SChunyan Zhang			sprd,syscon = <&aon_regs>; /* 0x402e0000 */
22822f37a24SChunyan Zhang			clocks = <&aon_prediv 0>;
22922f37a24SChunyan Zhang			#clock-cells = <1>;
23022f37a24SChunyan Zhang		};
23122f37a24SChunyan Zhang
23222f37a24SChunyan Zhang		aonsecure_clk: clock-controller@40880000 {
23322f37a24SChunyan Zhang			compatible = "sprd,sc9860-aonsecure-clk";
23422f37a24SChunyan Zhang			reg = <0 0x40880000 0 0x400>;
23522f37a24SChunyan Zhang			clocks = <&ext_26m>, <&pll 0>;
23622f37a24SChunyan Zhang			#clock-cells = <1>;
23722f37a24SChunyan Zhang		};
23822f37a24SChunyan Zhang
23922f37a24SChunyan Zhang		agcp_gate: agcp-gate {
24022f37a24SChunyan Zhang			compatible = "sprd,sc9860-agcp-gate";
24122f37a24SChunyan Zhang			sprd,syscon = <&agcp_regs>; /* 0x415e0000 */
24222f37a24SChunyan Zhang			clocks = <&aon_prediv 0>;
24322f37a24SChunyan Zhang			#clock-cells = <1>;
24422f37a24SChunyan Zhang		};
24522f37a24SChunyan Zhang
24622f37a24SChunyan Zhang		gpu_clk: clock-controller@60200000 {
24722f37a24SChunyan Zhang			compatible = "sprd,sc9860-gpu-clk";
24822f37a24SChunyan Zhang			reg = <0 0x60200000 0 0x400>;
24922f37a24SChunyan Zhang			clocks = <&pll 0>;
25022f37a24SChunyan Zhang			#clock-cells = <1>;
25122f37a24SChunyan Zhang		};
25222f37a24SChunyan Zhang
25322f37a24SChunyan Zhang		vsp_clk: clock-controller@61000000 {
25422f37a24SChunyan Zhang			compatible = "sprd,sc9860-vsp-clk";
25522f37a24SChunyan Zhang			reg = <0 0x61000000 0 0x400>;
25622f37a24SChunyan Zhang			clocks = <&ext_26m>, <&pll 0>;
25722f37a24SChunyan Zhang			#clock-cells = <1>;
25822f37a24SChunyan Zhang		};
25922f37a24SChunyan Zhang
26022f37a24SChunyan Zhang		vsp_gate: vsp-gate {
26122f37a24SChunyan Zhang			compatible = "sprd,sc9860-vsp-gate";
26222f37a24SChunyan Zhang			sprd,syscon = <&vsp_regs>; /* 0x61100000 */
26322f37a24SChunyan Zhang			clocks = <&vsp_clk 0>;
26422f37a24SChunyan Zhang			#clock-cells = <1>;
26522f37a24SChunyan Zhang		};
26622f37a24SChunyan Zhang
26722f37a24SChunyan Zhang		cam_clk: clock-controller@62000000 {
26822f37a24SChunyan Zhang			compatible = "sprd,sc9860-cam-clk";
26922f37a24SChunyan Zhang			reg = <0 0x62000000 0 0x4000>;
27022f37a24SChunyan Zhang			clocks = <&ext_26m>, <&pll 0>;
27122f37a24SChunyan Zhang			#clock-cells = <1>;
27222f37a24SChunyan Zhang		};
27322f37a24SChunyan Zhang
27422f37a24SChunyan Zhang		cam_gate: cam-gate {
27522f37a24SChunyan Zhang			compatible = "sprd,sc9860-cam-gate";
27622f37a24SChunyan Zhang			sprd,syscon = <&cam_regs>; /* 0x62100000 */
27722f37a24SChunyan Zhang			clocks = <&cam_clk 0>;
27822f37a24SChunyan Zhang			#clock-cells = <1>;
27922f37a24SChunyan Zhang		};
28022f37a24SChunyan Zhang
28122f37a24SChunyan Zhang		disp_clk: clock-controller@63000000 {
28222f37a24SChunyan Zhang			compatible = "sprd,sc9860-disp-clk";
28322f37a24SChunyan Zhang			reg = <0 0x63000000 0 0x400>;
28422f37a24SChunyan Zhang			clocks = <&ext_26m>, <&pll 0>;
28522f37a24SChunyan Zhang			#clock-cells = <1>;
28622f37a24SChunyan Zhang		};
28722f37a24SChunyan Zhang
28822f37a24SChunyan Zhang		disp_gate: disp-gate {
28922f37a24SChunyan Zhang			compatible = "sprd,sc9860-disp-gate";
29022f37a24SChunyan Zhang			sprd,syscon = <&disp_regs>; /* 0x63100000 */
29122f37a24SChunyan Zhang			clocks = <&disp_clk 0>;
29222f37a24SChunyan Zhang			#clock-cells = <1>;
29322f37a24SChunyan Zhang		};
29422f37a24SChunyan Zhang
29522f37a24SChunyan Zhang		apapb_gate: apapb-gate {
29622f37a24SChunyan Zhang			compatible = "sprd,sc9860-apapb-gate";
29722f37a24SChunyan Zhang			sprd,syscon = <&ap_apb_regs>; /* 0x70b00000 */
29822f37a24SChunyan Zhang			clocks = <&ap_clk 0>;
29922f37a24SChunyan Zhang			#clock-cells = <1>;
30022f37a24SChunyan Zhang		};
30122f37a24SChunyan Zhang
3023c0e3abdSOrson Zhai		funnel@10001000 { /* SoC Funnel */
3033c0e3abdSOrson Zhai			compatible = "arm,coresight-funnel", "arm,primecell";
3043c0e3abdSOrson Zhai			reg = <0 0x10001000 0 0x1000>;
3053c0e3abdSOrson Zhai			clocks = <&ext_26m>;
3063c0e3abdSOrson Zhai			clock-names = "apb_pclk";
3073c0e3abdSOrson Zhai			ports {
3083c0e3abdSOrson Zhai				#address-cells = <1>;
3093c0e3abdSOrson Zhai				#size-cells = <0>;
3103c0e3abdSOrson Zhai
3113c0e3abdSOrson Zhai				port@0 {
3123c0e3abdSOrson Zhai					reg = <0>;
3133c0e3abdSOrson Zhai					soc_funnel_out_port: endpoint {
3143c0e3abdSOrson Zhai						remote-endpoint = <&etb_in>;
3153c0e3abdSOrson Zhai					};
3163c0e3abdSOrson Zhai				};
3173c0e3abdSOrson Zhai
3183c0e3abdSOrson Zhai				port@1 {
3193c0e3abdSOrson Zhai					reg = <0>;
3203c0e3abdSOrson Zhai					soc_funnel_in_port0: endpoint {
3213c0e3abdSOrson Zhai						slave-mode;
3223c0e3abdSOrson Zhai						remote-endpoint =
3233c0e3abdSOrson Zhai						<&main_funnel_out_port>;
3243c0e3abdSOrson Zhai					};
3253c0e3abdSOrson Zhai				};
3263c0e3abdSOrson Zhai
3273c0e3abdSOrson Zhai				port@2 {
3283c0e3abdSOrson Zhai					reg = <4>;
3293c0e3abdSOrson Zhai					soc_funnel_in_port1: endpoint {
3303c0e3abdSOrson Zhai						slave-mode;
331e0c66d34SRob Herring						remote-endpoint =
3323c0e3abdSOrson Zhai							<&stm_out_port>;
3333c0e3abdSOrson Zhai					};
3343c0e3abdSOrson Zhai				};
3353c0e3abdSOrson Zhai			};
3363c0e3abdSOrson Zhai		};
3373c0e3abdSOrson Zhai
3383c0e3abdSOrson Zhai		etb@10003000 {
3393c0e3abdSOrson Zhai			compatible = "arm,coresight-tmc", "arm,primecell";
3403c0e3abdSOrson Zhai			reg = <0 0x10003000 0 0x1000>;
3413c0e3abdSOrson Zhai			clocks = <&ext_26m>;
3423c0e3abdSOrson Zhai			clock-names = "apb_pclk";
3433c0e3abdSOrson Zhai			port {
3443c0e3abdSOrson Zhai				etb_in: endpoint {
3453c0e3abdSOrson Zhai					slave-mode;
3463c0e3abdSOrson Zhai					remote-endpoint =
3473c0e3abdSOrson Zhai						<&soc_funnel_out_port>;
3483c0e3abdSOrson Zhai				};
3493c0e3abdSOrson Zhai			};
3503c0e3abdSOrson Zhai		};
3513c0e3abdSOrson Zhai
3523c0e3abdSOrson Zhai		stm@10006000 {
3533c0e3abdSOrson Zhai			compatible = "arm,coresight-stm", "arm,primecell";
3543c0e3abdSOrson Zhai			reg = <0 0x10006000 0 0x1000>,
3553c0e3abdSOrson Zhai			      <0 0x01000000 0 0x180000>;
3563c0e3abdSOrson Zhai			reg-names = "stm-base", "stm-stimulus-base";
3573c0e3abdSOrson Zhai			clocks = <&ext_26m>;
3583c0e3abdSOrson Zhai			clock-names = "apb_pclk";
3593c0e3abdSOrson Zhai			port {
3603c0e3abdSOrson Zhai				stm_out_port: endpoint {
3613c0e3abdSOrson Zhai					remote-endpoint =
3623c0e3abdSOrson Zhai						<&soc_funnel_in_port1>;
3633c0e3abdSOrson Zhai				};
3643c0e3abdSOrson Zhai			};
3653c0e3abdSOrson Zhai		};
3663c0e3abdSOrson Zhai
3673c0e3abdSOrson Zhai		funnel@11001000 { /* Cluster0 Funnel */
3683c0e3abdSOrson Zhai			compatible = "arm,coresight-funnel", "arm,primecell";
3693c0e3abdSOrson Zhai			reg = <0 0x11001000 0 0x1000>;
3703c0e3abdSOrson Zhai			clocks = <&ext_26m>;
3713c0e3abdSOrson Zhai			clock-names = "apb_pclk";
3723c0e3abdSOrson Zhai			ports {
3733c0e3abdSOrson Zhai				#address-cells = <1>;
3743c0e3abdSOrson Zhai				#size-cells = <0>;
3753c0e3abdSOrson Zhai
3763c0e3abdSOrson Zhai				port@0 {
3773c0e3abdSOrson Zhai					reg = <0>;
3783c0e3abdSOrson Zhai					cluster0_funnel_out_port: endpoint {
3793c0e3abdSOrson Zhai						remote-endpoint =
3803c0e3abdSOrson Zhai							<&cluster0_etf_in>;
3813c0e3abdSOrson Zhai					};
3823c0e3abdSOrson Zhai				};
3833c0e3abdSOrson Zhai
3843c0e3abdSOrson Zhai				port@1 {
3853c0e3abdSOrson Zhai					reg = <0>;
3863c0e3abdSOrson Zhai					cluster0_funnel_in_port0: endpoint {
3873c0e3abdSOrson Zhai						slave-mode;
3883c0e3abdSOrson Zhai						remote-endpoint = <&etm0_out>;
3893c0e3abdSOrson Zhai					};
3903c0e3abdSOrson Zhai				};
3913c0e3abdSOrson Zhai
3923c0e3abdSOrson Zhai				port@2 {
3933c0e3abdSOrson Zhai					reg = <1>;
3943c0e3abdSOrson Zhai					cluster0_funnel_in_port1: endpoint {
3953c0e3abdSOrson Zhai						slave-mode;
3963c0e3abdSOrson Zhai						remote-endpoint = <&etm1_out>;
3973c0e3abdSOrson Zhai					};
3983c0e3abdSOrson Zhai				};
3993c0e3abdSOrson Zhai
4003c0e3abdSOrson Zhai				port@3 {
4013c0e3abdSOrson Zhai					reg = <2>;
4023c0e3abdSOrson Zhai					cluster0_funnel_in_port2: endpoint {
4033c0e3abdSOrson Zhai						slave-mode;
4043c0e3abdSOrson Zhai						remote-endpoint = <&etm2_out>;
4053c0e3abdSOrson Zhai					};
4063c0e3abdSOrson Zhai				};
4073c0e3abdSOrson Zhai
4083c0e3abdSOrson Zhai				port@4 {
4093c0e3abdSOrson Zhai					reg = <4>;
4103c0e3abdSOrson Zhai					cluster0_funnel_in_port3: endpoint {
4113c0e3abdSOrson Zhai						slave-mode;
4123c0e3abdSOrson Zhai						remote-endpoint = <&etm3_out>;
4133c0e3abdSOrson Zhai					};
4143c0e3abdSOrson Zhai				};
4153c0e3abdSOrson Zhai			};
4163c0e3abdSOrson Zhai		};
4173c0e3abdSOrson Zhai
4183c0e3abdSOrson Zhai		funnel@11002000 { /* Cluster1 Funnel */
4193c0e3abdSOrson Zhai			compatible = "arm,coresight-funnel", "arm,primecell";
4203c0e3abdSOrson Zhai			reg = <0 0x11002000 0 0x1000>;
4213c0e3abdSOrson Zhai			clocks = <&ext_26m>;
4223c0e3abdSOrson Zhai			clock-names = "apb_pclk";
4233c0e3abdSOrson Zhai			ports {
4243c0e3abdSOrson Zhai				#address-cells = <1>;
4253c0e3abdSOrson Zhai				#size-cells = <0>;
4263c0e3abdSOrson Zhai
4273c0e3abdSOrson Zhai				port@0 {
4283c0e3abdSOrson Zhai					reg = <0>;
4293c0e3abdSOrson Zhai					cluster1_funnel_out_port: endpoint {
4303c0e3abdSOrson Zhai						remote-endpoint =
4313c0e3abdSOrson Zhai							<&cluster1_etf_in>;
4323c0e3abdSOrson Zhai					};
4333c0e3abdSOrson Zhai				};
4343c0e3abdSOrson Zhai
4353c0e3abdSOrson Zhai				port@1 {
4363c0e3abdSOrson Zhai					reg = <0>;
4373c0e3abdSOrson Zhai					cluster1_funnel_in_port0: endpoint {
4383c0e3abdSOrson Zhai						slave-mode;
4393c0e3abdSOrson Zhai						remote-endpoint = <&etm4_out>;
4403c0e3abdSOrson Zhai					};
4413c0e3abdSOrson Zhai				};
4423c0e3abdSOrson Zhai
4433c0e3abdSOrson Zhai				port@2 {
4443c0e3abdSOrson Zhai					reg = <1>;
4453c0e3abdSOrson Zhai					cluster1_funnel_in_port1: endpoint {
4463c0e3abdSOrson Zhai						slave-mode;
4473c0e3abdSOrson Zhai						remote-endpoint = <&etm5_out>;
4483c0e3abdSOrson Zhai					};
4493c0e3abdSOrson Zhai				};
4503c0e3abdSOrson Zhai
4513c0e3abdSOrson Zhai				port@3 {
4523c0e3abdSOrson Zhai					reg = <2>;
4533c0e3abdSOrson Zhai					cluster1_funnel_in_port2: endpoint {
4543c0e3abdSOrson Zhai						slave-mode;
4553c0e3abdSOrson Zhai						remote-endpoint = <&etm6_out>;
4563c0e3abdSOrson Zhai					};
4573c0e3abdSOrson Zhai				};
4583c0e3abdSOrson Zhai
4593c0e3abdSOrson Zhai				port@4 {
4603c0e3abdSOrson Zhai					reg = <3>;
4613c0e3abdSOrson Zhai					cluster1_funnel_in_port3: endpoint {
4623c0e3abdSOrson Zhai						slave-mode;
4633c0e3abdSOrson Zhai						remote-endpoint = <&etm7_out>;
4643c0e3abdSOrson Zhai					};
4653c0e3abdSOrson Zhai				};
4663c0e3abdSOrson Zhai			};
4673c0e3abdSOrson Zhai		};
4683c0e3abdSOrson Zhai
4693c0e3abdSOrson Zhai		etf@11003000 { /*  ETF on Cluster0 */
4703c0e3abdSOrson Zhai			compatible = "arm,coresight-tmc", "arm,primecell";
4713c0e3abdSOrson Zhai			reg = <0 0x11003000 0 0x1000>;
4723c0e3abdSOrson Zhai			clocks = <&ext_26m>;
4733c0e3abdSOrson Zhai			clock-names = "apb_pclk";
4743c0e3abdSOrson Zhai
4753c0e3abdSOrson Zhai			ports {
4763c0e3abdSOrson Zhai				#address-cells = <1>;
4773c0e3abdSOrson Zhai				#size-cells = <0>;
4783c0e3abdSOrson Zhai
4793c0e3abdSOrson Zhai				port@0 {
4803c0e3abdSOrson Zhai					reg = <0>;
4813c0e3abdSOrson Zhai					cluster0_etf_out: endpoint {
4823c0e3abdSOrson Zhai						remote-endpoint =
4833c0e3abdSOrson Zhai						<&main_funnel_in_port0>;
4843c0e3abdSOrson Zhai					};
4853c0e3abdSOrson Zhai				};
4863c0e3abdSOrson Zhai
4873c0e3abdSOrson Zhai				port@1 {
4883c0e3abdSOrson Zhai					reg = <0>;
4893c0e3abdSOrson Zhai					cluster0_etf_in: endpoint {
4903c0e3abdSOrson Zhai						slave-mode;
4913c0e3abdSOrson Zhai						remote-endpoint =
4923c0e3abdSOrson Zhai						<&cluster0_funnel_out_port>;
4933c0e3abdSOrson Zhai					};
4943c0e3abdSOrson Zhai				};
4953c0e3abdSOrson Zhai			};
4963c0e3abdSOrson Zhai		};
4973c0e3abdSOrson Zhai
4983c0e3abdSOrson Zhai		etf@11004000 { /* ETF on Cluster1 */
4993c0e3abdSOrson Zhai			compatible = "arm,coresight-tmc", "arm,primecell";
5003c0e3abdSOrson Zhai			reg = <0 0x11004000 0 0x1000>;
5013c0e3abdSOrson Zhai			clocks = <&ext_26m>;
5023c0e3abdSOrson Zhai			clock-names = "apb_pclk";
5033c0e3abdSOrson Zhai
5043c0e3abdSOrson Zhai			ports {
5053c0e3abdSOrson Zhai				#address-cells = <1>;
5063c0e3abdSOrson Zhai				#size-cells = <0>;
5073c0e3abdSOrson Zhai
5083c0e3abdSOrson Zhai				port@0 {
5093c0e3abdSOrson Zhai					reg = <0>;
5103c0e3abdSOrson Zhai					cluster1_etf_out: endpoint {
5113c0e3abdSOrson Zhai						remote-endpoint =
5123c0e3abdSOrson Zhai						<&main_funnel_in_port1>;
5133c0e3abdSOrson Zhai					};
5143c0e3abdSOrson Zhai				};
5153c0e3abdSOrson Zhai
5163c0e3abdSOrson Zhai				port@1 {
5173c0e3abdSOrson Zhai					reg = <0>;
5183c0e3abdSOrson Zhai					cluster1_etf_in: endpoint {
5193c0e3abdSOrson Zhai						slave-mode;
5203c0e3abdSOrson Zhai						remote-endpoint =
5213c0e3abdSOrson Zhai						<&cluster1_funnel_out_port>;
5223c0e3abdSOrson Zhai					};
5233c0e3abdSOrson Zhai				};
5243c0e3abdSOrson Zhai			};
5253c0e3abdSOrson Zhai		};
5263c0e3abdSOrson Zhai
5273c0e3abdSOrson Zhai		funnel@11005000 { /* Main Funnel */
5283c0e3abdSOrson Zhai			compatible = "arm,coresight-funnel", "arm,primecell";
5293c0e3abdSOrson Zhai			reg = <0 0x11005000 0 0x1000>;
5303c0e3abdSOrson Zhai			clocks = <&ext_26m>;
5313c0e3abdSOrson Zhai			clock-names = "apb_pclk";
5323c0e3abdSOrson Zhai
5333c0e3abdSOrson Zhai			ports {
5343c0e3abdSOrson Zhai				#address-cells = <1>;
5353c0e3abdSOrson Zhai				#size-cells = <0>;
5363c0e3abdSOrson Zhai
5373c0e3abdSOrson Zhai				port@0 {
5383c0e3abdSOrson Zhai					reg = <0>;
5393c0e3abdSOrson Zhai					main_funnel_out_port: endpoint {
5403c0e3abdSOrson Zhai						remote-endpoint =
5413c0e3abdSOrson Zhai							<&soc_funnel_in_port0>;
5423c0e3abdSOrson Zhai					};
5433c0e3abdSOrson Zhai				};
5443c0e3abdSOrson Zhai
5453c0e3abdSOrson Zhai				port@1 {
5463c0e3abdSOrson Zhai					reg = <0>;
5473c0e3abdSOrson Zhai					main_funnel_in_port0: endpoint {
5483c0e3abdSOrson Zhai						slave-mode;
5493c0e3abdSOrson Zhai						remote-endpoint =
5503c0e3abdSOrson Zhai							<&cluster0_etf_out>;
5513c0e3abdSOrson Zhai					};
5523c0e3abdSOrson Zhai				};
5533c0e3abdSOrson Zhai
5543c0e3abdSOrson Zhai				port@2 {
5553c0e3abdSOrson Zhai					reg = <1>;
5563c0e3abdSOrson Zhai					main_funnel_in_port1: endpoint {
5573c0e3abdSOrson Zhai						slave-mode;
5583c0e3abdSOrson Zhai						remote-endpoint =
5593c0e3abdSOrson Zhai							<&cluster1_etf_out>;
5603c0e3abdSOrson Zhai					};
5613c0e3abdSOrson Zhai				};
5623c0e3abdSOrson Zhai			};
5633c0e3abdSOrson Zhai		};
5643c0e3abdSOrson Zhai
5653c0e3abdSOrson Zhai		etm@11440000 {
5663c0e3abdSOrson Zhai			compatible = "arm,coresight-etm4x", "arm,primecell";
5673c0e3abdSOrson Zhai			reg = <0 0x11440000 0 0x1000>;
5683c0e3abdSOrson Zhai			cpu = <&CPU0>;
5693c0e3abdSOrson Zhai			clocks = <&ext_26m>;
5703c0e3abdSOrson Zhai			clock-names = "apb_pclk";
5713c0e3abdSOrson Zhai
5723c0e3abdSOrson Zhai			port {
5733c0e3abdSOrson Zhai				etm0_out: endpoint {
5743c0e3abdSOrson Zhai					remote-endpoint =
5753c0e3abdSOrson Zhai						<&cluster0_funnel_in_port0>;
5763c0e3abdSOrson Zhai				};
5773c0e3abdSOrson Zhai			};
5783c0e3abdSOrson Zhai		};
5793c0e3abdSOrson Zhai
5803c0e3abdSOrson Zhai		etm@11540000 {
5813c0e3abdSOrson Zhai			compatible = "arm,coresight-etm4x", "arm,primecell";
5823c0e3abdSOrson Zhai			reg = <0 0x11540000 0 0x1000>;
5833c0e3abdSOrson Zhai			cpu = <&CPU1>;
5843c0e3abdSOrson Zhai			clocks = <&ext_26m>;
5853c0e3abdSOrson Zhai			clock-names = "apb_pclk";
5863c0e3abdSOrson Zhai
5873c0e3abdSOrson Zhai			port {
5883c0e3abdSOrson Zhai				etm1_out: endpoint {
5893c0e3abdSOrson Zhai					remote-endpoint =
5903c0e3abdSOrson Zhai						<&cluster0_funnel_in_port1>;
5913c0e3abdSOrson Zhai				};
5923c0e3abdSOrson Zhai			};
5933c0e3abdSOrson Zhai		};
5943c0e3abdSOrson Zhai
5953c0e3abdSOrson Zhai		etm@11640000 {
5963c0e3abdSOrson Zhai			compatible = "arm,coresight-etm4x", "arm,primecell";
5973c0e3abdSOrson Zhai			reg = <0 0x11640000 0 0x1000>;
5983c0e3abdSOrson Zhai			cpu = <&CPU2>;
5993c0e3abdSOrson Zhai			clocks = <&ext_26m>;
6003c0e3abdSOrson Zhai			clock-names = "apb_pclk";
6013c0e3abdSOrson Zhai
6023c0e3abdSOrson Zhai			port {
6033c0e3abdSOrson Zhai				etm2_out: endpoint {
6043c0e3abdSOrson Zhai					remote-endpoint =
6053c0e3abdSOrson Zhai						<&cluster0_funnel_in_port2>;
6063c0e3abdSOrson Zhai				};
6073c0e3abdSOrson Zhai			};
6083c0e3abdSOrson Zhai		};
6093c0e3abdSOrson Zhai
6103c0e3abdSOrson Zhai		etm@11740000 {
6113c0e3abdSOrson Zhai			compatible = "arm,coresight-etm4x", "arm,primecell";
6123c0e3abdSOrson Zhai			reg = <0 0x11740000 0 0x1000>;
6133c0e3abdSOrson Zhai			cpu = <&CPU3>;
6143c0e3abdSOrson Zhai			clocks = <&ext_26m>;
6153c0e3abdSOrson Zhai			clock-names = "apb_pclk";
6163c0e3abdSOrson Zhai
6173c0e3abdSOrson Zhai			port {
6183c0e3abdSOrson Zhai				etm3_out: endpoint {
6193c0e3abdSOrson Zhai					remote-endpoint =
6203c0e3abdSOrson Zhai						<&cluster0_funnel_in_port3>;
6213c0e3abdSOrson Zhai				};
6223c0e3abdSOrson Zhai			};
6233c0e3abdSOrson Zhai		};
6243c0e3abdSOrson Zhai
6253c0e3abdSOrson Zhai		etm@11840000 {
6263c0e3abdSOrson Zhai			compatible = "arm,coresight-etm4x", "arm,primecell";
6273c0e3abdSOrson Zhai			reg = <0 0x11840000 0 0x1000>;
6283c0e3abdSOrson Zhai			cpu = <&CPU4>;
6293c0e3abdSOrson Zhai			clocks = <&ext_26m>;
6303c0e3abdSOrson Zhai			clock-names = "apb_pclk";
6313c0e3abdSOrson Zhai
6323c0e3abdSOrson Zhai			port {
6333c0e3abdSOrson Zhai				etm4_out: endpoint {
6343c0e3abdSOrson Zhai					remote-endpoint =
6353c0e3abdSOrson Zhai						<&cluster1_funnel_in_port0>;
6363c0e3abdSOrson Zhai				};
6373c0e3abdSOrson Zhai			};
6383c0e3abdSOrson Zhai		};
6393c0e3abdSOrson Zhai
6403c0e3abdSOrson Zhai		etm@11940000 {
6413c0e3abdSOrson Zhai			compatible = "arm,coresight-etm4x", "arm,primecell";
6423c0e3abdSOrson Zhai			reg = <0 0x11940000 0 0x1000>;
6433c0e3abdSOrson Zhai			cpu = <&CPU5>;
6443c0e3abdSOrson Zhai			clocks = <&ext_26m>;
6453c0e3abdSOrson Zhai			clock-names = "apb_pclk";
6463c0e3abdSOrson Zhai
6473c0e3abdSOrson Zhai			port {
6483c0e3abdSOrson Zhai				etm5_out: endpoint {
6493c0e3abdSOrson Zhai					remote-endpoint =
6503c0e3abdSOrson Zhai						<&cluster1_funnel_in_port1>;
6513c0e3abdSOrson Zhai				};
6523c0e3abdSOrson Zhai			};
6533c0e3abdSOrson Zhai		};
6543c0e3abdSOrson Zhai
6553c0e3abdSOrson Zhai		etm@11a40000 {
6563c0e3abdSOrson Zhai			compatible = "arm,coresight-etm4x", "arm,primecell";
6573c0e3abdSOrson Zhai			reg = <0 0x11a40000 0 0x1000>;
6583c0e3abdSOrson Zhai			cpu = <&CPU6>;
6593c0e3abdSOrson Zhai			clocks = <&ext_26m>;
6603c0e3abdSOrson Zhai			clock-names = "apb_pclk";
6613c0e3abdSOrson Zhai
6623c0e3abdSOrson Zhai			port {
6633c0e3abdSOrson Zhai				etm6_out: endpoint {
6643c0e3abdSOrson Zhai					remote-endpoint =
6653c0e3abdSOrson Zhai						<&cluster1_funnel_in_port2>;
6663c0e3abdSOrson Zhai				};
6673c0e3abdSOrson Zhai			};
6683c0e3abdSOrson Zhai		};
6693c0e3abdSOrson Zhai
6703c0e3abdSOrson Zhai		etm@11b40000 {
6713c0e3abdSOrson Zhai			compatible = "arm,coresight-etm4x", "arm,primecell";
6723c0e3abdSOrson Zhai			reg = <0 0x11b40000 0 0x1000>;
6733c0e3abdSOrson Zhai			cpu = <&CPU7>;
6743c0e3abdSOrson Zhai			clocks = <&ext_26m>;
6753c0e3abdSOrson Zhai			clock-names = "apb_pclk";
6763c0e3abdSOrson Zhai
6773c0e3abdSOrson Zhai			port {
6783c0e3abdSOrson Zhai				etm7_out: endpoint {
6793c0e3abdSOrson Zhai					remote-endpoint =
6803c0e3abdSOrson Zhai						<&cluster1_funnel_in_port3>;
6813c0e3abdSOrson Zhai				};
6823c0e3abdSOrson Zhai			};
6833c0e3abdSOrson Zhai		};
6841cea2c22SBaolin Wang
6851cea2c22SBaolin Wang		gpio-keys {
6861cea2c22SBaolin Wang			compatible = "gpio-keys";
6871cea2c22SBaolin Wang
6881cea2c22SBaolin Wang			key-volumedown {
6891cea2c22SBaolin Wang				label = "Volume Down Key";
6901cea2c22SBaolin Wang				linux,code = <KEY_VOLUMEDOWN>;
6911cea2c22SBaolin Wang				gpios = <&eic_debounce 2 GPIO_ACTIVE_LOW>;
6921cea2c22SBaolin Wang				debounce-interval = <2>;
6931cea2c22SBaolin Wang				wakeup-source;
6941cea2c22SBaolin Wang			};
6951cea2c22SBaolin Wang
6961cea2c22SBaolin Wang			key-volumeup {
6971cea2c22SBaolin Wang				label = "Volume Up Key";
6981cea2c22SBaolin Wang				linux,code = <KEY_VOLUMEUP>;
6991cea2c22SBaolin Wang				gpios = <&pmic_eic 10 GPIO_ACTIVE_HIGH>;
7001cea2c22SBaolin Wang				debounce-interval = <2>;
7011cea2c22SBaolin Wang				wakeup-source;
7021cea2c22SBaolin Wang			};
7031cea2c22SBaolin Wang
7041cea2c22SBaolin Wang			key-power {
7051cea2c22SBaolin Wang				label = "Power Key";
7061cea2c22SBaolin Wang				linux,code = <KEY_POWER>;
7071cea2c22SBaolin Wang				gpios = <&pmic_eic 1 GPIO_ACTIVE_HIGH>;
7081cea2c22SBaolin Wang				debounce-interval = <2>;
7091cea2c22SBaolin Wang				wakeup-source;
7101cea2c22SBaolin Wang			};
7111cea2c22SBaolin Wang		};
7123c0e3abdSOrson Zhai	};
7133c0e3abdSOrson Zhai};
714