1// SPDX-License-Identifier: GPL-2.0-only
2
3/dts-v1/;
4
5#include "msm8916.dtsi"
6#include "pm8916.dtsi"
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/input/input.h>
9
10/ {
11	model = "Longcheer L8150";
12	compatible = "longcheer,l8150", "qcom,msm8916-v1-qrd/9-v1", "qcom,msm8916";
13
14	aliases {
15		serial0 = &blsp1_uart2;
16	};
17
18	chosen {
19		stdout-path = "serial0";
20	};
21
22	reserved-memory {
23		// wcnss.mdt is not relocatable, so it must be loaded at 0x8b600000
24		/delete-node/ wcnss@89300000;
25
26		wcnss_mem: wcnss@8b600000 {
27			reg = <0x0 0x8b600000 0x0 0x600000>;
28			no-map;
29		};
30	};
31
32	soc {
33		sdhci@7824000 {
34			status = "okay";
35
36			vmmc-supply = <&pm8916_l8>;
37			vqmmc-supply = <&pm8916_l5>;
38
39			pinctrl-names = "default", "sleep";
40			pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
41			pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
42		};
43
44		sdhci@7864000 {
45			status = "okay";
46
47			vmmc-supply = <&pm8916_l11>;
48			vqmmc-supply = <&pm8916_l12>;
49
50			pinctrl-names = "default", "sleep";
51			pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
52			pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
53
54			non-removable;
55		};
56
57		serial@78b0000 {
58			status = "okay";
59			pinctrl-names = "default", "sleep";
60			pinctrl-0 = <&blsp1_uart2_default>;
61			pinctrl-1 = <&blsp1_uart2_sleep>;
62		};
63
64		usb@78d9000 {
65			status = "okay";
66			dr_mode = "peripheral";
67			extcon = <&usb_vbus>;
68
69			hnp-disable;
70			srp-disable;
71			adp-disable;
72
73			ulpi {
74				phy {
75					extcon = <&usb_vbus>;
76					v1p8-supply = <&pm8916_l7>;
77					v3p3-supply = <&pm8916_l13>;
78				};
79			};
80		};
81
82		wcnss@a21b000 {
83			status = "okay";
84		};
85	};
86
87	// FIXME: Use extcon device provided by charger driver when available
88	usb_vbus: usb-vbus {
89		compatible = "linux,extcon-usb-gpio";
90		vbus-gpio = <&msmgpio 62 GPIO_ACTIVE_HIGH>;
91		pinctrl-names = "default";
92		pinctrl-0 = <&usb_vbus_default>;
93	};
94
95	gpio-keys {
96		compatible = "gpio-keys";
97
98		pinctrl-names = "default";
99		pinctrl-0 = <&gpio_keys_default>;
100
101		label = "GPIO Buttons";
102
103		volume-up {
104			label = "Volume Up";
105			gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
106			linux,code = <KEY_VOLUMEUP>;
107		};
108	};
109};
110
111&msmgpio {
112	gpio_keys_default: gpio-keys-default {
113		pinmux {
114			function = "gpio";
115			pins = "gpio107";
116		};
117		pinconf {
118			pins = "gpio107";
119			drive-strength = <2>;
120			bias-pull-up;
121		};
122	};
123
124	usb_vbus_default: usb-vbus-default {
125		pinmux {
126			function = "gpio";
127			pins = "gpio62";
128		};
129		pinconf {
130			pins = "gpio62";
131			bias-pull-up;
132		};
133	};
134};
135
136&spmi_bus {
137	pm8916@0 {
138		pon@800 {
139			volume-down {
140				compatible = "qcom,pm8941-resin";
141				interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
142				bias-pull-up;
143				linux,code = <KEY_VOLUMEDOWN>;
144			};
145		};
146	};
147};
148
149&smd_rpm_regulators {
150	vdd_l1_l2_l3-supply = <&pm8916_s3>;
151	vdd_l4_l5_l6-supply = <&pm8916_s4>;
152	vdd_l7-supply = <&pm8916_s4>;
153
154	s1 {
155		regulator-min-microvolt = <500000>;
156		regulator-max-microvolt = <1300000>;
157	};
158
159	s3 {
160		regulator-min-microvolt = <1200000>;
161		regulator-max-microvolt = <1300000>;
162	};
163
164	s4 {
165		regulator-min-microvolt = <1800000>;
166		regulator-max-microvolt = <2100000>;
167	};
168
169	l1 {
170		regulator-min-microvolt = <1225000>;
171		regulator-max-microvolt = <1225000>;
172	};
173
174	l2 {
175		regulator-min-microvolt = <1200000>;
176		regulator-max-microvolt = <1200000>;
177	};
178
179	l3 {
180		regulator-min-microvolt = <500000>;
181		regulator-max-microvolt = <1287500>;
182	};
183
184	l4 {
185		regulator-min-microvolt = <2050000>;
186		regulator-max-microvolt = <2050000>;
187	};
188
189	l5 {
190		regulator-min-microvolt = <1800000>;
191		regulator-max-microvolt = <1800000>;
192	};
193
194	l6 {
195		regulator-min-microvolt = <1800000>;
196		regulator-max-microvolt = <1800000>;
197	};
198
199	l7 {
200		regulator-min-microvolt = <1800000>;
201		regulator-max-microvolt = <1800000>;
202	};
203
204	l8 {
205		regulator-min-microvolt = <2850000>;
206		regulator-max-microvolt = <2900000>;
207	};
208
209	l9 {
210		regulator-min-microvolt = <3300000>;
211		regulator-max-microvolt = <3300000>;
212	};
213
214	l10 {
215		regulator-min-microvolt = <2700000>;
216		regulator-max-microvolt = <2800000>;
217	};
218
219	l11 {
220		regulator-min-microvolt = <1800000>;
221		regulator-max-microvolt = <2950000>;
222		regulator-allow-set-load;
223		regulator-system-load = <200000>;
224	};
225
226	l12 {
227		regulator-min-microvolt = <1800000>;
228		regulator-max-microvolt = <2950000>;
229	};
230
231	l13 {
232		regulator-min-microvolt = <3075000>;
233		regulator-max-microvolt = <3075000>;
234	};
235
236	l14 {
237		regulator-min-microvolt = <1800000>;
238		regulator-max-microvolt = <3300000>;
239	};
240
241	l15 {
242		regulator-min-microvolt = <1800000>;
243		regulator-max-microvolt = <3300000>;
244	};
245
246	l16 {
247		regulator-min-microvolt = <1800000>;
248		regulator-max-microvolt = <3300000>;
249	};
250
251	l17 {
252		regulator-min-microvolt = <2850000>;
253		regulator-max-microvolt = <2850000>;
254	};
255
256	l18 {
257		regulator-min-microvolt = <2700000>;
258		regulator-max-microvolt = <2700000>;
259	};
260};
261