Skip to content

Commit 4807c71

Browse files
Joonwoo ParkAndy Gross
authored andcommitted
arm64: dts: Add msm8998 SoC and MTP board support
Add initial device tree support for the Qualcomm MSM8998 SoC and MTP8998 evaluation board. Signed-off-by: Joonwoo Park <[email protected]> Signed-off-by: Imran Khan <[email protected]> Signed-off-by: Rajendra Nayak <[email protected]> [bjorn: Restructured, removed its node and moved to SPDX headers] Signed-off-by: Bjorn Andersson <[email protected]> Signed-off-by: Andy Gross <[email protected]>
1 parent 43fb443 commit 4807c71

File tree

4 files changed

+378
-0
lines changed

4 files changed

+378
-0
lines changed

arch/arm64/boot/dts/qcom/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8916-mtp.dtb
66
dtb-$(CONFIG_ARCH_QCOM) += msm8992-bullhead-rev-101.dtb
77
dtb-$(CONFIG_ARCH_QCOM) += msm8994-angler-rev-101.dtb
88
dtb-$(CONFIG_ARCH_QCOM) += msm8996-mtp.dtb
9+
dtb-$(CONFIG_ARCH_QCOM) += msm8998-mtp.dtb
910
dtb-$(CONFIG_ARCH_QCOM) += sdm845-mtp.dtb
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
/* Copyright (c) 2016, The Linux Foundation. All rights reserved. */
3+
4+
/dts-v1/;
5+
6+
#include "msm8998-mtp.dtsi"
7+
8+
/ {
9+
model = "Qualcomm Technologies, Inc. MSM8998 v1 MTP";
10+
compatible = "qcom,msm8998-mtp";
11+
12+
qcom,board-id = <8 0>;
13+
};
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
/* Copyright (c) 2016, The Linux Foundation. All rights reserved. */
3+
4+
#include "msm8998.dtsi"
5+
6+
/ {
7+
aliases {
8+
serial0 = &blsp2_uart1;
9+
};
10+
11+
chosen {
12+
stdout-path = "serial0:115200n8";
13+
};
14+
};
15+
16+
&blsp2_uart1 {
17+
status = "okay";
18+
};

arch/arm64/boot/dts/qcom/msm8998.dtsi

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

0 commit comments

Comments
 (0)