]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - arch/arm64/boot/dts/sprd/sc9836.dtsi
Merge branch 'cpuidle' into release
[karo-tx-linux.git] / arch / arm64 / boot / dts / sprd / sc9836.dtsi
1 /*
2  * Spreadtrum SC9836 SoC DTS file
3  *
4  * Copyright (C) 2014, Spreadtrum Communications Inc.
5  *
6  * This file is licensed under a dual GPLv2 or X11 license.
7  */
8
9 #include "sharkl64.dtsi"
10 #include <dt-bindings/interrupt-controller/arm-gic.h>
11
12 / {
13         compatible = "sprd,sc9836";
14
15         cpus {
16                 #address-cells = <2>;
17                 #size-cells = <0>;
18
19                 cpu0: cpu@0 {
20                         device_type = "cpu";
21                         compatible = "arm,cortex-a53", "arm,armv8";
22                         reg = <0x0 0x0>;
23                         enable-method = "psci";
24                 };
25
26                 cpu1: cpu@1 {
27                         device_type = "cpu";
28                         compatible = "arm,cortex-a53", "arm,armv8";
29                         reg = <0x0 0x1>;
30                         enable-method = "psci";
31                 };
32
33                 cpu2: cpu@2 {
34                         device_type = "cpu";
35                         compatible = "arm,cortex-a53", "arm,armv8";
36                         reg = <0x0 0x2>;
37                         enable-method = "psci";
38                 };
39
40                 cpu3: cpu@3 {
41                         device_type = "cpu";
42                         compatible = "arm,cortex-a53", "arm,armv8";
43                         reg = <0x0 0x3>;
44                         enable-method = "psci";
45                 };
46         };
47
48         etf@10003000 {
49                 compatible = "arm,coresight-tmc", "arm,primecell";
50                 reg = <0 0x10003000 0 0x1000>;
51                 clocks = <&clk26mhz>;
52                 clock-names = "apb_pclk";
53                 port {
54                         etf_in: endpoint {
55                                 slave-mode;
56                                 remote-endpoint = <&funnel_out_port0>;
57                         };
58                 };
59         };
60
61         funnel@10001000 {
62                 compatible = "arm,coresight-funnel", "arm,primecell";
63                 reg = <0 0x10001000 0 0x1000>;
64                 clocks = <&clk26mhz>;
65                 clock-names = "apb_pclk";
66                 ports {
67                         #address-cells = <1>;
68                         #size-cells = <0>;
69
70                         /* funnel output port */
71                         port@0 {
72                                 reg = <0>;
73                                 funnel_out_port0: endpoint {
74                                         remote-endpoint = <&etf_in>;
75                                 };
76                         };
77
78                         /* funnel input port 0-4 */
79                         port@1 {
80                                 reg = <0>;
81                                 funnel_in_port0: endpoint {
82                                         slave-mode;
83                                         remote-endpoint = <&etm0_out>;
84                                 };
85                         };
86
87                         port@2 {
88                                 reg = <1>;
89                                 funnel_in_port1: endpoint {
90                                         slave-mode;
91                                         remote-endpoint = <&etm1_out>;
92                                 };
93                         };
94
95                         port@3 {
96                                 reg = <2>;
97                                 funnel_in_port2: endpoint {
98                                         slave-mode;
99                                         remote-endpoint = <&etm2_out>;
100                                 };
101                         };
102
103                         port@4 {
104                                 reg = <3>;
105                                 funnel_in_port3: endpoint {
106                                         slave-mode;
107                                         remote-endpoint = <&etm3_out>;
108                                 };
109                         };
110
111                         port@5 {
112                                 reg = <4>;
113                                 funnel_in_port4: endpoint {
114                                         slave-mode;
115                                         remote-endpoint = <&stm_out>;
116                                 };
117                         };
118                         /* Other input ports aren't connected to anyone */
119                 };
120         };
121
122         etm@10440000 {
123                 compatible = "arm,coresight-etm4x", "arm,primecell";
124                 reg = <0 0x10440000 0 0x1000>;
125
126                 cpu = <&cpu0>;
127                 clocks = <&clk26mhz>;
128                 clock-names = "apb_pclk";
129                 port {
130                         etm0_out: endpoint {
131                                 remote-endpoint = <&funnel_in_port0>;
132                         };
133                 };
134         };
135
136         etm@10540000 {
137                 compatible = "arm,coresight-etm4x", "arm,primecell";
138                 reg = <0 0x10540000 0 0x1000>;
139
140                 cpu = <&cpu1>;
141                 clocks = <&clk26mhz>;
142                 clock-names = "apb_pclk";
143                 port {
144                         etm1_out: endpoint {
145                                 remote-endpoint = <&funnel_in_port1>;
146                         };
147                 };
148         };
149
150         etm@10640000 {
151                 compatible = "arm,coresight-etm4x", "arm,primecell";
152                 reg = <0 0x10640000 0 0x1000>;
153
154                 cpu = <&cpu2>;
155                 clocks = <&clk26mhz>;
156                 clock-names = "apb_pclk";
157                 port {
158                         etm2_out: endpoint {
159                                 remote-endpoint = <&funnel_in_port2>;
160                         };
161                 };
162         };
163
164         etm@10740000 {
165                 compatible = "arm,coresight-etm4x", "arm,primecell";
166                 reg = <0 0x10740000 0 0x1000>;
167
168                 cpu = <&cpu3>;
169                 clocks = <&clk26mhz>;
170                 clock-names = "apb_pclk";
171                 port {
172                         etm3_out: endpoint {
173                                 remote-endpoint = <&funnel_in_port3>;
174                         };
175                 };
176         };
177
178         stm@10006000 {
179                 compatible = "arm,coresight-stm", "arm,primecell";
180                 reg = <0 0x10006000 0 0x1000>,
181                       <0 0x01000000 0 0x180000>;
182                 reg-names = "stm-base", "stm-stimulus-base";
183                 clocks = <&clk26mhz>;
184                 clock-names = "apb_pclk";
185                 port {
186                         stm_out: endpoint {
187                                 remote-endpoint = <&funnel_in_port4>;
188                         };
189                 };
190         };
191
192         gic: interrupt-controller@12001000 {
193                 compatible = "arm,gic-400";
194                 reg = <0 0x12001000 0 0x1000>,
195                       <0 0x12002000 0 0x2000>,
196                       <0 0x12004000 0 0x2000>,
197                       <0 0x12006000 0 0x2000>;
198                 #interrupt-cells = <3>;
199                 interrupt-controller;
200                 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
201         };
202
203         psci {
204                 compatible      = "arm,psci";
205                 method          = "smc";
206                 cpu_on          = <0xc4000003>;
207                 cpu_off         = <0x84000002>;
208                 cpu_suspend     = <0xc4000001>;
209         };
210
211         timer {
212                 compatible = "arm,armv8-timer";
213                 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
214                              <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
215                              <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
216                              <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
217         };
218 };