xref: /linux/arch/arm64/boot/dts/qcom/msm8939-longcheer-l9100.dts (revision 566ab427f827b0256d3e8ce0235d088e6a9c28bd)
1// SPDX-License-Identifier: GPL-2.0-only
2
3/dts-v1/;
4
5#include "msm8939-pm8916.dtsi"
6
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/input/input.h>
9#include <dt-bindings/interrupt-controller/irq.h>
10#include <dt-bindings/leds/common.h>
11#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
12#include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
13
14/ {
15	model = "BQ Aquaris M5 (Longcheer L9100)";
16	compatible = "longcheer,l9100", "qcom,msm8939";
17	chassis-type = "handset";
18
19	aliases {
20		mmc0 = &sdhc_1; /* eMMC */
21		mmc1 = &sdhc_2; /* SD card */
22		serial0 = &blsp_uart2;
23	};
24
25	chosen {
26		stdout-path = "serial0";
27	};
28
29	gpio-hall-sensor {
30		compatible = "gpio-keys";
31
32		pinctrl-0 = <&gpio_hall_sensor_default>;
33		pinctrl-names = "default";
34
35		label = "GPIO Hall Effect Sensor";
36
37		event-hall-sensor {
38			label = "Hall Effect Sensor";
39			gpios = <&tlmm 20 GPIO_ACTIVE_LOW>;
40			linux,input-type = <EV_SW>;
41			linux,code = <SW_LID>;
42			linux,can-disable;
43		};
44	};
45
46	gpio-keys {
47		compatible = "gpio-keys";
48
49		pinctrl-0 = <&gpio_keys_default>;
50		pinctrl-names = "default";
51
52		label = "GPIO Buttons";
53
54		button-volume-up {
55			label = "Volume Up";
56			gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
57			linux,code = <KEY_VOLUMEUP>;
58		};
59	};
60
61	leds {
62		compatible = "gpio-leds";
63
64		led-0 {
65			gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
66			color = <LED_COLOR_ID_WHITE>;
67			default-state = "off";
68			function = LED_FUNCTION_KBD_BACKLIGHT;
69
70			pinctrl-0 = <&button_backlight_default>;
71			pinctrl-names = "default";
72		};
73	};
74
75	reg_ts_vdd: regulator-vdd-ts {
76		compatible = "regulator-fixed";
77		regulator-name = "regulator-vdd-ts";
78		regulator-min-microvolt = <2850000>;
79		regulator-max-microvolt = <2850000>;
80
81		gpio = <&tlmm 78 GPIO_ACTIVE_HIGH>;
82		enable-active-high;
83
84		pinctrl-0 = <&ts_vdd_default>;
85		pinctrl-names = "default";
86	};
87
88	backlight {
89		compatible = "pwm-backlight";
90		pwms = <&pm8916_pwm 0 100000>;
91		brightness-levels = <0 255>;
92		num-interpolated-steps = <255>;
93		default-brightness-level = <128>;
94		enable-gpios = <&tlmm 98 GPIO_ACTIVE_HIGH>;
95
96		pinctrl-0 = <&lcd_bl_en_default>;
97		pinctrl-names = "default";
98	};
99
100	flash-led-controller {
101		compatible = "ocs,ocp8110";
102		flash-gpios = <&tlmm 8 GPIO_ACTIVE_HIGH>;
103		enable-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;
104
105		pinctrl-0 = <&camera_front_flash_default>;
106		pinctrl-names = "default";
107
108		led {
109			function = LED_FUNCTION_FLASH;
110			color = <LED_COLOR_ID_WHITE>;
111			flash-max-timeout-us = <250000>;
112		};
113	};
114
115	usb_id: usb-id {
116		compatible = "linux,extcon-usb-gpio";
117		id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
118		pinctrl-0 = <&usb_id_default &usb_id_switch_default>;
119		pinctrl-names = "default";
120	};
121
122};
123
124&blsp_i2c2 {
125	status = "okay";
126
127	led-controller@30 {
128		compatible = "kinetic,ktd2026";
129		reg = <0x30>;
130		#address-cells = <1>;
131		#size-cells = <0>;
132
133		vin-supply = <&pm8916_l17>;
134		vio-supply = <&pm8916_l6>;
135
136		pinctrl-0 = <&status_led_default>;
137		pinctrl-names = "default";
138
139		multi-led {
140			color = <LED_COLOR_ID_RGB>;
141			function = LED_FUNCTION_STATUS;
142
143			#address-cells = <1>;
144			#size-cells = <0>;
145
146			led@0 {
147				reg = <0>;
148				color = <LED_COLOR_ID_RED>;
149			};
150
151			led@1 {
152				reg = <1>;
153				color = <LED_COLOR_ID_GREEN>;
154			};
155
156			led@2 {
157				reg = <2>;
158				color = <LED_COLOR_ID_BLUE>;
159			};
160		};
161	};
162
163	flash-led-controller@53 {
164		compatible = "silergy,sy7802";
165		reg = <0x53>;
166
167		enable-gpios = <&tlmm 16 GPIO_ACTIVE_HIGH>;
168
169		pinctrl-0 = <&camera_rear_flash_default>;
170		pinctrl-names = "default";
171
172		#address-cells = <1>;
173		#size-cells = <0>;
174
175		led@0 {
176			reg = <0>;
177			function = LED_FUNCTION_FLASH;
178			color = <LED_COLOR_ID_WHITE>;
179			led-sources = <0>, <1>;
180		};
181	};
182};
183
184&blsp_i2c3 {
185	status = "okay";
186
187	magnetometer@d {
188		compatible = "asahi-kasei,ak09911";
189		reg = <0x0d>;
190
191		vdd-supply = <&pm8916_l17>;
192		vid-supply = <&pm8916_l6>;
193
194		reset-gpios = <&tlmm 68 GPIO_ACTIVE_HIGH>;
195
196		pinctrl-0 = <&mag_reset_default>;
197		pinctrl-names = "default";
198	};
199
200	light-sensor@23 {
201		compatible = "liteon,ltr559";
202		reg = <0x23>;
203		proximity-near-level = <75>;
204
205		vdd-supply = <&pm8916_l17>;
206		vddio-supply = <&pm8916_l5>;
207
208		interrupts-extended = <&tlmm 113 IRQ_TYPE_EDGE_FALLING>;
209
210		pinctrl-0 = <&light_int_default>;
211		pinctrl-names = "default";
212	};
213
214	imu@68 {
215		compatible = "bosch,bmi160";
216		reg = <0x68>;
217
218		vdd-supply = <&pm8916_l17>;
219		vddio-supply = <&pm8916_l6>;
220	};
221};
222
223&blsp_i2c5 {
224	status = "okay";
225
226	touchscreen@4a {
227		compatible = "atmel,maxtouch";
228		reg = <0x4a>;
229
230		interrupts-extended = <&tlmm 13 IRQ_TYPE_LEVEL_LOW>;
231
232		reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;
233
234		vdda-supply = <&pm8916_l6>;
235		vdd-supply = <&reg_ts_vdd>;
236
237		pinctrl-0 = <&ts_int_reset_default>;
238		pinctrl-names = "default";
239
240		/* Keys listed from right to left */
241		linux,keycodes = <KEY_APPSELECT KEY_HOMEPAGE KEY_BACK>;
242	};
243};
244
245&blsp_uart2 {
246	status = "okay";
247};
248
249&pm8916_gpios {
250	status_led_default: status-led-default-state {
251		pins = "gpio3";
252		function = PMIC_GPIO_FUNC_NORMAL;
253		power-source = <PM8916_GPIO_VPH>;
254		bias-disable;
255		output-high;
256	};
257};
258
259&pm8916_mpps {
260	pwm_out: mpp4-state {
261		pins = "mpp4";
262		function = "digital";
263		power-source = <PM8916_MPP_VPH>;
264		output-low;
265		qcom,dtest = <1>;
266	};
267};
268
269&pm8916_pwm {
270	pinctrl-0 = <&pwm_out>;
271	pinctrl-names = "default";
272	status = "okay";
273};
274
275&pm8916_resin {
276	linux,code = <KEY_VOLUMEDOWN>;
277	status = "okay";
278};
279
280&pm8916_rpm_regulators {
281	pm8916_l17: l17 {
282		regulator-min-microvolt = <2850000>;
283		regulator-max-microvolt = <2850000>;
284	};
285};
286
287&pm8916_vib {
288	status = "okay";
289};
290
291&sdhc_1 {
292	status = "okay";
293};
294
295&sdhc_2 {
296	pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
297	pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
298	pinctrl-names = "default", "sleep";
299
300	cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
301
302	status = "okay";
303};
304
305&usb {
306	extcon = <&usb_id>, <&usb_id>;
307	status = "okay";
308};
309
310&usb_hs_phy {
311	extcon = <&usb_id>;
312};
313
314&wcnss {
315	status = "okay";
316};
317
318&wcnss_iris {
319	compatible = "qcom,wcn3620";
320};
321
322&wcnss_mem {
323	status = "okay";
324};
325
326&tlmm {
327	button_backlight_default: button-backlight-default-state {
328		pins = "gpio17";
329		function = "gpio";
330		drive-strength = <2>;
331		bias-disable;
332	};
333
334	camera_front_flash_default: camera-front-flash-default-state {
335		pins = "gpio8", "gpio49";
336		function = "gpio";
337		drive-strength = <2>;
338		bias-disable;
339	};
340
341	camera_rear_flash_default: camera-rear-flash-default-state {
342		pins = "gpio9", "gpio16", "gpio51";
343		function = "gpio";
344		drive-strength = <2>;
345		bias-disable;
346	};
347
348	gpio_hall_sensor_default: gpio-hall-sensor-default-state {
349		pins = "gpio20";
350		function = "gpio";
351		drive-strength = <2>;
352		bias-disable;
353	};
354
355	gpio_keys_default: gpio-keys-default-state {
356		pins = "gpio107";
357		function = "gpio";
358		drive-strength = <2>;
359		bias-pull-up;
360	};
361
362	lcd_bl_en_default: lcd-bl-en-default-state {
363		pins = "gpio98";
364		function = "gpio";
365		drive-strength = <2>;
366		bias-disable;
367	};
368
369	light_int_default: light-int-default-state {
370		pins = "gpio113";
371		function = "gpio";
372		drive-strength = <2>;
373		bias-disable;
374	};
375
376	mag_reset_default: mag-reset-default-state {
377		pins = "gpio68";
378		function = "gpio";
379		drive-strength = <2>;
380		bias-disable;
381	};
382
383	sdc2_cd_default: sdc2-cd-default-state {
384		pins = "gpio38";
385		function = "gpio";
386		drive-strength = <2>;
387		bias-disable;
388	};
389
390	ts_int_reset_default: ts-int-reset-default-state {
391		pins = "gpio12", "gpio13";
392		function = "gpio";
393		drive-strength = <2>;
394		bias-disable;
395	};
396
397	ts_vdd_default: ts-vdd-default-state {
398		pins = "gpio78";
399		function = "gpio";
400		drive-strength = <2>;
401		bias-disable;
402	};
403
404	usb_id_default: usb-id-default-state {
405		pins = "gpio110";
406		function = "gpio";
407		drive-strength = <8>;
408		bias-pull-up;
409	};
410
411	usb_id_switch_default: usb-id-switch-default-state {
412		pins = "gpio121";
413		function = "gpio";
414		drive-strength = <2>;
415		output-high;
416	};
417};
418