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 {
16154f23a8SStephan Gerhold		mmc0 = &sdhc_1; /* eMMC */
17154f23a8SStephan Gerhold		mmc1 = &sdhc_2; /* SD card */
18c310ca82SStephan Gerhold		serial0 = &blsp_uart2;
19b3a6b088SJonathan Albrieux	};
20b3a6b088SJonathan Albrieux
21b3a6b088SJonathan Albrieux	chosen {
22b3a6b088SJonathan Albrieux		stdout-path = "serial0";
23b3a6b088SJonathan Albrieux	};
24b3a6b088SJonathan Albrieux
255d8d9330SAndré Apitzsch	flash-led-controller {
265d8d9330SAndré Apitzsch		compatible = "ocs,ocp8110";
2741e22c2fSStephan Gerhold		enable-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;
2841e22c2fSStephan Gerhold		flash-gpios = <&tlmm 119 GPIO_ACTIVE_HIGH>;
295d8d9330SAndré Apitzsch
305d8d9330SAndré Apitzsch		pinctrl-0 = <&camera_front_flash_default>;
315d8d9330SAndré Apitzsch		pinctrl-names = "default";
325d8d9330SAndré Apitzsch
335d8d9330SAndré Apitzsch		flash_led: led {
345d8d9330SAndré Apitzsch			function = LED_FUNCTION_FLASH;
355d8d9330SAndré Apitzsch			color = <LED_COLOR_ID_WHITE>;
365d8d9330SAndré Apitzsch			flash-max-timeout-us = <250000>;
375d8d9330SAndré Apitzsch		};
385d8d9330SAndré Apitzsch	};
395d8d9330SAndré Apitzsch
40b3a6b088SJonathan Albrieux	gpio-keys {
41b3a6b088SJonathan Albrieux		compatible = "gpio-keys";
42b3a6b088SJonathan Albrieux
43b3a6b088SJonathan Albrieux		pinctrl-names = "default";
44b3a6b088SJonathan Albrieux		pinctrl-0 = <&gpio_keys_default>;
45b3a6b088SJonathan Albrieux
46b3a6b088SJonathan Albrieux		label = "GPIO Buttons";
47b3a6b088SJonathan Albrieux
48b08f5cbdSKrzysztof Kozlowski		button-volume-up {
49b3a6b088SJonathan Albrieux			label = "Volume Up";
5041e22c2fSStephan Gerhold			gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
51b3a6b088SJonathan Albrieux			linux,code = <KEY_VOLUMEUP>;
52b3a6b088SJonathan Albrieux		};
53b3a6b088SJonathan Albrieux	};
54b3a6b088SJonathan Albrieux
55b3a6b088SJonathan Albrieux	leds {
56b3a6b088SJonathan Albrieux		compatible = "gpio-leds";
57b3a6b088SJonathan Albrieux
58b3a6b088SJonathan Albrieux		led-0 {
5941e22c2fSStephan Gerhold			gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
60b3a6b088SJonathan Albrieux			color = <LED_COLOR_ID_WHITE>;
61b3a6b088SJonathan Albrieux			default-state = "off";
62b3a6b088SJonathan Albrieux			function = LED_FUNCTION_KBD_BACKLIGHT;
63b3a6b088SJonathan Albrieux
64b3a6b088SJonathan Albrieux			pinctrl-names = "default";
65b3a6b088SJonathan Albrieux			pinctrl-0 = <&button_backlight_default>;
66b3a6b088SJonathan Albrieux		};
67b3a6b088SJonathan Albrieux	};
68b3a6b088SJonathan Albrieux
69b3a6b088SJonathan Albrieux	usb_id: usb-id {
70b3a6b088SJonathan Albrieux		compatible = "linux,extcon-usb-gpio";
71*f6485041SAlexander Stein		id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
72b3a6b088SJonathan Albrieux		pinctrl-names = "default";
73b3a6b088SJonathan Albrieux		pinctrl-0 = <&usb_id_default>;
74b3a6b088SJonathan Albrieux	};
75b3a6b088SJonathan Albrieux};
76b3a6b088SJonathan Albrieux
77dcac4094SJonathan Albrieux&blsp_i2c3 {
78dcac4094SJonathan Albrieux	status = "okay";
79dcac4094SJonathan Albrieux
80dcac4094SJonathan Albrieux	magnetometer@d {
81dcac4094SJonathan Albrieux		compatible = "asahi-kasei,ak09911";
82dcac4094SJonathan Albrieux		reg = <0x0d>;
83dcac4094SJonathan Albrieux
84dcac4094SJonathan Albrieux		vdd-supply = <&pm8916_l17>;
85dcac4094SJonathan Albrieux		vid-supply = <&pm8916_l6>;
86dcac4094SJonathan Albrieux
8741e22c2fSStephan Gerhold		reset-gpios = <&tlmm 111 GPIO_ACTIVE_LOW>;
88dcac4094SJonathan Albrieux
89dcac4094SJonathan Albrieux		pinctrl-names = "default";
90dcac4094SJonathan Albrieux		pinctrl-0 = <&mag_reset_default>;
91dcac4094SJonathan Albrieux	};
92dcac4094SJonathan Albrieux
93dcac4094SJonathan Albrieux	imu@68 {
94dcac4094SJonathan Albrieux		compatible = "bosch,bmi160";
95dcac4094SJonathan Albrieux		reg = <0x68>;
96dcac4094SJonathan Albrieux
97dcac4094SJonathan Albrieux		vdd-supply = <&pm8916_l17>;
98dcac4094SJonathan Albrieux		vddio-supply = <&pm8916_l6>;
99dcac4094SJonathan Albrieux
100dcac4094SJonathan Albrieux		mount-matrix = "0", "1", "0",
101dcac4094SJonathan Albrieux			      "-1", "0", "0",
102dcac4094SJonathan Albrieux			       "0", "0", "1";
103dcac4094SJonathan Albrieux	};
104dcac4094SJonathan Albrieux};
105dcac4094SJonathan Albrieux
106c310ca82SStephan Gerhold&blsp_uart2 {
107b3a6b088SJonathan Albrieux	status = "okay";
108b3a6b088SJonathan Albrieux};
109b3a6b088SJonathan Albrieux
110b3a6b088SJonathan Albrieux&pm8916_resin {
111b3a6b088SJonathan Albrieux	status = "okay";
112b3a6b088SJonathan Albrieux	linux,code = <KEY_VOLUMEDOWN>;
113b3a6b088SJonathan Albrieux};
114b3a6b088SJonathan Albrieux
115b0a8f16aSStephan Gerhold&pm8916_rpm_regulators {
116b0a8f16aSStephan Gerhold	pm8916_l17: l17 {
117b0a8f16aSStephan Gerhold		regulator-min-microvolt = <2850000>;
118b0a8f16aSStephan Gerhold		regulator-max-microvolt = <2850000>;
119b0a8f16aSStephan Gerhold	};
120b0a8f16aSStephan Gerhold};
121b0a8f16aSStephan Gerhold
122b3a6b088SJonathan Albrieux&pm8916_vib {
123b3a6b088SJonathan Albrieux	status = "okay";
124b3a6b088SJonathan Albrieux};
125b3a6b088SJonathan Albrieux
126b3a6b088SJonathan Albrieux&sdhc_1 {
127b3a6b088SJonathan Albrieux	status = "okay";
128b3a6b088SJonathan Albrieux};
129b3a6b088SJonathan Albrieux
130b3a6b088SJonathan Albrieux&sdhc_2 {
131b3a6b088SJonathan Albrieux	status = "okay";
132b3a6b088SJonathan Albrieux
133b3a6b088SJonathan Albrieux	pinctrl-names = "default", "sleep";
134c943e4c5SStephan Gerhold	pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
135c943e4c5SStephan Gerhold	pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
136b3a6b088SJonathan Albrieux
13741e22c2fSStephan Gerhold	cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
138b3a6b088SJonathan Albrieux};
139b3a6b088SJonathan Albrieux
140b3a6b088SJonathan Albrieux&usb {
141b3a6b088SJonathan Albrieux	status = "okay";
142b3a6b088SJonathan Albrieux	extcon = <&usb_id>, <&usb_id>;
143b3a6b088SJonathan Albrieux};
144b3a6b088SJonathan Albrieux
145b3a6b088SJonathan Albrieux&usb_hs_phy {
146b3a6b088SJonathan Albrieux	extcon = <&usb_id>;
147b3a6b088SJonathan Albrieux};
148b3a6b088SJonathan Albrieux
14932444424SStephan Gerhold&wcnss {
15032444424SStephan Gerhold	status = "okay";
15132444424SStephan Gerhold};
15232444424SStephan Gerhold
15332444424SStephan Gerhold&wcnss_iris {
15432444424SStephan Gerhold	compatible = "qcom,wcn3620";
15532444424SStephan Gerhold};
15632444424SStephan Gerhold
15741e22c2fSStephan Gerhold&tlmm {
1588b276ca0SKrzysztof Kozlowski	button_backlight_default: button-backlight-default-state {
159b3a6b088SJonathan Albrieux		pins = "gpio17";
160b3a6b088SJonathan Albrieux		function = "gpio";
161b3a6b088SJonathan Albrieux
162b3a6b088SJonathan Albrieux		drive-strength = <2>;
163b3a6b088SJonathan Albrieux		bias-disable;
164b3a6b088SJonathan Albrieux	};
165b3a6b088SJonathan Albrieux
1665d8d9330SAndré Apitzsch	camera_front_flash_default: camera-front-flash-default-state {
1675d8d9330SAndré Apitzsch		pins = "gpio49", "gpio119";
1685d8d9330SAndré Apitzsch		function = "gpio";
1695d8d9330SAndré Apitzsch		drive-strength = <2>;
1705d8d9330SAndré Apitzsch		bias-disable;
1715d8d9330SAndré Apitzsch	};
1725d8d9330SAndré Apitzsch
1738b276ca0SKrzysztof Kozlowski	gpio_keys_default: gpio-keys-default-state {
174b3a6b088SJonathan Albrieux		pins = "gpio107";
175b3a6b088SJonathan Albrieux		function = "gpio";
176b3a6b088SJonathan Albrieux
177b3a6b088SJonathan Albrieux		drive-strength = <2>;
178b3a6b088SJonathan Albrieux		bias-pull-up;
179b3a6b088SJonathan Albrieux	};
180b3a6b088SJonathan Albrieux
1818b276ca0SKrzysztof Kozlowski	mag_reset_default: mag-reset-default-state {
182dcac4094SJonathan Albrieux		pins = "gpio111";
183dcac4094SJonathan Albrieux		function = "gpio";
184dcac4094SJonathan Albrieux
185dcac4094SJonathan Albrieux		drive-strength = <2>;
186dcac4094SJonathan Albrieux		bias-disable;
187dcac4094SJonathan Albrieux	};
188dcac4094SJonathan Albrieux
189dfbda20dSStephan Gerhold	sdc2_cd_default: sdc2-cd-default-state {
190dfbda20dSStephan Gerhold		pins = "gpio38";
191dfbda20dSStephan Gerhold		function = "gpio";
192dfbda20dSStephan Gerhold		drive-strength = <2>;
193dfbda20dSStephan Gerhold		bias-disable;
194dfbda20dSStephan Gerhold	};
195dfbda20dSStephan Gerhold
1968b276ca0SKrzysztof Kozlowski	usb_id_default: usb-id-default-state {
197b3a6b088SJonathan Albrieux		pins = "gpio110";
198b3a6b088SJonathan Albrieux		function = "gpio";
199b3a6b088SJonathan Albrieux
200b3a6b088SJonathan Albrieux		drive-strength = <8>;
201b3a6b088SJonathan Albrieux		bias-pull-up;
202b3a6b088SJonathan Albrieux	};
203b3a6b088SJonathan Albrieux};
204