xref: /freebsd/sys/contrib/device-tree/src/arm64/qcom/msm8939-asus-z00t.dts (revision 69ed3df4f588860308677cda76cbcce1f19a54c9)
1// SPDX-License-Identifier: GPL-2.0-only
2
3/dts-v1/;
4
5#include "msm8939-pm8916.dtsi"
6#include "msm8916-modem-qdsp6.dtsi"
7
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/input/input.h>
10#include <dt-bindings/interrupt-controller/irq.h>
11
12/ {
13	model = "Asus ZenFone 2 Laser/Selfie (1080p)";
14	compatible = "asus,z00t", "qcom,msm8939";
15	chassis-type = "handset";
16
17	aliases {
18		mmc0 = &sdhc_1;
19		mmc1 = &sdhc_2;
20		serial0 = &blsp_uart2;
21	};
22
23	battery: battery {
24		compatible = "simple-battery";
25		device-chemistry = "lithium-ion-polymer";
26		voltage-min-design-microvolt = <3400000>;
27		voltage-max-design-microvolt = <4400000>;
28		energy-full-design-microwatt-hours = <11500000>;
29		charge-full-design-microamp-hours = <3000000>;
30
31		ocv-capacity-celsius = <(-20) 0 25 40 60>;
32		ocv-capacity-table-0 = <4378000 100>, <4220000 95>, <4125000 90>,
33			<4071000 85>, <3977000 80>, <3916000 75>, <3866000 70>,
34			<3838000 65>, <3822000 60>, <3809000 55>, <3797000 50>,
35			<3784000 45>, <3771000 40>, <3757000 35>, <3743000 30>,
36			<3726000 25>, <3707000 20>, <3688000 16>, <3670000 13>,
37			<3655000 11>, <3648000 10>, <3636000 9>, <3624000 8>,
38			<3612000 7>, <3592000 6>, <3569000 5>, <3540000 4>,
39			<3494000 3>, <3418000 2>, <3289000 1>, <3000000 0>;
40
41		ocv-capacity-table-1 = <4378000 100>, <4292000 95>, <4226000 90>,
42			<4166000 85>, <4109000 80>, <4064000 75>, <3992000 70>,
43			<3942000 65>, <3898000 60>, <3859000 55>, <3826000 50>,
44			<3802000 45>, <3788000 40>, <3779000 35>, <3768000 30>,
45			<3752000 25>, <3732000 20>, <3712000 16>, <3696000 13>,
46			<3688000 11>, <3684000 10>, <3680000 9>, <3675000 8>,
47			<3669000 7>, <3658000 6>, <3636000 5>, <3599000 4>,
48			<3544000 3>, <3466000 2>, <3341000 1>, <3000000 0>;
49
50		ocv-capacity-table-2 = <4372000 100>, <4306000 95>, <4247000 90>,
51			<4190000 85>, <4134000 80>, <4081000 75>, <4030000 70>,
52			<3984000 65>, <3930000 60>, <3884000 55>, <3850000 50>,
53			<3826000 45>, <3804000 40>, <3786000 35>, <3770000 30>,
54			<3753000 25>, <3734000 20>, <3712000 16>, <3693000 13>,
55			<3686000 11>, <3684000 10>, <3682000 9>, <3680000 8>,
56			<3676000 7>, <3668000 6>, <3643000 5>, <3600000 4>,
57			<3542000 3>, <3462000 2>, <3340000 1>, <3000000 0>;
58
59		ocv-capacity-table-3 = <4365000 100>, <4304000 95>, <4246000 90>,
60			<4189000 85>, <4133000 80>, <4080000 75>, <4030000 70>,
61			<3985000 65>, <3933000 60>, <3886000 55>, <3852000 50>,
62			<3827000 45>, <3806000 40>, <3789000 35>, <3769000 30>,
63			<3746000 25>, <3726000 20>, <3706000 16>, <3688000 13>,
64			<3681000 11>, <3678000 10>, <3676000 9>, <3676000 8>,
65			<3672000 7>, <3660000 6>, <3634000 5>, <3588000 4>,
66			<3528000 3>, <3448000 2>, <3322000 1>, <3000000 0>;
67
68		ocv-capacity-table-4 = <4358000 100>, <4298000 95>, <4240000 90>,
69			<4183000 85>, <4128000 80>, <4076000 75>, <4027000 70>,
70			<3983000 65>, <3935000 60>, <3887000 55>, <3852000 50>,
71			<3827000 45>, <3806000 40>, <3789000 35>, <3764000 30>,
72			<3738000 25>, <3715000 20>, <3695000 16>, <3677000 13>,
73			<3672000 11>, <3669000 10>, <3667000 9>, <3666000 8>,
74			<3662000 7>, <3652000 6>, <3622000 5>, <3577000 4>,
75			<3518000 3>, <3440000 2>, <3321000 1>, <3000000 0>;
76	};
77
78	chosen {
79		stdout-path = "serial0";
80	};
81
82	gpio-keys {
83		compatible = "gpio-keys";
84
85		pinctrl-0 = <&gpio_hall_sensor_default>, <&gpio_keys_default>;
86		pinctrl-names = "default";
87
88		button-volume-up {
89			label = "Volume Up";
90			gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
91			linux,code = <KEY_VOLUMEUP>;
92			debounce-interval = <15>;
93		};
94
95		button-volume-down {
96			label = "Volume Down";
97			gpios = <&tlmm 117 GPIO_ACTIVE_LOW>;
98			linux,code = <KEY_VOLUMEDOWN>;
99			debounce-interval = <15>;
100		};
101
102		event-hall-sensor {
103			label = "Hall Effect Sensor";
104			gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
105			linux,input-type = <EV_SW>;
106			linux,code = <SW_LID>;
107			linux,can-disable;
108			debounce-interval = <150>;
109		};
110	};
111
112	reg_sd_vmmc: regulator-sdcard-vmmc {
113		compatible = "regulator-fixed";
114		regulator-name = "sdcard-vmmc";
115		regulator-min-microvolt = <2950000>;
116		regulator-max-microvolt = <2950000>;
117
118		gpio = <&tlmm 87 GPIO_ACTIVE_HIGH>;
119		enable-active-high;
120
121		startup-delay-us = <200>;
122
123		pinctrl-0 = <&sd_vmmc_en_default>;
124		pinctrl-names = "default";
125	};
126
127	usb_id: usb-id {
128		compatible = "linux,extcon-usb-gpio";
129		id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
130		pinctrl-0 = <&usb_id_default>;
131		pinctrl-names = "default";
132	};
133};
134
135&blsp_i2c2 {
136	status = "okay";
137
138	magnetometer@c {
139		compatible = "asahi-kasei,ak09911";
140		reg = <0x0c>;
141
142		vdd-supply = <&pm8916_l8>;
143		vid-supply = <&pm8916_l6>;
144
145		reset-gpios = <&tlmm 112 GPIO_ACTIVE_LOW>;
146		pinctrl-0 = <&mag_reset_default>;
147		pinctrl-names = "default";
148	};
149
150	light-sensor@60 {
151		compatible = "capella,cm36686", "vishay,vcnl4040";
152		reg = <0x60>;
153
154		interrupts-extended = <&tlmm 113 IRQ_TYPE_EDGE_FALLING>;
155		proximity-near-level = <30>;
156
157		vdd-supply = <&pm8916_l8>;
158		vio-supply = <&pm8916_l6>;
159
160		pinctrl-0 = <&light_int_default>;
161		pinctrl-names = "default";
162	};
163
164	imu@68 {
165		compatible = "invensense,mpu6515";
166		reg = <0x68>;
167
168		interrupts-extended = <&tlmm 36 IRQ_TYPE_EDGE_RISING>;
169
170		vdd-supply = <&pm8916_l8>;
171		vddio-supply = <&pm8916_l6>;
172
173		pinctrl-0 = <&imu_default>;
174		pinctrl-names = "default";
175
176		mount-matrix = "0",  "1", "0",
177			       "-1", "0", "0",
178			       "0",  "0", "1";
179	};
180};
181
182&blsp_i2c5 {
183	status = "okay";
184
185	touchscreen@38 {
186		compatible = "edt,edt-ft5306";
187		reg = <0x38>;
188
189		interrupts-extended = <&tlmm 13 IRQ_TYPE_EDGE_FALLING>;
190
191		reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;
192
193		vcc-supply = <&pm8916_l8>;
194		iovcc-supply = <&pm8916_l6>;
195
196		touchscreen-size-x = <1080>;
197		touchscreen-size-y = <1920>;
198
199		pinctrl-0 = <&touchscreen_default>;
200		pinctrl-names = "default";
201	};
202};
203
204&blsp_uart2 {
205	pinctrl-0 = <&blsp_uart2_console_default>;
206	pinctrl-1 = <&blsp_uart2_console_sleep>;
207	pinctrl-names = "default", "sleep";
208
209	status = "okay";
210};
211
212&mpss_mem {
213	reg = <0x0 0x86800000 0x0 0x5500000>;
214};
215
216&pm8916_bms {
217	monitored-battery = <&battery>;
218
219	status = "okay";
220};
221
222&pm8916_codec {
223	qcom,micbias-lvl = <2800>;
224	qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
225	qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
226	qcom,micbias1-ext-cap;
227	qcom,hphl-jack-type-normally-open;
228
229	status = "okay";
230};
231
232&pm8916_vib {
233	status = "okay";
234};
235
236&sdhc_1 {
237	status = "okay";
238};
239
240&sdhc_2 {
241	vmmc-supply = <&reg_sd_vmmc>;
242
243	pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
244	pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
245	pinctrl-names = "default", "sleep";
246	cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
247
248	status = "okay";
249};
250
251&sound {
252	audio-routing =
253		"AMIC1", "MIC BIAS External1",
254		"AMIC2", "MIC BIAS Internal2",
255		"AMIC3", "MIC BIAS External1";
256
257	status = "okay";
258};
259
260&usb {
261	extcon = <&usb_id>, <&usb_id>;
262
263	status = "okay";
264};
265
266&usb_hs_phy {
267	extcon = <&usb_id>;
268};
269
270&wcnss {
271	status = "okay";
272};
273
274&wcnss_iris {
275	compatible = "qcom,wcn3660b";
276};
277
278&wcnss_mem {
279	status = "okay";
280};
281
282&tlmm {
283	touchscreen_default: touchscreen-default-state {
284		reset-pins {
285			pins = "gpio12";
286			function = "gpio";
287			drive-strength = <2>;
288			bias-disable;
289		};
290
291		touch-pins {
292			pins = "gpio13";
293			function = "gpio";
294			drive-strength = <2>;
295			bias-pull-up;
296		};
297	};
298
299	imu_default: imu-default-state {
300		pins = "gpio36";
301		function = "gpio";
302		drive-strength = <2>;
303		bias-disable;
304	};
305
306	sdc2_cd_default: sdc2-cd-default-state {
307		pins = "gpio38";
308		function = "gpio";
309		drive-strength = <2>;
310		bias-disable;
311	};
312
313	sd_vmmc_en_default: sd-vmmc-en-default-state {
314		pins = "gpio87";
315		function = "gpio";
316		drive-strength = <2>;
317		bias-disable;
318	};
319
320	gpio_keys_default: gpio-keys-default-state {
321		pins = "gpio107", "gpio117";
322		function = "gpio";
323		drive-strength = <2>;
324		bias-pull-up;
325	};
326
327	gpio_hall_sensor_default: gpio-hall-sensor-default-state {
328		pins = "gpio108";
329		function = "gpio";
330		drive-strength = <2>;
331		bias-pull-up;
332	};
333
334	usb_id_default: usb-id-default-state {
335		pins = "gpio110";
336		function = "gpio";
337		drive-strength = <8>;
338		bias-pull-up;
339	};
340
341	mag_reset_default: mag-reset-default-state {
342		pins = "gpio112";
343		function = "gpio";
344		drive-strength = <2>;
345		bias-disable;
346	};
347
348	light_int_default: light-int-default-state {
349		pins = "gpio113";
350		function = "gpio";
351		drive-strength = <16>;
352		bias-pull-up;
353	};
354};
355