1b3a6b088SJonathan Albrieux// SPDX-License-Identifier: GPL-2.0-only
2b3a6b088SJonathan Albrieux
3b3a6b088SJonathan Albrieux/dts-v1/;
4b3a6b088SJonathan Albrieux
5b3a6b088SJonathan Albrieux#include "msm8916-pm8916.dtsi"
6b3a6b088SJonathan Albrieux#include <dt-bindings/gpio/gpio.h>
7b3a6b088SJonathan Albrieux#include <dt-bindings/input/input.h>
8b3a6b088SJonathan Albrieux#include <dt-bindings/leds/common.h>
9b3a6b088SJonathan Albrieux
10b3a6b088SJonathan Albrieux/ {
11b3a6b088SJonathan Albrieux	model = "BQ Aquaris X5 (Longcheer L8910)";
12b3a6b088SJonathan Albrieux	compatible = "longcheer,l8910", "qcom,msm8916";
13eaa744b1SArnaud Ferraris	chassis-type = "handset";
14b3a6b088SJonathan Albrieux
15b3a6b088SJonathan Albrieux	aliases {
16b3a6b088SJonathan Albrieux		serial0 = &blsp1_uart2;
17b3a6b088SJonathan Albrieux	};
18b3a6b088SJonathan Albrieux
19b3a6b088SJonathan Albrieux	chosen {
20b3a6b088SJonathan Albrieux		stdout-path = "serial0";
21b3a6b088SJonathan Albrieux	};
22b3a6b088SJonathan Albrieux
23*5d8d9330SAndré Apitzsch	flash-led-controller {
24*5d8d9330SAndré Apitzsch		compatible = "ocs,ocp8110";
25*5d8d9330SAndré Apitzsch		enable-gpios = <&msmgpio 49 GPIO_ACTIVE_HIGH>;
26*5d8d9330SAndré Apitzsch		flash-gpios = <&msmgpio 119 GPIO_ACTIVE_HIGH>;
27*5d8d9330SAndré Apitzsch
28*5d8d9330SAndré Apitzsch		pinctrl-0 = <&camera_front_flash_default>;
29*5d8d9330SAndré Apitzsch		pinctrl-names = "default";
30*5d8d9330SAndré Apitzsch
31*5d8d9330SAndré Apitzsch		flash_led: led {
32*5d8d9330SAndré Apitzsch			function = LED_FUNCTION_FLASH;
33*5d8d9330SAndré Apitzsch			color = <LED_COLOR_ID_WHITE>;
34*5d8d9330SAndré Apitzsch			flash-max-timeout-us = <250000>;
35*5d8d9330SAndré Apitzsch		};
36*5d8d9330SAndré Apitzsch	};
37*5d8d9330SAndré Apitzsch
38b3a6b088SJonathan Albrieux	gpio-keys {
39b3a6b088SJonathan Albrieux		compatible = "gpio-keys";
40b3a6b088SJonathan Albrieux
41b3a6b088SJonathan Albrieux		pinctrl-names = "default";
42b3a6b088SJonathan Albrieux		pinctrl-0 = <&gpio_keys_default>;
43b3a6b088SJonathan Albrieux
44b3a6b088SJonathan Albrieux		label = "GPIO Buttons";
45b3a6b088SJonathan Albrieux
46b08f5cbdSKrzysztof Kozlowski		button-volume-up {
47b3a6b088SJonathan Albrieux			label = "Volume Up";
48b3a6b088SJonathan Albrieux			gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
49b3a6b088SJonathan Albrieux			linux,code = <KEY_VOLUMEUP>;
50b3a6b088SJonathan Albrieux		};
51b3a6b088SJonathan Albrieux	};
52b3a6b088SJonathan Albrieux
53b3a6b088SJonathan Albrieux	leds {
54b3a6b088SJonathan Albrieux		compatible = "gpio-leds";
55b3a6b088SJonathan Albrieux
56b3a6b088SJonathan Albrieux		led-0 {
57b3a6b088SJonathan Albrieux			gpios = <&msmgpio 17 GPIO_ACTIVE_HIGH>;
58b3a6b088SJonathan Albrieux			color = <LED_COLOR_ID_WHITE>;
59b3a6b088SJonathan Albrieux			default-state = "off";
60b3a6b088SJonathan Albrieux			function = LED_FUNCTION_KBD_BACKLIGHT;
61b3a6b088SJonathan Albrieux
62b3a6b088SJonathan Albrieux			pinctrl-names = "default";
63b3a6b088SJonathan Albrieux			pinctrl-0 = <&button_backlight_default>;
64b3a6b088SJonathan Albrieux		};
65b3a6b088SJonathan Albrieux	};
66b3a6b088SJonathan Albrieux
67b3a6b088SJonathan Albrieux	usb_id: usb-id {
68b3a6b088SJonathan Albrieux		compatible = "linux,extcon-usb-gpio";
69b3a6b088SJonathan Albrieux		id-gpio = <&msmgpio 110 GPIO_ACTIVE_HIGH>;
70b3a6b088SJonathan Albrieux		pinctrl-names = "default";
71b3a6b088SJonathan Albrieux		pinctrl-0 = <&usb_id_default>;
72b3a6b088SJonathan Albrieux	};
73b3a6b088SJonathan Albrieux};
74b3a6b088SJonathan Albrieux
75dcac4094SJonathan Albrieux&blsp_i2c3 {
76dcac4094SJonathan Albrieux	status = "okay";
77dcac4094SJonathan Albrieux
78dcac4094SJonathan Albrieux	magnetometer@d {
79dcac4094SJonathan Albrieux		compatible = "asahi-kasei,ak09911";
80dcac4094SJonathan Albrieux		reg = <0x0d>;
81dcac4094SJonathan Albrieux
82dcac4094SJonathan Albrieux		vdd-supply = <&pm8916_l17>;
83dcac4094SJonathan Albrieux		vid-supply = <&pm8916_l6>;
84dcac4094SJonathan Albrieux
85dcac4094SJonathan Albrieux		reset-gpios = <&msmgpio 111 GPIO_ACTIVE_LOW>;
86dcac4094SJonathan Albrieux
87dcac4094SJonathan Albrieux		pinctrl-names = "default";
88dcac4094SJonathan Albrieux		pinctrl-0 = <&mag_reset_default>;
89dcac4094SJonathan Albrieux	};
90dcac4094SJonathan Albrieux
91dcac4094SJonathan Albrieux	imu@68 {
92dcac4094SJonathan Albrieux		compatible = "bosch,bmi160";
93dcac4094SJonathan Albrieux		reg = <0x68>;
94dcac4094SJonathan Albrieux
95dcac4094SJonathan Albrieux		vdd-supply = <&pm8916_l17>;
96dcac4094SJonathan Albrieux		vddio-supply = <&pm8916_l6>;
97dcac4094SJonathan Albrieux
98dcac4094SJonathan Albrieux		mount-matrix = "0", "1", "0",
99dcac4094SJonathan Albrieux			      "-1", "0", "0",
100dcac4094SJonathan Albrieux			       "0", "0", "1";
101dcac4094SJonathan Albrieux	};
102dcac4094SJonathan Albrieux};
103dcac4094SJonathan Albrieux
104b3a6b088SJonathan Albrieux&blsp1_uart2 {
105b3a6b088SJonathan Albrieux	status = "okay";
106b3a6b088SJonathan Albrieux};
107b3a6b088SJonathan Albrieux
108b3a6b088SJonathan Albrieux&pm8916_resin {
109b3a6b088SJonathan Albrieux	status = "okay";
110b3a6b088SJonathan Albrieux	linux,code = <KEY_VOLUMEDOWN>;
111b3a6b088SJonathan Albrieux};
112b3a6b088SJonathan Albrieux
113b3a6b088SJonathan Albrieux&pm8916_vib {
114b3a6b088SJonathan Albrieux	status = "okay";
115b3a6b088SJonathan Albrieux};
116b3a6b088SJonathan Albrieux
117b3a6b088SJonathan Albrieux&sdhc_1 {
118b3a6b088SJonathan Albrieux	status = "okay";
119b3a6b088SJonathan Albrieux
120b3a6b088SJonathan Albrieux	pinctrl-names = "default", "sleep";
121b3a6b088SJonathan Albrieux	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
122b3a6b088SJonathan Albrieux	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
123b3a6b088SJonathan Albrieux};
124b3a6b088SJonathan Albrieux
125b3a6b088SJonathan Albrieux&sdhc_2 {
126b3a6b088SJonathan Albrieux	status = "okay";
127b3a6b088SJonathan Albrieux
128b3a6b088SJonathan Albrieux	pinctrl-names = "default", "sleep";
129b3a6b088SJonathan Albrieux	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
130b3a6b088SJonathan Albrieux	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
131b3a6b088SJonathan Albrieux
132b3a6b088SJonathan Albrieux	cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
133b3a6b088SJonathan Albrieux};
134b3a6b088SJonathan Albrieux
135b3a6b088SJonathan Albrieux&usb {
136b3a6b088SJonathan Albrieux	status = "okay";
137b3a6b088SJonathan Albrieux	extcon = <&usb_id>, <&usb_id>;
138b3a6b088SJonathan Albrieux};
139b3a6b088SJonathan Albrieux
140b3a6b088SJonathan Albrieux&usb_hs_phy {
141b3a6b088SJonathan Albrieux	extcon = <&usb_id>;
142b3a6b088SJonathan Albrieux};
143b3a6b088SJonathan Albrieux
14432444424SStephan Gerhold&wcnss {
14532444424SStephan Gerhold	status = "okay";
14632444424SStephan Gerhold};
14732444424SStephan Gerhold
14832444424SStephan Gerhold&wcnss_iris {
14932444424SStephan Gerhold	compatible = "qcom,wcn3620";
15032444424SStephan Gerhold};
15132444424SStephan Gerhold
152b3a6b088SJonathan Albrieux&smd_rpm_regulators {
153b3a6b088SJonathan Albrieux	vdd_l1_l2_l3-supply = <&pm8916_s3>;
154b3a6b088SJonathan Albrieux	vdd_l4_l5_l6-supply = <&pm8916_s4>;
155b3a6b088SJonathan Albrieux	vdd_l7-supply = <&pm8916_s4>;
156b3a6b088SJonathan Albrieux
157b3a6b088SJonathan Albrieux	s3 {
158b3a6b088SJonathan Albrieux		regulator-min-microvolt = <1200000>;
159b3a6b088SJonathan Albrieux		regulator-max-microvolt = <1300000>;
160b3a6b088SJonathan Albrieux	};
161b3a6b088SJonathan Albrieux
162b3a6b088SJonathan Albrieux	s4 {
163b3a6b088SJonathan Albrieux		regulator-min-microvolt = <1800000>;
164b3a6b088SJonathan Albrieux		regulator-max-microvolt = <2100000>;
165b3a6b088SJonathan Albrieux	};
166b3a6b088SJonathan Albrieux
167b3a6b088SJonathan Albrieux	l1 {
168b3a6b088SJonathan Albrieux		regulator-min-microvolt = <1225000>;
169b3a6b088SJonathan Albrieux		regulator-max-microvolt = <1225000>;
170b3a6b088SJonathan Albrieux	};
171b3a6b088SJonathan Albrieux
172b3a6b088SJonathan Albrieux	l2 {
173b3a6b088SJonathan Albrieux		regulator-min-microvolt = <1200000>;
174b3a6b088SJonathan Albrieux		regulator-max-microvolt = <1200000>;
175b3a6b088SJonathan Albrieux	};
176b3a6b088SJonathan Albrieux
177b3a6b088SJonathan Albrieux	l4 {
178b3a6b088SJonathan Albrieux		regulator-min-microvolt = <2050000>;
179b3a6b088SJonathan Albrieux		regulator-max-microvolt = <2050000>;
180b3a6b088SJonathan Albrieux	};
181b3a6b088SJonathan Albrieux
182b3a6b088SJonathan Albrieux	l5 {
183b3a6b088SJonathan Albrieux		regulator-min-microvolt = <1800000>;
184b3a6b088SJonathan Albrieux		regulator-max-microvolt = <1800000>;
185b3a6b088SJonathan Albrieux	};
186b3a6b088SJonathan Albrieux
187b3a6b088SJonathan Albrieux	l6 {
188b3a6b088SJonathan Albrieux		regulator-min-microvolt = <1800000>;
189b3a6b088SJonathan Albrieux		regulator-max-microvolt = <1800000>;
190b3a6b088SJonathan Albrieux	};
191b3a6b088SJonathan Albrieux
192b3a6b088SJonathan Albrieux	l7 {
193b3a6b088SJonathan Albrieux		regulator-min-microvolt = <1800000>;
194b3a6b088SJonathan Albrieux		regulator-max-microvolt = <1800000>;
195b3a6b088SJonathan Albrieux	};
196b3a6b088SJonathan Albrieux
197b3a6b088SJonathan Albrieux	l8 {
198b3a6b088SJonathan Albrieux		regulator-min-microvolt = <2850000>;
199b3a6b088SJonathan Albrieux		regulator-max-microvolt = <2900000>;
200b3a6b088SJonathan Albrieux	};
201b3a6b088SJonathan Albrieux
202b3a6b088SJonathan Albrieux	l9 {
203b3a6b088SJonathan Albrieux		regulator-min-microvolt = <3300000>;
204b3a6b088SJonathan Albrieux		regulator-max-microvolt = <3300000>;
205b3a6b088SJonathan Albrieux	};
206b3a6b088SJonathan Albrieux
207b3a6b088SJonathan Albrieux	l10 {
208b3a6b088SJonathan Albrieux		regulator-min-microvolt = <2700000>;
209b3a6b088SJonathan Albrieux		regulator-max-microvolt = <2800000>;
210b3a6b088SJonathan Albrieux	};
211b3a6b088SJonathan Albrieux
212b3a6b088SJonathan Albrieux	l11 {
213b3a6b088SJonathan Albrieux		regulator-min-microvolt = <1800000>;
214b3a6b088SJonathan Albrieux		regulator-max-microvolt = <2950000>;
215b3a6b088SJonathan Albrieux		regulator-allow-set-load;
216b3a6b088SJonathan Albrieux		regulator-system-load = <200000>;
217b3a6b088SJonathan Albrieux	};
218b3a6b088SJonathan Albrieux
219b3a6b088SJonathan Albrieux	l12 {
220b3a6b088SJonathan Albrieux		regulator-min-microvolt = <1800000>;
221b3a6b088SJonathan Albrieux		regulator-max-microvolt = <2950000>;
222b3a6b088SJonathan Albrieux	};
223b3a6b088SJonathan Albrieux
224b3a6b088SJonathan Albrieux	l13 {
225b3a6b088SJonathan Albrieux		regulator-min-microvolt = <3075000>;
226b3a6b088SJonathan Albrieux		regulator-max-microvolt = <3075000>;
227b3a6b088SJonathan Albrieux	};
228b3a6b088SJonathan Albrieux
229b3a6b088SJonathan Albrieux	l14 {
230b3a6b088SJonathan Albrieux		regulator-min-microvolt = <1800000>;
231b3a6b088SJonathan Albrieux		regulator-max-microvolt = <3300000>;
232b3a6b088SJonathan Albrieux	};
233b3a6b088SJonathan Albrieux
234b3a6b088SJonathan Albrieux	l15 {
235b3a6b088SJonathan Albrieux		regulator-min-microvolt = <1800000>;
236b3a6b088SJonathan Albrieux		regulator-max-microvolt = <3300000>;
237b3a6b088SJonathan Albrieux	};
238b3a6b088SJonathan Albrieux
239b3a6b088SJonathan Albrieux	l16 {
240b3a6b088SJonathan Albrieux		regulator-min-microvolt = <1800000>;
241b3a6b088SJonathan Albrieux		regulator-max-microvolt = <3300000>;
242b3a6b088SJonathan Albrieux	};
243b3a6b088SJonathan Albrieux
244b3a6b088SJonathan Albrieux	l17 {
245b3a6b088SJonathan Albrieux		regulator-min-microvolt = <2850000>;
246b3a6b088SJonathan Albrieux		regulator-max-microvolt = <2850000>;
247b3a6b088SJonathan Albrieux	};
248b3a6b088SJonathan Albrieux
249b3a6b088SJonathan Albrieux	l18 {
250b3a6b088SJonathan Albrieux		regulator-min-microvolt = <2700000>;
251b3a6b088SJonathan Albrieux		regulator-max-microvolt = <2700000>;
252b3a6b088SJonathan Albrieux	};
253b3a6b088SJonathan Albrieux};
254b3a6b088SJonathan Albrieux
255b3a6b088SJonathan Albrieux&msmgpio {
2568b276ca0SKrzysztof Kozlowski	button_backlight_default: button-backlight-default-state {
257b3a6b088SJonathan Albrieux		pins = "gpio17";
258b3a6b088SJonathan Albrieux		function = "gpio";
259b3a6b088SJonathan Albrieux
260b3a6b088SJonathan Albrieux		drive-strength = <2>;
261b3a6b088SJonathan Albrieux		bias-disable;
262b3a6b088SJonathan Albrieux	};
263b3a6b088SJonathan Albrieux
264*5d8d9330SAndré Apitzsch	camera_front_flash_default: camera-front-flash-default-state {
265*5d8d9330SAndré Apitzsch		pins = "gpio49", "gpio119";
266*5d8d9330SAndré Apitzsch		function = "gpio";
267*5d8d9330SAndré Apitzsch		drive-strength = <2>;
268*5d8d9330SAndré Apitzsch		bias-disable;
269*5d8d9330SAndré Apitzsch	};
270*5d8d9330SAndré Apitzsch
2718b276ca0SKrzysztof Kozlowski	gpio_keys_default: gpio-keys-default-state {
272b3a6b088SJonathan Albrieux		pins = "gpio107";
273b3a6b088SJonathan Albrieux		function = "gpio";
274b3a6b088SJonathan Albrieux
275b3a6b088SJonathan Albrieux		drive-strength = <2>;
276b3a6b088SJonathan Albrieux		bias-pull-up;
277b3a6b088SJonathan Albrieux	};
278b3a6b088SJonathan Albrieux
2798b276ca0SKrzysztof Kozlowski	mag_reset_default: mag-reset-default-state {
280dcac4094SJonathan Albrieux		pins = "gpio111";
281dcac4094SJonathan Albrieux		function = "gpio";
282dcac4094SJonathan Albrieux
283dcac4094SJonathan Albrieux		drive-strength = <2>;
284dcac4094SJonathan Albrieux		bias-disable;
285dcac4094SJonathan Albrieux	};
286dcac4094SJonathan Albrieux
2878b276ca0SKrzysztof Kozlowski	usb_id_default: usb-id-default-state {
288b3a6b088SJonathan Albrieux		pins = "gpio110";
289b3a6b088SJonathan Albrieux		function = "gpio";
290b3a6b088SJonathan Albrieux
291b3a6b088SJonathan Albrieux		drive-strength = <8>;
292b3a6b088SJonathan Albrieux		bias-pull-up;
293b3a6b088SJonathan Albrieux	};
294b3a6b088SJonathan Albrieux};
295