diff options
author | Jeremy McNicoll <jmcnicol@redhat.com> | 2016-11-04 16:56:31 -0400 |
---|---|---|
committer | Andy Gross <andy.gross@linaro.org> | 2016-11-12 23:56:43 -0500 |
commit | 6a6d1978f9c0d818b4370903e1f3eecf1681c932 (patch) | |
tree | 7e9039867ee2dabc89aedf84120332b8975d3700 | |
parent | 2f45d9fcd5317b88837adb6a49405f8e84df10bd (diff) |
arm64: dts: msm8992 SoC and LG Bullhead (Nexus 5X) support
Initial device tree support for Qualcomm MSM8992 SoC and
LG Bullhead / Google Nexus 5X support.
Signed-off-by: Jeremy McNicoll <jeremymc@redhat.com>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
-rw-r--r-- | arch/arm64/boot/dts/qcom/Makefile | 6 | ||||
-rw-r--r-- | arch/arm64/boot/dts/qcom/msm8992-bullhead-rev-101.dts | 41 | ||||
-rw-r--r-- | arch/arm64/boot/dts/qcom/msm8992-pins.dtsi | 38 | ||||
-rw-r--r-- | arch/arm64/boot/dts/qcom/msm8992.dtsi | 184 |
4 files changed, 267 insertions, 2 deletions
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index 5dd05de5619b..439e40e15261 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile | |||
@@ -1,6 +1,8 @@ | |||
1 | dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc.dtb msm8916-mtp.dtb | 1 | dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc.dtb |
2 | dtb-$(CONFIG_ARCH_QCOM) += msm8996-mtp.dtb | ||
3 | dtb-$(CONFIG_ARCH_QCOM) += apq8096-db820c.dtb | 2 | dtb-$(CONFIG_ARCH_QCOM) += apq8096-db820c.dtb |
3 | dtb-$(CONFIG_ARCH_QCOM) += msm8916-mtp.dtb | ||
4 | dtb-$(CONFIG_ARCH_QCOM) += msm8992-bullhead-rev-101.dtb | ||
5 | dtb-$(CONFIG_ARCH_QCOM) += msm8996-mtp.dtb | ||
4 | 6 | ||
5 | always := $(dtb-y) | 7 | always := $(dtb-y) |
6 | subdir-y := $(dts-dirs) | 8 | subdir-y := $(dts-dirs) |
diff --git a/arch/arm64/boot/dts/qcom/msm8992-bullhead-rev-101.dts b/arch/arm64/boot/dts/qcom/msm8992-bullhead-rev-101.dts new file mode 100644 index 000000000000..454213391671 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8992-bullhead-rev-101.dts | |||
@@ -0,0 +1,41 @@ | |||
1 | /* Copyright (c) 2015, LGE Inc. All rights reserved. | ||
2 | * Copyright (c) 2016, The Linux Foundation. All rights reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 and | ||
6 | * only version 2 as published by the Free Software Foundation. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | */ | ||
13 | |||
14 | /dts-v1/; | ||
15 | |||
16 | #include "msm8992.dtsi" | ||
17 | |||
18 | / { | ||
19 | model = "LG Nexus 5X"; | ||
20 | compatible = "lg,bullhead", "qcom,msm8992"; | ||
21 | /* required for bootloader to select correct board */ | ||
22 | qcom,board-id = <0xb64 0>; | ||
23 | qcom,pmic-id = <0x10009 0x1000A 0x0 0x0>; | ||
24 | |||
25 | aliases { | ||
26 | serial0 = &blsp1_uart2; | ||
27 | }; | ||
28 | |||
29 | chosen { | ||
30 | stdout-path = "serial0:115200n8"; | ||
31 | }; | ||
32 | |||
33 | soc { | ||
34 | serial@f991e000 { | ||
35 | status = "okay"; | ||
36 | pinctrl-names = "default", "sleep"; | ||
37 | pinctrl-0 = <&blsp1_uart2_default>; | ||
38 | pinctrl-1 = <&blsp1_uart2_sleep>; | ||
39 | }; | ||
40 | }; | ||
41 | }; | ||
diff --git a/arch/arm64/boot/dts/qcom/msm8992-pins.dtsi b/arch/arm64/boot/dts/qcom/msm8992-pins.dtsi new file mode 100644 index 000000000000..d2a26f0f8d73 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8992-pins.dtsi | |||
@@ -0,0 +1,38 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 and | ||
6 | * only version 2 as published by the Free Software Foundation. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | */ | ||
13 | |||
14 | &msmgpio { | ||
15 | blsp1_uart2_default: blsp1_uart2_default { | ||
16 | pinmux { | ||
17 | function = "blsp_uart2"; | ||
18 | pins = "gpio4", "gpio5"; | ||
19 | }; | ||
20 | pinconf { | ||
21 | pins = "gpio4", "gpio5"; | ||
22 | drive-strength = <16>; | ||
23 | bias-disable; | ||
24 | }; | ||
25 | }; | ||
26 | |||
27 | blsp1_uart2_sleep: blsp1_uart2_sleep { | ||
28 | pinmux { | ||
29 | function = "gpio"; | ||
30 | pins = "gpio4", "gpio5"; | ||
31 | }; | ||
32 | pinconf { | ||
33 | pins = "gpio4", "gpio5"; | ||
34 | drive-strength = <2>; | ||
35 | bias-pull-down; | ||
36 | }; | ||
37 | }; | ||
38 | }; | ||
diff --git a/arch/arm64/boot/dts/qcom/msm8992.dtsi b/arch/arm64/boot/dts/qcom/msm8992.dtsi new file mode 100644 index 000000000000..44b2d37d8c4b --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8992.dtsi | |||
@@ -0,0 +1,184 @@ | |||
1 | /* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. | ||
2 | * | ||
3 | * This program is free software; you can redistribute it and/or modify | ||
4 | * it under the terms of the GNU General Public License version 2 and | ||
5 | * only version 2 as published by the Free Software Foundation. | ||
6 | * | ||
7 | * This program is distributed in the hope that it will be useful, | ||
8 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
9 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
10 | * GNU General Public License for more details. | ||
11 | */ | ||
12 | |||
13 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
14 | #include <dt-bindings/clock/qcom,gcc-msm8994.h> | ||
15 | |||
16 | / { | ||
17 | model = "Qualcomm Technologies, Inc. MSM 8992"; | ||
18 | compatible = "qcom,msm8992"; | ||
19 | // msm-id needed by bootloader for selecting correct blob | ||
20 | qcom,msm-id = <251 0>, <252 0>; | ||
21 | interrupt-parent = <&intc>; | ||
22 | |||
23 | #address-cells = <2>; | ||
24 | #size-cells = <2>; | ||
25 | |||
26 | chosen { }; | ||
27 | |||
28 | cpus { | ||
29 | #address-cells = <2>; | ||
30 | #size-cells = <0>; | ||
31 | cpu-map { | ||
32 | cluster0 { | ||
33 | core0 { | ||
34 | cpu = <&CPU0>; | ||
35 | }; | ||
36 | }; | ||
37 | }; | ||
38 | |||
39 | CPU0: cpu@0 { | ||
40 | device_type = "cpu"; | ||
41 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
42 | reg = <0x0 0x0>; | ||
43 | next-level-cache = <&L2_0>; | ||
44 | L2_0: l2-cache { | ||
45 | compatible = "cache"; | ||
46 | cache-level = <2>; | ||
47 | }; | ||
48 | }; | ||
49 | }; | ||
50 | |||
51 | timer { | ||
52 | compatible = "arm,armv8-timer"; | ||
53 | interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | ||
54 | <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | ||
55 | <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | ||
56 | <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; | ||
57 | }; | ||
58 | |||
59 | xo_board: xo_board { | ||
60 | compatible = "fixed-clock"; | ||
61 | #clock-cells = <0>; | ||
62 | clock-frequency = <19200000>; | ||
63 | }; | ||
64 | |||
65 | sleep_clk: sleep_clk { | ||
66 | compatible = "fixed-clock"; | ||
67 | #clock-cells = <0>; | ||
68 | clock-frequency = <32768>; | ||
69 | }; | ||
70 | |||
71 | soc { | ||
72 | #address-cells = <1>; | ||
73 | #size-cells = <1>; | ||
74 | ranges = <0 0 0 0xffffffff>; | ||
75 | compatible = "simple-bus"; | ||
76 | |||
77 | intc: interrupt-controller@f9000000 { | ||
78 | compatible = "qcom,msm-qgic2"; | ||
79 | interrupt-controller; | ||
80 | #interrupt-cells = <3>; | ||
81 | reg = <0xf9000000 0x1000>, | ||
82 | <0xf9002000 0x1000>; | ||
83 | }; | ||
84 | |||
85 | timer@f9020000 { | ||
86 | #address-cells = <1>; | ||
87 | #size-cells = <1>; | ||
88 | ranges; | ||
89 | compatible = "arm,armv7-timer-mem"; | ||
90 | reg = <0xf9020000 0x1000>; | ||
91 | |||
92 | frame@f9021000 { | ||
93 | frame-number = <0>; | ||
94 | interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, | ||
95 | <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; | ||
96 | reg = <0xf9021000 0x1000>, | ||
97 | <0xf9022000 0x1000>; | ||
98 | }; | ||
99 | |||
100 | frame@f9023000 { | ||
101 | frame-number = <1>; | ||
102 | interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; | ||
103 | reg = <0xf9023000 0x1000>; | ||
104 | status = "disabled"; | ||
105 | }; | ||
106 | |||
107 | frame@f9024000 { | ||
108 | frame-number = <2>; | ||
109 | interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; | ||
110 | reg = <0xf9024000 0x1000>; | ||
111 | status = "disabled"; | ||
112 | }; | ||
113 | |||
114 | frame@f9025000 { | ||
115 | frame-number = <3>; | ||
116 | interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; | ||
117 | reg = <0xf9025000 0x1000>; | ||
118 | status = "disabled"; | ||
119 | }; | ||
120 | |||
121 | frame@f9026000 { | ||
122 | frame-number = <4>; | ||
123 | interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; | ||
124 | reg = <0xf9026000 0x1000>; | ||
125 | status = "disabled"; | ||
126 | }; | ||
127 | |||
128 | frame@f9027000 { | ||
129 | frame-number = <5>; | ||
130 | interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; | ||
131 | reg = <0xf9027000 0x1000>; | ||
132 | status = "disabled"; | ||
133 | }; | ||
134 | |||
135 | frame@f9028000 { | ||
136 | frame-number = <6>; | ||
137 | interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; | ||
138 | reg = <0xf9028000 0x1000>; | ||
139 | status = "disabled"; | ||
140 | }; | ||
141 | }; | ||
142 | |||
143 | restart@fc4ab000 { | ||
144 | compatible = "qcom,pshold"; | ||
145 | reg = <0xfc4ab000 0x4>; | ||
146 | }; | ||
147 | |||
148 | msmgpio: pinctrl@fd510000 { | ||
149 | compatible = "qcom,msm8994-pinctrl"; | ||
150 | reg = <0xfd510000 0x4000>; | ||
151 | interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; | ||
152 | gpio-controller; | ||
153 | #gpio-cells = <2>; | ||
154 | interrupt-controller; | ||
155 | #interrupt-cells = <2>; | ||
156 | }; | ||
157 | |||
158 | blsp1_uart2: serial@f991e000 { | ||
159 | compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; | ||
160 | reg = <0xf991e000 0x1000>; | ||
161 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_LOW>; | ||
162 | status = "disabled"; | ||
163 | clock-names = "core", "iface"; | ||
164 | clocks = <&clock_gcc GCC_BLSP1_UART2_APPS_CLK>, | ||
165 | <&clock_gcc GCC_BLSP1_AHB_CLK>; | ||
166 | }; | ||
167 | |||
168 | clock_gcc: clock-controller@fc400000 { | ||
169 | compatible = "qcom,gcc-msm8994"; | ||
170 | #clock-cells = <1>; | ||
171 | #reset-cells = <1>; | ||
172 | #power-domain-cells = <1>; | ||
173 | reg = <0xfc400000 0x2000>; | ||
174 | }; | ||
175 | }; | ||
176 | |||
177 | memory { | ||
178 | device_type = "memory"; | ||
179 | reg = <0 0 0 0>; // bootloader will update | ||
180 | }; | ||
181 | }; | ||
182 | |||
183 | |||
184 | #include "msm8992-pins.dtsi" | ||