1// SPDX-License-Identifier: GPL-2.0-only
2
3/dts-v1/;
4
5#include "msm8916-pm8916.dtsi"
6#include <dt-bindings/gpio/gpio.h>
7#include <dt-bindings/input/input.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9
10/ {
11	model = "Asus Zenfone 2 Laser";
12	compatible = "asus,z00l", "qcom,msm8916";
13	chassis-type = "handset";
14
15	aliases {
16		serial0 = &blsp1_uart2;
17	};
18
19	chosen {
20		stdout-path = "serial0";
21	};
22
23	gpio-keys {
24		compatible = "gpio-keys";
25
26		pinctrl-names = "default";
27		pinctrl-0 = <&gpio_keys_default>;
28
29		label = "GPIO Buttons";
30
31		button-volume-up {
32			label = "Volume Up";
33			gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
34			linux,code = <KEY_VOLUMEUP>;
35			debounce-interval = <15>;
36		};
37
38		button-volume-down {
39			label = "Volume Down";
40			gpios = <&msmgpio 117 GPIO_ACTIVE_LOW>;
41			linux,code = <KEY_VOLUMEDOWN>;
42			debounce-interval = <15>;
43		};
44	};
45
46	reg_sd_vmmc: regulator-sdcard-vmmc {
47		compatible = "regulator-fixed";
48		regulator-name = "sdcard-vmmc";
49		regulator-min-microvolt = <2950000>;
50		regulator-max-microvolt = <2950000>;
51
52		gpio = <&msmgpio 87 GPIO_ACTIVE_HIGH>;
53		enable-active-high;
54
55		startup-delay-us = <200>;
56
57		pinctrl-names = "default";
58		pinctrl-0 = <&sd_vmmc_en_default>;
59	};
60
61	usb_id: usb-id {
62		compatible = "linux,extcon-usb-gpio";
63		id-gpios = <&msmgpio 110 GPIO_ACTIVE_HIGH>;
64		pinctrl-names = "default";
65		pinctrl-0 = <&usb_id_default>;
66	};
67};
68
69&blsp_i2c2 {
70	status = "okay";
71
72	magnetometer@c {
73		compatible = "asahi-kasei,ak09911";
74		reg = <0x0c>;
75
76		vdd-supply = <&pm8916_l8>;
77		vid-supply = <&pm8916_l6>;
78
79		reset-gpios = <&msmgpio 112 GPIO_ACTIVE_LOW>;
80
81		pinctrl-names = "default";
82		pinctrl-0 = <&mag_reset_default>;
83	};
84
85	imu@68 {
86		compatible = "invensense,mpu6515";
87		reg = <0x68>;
88
89		interrupt-parent = <&msmgpio>;
90		interrupts = <36 IRQ_TYPE_EDGE_RISING>;
91
92		vdd-supply = <&pm8916_l17>;
93		vddio-supply = <&pm8916_l6>;
94
95		pinctrl-names = "default";
96		pinctrl-0 = <&imu_default>;
97
98		mount-matrix = "1",  "0", "0",
99			       "0", "-1", "0",
100			       "0",  "0", "1";
101	};
102};
103
104&blsp_i2c5 {
105	status = "okay";
106
107	touchscreen@38 {
108		compatible = "edt,edt-ft5306";
109		reg = <0x38>;
110
111		interrupt-parent = <&msmgpio>;
112		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
113
114		reset-gpios = <&msmgpio 12 GPIO_ACTIVE_LOW>;
115
116		vcc-supply = <&pm8916_l11>;
117		iovcc-supply = <&pm8916_l6>;
118
119		touchscreen-size-x = <720>;
120		touchscreen-size-y = <1280>;
121
122		pinctrl-names = "default";
123		pinctrl-0 = <&touchscreen_default>;
124	};
125};
126
127&blsp1_uart2 {
128	status = "okay";
129};
130
131&pronto {
132	status = "okay";
133};
134
135&sdhc_1 {
136	status = "okay";
137
138	pinctrl-names = "default", "sleep";
139	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
140	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
141};
142
143&sdhc_2 {
144	status = "okay";
145	vmmc-supply = <&reg_sd_vmmc>;
146
147	pinctrl-names = "default", "sleep";
148	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
149	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
150	cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
151};
152
153&usb {
154	status = "okay";
155	extcon = <&usb_id>, <&usb_id>;
156};
157
158&usb_hs_phy {
159	extcon = <&usb_id>;
160};
161
162&smd_rpm_regulators {
163	vdd_l1_l2_l3-supply = <&pm8916_s3>;
164	vdd_l4_l5_l6-supply = <&pm8916_s4>;
165	vdd_l7-supply = <&pm8916_s4>;
166
167	s3 {
168		regulator-min-microvolt = <1200000>;
169		regulator-max-microvolt = <1300000>;
170	};
171
172	s4 {
173		regulator-min-microvolt = <1800000>;
174		regulator-max-microvolt = <2100000>;
175	};
176
177	l1 {
178		regulator-min-microvolt = <1225000>;
179		regulator-max-microvolt = <1225000>;
180	};
181
182	l2 {
183		regulator-min-microvolt = <1200000>;
184		regulator-max-microvolt = <1200000>;
185	};
186
187	l4 {
188		regulator-min-microvolt = <2050000>;
189		regulator-max-microvolt = <2050000>;
190	};
191
192	l5 {
193		regulator-min-microvolt = <1800000>;
194		regulator-max-microvolt = <1800000>;
195	};
196
197	l6 {
198		regulator-min-microvolt = <1800000>;
199		regulator-max-microvolt = <1800000>;
200	};
201
202	l7 {
203		regulator-min-microvolt = <1800000>;
204		regulator-max-microvolt = <1800000>;
205	};
206
207	l8 {
208		regulator-min-microvolt = <2850000>;
209		regulator-max-microvolt = <2900000>;
210	};
211
212	l9 {
213		regulator-min-microvolt = <3300000>;
214		regulator-max-microvolt = <3300000>;
215	};
216
217	l10 {
218		regulator-min-microvolt = <2700000>;
219		regulator-max-microvolt = <2800000>;
220	};
221
222	l11 {
223		regulator-min-microvolt = <1800000>;
224		regulator-max-microvolt = <2950000>;
225		regulator-allow-set-load;
226		regulator-system-load = <200000>;
227	};
228
229	l12 {
230		regulator-min-microvolt = <1800000>;
231		regulator-max-microvolt = <2950000>;
232	};
233
234	l13 {
235		regulator-min-microvolt = <3075000>;
236		regulator-max-microvolt = <3075000>;
237	};
238
239	l14 {
240		regulator-min-microvolt = <1800000>;
241		regulator-max-microvolt = <3300000>;
242	};
243
244	l15 {
245		regulator-min-microvolt = <1800000>;
246		regulator-max-microvolt = <3300000>;
247	};
248
249	l16 {
250		regulator-min-microvolt = <1800000>;
251		regulator-max-microvolt = <3300000>;
252	};
253
254	l17 {
255		regulator-min-microvolt = <2850000>;
256		regulator-max-microvolt = <2850000>;
257	};
258
259	l18 {
260		regulator-min-microvolt = <2700000>;
261		regulator-max-microvolt = <2700000>;
262	};
263};
264
265&msmgpio {
266	gpio_keys_default: gpio-keys-default-state {
267		pins = "gpio107", "gpio117";
268		function = "gpio";
269
270		drive-strength = <2>;
271		bias-pull-up;
272	};
273
274	imu_default: imu-default-state {
275		pins = "gpio36";
276		function = "gpio";
277
278		drive-strength = <2>;
279		bias-disable;
280	};
281
282	mag_reset_default: mag-reset-default-state {
283		pins = "gpio112";
284		function = "gpio";
285
286		drive-strength = <2>;
287		bias-disable;
288	};
289
290	sd_vmmc_en_default: sd-vmmc-en-default-state {
291		pins = "gpio87";
292		function = "gpio";
293
294		drive-strength = <2>;
295		bias-disable;
296	};
297
298	touchscreen_default: touchscreen-default-state {
299		touch-pins {
300			pins = "gpio13";
301			function = "gpio";
302
303			drive-strength = <2>;
304			bias-pull-up;
305		};
306
307		reset-pins {
308			pins = "gpio12";
309			function = "gpio";
310
311			drive-strength = <2>;
312			bias-disable;
313		};
314	};
315
316	usb_id_default: usb-id-default-state {
317		pins = "gpio110";
318		function = "gpio";
319
320		drive-strength = <8>;
321		bias-pull-up;
322	};
323};
324