xref: /freebsd/sys/contrib/device-tree/src/arm64/qcom/msm8939-longcheer-l9100.dts (revision 96190b4fef3b4a0cc3ca0606b0c4e3e69a5e6717)
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
164&blsp_i2c3 {
165	status = "okay";
166
167	magnetometer@d {
168		compatible = "asahi-kasei,ak09911";
169		reg = <0x0d>;
170
171		vdd-supply = <&pm8916_l17>;
172		vid-supply = <&pm8916_l6>;
173
174		reset-gpios = <&tlmm 68 GPIO_ACTIVE_HIGH>;
175
176		pinctrl-0 = <&mag_reset_default>;
177		pinctrl-names = "default";
178	};
179
180	light-sensor@23 {
181		compatible = "liteon,ltr559";
182		reg = <0x23>;
183		proximity-near-level = <75>;
184
185		vdd-supply = <&pm8916_l17>;
186		vddio-supply = <&pm8916_l5>;
187
188		interrupts-extended = <&tlmm 113 IRQ_TYPE_EDGE_FALLING>;
189
190		pinctrl-0 = <&light_int_default>;
191		pinctrl-names = "default";
192	};
193
194	imu@68 {
195		compatible = "bosch,bmi160";
196		reg = <0x68>;
197
198		vdd-supply = <&pm8916_l17>;
199		vddio-supply = <&pm8916_l6>;
200	};
201};
202
203&blsp_i2c5 {
204	status = "okay";
205
206	touchscreen@4a {
207		compatible = "atmel,maxtouch";
208		reg = <0x4a>;
209
210		interrupts-extended = <&tlmm 13 IRQ_TYPE_LEVEL_LOW>;
211
212		reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;
213
214		vdda-supply = <&pm8916_l6>;
215		vdd-supply = <&reg_ts_vdd>;
216
217		pinctrl-0 = <&ts_int_reset_default>;
218		pinctrl-names = "default";
219
220		/* Keys listed from right to left */
221		linux,keycodes = <KEY_APPSELECT KEY_HOMEPAGE KEY_BACK>;
222	};
223};
224
225&blsp_uart2 {
226	status = "okay";
227};
228
229&pm8916_gpios {
230	status_led_default: status-led-default-state {
231		pins = "gpio3";
232		function = PMIC_GPIO_FUNC_NORMAL;
233		power-source = <PM8916_GPIO_VPH>;
234		bias-disable;
235		output-high;
236	};
237};
238
239&pm8916_mpps {
240	pwm_out: mpp4-state {
241		pins = "mpp4";
242		function = "digital";
243		power-source = <PM8916_MPP_VPH>;
244		output-low;
245		qcom,dtest = <1>;
246	};
247};
248
249&pm8916_pwm {
250	pinctrl-0 = <&pwm_out>;
251	pinctrl-names = "default";
252	status = "okay";
253};
254
255&pm8916_resin {
256	linux,code = <KEY_VOLUMEDOWN>;
257	status = "okay";
258};
259
260&pm8916_rpm_regulators {
261	pm8916_l17: l17 {
262		regulator-min-microvolt = <2850000>;
263		regulator-max-microvolt = <2850000>;
264	};
265};
266
267&pm8916_vib {
268	status = "okay";
269};
270
271&sdhc_1 {
272	status = "okay";
273};
274
275&sdhc_2 {
276	pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
277	pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
278	pinctrl-names = "default", "sleep";
279
280	cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
281
282	status = "okay";
283};
284
285&usb {
286	extcon = <&usb_id>, <&usb_id>;
287	status = "okay";
288};
289
290&usb_hs_phy {
291	extcon = <&usb_id>;
292};
293
294&wcnss {
295	status = "okay";
296};
297
298&wcnss_iris {
299	compatible = "qcom,wcn3620";
300};
301
302&wcnss_mem {
303	status = "okay";
304};
305
306&tlmm {
307	button_backlight_default: button-backlight-default-state {
308		pins = "gpio17";
309		function = "gpio";
310		drive-strength = <2>;
311		bias-disable;
312	};
313
314	camera_front_flash_default: camera-front-flash-default-state {
315		pins = "gpio8", "gpio49";
316		function = "gpio";
317		drive-strength = <2>;
318		bias-disable;
319	};
320
321	gpio_hall_sensor_default: gpio-hall-sensor-default-state {
322		pins = "gpio20";
323		function = "gpio";
324		drive-strength = <2>;
325		bias-disable;
326	};
327
328	gpio_keys_default: gpio-keys-default-state {
329		pins = "gpio107";
330		function = "gpio";
331		drive-strength = <2>;
332		bias-pull-up;
333	};
334
335	lcd_bl_en_default: lcd-bl-en-default-state {
336		pins = "gpio98";
337		function = "gpio";
338		drive-strength = <2>;
339		bias-disable;
340	};
341
342	light_int_default: light-int-default-state {
343		pins = "gpio113";
344		function = "gpio";
345		drive-strength = <2>;
346		bias-disable;
347	};
348
349	mag_reset_default: mag-reset-default-state {
350		pins = "gpio68";
351		function = "gpio";
352		drive-strength = <2>;
353		bias-disable;
354	};
355
356	sdc2_cd_default: sdc2-cd-default-state {
357		pins = "gpio38";
358		function = "gpio";
359		drive-strength = <2>;
360		bias-disable;
361	};
362
363	ts_int_reset_default: ts-int-reset-default-state {
364		pins = "gpio12", "gpio13";
365		function = "gpio";
366		drive-strength = <2>;
367		bias-disable;
368	};
369
370	ts_vdd_default: ts-vdd-default-state {
371		pins = "gpio78";
372		function = "gpio";
373		drive-strength = <2>;
374		bias-disable;
375	};
376
377	usb_id_default: usb-id-default-state {
378		pins = "gpio110";
379		function = "gpio";
380		drive-strength = <8>;
381		bias-pull-up;
382	};
383
384	usb_id_switch_default: usb-id-switch-default-state {
385		pins = "gpio121";
386		function = "gpio";
387		drive-strength = <2>;
388		output-high;
389	};
390};
391