xref: /freebsd/sys/contrib/device-tree/src/arm/qcom/qcom-msm8226-microsoft-common.dtsi (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1*8d13bc63SEmmanuel Vadot// SPDX-License-Identifier: BSD-3-Clause
2*8d13bc63SEmmanuel Vadot/*
3*8d13bc63SEmmanuel Vadot * Common Board Device Tree for Microsoft MSM8x26-based Lumias
4*8d13bc63SEmmanuel Vadot *
5*8d13bc63SEmmanuel Vadot * Copyright (c) 2023, Jack Matthews <jm5112356@gmail.com>
6*8d13bc63SEmmanuel Vadot * Copyright (c) 2023, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
7*8d13bc63SEmmanuel Vadot * Copyright (c) 2023, Dominik Kobinski <dominikkobinski314@gmail.com>
8*8d13bc63SEmmanuel Vadot * Copyright (c) 2023, Rayyan Ansari <rayyan@ansari.sh>
9*8d13bc63SEmmanuel Vadot */
10*8d13bc63SEmmanuel Vadot
11*8d13bc63SEmmanuel Vadot#include "qcom-msm8226.dtsi"
12*8d13bc63SEmmanuel Vadot#include "pm8226.dtsi"
13*8d13bc63SEmmanuel Vadot#include <dt-bindings/input/input.h>
14*8d13bc63SEmmanuel Vadot
15*8d13bc63SEmmanuel Vadot/*
16*8d13bc63SEmmanuel Vadot * Delete all generic (msm8226.dtsi) reserved
17*8d13bc63SEmmanuel Vadot * memory mappings which are different on these devices.
18*8d13bc63SEmmanuel Vadot */
19*8d13bc63SEmmanuel Vadot/delete-node/ &smem_region;
20*8d13bc63SEmmanuel Vadot
21*8d13bc63SEmmanuel Vadot/ {
22*8d13bc63SEmmanuel Vadot	aliases {
23*8d13bc63SEmmanuel Vadot		mmc0 = &sdhc_1; /* eMMC */
24*8d13bc63SEmmanuel Vadot		mmc1 = &sdhc_2; /* microSD */
25*8d13bc63SEmmanuel Vadot		display0 = &framebuffer;
26*8d13bc63SEmmanuel Vadot	};
27*8d13bc63SEmmanuel Vadot
28*8d13bc63SEmmanuel Vadot	chosen {
29*8d13bc63SEmmanuel Vadot		#address-cells = <1>;
30*8d13bc63SEmmanuel Vadot		#size-cells = <1>;
31*8d13bc63SEmmanuel Vadot		ranges;
32*8d13bc63SEmmanuel Vadot
33*8d13bc63SEmmanuel Vadot		stdout-path = "display0";
34*8d13bc63SEmmanuel Vadot
35*8d13bc63SEmmanuel Vadot		framebuffer: framebuffer@3200000 {
36*8d13bc63SEmmanuel Vadot			compatible = "simple-framebuffer";
37*8d13bc63SEmmanuel Vadot			reg = <0x3200000 0x800000>;
38*8d13bc63SEmmanuel Vadot			format = "a8r8g8b8";
39*8d13bc63SEmmanuel Vadot			width = <720>;
40*8d13bc63SEmmanuel Vadot			height = <1280>;
41*8d13bc63SEmmanuel Vadot			stride = <(720 * 4)>;
42*8d13bc63SEmmanuel Vadot
43*8d13bc63SEmmanuel Vadot			clocks = <&mmcc MDSS_AHB_CLK>,
44*8d13bc63SEmmanuel Vadot				 <&mmcc MDSS_AXI_CLK>,
45*8d13bc63SEmmanuel Vadot				 <&mmcc MDSS_BYTE0_CLK>,
46*8d13bc63SEmmanuel Vadot				 <&mmcc MDSS_MDP_CLK>,
47*8d13bc63SEmmanuel Vadot				 <&mmcc MDSS_PCLK0_CLK>,
48*8d13bc63SEmmanuel Vadot				 <&mmcc MDSS_VSYNC_CLK>;
49*8d13bc63SEmmanuel Vadot			power-domains = <&mmcc MDSS_GDSC>;
50*8d13bc63SEmmanuel Vadot		};
51*8d13bc63SEmmanuel Vadot	};
52*8d13bc63SEmmanuel Vadot
53*8d13bc63SEmmanuel Vadot	gpio_keys: gpio-keys {
54*8d13bc63SEmmanuel Vadot		compatible = "gpio-keys";
55*8d13bc63SEmmanuel Vadot
56*8d13bc63SEmmanuel Vadot		pinctrl-0 = <&gpio_keys_default>;
57*8d13bc63SEmmanuel Vadot		pinctrl-names = "default";
58*8d13bc63SEmmanuel Vadot
59*8d13bc63SEmmanuel Vadot		label = "GPIO Buttons";
60*8d13bc63SEmmanuel Vadot
61*8d13bc63SEmmanuel Vadot		key-volume-up {
62*8d13bc63SEmmanuel Vadot			label = "Volume Up";
63*8d13bc63SEmmanuel Vadot			gpios = <&tlmm 106 GPIO_ACTIVE_LOW>;
64*8d13bc63SEmmanuel Vadot			linux,code = <KEY_VOLUMEUP>;
65*8d13bc63SEmmanuel Vadot		};
66*8d13bc63SEmmanuel Vadot	};
67*8d13bc63SEmmanuel Vadot
68*8d13bc63SEmmanuel Vadot	/*
69*8d13bc63SEmmanuel Vadot	 * This device being a WP platform has a different
70*8d13bc63SEmmanuel Vadot	 * memory layout than other Android based devices.
71*8d13bc63SEmmanuel Vadot	 * This smem memory region is directly copied from
72*8d13bc63SEmmanuel Vadot	 * the original UEFI firmware.
73*8d13bc63SEmmanuel Vadot	 */
74*8d13bc63SEmmanuel Vadot	reserved-memory {
75*8d13bc63SEmmanuel Vadot		display_reserved: framebuffer@3200000 {
76*8d13bc63SEmmanuel Vadot			reg = <0x03200000 0x800000>;
77*8d13bc63SEmmanuel Vadot			no-map;
78*8d13bc63SEmmanuel Vadot		};
79*8d13bc63SEmmanuel Vadot
80*8d13bc63SEmmanuel Vadot		smem_region: smem@fa00000 {
81*8d13bc63SEmmanuel Vadot			reg = <0x0fa00000 0x100000>;
82*8d13bc63SEmmanuel Vadot			no-map;
83*8d13bc63SEmmanuel Vadot		};
84*8d13bc63SEmmanuel Vadot	};
85*8d13bc63SEmmanuel Vadot};
86*8d13bc63SEmmanuel Vadot
87*8d13bc63SEmmanuel Vadot&blsp1_i2c5 {
88*8d13bc63SEmmanuel Vadot	status = "okay";
89*8d13bc63SEmmanuel Vadot
90*8d13bc63SEmmanuel Vadot	touchscreen: touchscreen@4b {
91*8d13bc63SEmmanuel Vadot		compatible = "syna,rmi4-i2c";
92*8d13bc63SEmmanuel Vadot		reg = <0x4b>;
93*8d13bc63SEmmanuel Vadot
94*8d13bc63SEmmanuel Vadot		interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>;
95*8d13bc63SEmmanuel Vadot		vdd-supply = <&pm8226_l15>;
96*8d13bc63SEmmanuel Vadot		vio-supply = <&pm8226_l6>;
97*8d13bc63SEmmanuel Vadot
98*8d13bc63SEmmanuel Vadot		pinctrl-0 = <&touchscreen_default>;
99*8d13bc63SEmmanuel Vadot		pinctrl-names = "default";
100*8d13bc63SEmmanuel Vadot
101*8d13bc63SEmmanuel Vadot		#address-cells = <1>;
102*8d13bc63SEmmanuel Vadot		#size-cells = <0>;
103*8d13bc63SEmmanuel Vadot
104*8d13bc63SEmmanuel Vadot		rmi4-f01@1 {
105*8d13bc63SEmmanuel Vadot			reg = <0x01>;
106*8d13bc63SEmmanuel Vadot			syna,nosleep-mode = <1>;
107*8d13bc63SEmmanuel Vadot		};
108*8d13bc63SEmmanuel Vadot
109*8d13bc63SEmmanuel Vadot		rmi4-f11@11 {
110*8d13bc63SEmmanuel Vadot			reg = <0x11>;
111*8d13bc63SEmmanuel Vadot			syna,sensor-type = <1>;
112*8d13bc63SEmmanuel Vadot		};
113*8d13bc63SEmmanuel Vadot	};
114*8d13bc63SEmmanuel Vadot};
115*8d13bc63SEmmanuel Vadot
116*8d13bc63SEmmanuel Vadot&blsp1_uart3 {
117*8d13bc63SEmmanuel Vadot	status = "okay";
118*8d13bc63SEmmanuel Vadot};
119*8d13bc63SEmmanuel Vadot
120*8d13bc63SEmmanuel Vadot&pm8226_resin {
121*8d13bc63SEmmanuel Vadot	linux,code = <KEY_VOLUMEDOWN>;
122*8d13bc63SEmmanuel Vadot	status = "okay";
123*8d13bc63SEmmanuel Vadot};
124*8d13bc63SEmmanuel Vadot
125*8d13bc63SEmmanuel Vadot&pm8226_vib {
126*8d13bc63SEmmanuel Vadot	status = "okay";
127*8d13bc63SEmmanuel Vadot};
128*8d13bc63SEmmanuel Vadot
129*8d13bc63SEmmanuel Vadot&rpm_requests {
130*8d13bc63SEmmanuel Vadot	regulators {
131*8d13bc63SEmmanuel Vadot		compatible = "qcom,rpm-pm8226-regulators";
132*8d13bc63SEmmanuel Vadot
133*8d13bc63SEmmanuel Vadot		/* These values were taken from the original firmware DSDT */
134*8d13bc63SEmmanuel Vadot		pm8226_s1: s1 {
135*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1050000>;
136*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <1050000>;
137*8d13bc63SEmmanuel Vadot		};
138*8d13bc63SEmmanuel Vadot
139*8d13bc63SEmmanuel Vadot		pm8226_s3: s3 {
140*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1300000>;
141*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <1300000>;
142*8d13bc63SEmmanuel Vadot		};
143*8d13bc63SEmmanuel Vadot
144*8d13bc63SEmmanuel Vadot		pm8226_s4: s4 {
145*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
146*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <2100000>;
147*8d13bc63SEmmanuel Vadot		};
148*8d13bc63SEmmanuel Vadot
149*8d13bc63SEmmanuel Vadot		pm8226_s5: s5 {
150*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1150000>;
151*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <1150000>;
152*8d13bc63SEmmanuel Vadot		};
153*8d13bc63SEmmanuel Vadot
154*8d13bc63SEmmanuel Vadot		pm8226_l3: l3 {
155*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <750000>;
156*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <1150000>;
157*8d13bc63SEmmanuel Vadot		};
158*8d13bc63SEmmanuel Vadot
159*8d13bc63SEmmanuel Vadot		pm8226_l4: l4 {
160*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1200000>;
161*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <1200000>;
162*8d13bc63SEmmanuel Vadot		};
163*8d13bc63SEmmanuel Vadot
164*8d13bc63SEmmanuel Vadot		pm8226_l5: l5 {
165*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1200000>;
166*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <1200000>;
167*8d13bc63SEmmanuel Vadot		};
168*8d13bc63SEmmanuel Vadot
169*8d13bc63SEmmanuel Vadot		pm8226_l6: l6 {
170*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
171*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <1800000>;
172*8d13bc63SEmmanuel Vadot		};
173*8d13bc63SEmmanuel Vadot
174*8d13bc63SEmmanuel Vadot		pm8226_l7: l7 {
175*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1850000>;
176*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <1850000>;
177*8d13bc63SEmmanuel Vadot		};
178*8d13bc63SEmmanuel Vadot
179*8d13bc63SEmmanuel Vadot		pm8226_l8: l8 {
180*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
181*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <1800000>;
182*8d13bc63SEmmanuel Vadot			regulator-always-on;
183*8d13bc63SEmmanuel Vadot		};
184*8d13bc63SEmmanuel Vadot
185*8d13bc63SEmmanuel Vadot		pm8226_l9: l9 {
186*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <2050000>;
187*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <2050000>;
188*8d13bc63SEmmanuel Vadot		};
189*8d13bc63SEmmanuel Vadot
190*8d13bc63SEmmanuel Vadot		pm8226_l10: l10 {
191*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
192*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <1800000>;
193*8d13bc63SEmmanuel Vadot		};
194*8d13bc63SEmmanuel Vadot
195*8d13bc63SEmmanuel Vadot		pm8226_l12: l12 {
196*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
197*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <1800000>;
198*8d13bc63SEmmanuel Vadot		};
199*8d13bc63SEmmanuel Vadot
200*8d13bc63SEmmanuel Vadot		pm8226_l14: l14 {
201*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <2750000>;
202*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <2750000>;
203*8d13bc63SEmmanuel Vadot		};
204*8d13bc63SEmmanuel Vadot
205*8d13bc63SEmmanuel Vadot		pm8226_l15: l15 {
206*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <2850000>;
207*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <2850000>;
208*8d13bc63SEmmanuel Vadot		};
209*8d13bc63SEmmanuel Vadot
210*8d13bc63SEmmanuel Vadot		pm8226_l16: l16 {
211*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <3000000>;
212*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <3000000>;
213*8d13bc63SEmmanuel Vadot		};
214*8d13bc63SEmmanuel Vadot
215*8d13bc63SEmmanuel Vadot		pm8226_l17: l17 {
216*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <2950000>;
217*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <2950000>;
218*8d13bc63SEmmanuel Vadot			regulator-system-load = <200000>;
219*8d13bc63SEmmanuel Vadot			regulator-allow-set-load;
220*8d13bc63SEmmanuel Vadot		};
221*8d13bc63SEmmanuel Vadot
222*8d13bc63SEmmanuel Vadot		pm8226_l18: l18 {
223*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <2950000>;
224*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <2950000>;
225*8d13bc63SEmmanuel Vadot			regulator-system-load = <200000>;
226*8d13bc63SEmmanuel Vadot			regulator-allow-set-load;
227*8d13bc63SEmmanuel Vadot		};
228*8d13bc63SEmmanuel Vadot
229*8d13bc63SEmmanuel Vadot		pm8226_l19: l19 {
230*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <2850000>;
231*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <2850000>;
232*8d13bc63SEmmanuel Vadot		};
233*8d13bc63SEmmanuel Vadot
234*8d13bc63SEmmanuel Vadot		pm8226_l20: l20 {
235*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <3075000>;
236*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <3075000>;
237*8d13bc63SEmmanuel Vadot		};
238*8d13bc63SEmmanuel Vadot
239*8d13bc63SEmmanuel Vadot		pm8226_l21: l21 {
240*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1850000>;
241*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <2950000>;
242*8d13bc63SEmmanuel Vadot		};
243*8d13bc63SEmmanuel Vadot
244*8d13bc63SEmmanuel Vadot		pm8226_l22: l22 {
245*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
246*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <1800000>;
247*8d13bc63SEmmanuel Vadot		};
248*8d13bc63SEmmanuel Vadot
249*8d13bc63SEmmanuel Vadot		pm8226_l23: l23 {
250*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1800000>;
251*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <1800000>;
252*8d13bc63SEmmanuel Vadot		};
253*8d13bc63SEmmanuel Vadot
254*8d13bc63SEmmanuel Vadot		pm8226_l24: l24 {
255*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1300000>;
256*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <1300000>;
257*8d13bc63SEmmanuel Vadot		};
258*8d13bc63SEmmanuel Vadot
259*8d13bc63SEmmanuel Vadot		pm8226_l25: l25 {
260*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <1775000>;
261*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <2075000>;
262*8d13bc63SEmmanuel Vadot		};
263*8d13bc63SEmmanuel Vadot
264*8d13bc63SEmmanuel Vadot		pm8226_l27: l27 {
265*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <2050000>;
266*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <2050000>;
267*8d13bc63SEmmanuel Vadot		};
268*8d13bc63SEmmanuel Vadot
269*8d13bc63SEmmanuel Vadot		pm8226_l28: l28 {
270*8d13bc63SEmmanuel Vadot			regulator-min-microvolt = <2000000>;
271*8d13bc63SEmmanuel Vadot			regulator-max-microvolt = <3000000>;
272*8d13bc63SEmmanuel Vadot		};
273*8d13bc63SEmmanuel Vadot	};
274*8d13bc63SEmmanuel Vadot};
275*8d13bc63SEmmanuel Vadot
276*8d13bc63SEmmanuel Vadot&sdhc_1 {
277*8d13bc63SEmmanuel Vadot	vmmc-supply = <&pm8226_l17>;
278*8d13bc63SEmmanuel Vadot	vqmmc-supply = <&pm8226_l6>;
279*8d13bc63SEmmanuel Vadot
280*8d13bc63SEmmanuel Vadot	status = "okay";
281*8d13bc63SEmmanuel Vadot};
282*8d13bc63SEmmanuel Vadot
283*8d13bc63SEmmanuel Vadot&sdhc_2 {
284*8d13bc63SEmmanuel Vadot	vmmc-supply = <&pm8226_l18>;
285*8d13bc63SEmmanuel Vadot	vqmmc-supply = <&pm8226_l21>;
286*8d13bc63SEmmanuel Vadot
287*8d13bc63SEmmanuel Vadot	status = "okay";
288*8d13bc63SEmmanuel Vadot};
289*8d13bc63SEmmanuel Vadot
290*8d13bc63SEmmanuel Vadot&usb {
291*8d13bc63SEmmanuel Vadot	extcon = <&smbb>;
292*8d13bc63SEmmanuel Vadot	dr_mode = "peripheral";
293*8d13bc63SEmmanuel Vadot
294*8d13bc63SEmmanuel Vadot	status = "okay";
295*8d13bc63SEmmanuel Vadot};
296*8d13bc63SEmmanuel Vadot
297*8d13bc63SEmmanuel Vadot&usb_hs_phy {
298*8d13bc63SEmmanuel Vadot	extcon = <&smbb>;
299*8d13bc63SEmmanuel Vadot	v1p8-supply = <&pm8226_l10>;
300*8d13bc63SEmmanuel Vadot	v3p3-supply = <&pm8226_l20>;
301*8d13bc63SEmmanuel Vadot};
302*8d13bc63SEmmanuel Vadot
303*8d13bc63SEmmanuel Vadot&tlmm {
304*8d13bc63SEmmanuel Vadot	gpio_keys_default: gpio-keys-default-state {
305*8d13bc63SEmmanuel Vadot		pins = "gpio106", "gpio107", "gpio108";
306*8d13bc63SEmmanuel Vadot		function = "gpio";
307*8d13bc63SEmmanuel Vadot		drive-strength = <2>;
308*8d13bc63SEmmanuel Vadot		bias-pull-up;
309*8d13bc63SEmmanuel Vadot	};
310*8d13bc63SEmmanuel Vadot
311*8d13bc63SEmmanuel Vadot	touchscreen_default: touchscreen-default-state {
312*8d13bc63SEmmanuel Vadot		irq-pins {
313*8d13bc63SEmmanuel Vadot			pins = "gpio17";
314*8d13bc63SEmmanuel Vadot			function = "gpio";
315*8d13bc63SEmmanuel Vadot			drive-strength = <8>;
316*8d13bc63SEmmanuel Vadot			bias-pull-up;
317*8d13bc63SEmmanuel Vadot		};
318*8d13bc63SEmmanuel Vadot
319*8d13bc63SEmmanuel Vadot		reset-pins {
320*8d13bc63SEmmanuel Vadot			pins = "gpio16";
321*8d13bc63SEmmanuel Vadot			function = "gpio";
322*8d13bc63SEmmanuel Vadot			drive-strength = <8>;
323*8d13bc63SEmmanuel Vadot			bias-disable;
324*8d13bc63SEmmanuel Vadot			output-high;
325*8d13bc63SEmmanuel Vadot		};
326*8d13bc63SEmmanuel Vadot	};
327*8d13bc63SEmmanuel Vadot};
328