xref: /openbmc/linux/arch/arm64/boot/dts/sprd/sc9836.dtsi (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1c46388a5SZhizhou Zhang/*
2c46388a5SZhizhou Zhang * Spreadtrum SC9836 SoC DTS file
3c46388a5SZhizhou Zhang *
4c46388a5SZhizhou Zhang * Copyright (C) 2014, Spreadtrum Communications Inc.
5c46388a5SZhizhou Zhang *
6c46388a5SZhizhou Zhang * This file is licensed under a dual GPLv2 or X11 license.
7c46388a5SZhizhou Zhang */
8c46388a5SZhizhou Zhang
9c46388a5SZhizhou Zhang#include "sharkl64.dtsi"
10c46388a5SZhizhou Zhang#include <dt-bindings/interrupt-controller/arm-gic.h>
11c46388a5SZhizhou Zhang
12c46388a5SZhizhou Zhang/ {
13c46388a5SZhizhou Zhang	compatible = "sprd,sc9836";
14c46388a5SZhizhou Zhang
15c46388a5SZhizhou Zhang	cpus {
16c46388a5SZhizhou Zhang		#address-cells = <2>;
17c46388a5SZhizhou Zhang		#size-cells = <0>;
18c46388a5SZhizhou Zhang
19fe467ad1SChunyan Zhang		cpu0: cpu@0 {
20c46388a5SZhizhou Zhang			device_type = "cpu";
2131af04cdSRob Herring			compatible = "arm,cortex-a53";
22c46388a5SZhizhou Zhang			reg = <0x0 0x0>;
23c46388a5SZhizhou Zhang			enable-method = "psci";
24c46388a5SZhizhou Zhang		};
25c46388a5SZhizhou Zhang
26fe467ad1SChunyan Zhang		cpu1: cpu@1 {
27c46388a5SZhizhou Zhang			device_type = "cpu";
2831af04cdSRob Herring			compatible = "arm,cortex-a53";
29c46388a5SZhizhou Zhang			reg = <0x0 0x1>;
30c46388a5SZhizhou Zhang			enable-method = "psci";
31c46388a5SZhizhou Zhang		};
32c46388a5SZhizhou Zhang
33fe467ad1SChunyan Zhang		cpu2: cpu@2 {
34c46388a5SZhizhou Zhang			device_type = "cpu";
3531af04cdSRob Herring			compatible = "arm,cortex-a53";
36c46388a5SZhizhou Zhang			reg = <0x0 0x2>;
37c46388a5SZhizhou Zhang			enable-method = "psci";
38c46388a5SZhizhou Zhang		};
39c46388a5SZhizhou Zhang
40fe467ad1SChunyan Zhang		cpu3: cpu@3 {
41c46388a5SZhizhou Zhang			device_type = "cpu";
4231af04cdSRob Herring			compatible = "arm,cortex-a53";
43c46388a5SZhizhou Zhang			reg = <0x0 0x3>;
44c46388a5SZhizhou Zhang			enable-method = "psci";
45c46388a5SZhizhou Zhang		};
46c46388a5SZhizhou Zhang	};
47c46388a5SZhizhou Zhang
483341ada4SChunyan Zhang	etf@10003000 {
493341ada4SChunyan Zhang		compatible = "arm,coresight-tmc", "arm,primecell";
503341ada4SChunyan Zhang		reg = <0 0x10003000 0 0x1000>;
513341ada4SChunyan Zhang		clocks = <&clk26mhz>;
523341ada4SChunyan Zhang		clock-names = "apb_pclk";
531a9e7796SSuzuki K Poulose		in-ports {
543341ada4SChunyan Zhang			port {
553341ada4SChunyan Zhang				etf_in: endpoint {
563341ada4SChunyan Zhang					remote-endpoint = <&funnel_out_port0>;
573341ada4SChunyan Zhang				};
583341ada4SChunyan Zhang			};
593341ada4SChunyan Zhang		};
601a9e7796SSuzuki K Poulose	};
613341ada4SChunyan Zhang
623341ada4SChunyan Zhang	funnel@10001000 {
63*b8b89a84SLeo Yan		compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
643341ada4SChunyan Zhang		reg = <0 0x10001000 0 0x1000>;
653341ada4SChunyan Zhang		clocks = <&clk26mhz>;
663341ada4SChunyan Zhang		clock-names = "apb_pclk";
673341ada4SChunyan Zhang
681a9e7796SSuzuki K Poulose		out-ports {
691a9e7796SSuzuki K Poulose			port {
703341ada4SChunyan Zhang				funnel_out_port0: endpoint {
713341ada4SChunyan Zhang					remote-endpoint = <&etf_in>;
723341ada4SChunyan Zhang				};
733341ada4SChunyan Zhang			};
741a9e7796SSuzuki K Poulose		};
753341ada4SChunyan Zhang
761a9e7796SSuzuki K Poulose		in-ports {
771a9e7796SSuzuki K Poulose			#address-cells = <1>;
781a9e7796SSuzuki K Poulose			#size-cells = <0>;
791a9e7796SSuzuki K Poulose
801a9e7796SSuzuki K Poulose			port@0 {
81fe467ad1SChunyan Zhang				reg = <0>;
82fe467ad1SChunyan Zhang				funnel_in_port0: endpoint {
83fe467ad1SChunyan Zhang					remote-endpoint = <&etm0_out>;
84fe467ad1SChunyan Zhang				};
85fe467ad1SChunyan Zhang			};
86fe467ad1SChunyan Zhang
871a9e7796SSuzuki K Poulose			port@1 {
88fe467ad1SChunyan Zhang				reg = <1>;
89fe467ad1SChunyan Zhang				funnel_in_port1: endpoint {
90fe467ad1SChunyan Zhang					remote-endpoint = <&etm1_out>;
91fe467ad1SChunyan Zhang				};
92fe467ad1SChunyan Zhang			};
93fe467ad1SChunyan Zhang
941a9e7796SSuzuki K Poulose			port@2 {
95fe467ad1SChunyan Zhang				reg = <2>;
96fe467ad1SChunyan Zhang				funnel_in_port2: endpoint {
97fe467ad1SChunyan Zhang					remote-endpoint = <&etm2_out>;
98fe467ad1SChunyan Zhang				};
99fe467ad1SChunyan Zhang			};
100fe467ad1SChunyan Zhang
1011a9e7796SSuzuki K Poulose			port@3 {
102fe467ad1SChunyan Zhang				reg = <3>;
103fe467ad1SChunyan Zhang				funnel_in_port3: endpoint {
104fe467ad1SChunyan Zhang					remote-endpoint = <&etm3_out>;
105fe467ad1SChunyan Zhang				};
106fe467ad1SChunyan Zhang			};
107fe467ad1SChunyan Zhang
1081a9e7796SSuzuki K Poulose			port@4 {
1093341ada4SChunyan Zhang				reg = <4>;
1103341ada4SChunyan Zhang				funnel_in_port4: endpoint {
1113341ada4SChunyan Zhang					remote-endpoint = <&stm_out>;
1123341ada4SChunyan Zhang				};
1133341ada4SChunyan Zhang			};
114fe467ad1SChunyan Zhang			/* Other input ports aren't connected to anyone */
115fe467ad1SChunyan Zhang		};
116fe467ad1SChunyan Zhang	};
117fe467ad1SChunyan Zhang
118fe467ad1SChunyan Zhang	etm@10440000 {
119fe467ad1SChunyan Zhang		compatible = "arm,coresight-etm4x", "arm,primecell";
120fe467ad1SChunyan Zhang		reg = <0 0x10440000 0 0x1000>;
121fe467ad1SChunyan Zhang
122fe467ad1SChunyan Zhang		cpu = <&cpu0>;
123fe467ad1SChunyan Zhang		clocks = <&clk26mhz>;
124fe467ad1SChunyan Zhang		clock-names = "apb_pclk";
1251a9e7796SSuzuki K Poulose		out-ports {
126fe467ad1SChunyan Zhang			port {
127fe467ad1SChunyan Zhang				etm0_out: endpoint {
128fe467ad1SChunyan Zhang					remote-endpoint = <&funnel_in_port0>;
129fe467ad1SChunyan Zhang				};
130fe467ad1SChunyan Zhang			};
131fe467ad1SChunyan Zhang		};
1321a9e7796SSuzuki K Poulose	};
133fe467ad1SChunyan Zhang
134fe467ad1SChunyan Zhang	etm@10540000 {
135fe467ad1SChunyan Zhang		compatible = "arm,coresight-etm4x", "arm,primecell";
136fe467ad1SChunyan Zhang		reg = <0 0x10540000 0 0x1000>;
137fe467ad1SChunyan Zhang
138fe467ad1SChunyan Zhang		cpu = <&cpu1>;
139fe467ad1SChunyan Zhang		clocks = <&clk26mhz>;
140fe467ad1SChunyan Zhang		clock-names = "apb_pclk";
1411a9e7796SSuzuki K Poulose		out-ports {
142fe467ad1SChunyan Zhang			port {
143fe467ad1SChunyan Zhang				etm1_out: endpoint {
144fe467ad1SChunyan Zhang					remote-endpoint = <&funnel_in_port1>;
145fe467ad1SChunyan Zhang				};
146fe467ad1SChunyan Zhang			};
147fe467ad1SChunyan Zhang		};
1481a9e7796SSuzuki K Poulose	};
149fe467ad1SChunyan Zhang
150fe467ad1SChunyan Zhang	etm@10640000 {
151fe467ad1SChunyan Zhang		compatible = "arm,coresight-etm4x", "arm,primecell";
152fe467ad1SChunyan Zhang		reg = <0 0x10640000 0 0x1000>;
153fe467ad1SChunyan Zhang
154fe467ad1SChunyan Zhang		cpu = <&cpu2>;
155fe467ad1SChunyan Zhang		clocks = <&clk26mhz>;
156fe467ad1SChunyan Zhang		clock-names = "apb_pclk";
1571a9e7796SSuzuki K Poulose		out-ports {
158fe467ad1SChunyan Zhang			port {
159fe467ad1SChunyan Zhang				etm2_out: endpoint {
160fe467ad1SChunyan Zhang					remote-endpoint = <&funnel_in_port2>;
161fe467ad1SChunyan Zhang				};
162fe467ad1SChunyan Zhang			};
163fe467ad1SChunyan Zhang		};
1641a9e7796SSuzuki K Poulose	};
165fe467ad1SChunyan Zhang
166fe467ad1SChunyan Zhang	etm@10740000 {
167fe467ad1SChunyan Zhang		compatible = "arm,coresight-etm4x", "arm,primecell";
168fe467ad1SChunyan Zhang		reg = <0 0x10740000 0 0x1000>;
169fe467ad1SChunyan Zhang
170fe467ad1SChunyan Zhang		cpu = <&cpu3>;
171fe467ad1SChunyan Zhang		clocks = <&clk26mhz>;
172fe467ad1SChunyan Zhang		clock-names = "apb_pclk";
1731a9e7796SSuzuki K Poulose		out-ports {
174fe467ad1SChunyan Zhang			port {
175fe467ad1SChunyan Zhang				etm3_out: endpoint {
176fe467ad1SChunyan Zhang					remote-endpoint = <&funnel_in_port3>;
177fe467ad1SChunyan Zhang				};
1783341ada4SChunyan Zhang			};
1793341ada4SChunyan Zhang		};
1801a9e7796SSuzuki K Poulose	};
1813341ada4SChunyan Zhang
1823341ada4SChunyan Zhang	stm@10006000 {
1833341ada4SChunyan Zhang		compatible = "arm,coresight-stm", "arm,primecell";
1843341ada4SChunyan Zhang		reg = <0 0x10006000 0 0x1000>,
1853341ada4SChunyan Zhang		      <0 0x01000000 0 0x180000>;
1863341ada4SChunyan Zhang		reg-names = "stm-base", "stm-stimulus-base";
1873341ada4SChunyan Zhang		clocks = <&clk26mhz>;
1883341ada4SChunyan Zhang		clock-names = "apb_pclk";
1891a9e7796SSuzuki K Poulose		out-ports {
1903341ada4SChunyan Zhang			port {
1913341ada4SChunyan Zhang				stm_out: endpoint {
1923341ada4SChunyan Zhang					remote-endpoint = <&funnel_in_port4>;
1933341ada4SChunyan Zhang				};
1943341ada4SChunyan Zhang			};
1953341ada4SChunyan Zhang		};
1961a9e7796SSuzuki K Poulose	};
1973341ada4SChunyan Zhang
198c46388a5SZhizhou Zhang	gic: interrupt-controller@12001000 {
199c46388a5SZhizhou Zhang		compatible = "arm,gic-400";
200c46388a5SZhizhou Zhang		reg = <0 0x12001000 0 0x1000>,
201c46388a5SZhizhou Zhang		      <0 0x12002000 0 0x2000>,
202c46388a5SZhizhou Zhang		      <0 0x12004000 0 0x2000>,
203c46388a5SZhizhou Zhang		      <0 0x12006000 0 0x2000>;
204c46388a5SZhizhou Zhang		#interrupt-cells = <3>;
205c46388a5SZhizhou Zhang		interrupt-controller;
206c46388a5SZhizhou Zhang		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
207c46388a5SZhizhou Zhang	};
208c46388a5SZhizhou Zhang
209c46388a5SZhizhou Zhang	psci {
210c46388a5SZhizhou Zhang		compatible = "arm,psci";
211c46388a5SZhizhou Zhang		method = "smc";
212c46388a5SZhizhou Zhang		cpu_on = <0xc4000003>;
213c46388a5SZhizhou Zhang		cpu_off = <0x84000002>;
214c46388a5SZhizhou Zhang		cpu_suspend = <0xc4000001>;
215c46388a5SZhizhou Zhang	};
216c46388a5SZhizhou Zhang
217c46388a5SZhizhou Zhang	timer {
218c46388a5SZhizhou Zhang		compatible = "arm,armv8-timer";
219c46388a5SZhizhou Zhang		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
220c46388a5SZhizhou Zhang			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
221c46388a5SZhizhou Zhang			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
222c46388a5SZhizhou Zhang			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
223c46388a5SZhizhou Zhang	};
224c46388a5SZhizhou Zhang};
225