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