Skip to content

Commit 1504b85

Browse files
amessierz3ntu
authored andcommitted
ARM: dts: qcom: Add initial support for HTC One (M8)
Add initial device tree for the HTC One (M8) smartphone. Initial support includes: - eMMC - Power button - USB - Vibrator - Volume buttons (GPIO) - Wi-Fi Signed-off-by: Alexandre Messier <alex@me.ssier.org>
1 parent 4665015 commit 1504b85

File tree

2 files changed

+354
-0
lines changed

2 files changed

+354
-0
lines changed

arch/arm/boot/dts/qcom/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \
4444
qcom-msm8974-sony-xperia-rhine-honami.dtb \
4545
qcom-msm8974-sony-xperia-sirius.dtb \
4646
qcom-msm8974pro-fairphone-fp2.dtb \
47+
qcom-msm8974pro-htc-m8.dtb \
4748
qcom-msm8974pro-oneplus-bacon.dtb \
4849
qcom-msm8974pro-samsung-klte.dtb \
4950
qcom-msm8974pro-samsung-kltechn.dtb \
Lines changed: 353 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,353 @@
1+
// SPDX-License-Identifier: GPL-2.0-only
2+
#include "qcom-msm8974pro.dtsi"
3+
#include "pm8841.dtsi"
4+
#include "pm8941.dtsi"
5+
#include <dt-bindings/input/input.h>
6+
7+
/ {
8+
model = "HTC One (M8)";
9+
compatible = "htc,m8", "qcom,msm8974pro", "qcom,msm8974";
10+
chassis-type = "handset";
11+
12+
aliases {
13+
mmc0 = &sdhc_1;
14+
};
15+
16+
gpio-keys {
17+
compatible = "gpio-keys";
18+
19+
pinctrl-0 = <&gpio_keys_default>;
20+
pinctrl-names = "default";
21+
22+
key-volume-down {
23+
label = "volume_down";
24+
gpios = <&tlmm 27 GPIO_ACTIVE_LOW>;
25+
linux,code = <KEY_VOLUMEDOWN>;
26+
debounce-interval = <20>;
27+
wakeup-source;
28+
};
29+
30+
key-volume-up {
31+
label = "volume_up";
32+
gpios = <&tlmm 28 GPIO_ACTIVE_LOW>;
33+
linux,code = <KEY_VOLUMEUP>;
34+
debounce-interval = <20>;
35+
wakeup-source;
36+
};
37+
};
38+
39+
vreg_boost: vreg-boost {
40+
compatible = "regulator-fixed";
41+
42+
regulator-name = "vreg-boost";
43+
regulator-min-microvolt = <3150000>;
44+
regulator-max-microvolt = <3150000>;
45+
46+
regulator-always-on;
47+
regulator-boot-on;
48+
49+
gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
50+
enable-active-high;
51+
52+
pinctrl-0 = <&boost_bypass_n_pin>;
53+
pinctrl-names = "default";
54+
};
55+
56+
vreg_vph_pwr: vreg-vph-pwr {
57+
compatible = "regulator-fixed";
58+
regulator-name = "vph-pwr";
59+
60+
regulator-min-microvolt = <3600000>;
61+
regulator-max-microvolt = <3600000>;
62+
63+
regulator-always-on;
64+
};
65+
};
66+
67+
&pm8941_vib {
68+
status = "okay";
69+
};
70+
71+
&pronto {
72+
vddmx-supply = <&pm8841_s1>;
73+
vddcx-supply = <&pm8841_s2>;
74+
vddpx-supply = <&pm8941_s3>;
75+
76+
pinctrl-0 = <&wcnss_pin_a>;
77+
pinctrl-names = "default";
78+
79+
status = "okay";
80+
81+
iris {
82+
vddxo-supply = <&pm8941_l6>;
83+
vddrfa-supply = <&pm8941_l11>;
84+
vddpa-supply = <&pm8941_l19>;
85+
vdddig-supply = <&pm8941_s3>;
86+
};
87+
88+
smd-edge {
89+
qcom,remote-pid = <4>;
90+
label = "pronto";
91+
92+
wcnss {
93+
status = "okay";
94+
};
95+
};
96+
};
97+
98+
&rpm_requests {
99+
regulators-0 {
100+
compatible = "qcom,rpm-pm8841-regulators";
101+
102+
pm8841_s1: s1 {
103+
regulator-min-microvolt = <675000>;
104+
regulator-max-microvolt = <1050000>;
105+
};
106+
107+
pm8841_s2: s2 {
108+
regulator-min-microvolt = <500000>;
109+
regulator-max-microvolt = <1050000>;
110+
};
111+
112+
pm8841_s3: s3 {
113+
regulator-min-microvolt = <1050000>;
114+
regulator-max-microvolt = <1050000>;
115+
};
116+
117+
pm8841_s4: s4 {
118+
regulator-min-microvolt = <815000>;
119+
regulator-max-microvolt = <900000>;
120+
};
121+
};
122+
123+
regulators-1 {
124+
compatible = "qcom,rpm-pm8941-regulators";
125+
126+
vdd_l1_l3-supply = <&pm8941_s1>;
127+
vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
128+
vdd_l4_l11-supply = <&pm8941_s1>;
129+
vdd_l5_l7-supply = <&pm8941_s2>;
130+
vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
131+
vdd_l8_l16_l18_l19-supply = <&vreg_vph_pwr>;
132+
vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
133+
vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
134+
vdd_l21-supply = <&vreg_boost>;
135+
136+
pm8941_s1: s1 {
137+
regulator-min-microvolt = <1300000>;
138+
regulator-max-microvolt = <1300000>;
139+
regulator-always-on;
140+
regulator-boot-on;
141+
};
142+
143+
pm8941_s2: s2 {
144+
regulator-min-microvolt = <2150000>;
145+
regulator-max-microvolt = <2150000>;
146+
regulator-boot-on;
147+
};
148+
149+
pm8941_s3: s3 {
150+
regulator-min-microvolt = <1800000>;
151+
regulator-max-microvolt = <1800000>;
152+
regulator-always-on;
153+
regulator-boot-on;
154+
};
155+
156+
pm8941_l1: l1 {
157+
regulator-min-microvolt = <1225000>;
158+
regulator-max-microvolt = <1225000>;
159+
regulator-always-on;
160+
regulator-boot-on;
161+
};
162+
163+
pm8941_l2: l2 {
164+
regulator-min-microvolt = <1200000>;
165+
regulator-max-microvolt = <1200000>;
166+
};
167+
168+
pm8941_l3: l3 {
169+
regulator-min-microvolt = <1200000>;
170+
regulator-max-microvolt = <1200000>;
171+
};
172+
173+
pm8941_l4: l4 {
174+
regulator-min-microvolt = <1225000>;
175+
regulator-max-microvolt = <1225000>;
176+
};
177+
178+
pm8941_l5: l5 {
179+
regulator-min-microvolt = <1800000>;
180+
regulator-max-microvolt = <1800000>;
181+
};
182+
183+
pm8941_l6: l6 {
184+
regulator-min-microvolt = <1800000>;
185+
regulator-max-microvolt = <1800000>;
186+
regulator-boot-on;
187+
};
188+
189+
pm8941_l7: l7 {
190+
regulator-min-microvolt = <1800000>;
191+
regulator-max-microvolt = <1800000>;
192+
regulator-boot-on;
193+
};
194+
195+
pm8941_l8: l8 {
196+
regulator-min-microvolt = <1800000>;
197+
regulator-max-microvolt = <1800000>;
198+
};
199+
200+
pm8941_l9: l9 {
201+
regulator-min-microvolt = <1800000>;
202+
regulator-max-microvolt = <2950000>;
203+
};
204+
205+
pm8941_l10: l10 {
206+
regulator-min-microvolt = <1800000>;
207+
regulator-max-microvolt = <2950000>;
208+
};
209+
210+
pm8941_l11: l11 {
211+
regulator-min-microvolt = <1225000>;
212+
regulator-max-microvolt = <1350000>;
213+
};
214+
215+
pm8941_l12: l12 {
216+
regulator-min-microvolt = <1800000>;
217+
regulator-max-microvolt = <1800000>;
218+
regulator-always-on;
219+
regulator-boot-on;
220+
};
221+
222+
pm8941_l13: l13 {
223+
regulator-min-microvolt = <1800000>;
224+
regulator-max-microvolt = <2950000>;
225+
regulator-boot-on;
226+
};
227+
228+
pm8941_l14: l14 {
229+
regulator-min-microvolt = <1800000>;
230+
regulator-max-microvolt = <1800000>;
231+
};
232+
233+
pm8941_l15: l15 {
234+
regulator-min-microvolt = <2050000>;
235+
regulator-max-microvolt = <2050000>;
236+
};
237+
238+
pm8941_l16: l16 {
239+
regulator-min-microvolt = <2700000>;
240+
regulator-max-microvolt = <2700000>;
241+
};
242+
243+
pm8941_l17: l17 {
244+
regulator-min-microvolt = <2850000>;
245+
regulator-max-microvolt = <2850000>;
246+
};
247+
248+
pm8941_l18: l18 {
249+
regulator-min-microvolt = <2850000>;
250+
regulator-max-microvolt = <2850000>;
251+
};
252+
253+
pm8941_l19: l19 {
254+
regulator-min-microvolt = <2900000>;
255+
regulator-max-microvolt = <3350000>;
256+
};
257+
258+
pm8941_l20: l20 {
259+
regulator-min-microvolt = <2950000>;
260+
regulator-max-microvolt = <2950000>;
261+
regulator-system-load = <200000>;
262+
regulator-allow-set-load;
263+
regulator-boot-on;
264+
};
265+
266+
pm8941_l21: l21 {
267+
regulator-min-microvolt = <2950000>;
268+
regulator-max-microvolt = <2950000>;
269+
regulator-boot-on;
270+
};
271+
272+
pm8941_l22: l22 {
273+
regulator-min-microvolt = <3300000>;
274+
regulator-max-microvolt = <3300000>;
275+
};
276+
277+
pm8941_l23: l23 {
278+
regulator-min-microvolt = <3000000>;
279+
regulator-max-microvolt = <3000000>;
280+
};
281+
282+
pm8941_l24: l24 {
283+
regulator-min-microvolt = <3075000>;
284+
regulator-max-microvolt = <3075000>;
285+
regulator-boot-on;
286+
};
287+
};
288+
};
289+
290+
&sdhc_1 {
291+
vmmc-supply = <&pm8941_l20>;
292+
vqmmc-supply = <&pm8941_s3>;
293+
294+
pinctrl-0 = <&sdc1_on>;
295+
pinctrl-1 = <&sdc1_off>;
296+
pinctrl-names = "default", "sleep";
297+
298+
status = "okay";
299+
};
300+
301+
&smbb {
302+
status = "okay";
303+
};
304+
305+
&tlmm {
306+
gpio_keys_default: gpio-keys-default-state {
307+
pins = "gpio27", "gpio28";
308+
function = "gpio";
309+
bias-pull-up;
310+
};
311+
312+
sdc1_on: sdc1-on-state {
313+
clk-pins {
314+
pins = "sdc1_clk";
315+
drive-strength = <10>;
316+
bias-disable;
317+
};
318+
319+
cmd-data-pins {
320+
pins = "sdc1_cmd", "sdc1_data";
321+
drive-strength = <10>;
322+
bias-pull-up;
323+
};
324+
};
325+
326+
wcnss_pin_a: wcnss-pin-active-state {
327+
pins = "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
328+
function = "wlan";
329+
drive-strength = <6>;
330+
bias-pull-down;
331+
};
332+
};
333+
334+
&usb {
335+
phys = <&usb_hs1_phy>;
336+
phy-select = <&tcsr 0xb000 0>;
337+
extcon = <&smbb>, <&usb_id>;
338+
vbus-supply = <&chg_otg>;
339+
340+
hnp-disable;
341+
srp-disable;
342+
adp-disable;
343+
344+
status = "okay";
345+
};
346+
347+
&usb_hs1_phy {
348+
v1p8-supply = <&pm8941_l6>;
349+
v3p3-supply = <&pm8941_l24>;
350+
extcon = <&smbb>;
351+
qcom,init-seq = /bits/ 8 <0x1 0x63>;
352+
status = "okay";
353+
};

0 commit comments

Comments
 (0)