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		mmc0 = &sdhc_1; /* eMMC */
17		mmc1 = &sdhc_2; /* SD card */
18		serial0 = &blsp_uart2;
19	};
20
21	chosen {
22		stdout-path = "serial0";
23	};
24
25	gpio-keys {
26		compatible = "gpio-keys";
27
28		pinctrl-names = "default";
29		pinctrl-0 = <&gpio_keys_default>;
30
31		label = "GPIO Buttons";
32
33		button-volume-up {
34			label = "Volume Up";
35			gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
36			linux,code = <KEY_VOLUMEUP>;
37			debounce-interval = <15>;
38		};
39
40		button-volume-down {
41			label = "Volume Down";
42			gpios = <&tlmm 117 GPIO_ACTIVE_LOW>;
43			linux,code = <KEY_VOLUMEDOWN>;
44			debounce-interval = <15>;
45		};
46	};
47
48	reg_sd_vmmc: regulator-sdcard-vmmc {
49		compatible = "regulator-fixed";
50		regulator-name = "sdcard-vmmc";
51		regulator-min-microvolt = <2950000>;
52		regulator-max-microvolt = <2950000>;
53
54		gpio = <&tlmm 87 GPIO_ACTIVE_HIGH>;
55		enable-active-high;
56
57		startup-delay-us = <200>;
58
59		pinctrl-names = "default";
60		pinctrl-0 = <&sd_vmmc_en_default>;
61	};
62
63	usb_id: usb-id {
64		compatible = "linux,extcon-usb-gpio";
65		id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
66		pinctrl-names = "default";
67		pinctrl-0 = <&usb_id_default>;
68	};
69};
70
71&blsp_i2c2 {
72	status = "okay";
73
74	magnetometer@c {
75		compatible = "asahi-kasei,ak09911";
76		reg = <0x0c>;
77
78		vdd-supply = <&pm8916_l8>;
79		vid-supply = <&pm8916_l6>;
80
81		reset-gpios = <&tlmm 112 GPIO_ACTIVE_LOW>;
82
83		pinctrl-names = "default";
84		pinctrl-0 = <&mag_reset_default>;
85	};
86
87	imu@68 {
88		compatible = "invensense,mpu6515";
89		reg = <0x68>;
90
91		interrupt-parent = <&tlmm>;
92		interrupts = <36 IRQ_TYPE_EDGE_RISING>;
93
94		vdd-supply = <&pm8916_l17>;
95		vddio-supply = <&pm8916_l6>;
96
97		pinctrl-names = "default";
98		pinctrl-0 = <&imu_default>;
99
100		mount-matrix = "1",  "0", "0",
101			       "0", "-1", "0",
102			       "0",  "0", "1";
103	};
104};
105
106&blsp_i2c5 {
107	status = "okay";
108
109	touchscreen@38 {
110		compatible = "edt,edt-ft5306";
111		reg = <0x38>;
112
113		interrupt-parent = <&tlmm>;
114		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
115
116		reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;
117
118		vcc-supply = <&pm8916_l11>;
119		iovcc-supply = <&pm8916_l6>;
120
121		touchscreen-size-x = <720>;
122		touchscreen-size-y = <1280>;
123
124		pinctrl-names = "default";
125		pinctrl-0 = <&touchscreen_default>;
126	};
127};
128
129&blsp_uart2 {
130	status = "okay";
131};
132
133&pm8916_rpm_regulators {
134	pm8916_l17: l17 {
135		regulator-min-microvolt = <2850000>;
136		regulator-max-microvolt = <2850000>;
137	};
138};
139
140&sdhc_1 {
141	status = "okay";
142};
143
144&sdhc_2 {
145	status = "okay";
146	vmmc-supply = <&reg_sd_vmmc>;
147
148	pinctrl-names = "default", "sleep";
149	pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
150	pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
151	cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
152};
153
154&usb {
155	status = "okay";
156	extcon = <&usb_id>, <&usb_id>;
157};
158
159&usb_hs_phy {
160	extcon = <&usb_id>;
161};
162
163&wcnss {
164	status = "okay";
165};
166
167&wcnss_iris {
168	compatible = "qcom,wcn3620";
169};
170
171&tlmm {
172	gpio_keys_default: gpio-keys-default-state {
173		pins = "gpio107", "gpio117";
174		function = "gpio";
175
176		drive-strength = <2>;
177		bias-pull-up;
178	};
179
180	imu_default: imu-default-state {
181		pins = "gpio36";
182		function = "gpio";
183
184		drive-strength = <2>;
185		bias-disable;
186	};
187
188	mag_reset_default: mag-reset-default-state {
189		pins = "gpio112";
190		function = "gpio";
191
192		drive-strength = <2>;
193		bias-disable;
194	};
195
196	sd_vmmc_en_default: sd-vmmc-en-default-state {
197		pins = "gpio87";
198		function = "gpio";
199
200		drive-strength = <2>;
201		bias-disable;
202	};
203
204	sdc2_cd_default: sdc2-cd-default-state {
205		pins = "gpio38";
206		function = "gpio";
207		drive-strength = <2>;
208		bias-disable;
209	};
210
211	touchscreen_default: touchscreen-default-state {
212		touch-pins {
213			pins = "gpio13";
214			function = "gpio";
215
216			drive-strength = <2>;
217			bias-pull-up;
218		};
219
220		reset-pins {
221			pins = "gpio12";
222			function = "gpio";
223
224			drive-strength = <2>;
225			bias-disable;
226		};
227	};
228
229	usb_id_default: usb-id-default-state {
230		pins = "gpio110";
231		function = "gpio";
232
233		drive-strength = <8>;
234		bias-pull-up;
235	};
236};
237