xref: /openbmc/linux/arch/arm64/boot/dts/qcom/sdm660.dtsi (revision feec34411d4c0a9759106ef4f7d563438b3881ae)
1*feec3441SCraig Tatlor// SPDX-License-Identifier: GPL-2.0-only
2*feec3441SCraig Tatlor/*
3*feec3441SCraig Tatlor * Copyright (c) 2018, Craig Tatlor.
4*feec3441SCraig Tatlor * Copyright (c) 2020, Alexey Minnekhanov <alexey.min@gmail.com>
5*feec3441SCraig Tatlor */
6*feec3441SCraig Tatlor
7*feec3441SCraig Tatlor#include <dt-bindings/interrupt-controller/arm-gic.h>
8*feec3441SCraig Tatlor#include <dt-bindings/clock/qcom,gcc-sdm660.h>
9*feec3441SCraig Tatlor
10*feec3441SCraig Tatlor/ {
11*feec3441SCraig Tatlor	interrupt-parent = <&intc>;
12*feec3441SCraig Tatlor
13*feec3441SCraig Tatlor	#address-cells = <2>;
14*feec3441SCraig Tatlor	#size-cells = <2>;
15*feec3441SCraig Tatlor
16*feec3441SCraig Tatlor	chosen { };
17*feec3441SCraig Tatlor
18*feec3441SCraig Tatlor	clocks {
19*feec3441SCraig Tatlor		xo_board: xo_board {
20*feec3441SCraig Tatlor			compatible = "fixed-clock";
21*feec3441SCraig Tatlor			#clock-cells = <0>;
22*feec3441SCraig Tatlor			clock-frequency = <19200000>;
23*feec3441SCraig Tatlor			clock-output-names = "xo_board";
24*feec3441SCraig Tatlor		};
25*feec3441SCraig Tatlor
26*feec3441SCraig Tatlor		sleep_clk: sleep_clk {
27*feec3441SCraig Tatlor			compatible = "fixed-clock";
28*feec3441SCraig Tatlor			#clock-cells = <0>;
29*feec3441SCraig Tatlor			clock-frequency = <32764>;
30*feec3441SCraig Tatlor			clock-output-names = "sleep_clk";
31*feec3441SCraig Tatlor		};
32*feec3441SCraig Tatlor	};
33*feec3441SCraig Tatlor
34*feec3441SCraig Tatlor	cpus {
35*feec3441SCraig Tatlor		#address-cells = <2>;
36*feec3441SCraig Tatlor		#size-cells = <0>;
37*feec3441SCraig Tatlor
38*feec3441SCraig Tatlor		CPU0: cpu@100 {
39*feec3441SCraig Tatlor			device_type = "cpu";
40*feec3441SCraig Tatlor			compatible = "qcom,kryo260";
41*feec3441SCraig Tatlor			reg = <0x0 0x100>;
42*feec3441SCraig Tatlor			enable-method = "psci";
43*feec3441SCraig Tatlor			capacity-dmips-mhz = <1024>;
44*feec3441SCraig Tatlor			next-level-cache = <&L2_1>;
45*feec3441SCraig Tatlor			L2_1: l2-cache {
46*feec3441SCraig Tatlor				compatible = "cache";
47*feec3441SCraig Tatlor				cache-level = <2>;
48*feec3441SCraig Tatlor			};
49*feec3441SCraig Tatlor			L1_I_100: l1-icache {
50*feec3441SCraig Tatlor				compatible = "cache";
51*feec3441SCraig Tatlor			};
52*feec3441SCraig Tatlor			L1_D_100: l1-dcache {
53*feec3441SCraig Tatlor				compatible = "cache";
54*feec3441SCraig Tatlor			};
55*feec3441SCraig Tatlor		};
56*feec3441SCraig Tatlor
57*feec3441SCraig Tatlor		CPU1: cpu@101 {
58*feec3441SCraig Tatlor			device_type = "cpu";
59*feec3441SCraig Tatlor			compatible = "qcom,kryo260";
60*feec3441SCraig Tatlor			reg = <0x0 0x101>;
61*feec3441SCraig Tatlor			enable-method = "psci";
62*feec3441SCraig Tatlor			capacity-dmips-mhz = <1024>;
63*feec3441SCraig Tatlor			next-level-cache = <&L2_1>;
64*feec3441SCraig Tatlor			L1_I_101: l1-icache {
65*feec3441SCraig Tatlor				compatible = "cache";
66*feec3441SCraig Tatlor			};
67*feec3441SCraig Tatlor			L1_D_101: l1-dcache {
68*feec3441SCraig Tatlor				compatible = "cache";
69*feec3441SCraig Tatlor			};
70*feec3441SCraig Tatlor		};
71*feec3441SCraig Tatlor
72*feec3441SCraig Tatlor		CPU2: cpu@102 {
73*feec3441SCraig Tatlor			device_type = "cpu";
74*feec3441SCraig Tatlor			compatible = "qcom,kryo260";
75*feec3441SCraig Tatlor			reg = <0x0 0x102>;
76*feec3441SCraig Tatlor			enable-method = "psci";
77*feec3441SCraig Tatlor			capacity-dmips-mhz = <1024>;
78*feec3441SCraig Tatlor			next-level-cache = <&L2_1>;
79*feec3441SCraig Tatlor			L1_I_102: l1-icache {
80*feec3441SCraig Tatlor				compatible = "cache";
81*feec3441SCraig Tatlor			};
82*feec3441SCraig Tatlor			L1_D_102: l1-dcache {
83*feec3441SCraig Tatlor				compatible = "cache";
84*feec3441SCraig Tatlor			};
85*feec3441SCraig Tatlor		};
86*feec3441SCraig Tatlor
87*feec3441SCraig Tatlor		CPU3: cpu@103 {
88*feec3441SCraig Tatlor			device_type = "cpu";
89*feec3441SCraig Tatlor			compatible = "qcom,kryo260";
90*feec3441SCraig Tatlor			reg = <0x0 0x103>;
91*feec3441SCraig Tatlor			enable-method = "psci";
92*feec3441SCraig Tatlor			capacity-dmips-mhz = <1024>;
93*feec3441SCraig Tatlor			next-level-cache = <&L2_1>;
94*feec3441SCraig Tatlor			L1_I_103: l1-icache {
95*feec3441SCraig Tatlor				compatible = "cache";
96*feec3441SCraig Tatlor			};
97*feec3441SCraig Tatlor			L1_D_103: l1-dcache {
98*feec3441SCraig Tatlor				compatible = "cache";
99*feec3441SCraig Tatlor			};
100*feec3441SCraig Tatlor		};
101*feec3441SCraig Tatlor
102*feec3441SCraig Tatlor		CPU4: cpu@0 {
103*feec3441SCraig Tatlor			device_type = "cpu";
104*feec3441SCraig Tatlor			compatible = "qcom,kryo260";
105*feec3441SCraig Tatlor			reg = <0x0 0x0>;
106*feec3441SCraig Tatlor			enable-method = "psci";
107*feec3441SCraig Tatlor			capacity-dmips-mhz = <640>;
108*feec3441SCraig Tatlor			next-level-cache = <&L2_0>;
109*feec3441SCraig Tatlor			L2_0: l2-cache {
110*feec3441SCraig Tatlor				compatible = "cache";
111*feec3441SCraig Tatlor				cache-level = <2>;
112*feec3441SCraig Tatlor			};
113*feec3441SCraig Tatlor			L1_I_0: l1-icache {
114*feec3441SCraig Tatlor				compatible = "cache";
115*feec3441SCraig Tatlor			};
116*feec3441SCraig Tatlor			L1_D_0: l1-dcache {
117*feec3441SCraig Tatlor				compatible = "cache";
118*feec3441SCraig Tatlor			};
119*feec3441SCraig Tatlor		};
120*feec3441SCraig Tatlor
121*feec3441SCraig Tatlor		CPU5: cpu@1 {
122*feec3441SCraig Tatlor			device_type = "cpu";
123*feec3441SCraig Tatlor			compatible = "qcom,kryo260";
124*feec3441SCraig Tatlor			reg = <0x0 0x1>;
125*feec3441SCraig Tatlor			enable-method = "psci";
126*feec3441SCraig Tatlor			capacity-dmips-mhz = <640>;
127*feec3441SCraig Tatlor			next-level-cache = <&L2_0>;
128*feec3441SCraig Tatlor			L1_I_1: l1-icache {
129*feec3441SCraig Tatlor				compatible = "cache";
130*feec3441SCraig Tatlor			};
131*feec3441SCraig Tatlor			L1_D_1: l1-dcache {
132*feec3441SCraig Tatlor				compatible = "cache";
133*feec3441SCraig Tatlor			};
134*feec3441SCraig Tatlor		};
135*feec3441SCraig Tatlor
136*feec3441SCraig Tatlor		CPU6: cpu@2 {
137*feec3441SCraig Tatlor			device_type = "cpu";
138*feec3441SCraig Tatlor			compatible = "qcom,kryo260";
139*feec3441SCraig Tatlor			reg = <0x0 0x2>;
140*feec3441SCraig Tatlor			enable-method = "psci";
141*feec3441SCraig Tatlor			capacity-dmips-mhz = <640>;
142*feec3441SCraig Tatlor			next-level-cache = <&L2_0>;
143*feec3441SCraig Tatlor			L1_I_2: l1-icache {
144*feec3441SCraig Tatlor				compatible = "cache";
145*feec3441SCraig Tatlor			};
146*feec3441SCraig Tatlor			L1_D_2: l1-dcache {
147*feec3441SCraig Tatlor				compatible = "cache";
148*feec3441SCraig Tatlor			};
149*feec3441SCraig Tatlor		};
150*feec3441SCraig Tatlor
151*feec3441SCraig Tatlor		CPU7: cpu@3 {
152*feec3441SCraig Tatlor			device_type = "cpu";
153*feec3441SCraig Tatlor			compatible = "qcom,kryo260";
154*feec3441SCraig Tatlor			reg = <0x0 0x3>;
155*feec3441SCraig Tatlor			enable-method = "psci";
156*feec3441SCraig Tatlor			capacity-dmips-mhz = <640>;
157*feec3441SCraig Tatlor			next-level-cache = <&L2_0>;
158*feec3441SCraig Tatlor			L1_I_3: l1-icache {
159*feec3441SCraig Tatlor				compatible = "cache";
160*feec3441SCraig Tatlor			};
161*feec3441SCraig Tatlor			L1_D_3: l1-dcache {
162*feec3441SCraig Tatlor				compatible = "cache";
163*feec3441SCraig Tatlor			};
164*feec3441SCraig Tatlor		};
165*feec3441SCraig Tatlor
166*feec3441SCraig Tatlor		cpu-map {
167*feec3441SCraig Tatlor			cluster0 {
168*feec3441SCraig Tatlor				core0 {
169*feec3441SCraig Tatlor					cpu = <&CPU4>;
170*feec3441SCraig Tatlor				};
171*feec3441SCraig Tatlor
172*feec3441SCraig Tatlor				core1 {
173*feec3441SCraig Tatlor					cpu = <&CPU5>;
174*feec3441SCraig Tatlor				};
175*feec3441SCraig Tatlor
176*feec3441SCraig Tatlor				core2 {
177*feec3441SCraig Tatlor					cpu = <&CPU6>;
178*feec3441SCraig Tatlor				};
179*feec3441SCraig Tatlor
180*feec3441SCraig Tatlor				core3 {
181*feec3441SCraig Tatlor					cpu = <&CPU7>;
182*feec3441SCraig Tatlor				};
183*feec3441SCraig Tatlor			};
184*feec3441SCraig Tatlor
185*feec3441SCraig Tatlor			cluster1 {
186*feec3441SCraig Tatlor				core0 {
187*feec3441SCraig Tatlor					cpu = <&CPU0>;
188*feec3441SCraig Tatlor				};
189*feec3441SCraig Tatlor
190*feec3441SCraig Tatlor				core1 {
191*feec3441SCraig Tatlor					cpu = <&CPU1>;
192*feec3441SCraig Tatlor				};
193*feec3441SCraig Tatlor
194*feec3441SCraig Tatlor				core2 {
195*feec3441SCraig Tatlor					cpu = <&CPU2>;
196*feec3441SCraig Tatlor				};
197*feec3441SCraig Tatlor
198*feec3441SCraig Tatlor				core3 {
199*feec3441SCraig Tatlor					cpu = <&CPU3>;
200*feec3441SCraig Tatlor				};
201*feec3441SCraig Tatlor			};
202*feec3441SCraig Tatlor		};
203*feec3441SCraig Tatlor	};
204*feec3441SCraig Tatlor
205*feec3441SCraig Tatlor	firmware {
206*feec3441SCraig Tatlor		scm {
207*feec3441SCraig Tatlor			compatible = "qcom,scm";
208*feec3441SCraig Tatlor		};
209*feec3441SCraig Tatlor	};
210*feec3441SCraig Tatlor
211*feec3441SCraig Tatlor	memory {
212*feec3441SCraig Tatlor		device_type = "memory";
213*feec3441SCraig Tatlor		/* We expect the bootloader to fill in the reg */
214*feec3441SCraig Tatlor		reg = <0 0 0 0>;
215*feec3441SCraig Tatlor	};
216*feec3441SCraig Tatlor
217*feec3441SCraig Tatlor	psci {
218*feec3441SCraig Tatlor		compatible = "arm,psci-1.0";
219*feec3441SCraig Tatlor		method = "smc";
220*feec3441SCraig Tatlor	};
221*feec3441SCraig Tatlor
222*feec3441SCraig Tatlor	timer {
223*feec3441SCraig Tatlor		compatible = "arm,armv8-timer";
224*feec3441SCraig Tatlor		interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_LOW>,
225*feec3441SCraig Tatlor			     <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW>,
226*feec3441SCraig Tatlor			     <GIC_PPI 3 IRQ_TYPE_LEVEL_LOW>,
227*feec3441SCraig Tatlor			     <GIC_PPI 0 IRQ_TYPE_LEVEL_LOW>;
228*feec3441SCraig Tatlor	};
229*feec3441SCraig Tatlor
230*feec3441SCraig Tatlor	soc: soc {
231*feec3441SCraig Tatlor		#address-cells = <1>;
232*feec3441SCraig Tatlor		#size-cells = <1>;
233*feec3441SCraig Tatlor		ranges = <0 0 0 0xffffffff>;
234*feec3441SCraig Tatlor		compatible = "simple-bus";
235*feec3441SCraig Tatlor
236*feec3441SCraig Tatlor		gcc: clock-controller@100000 {
237*feec3441SCraig Tatlor			compatible = "qcom,gcc-sdm660";
238*feec3441SCraig Tatlor			#clock-cells = <1>;
239*feec3441SCraig Tatlor			#reset-cells = <1>;
240*feec3441SCraig Tatlor			#power-domain-cells = <1>;
241*feec3441SCraig Tatlor			reg = <0x00100000 0x94000>;
242*feec3441SCraig Tatlor		};
243*feec3441SCraig Tatlor
244*feec3441SCraig Tatlor		tlmm: pinctrl@3100000 {
245*feec3441SCraig Tatlor			compatible = "qcom,sdm660-pinctrl";
246*feec3441SCraig Tatlor			reg = <0x03100000 0x400000>,
247*feec3441SCraig Tatlor			      <0x03500000 0x400000>,
248*feec3441SCraig Tatlor			      <0x03900000 0x400000>;
249*feec3441SCraig Tatlor			reg-names = "south", "center", "north";
250*feec3441SCraig Tatlor			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
251*feec3441SCraig Tatlor			gpio-controller;
252*feec3441SCraig Tatlor			gpio-ranges = <&tlmm 0 0 114>;
253*feec3441SCraig Tatlor			#gpio-cells = <2>;
254*feec3441SCraig Tatlor			interrupt-controller;
255*feec3441SCraig Tatlor			#interrupt-cells = <2>;
256*feec3441SCraig Tatlor
257*feec3441SCraig Tatlor			uart_console_active: uart_console_active {
258*feec3441SCraig Tatlor				pinmux {
259*feec3441SCraig Tatlor					pins = "gpio4", "gpio5";
260*feec3441SCraig Tatlor					function = "blsp_uart2";
261*feec3441SCraig Tatlor				};
262*feec3441SCraig Tatlor
263*feec3441SCraig Tatlor				pinconf {
264*feec3441SCraig Tatlor					pins = "gpio4", "gpio5";
265*feec3441SCraig Tatlor					drive-strength = <2>;
266*feec3441SCraig Tatlor					bias-disable;
267*feec3441SCraig Tatlor				};
268*feec3441SCraig Tatlor			};
269*feec3441SCraig Tatlor		};
270*feec3441SCraig Tatlor
271*feec3441SCraig Tatlor		spmi_bus: spmi@800f000 {
272*feec3441SCraig Tatlor			compatible = "qcom,spmi-pmic-arb";
273*feec3441SCraig Tatlor			reg = <0x0800f000 0x1000>,
274*feec3441SCraig Tatlor			      <0x08400000 0x1000000>,
275*feec3441SCraig Tatlor			      <0x09400000 0x1000000>,
276*feec3441SCraig Tatlor			      <0x0a400000 0x220000>,
277*feec3441SCraig Tatlor			      <0x0800a000 0x3000>;
278*feec3441SCraig Tatlor			reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
279*feec3441SCraig Tatlor			interrupt-names = "periph_irq";
280*feec3441SCraig Tatlor			interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>;
281*feec3441SCraig Tatlor			qcom,ee = <0>;
282*feec3441SCraig Tatlor			qcom,channel = <0>;
283*feec3441SCraig Tatlor			#address-cells = <2>;
284*feec3441SCraig Tatlor			#size-cells = <0>;
285*feec3441SCraig Tatlor			interrupt-controller;
286*feec3441SCraig Tatlor			#interrupt-cells = <4>;
287*feec3441SCraig Tatlor			cell-index = <0>;
288*feec3441SCraig Tatlor		};
289*feec3441SCraig Tatlor
290*feec3441SCraig Tatlor		blsp1_uart2: serial@c170000 {
291*feec3441SCraig Tatlor			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
292*feec3441SCraig Tatlor			reg = <0x0c170000 0x1000>;
293*feec3441SCraig Tatlor			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
294*feec3441SCraig Tatlor			clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
295*feec3441SCraig Tatlor				 <&gcc GCC_BLSP1_AHB_CLK>;
296*feec3441SCraig Tatlor			clock-names = "core", "iface";
297*feec3441SCraig Tatlor			status = "disabled";
298*feec3441SCraig Tatlor		};
299*feec3441SCraig Tatlor
300*feec3441SCraig Tatlor		timer@17920000 {
301*feec3441SCraig Tatlor			#address-cells = <1>;
302*feec3441SCraig Tatlor			#size-cells = <1>;
303*feec3441SCraig Tatlor			ranges;
304*feec3441SCraig Tatlor			compatible = "arm,armv7-timer-mem";
305*feec3441SCraig Tatlor			reg = <0x17920000 0x1000>;
306*feec3441SCraig Tatlor
307*feec3441SCraig Tatlor			frame@17921000 {
308*feec3441SCraig Tatlor				frame-number = <0>;
309*feec3441SCraig Tatlor				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
310*feec3441SCraig Tatlor					     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
311*feec3441SCraig Tatlor				reg = <0x17921000 0x1000>,
312*feec3441SCraig Tatlor				      <0x17922000 0x1000>;
313*feec3441SCraig Tatlor			};
314*feec3441SCraig Tatlor
315*feec3441SCraig Tatlor			frame@17923000 {
316*feec3441SCraig Tatlor				frame-number = <1>;
317*feec3441SCraig Tatlor				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
318*feec3441SCraig Tatlor				reg = <0x17923000 0x1000>;
319*feec3441SCraig Tatlor				status = "disabled";
320*feec3441SCraig Tatlor			};
321*feec3441SCraig Tatlor
322*feec3441SCraig Tatlor			frame@17924000 {
323*feec3441SCraig Tatlor				frame-number = <2>;
324*feec3441SCraig Tatlor				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
325*feec3441SCraig Tatlor				reg = <0x17924000 0x1000>;
326*feec3441SCraig Tatlor				status = "disabled";
327*feec3441SCraig Tatlor			};
328*feec3441SCraig Tatlor
329*feec3441SCraig Tatlor			frame@17925000 {
330*feec3441SCraig Tatlor				frame-number = <3>;
331*feec3441SCraig Tatlor				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
332*feec3441SCraig Tatlor				reg = <0x17925000 0x1000>;
333*feec3441SCraig Tatlor				status = "disabled";
334*feec3441SCraig Tatlor			};
335*feec3441SCraig Tatlor
336*feec3441SCraig Tatlor			frame@17926000 {
337*feec3441SCraig Tatlor				frame-number = <4>;
338*feec3441SCraig Tatlor				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
339*feec3441SCraig Tatlor				reg = <0x17926000 0x1000>;
340*feec3441SCraig Tatlor				status = "disabled";
341*feec3441SCraig Tatlor			};
342*feec3441SCraig Tatlor
343*feec3441SCraig Tatlor			frame@17927000 {
344*feec3441SCraig Tatlor				frame-number = <5>;
345*feec3441SCraig Tatlor				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
346*feec3441SCraig Tatlor				reg = <0x17927000 0x1000>;
347*feec3441SCraig Tatlor				status = "disabled";
348*feec3441SCraig Tatlor			};
349*feec3441SCraig Tatlor
350*feec3441SCraig Tatlor			frame@17928000 {
351*feec3441SCraig Tatlor				frame-number = <6>;
352*feec3441SCraig Tatlor				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
353*feec3441SCraig Tatlor				reg = <0x17928000 0x1000>;
354*feec3441SCraig Tatlor				status = "disabled";
355*feec3441SCraig Tatlor			};
356*feec3441SCraig Tatlor		};
357*feec3441SCraig Tatlor
358*feec3441SCraig Tatlor		intc: interrupt-controller@17a00000 {
359*feec3441SCraig Tatlor			compatible = "arm,gic-v3";
360*feec3441SCraig Tatlor			reg = <0x17a00000 0x10000>,
361*feec3441SCraig Tatlor			      <0x17b00000 0x100000>;
362*feec3441SCraig Tatlor			#interrupt-cells = <3>;
363*feec3441SCraig Tatlor			#address-cells = <1>;
364*feec3441SCraig Tatlor			#size-cells = <1>;
365*feec3441SCraig Tatlor			ranges;
366*feec3441SCraig Tatlor			interrupt-controller;
367*feec3441SCraig Tatlor			#redistributor-regions = <1>;
368*feec3441SCraig Tatlor			redistributor-stride = <0x0 0x20000>;
369*feec3441SCraig Tatlor			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
370*feec3441SCraig Tatlor		};
371*feec3441SCraig Tatlor	};
372*feec3441SCraig Tatlor};
373