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&spmi_bus {
112	pm8916@0 {
113		pon@800 {
114			volume-down {
115				compatible = "qcom,pm8941-resin";
116				interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
117				bias-pull-up;
118				linux,code = <KEY_VOLUMEDOWN>;
119			};
120		};
121	};
122};
123
124&smd_rpm_regulators {
125	vdd_l1_l2_l3-supply = <&pm8916_s3>;
126	vdd_l4_l5_l6-supply = <&pm8916_s4>;
127	vdd_l7-supply = <&pm8916_s4>;
128
129	s1 {
130		regulator-min-microvolt = <500000>;
131		regulator-max-microvolt = <1300000>;
132	};
133
134	s3 {
135		regulator-min-microvolt = <1200000>;
136		regulator-max-microvolt = <1300000>;
137	};
138
139	s4 {
140		regulator-min-microvolt = <1800000>;
141		regulator-max-microvolt = <2100000>;
142	};
143
144	l1 {
145		regulator-min-microvolt = <1225000>;
146		regulator-max-microvolt = <1225000>;
147	};
148
149	l2 {
150		regulator-min-microvolt = <1200000>;
151		regulator-max-microvolt = <1200000>;
152	};
153
154	l3 {
155		regulator-min-microvolt = <500000>;
156		regulator-max-microvolt = <1287500>;
157	};
158
159	l4 {
160		regulator-min-microvolt = <2050000>;
161		regulator-max-microvolt = <2050000>;
162	};
163
164	l5 {
165		regulator-min-microvolt = <1800000>;
166		regulator-max-microvolt = <1800000>;
167	};
168
169	l6 {
170		regulator-min-microvolt = <1800000>;
171		regulator-max-microvolt = <1800000>;
172	};
173
174	l7 {
175		regulator-min-microvolt = <1800000>;
176		regulator-max-microvolt = <1800000>;
177	};
178
179	l8 {
180		regulator-min-microvolt = <2850000>;
181		regulator-max-microvolt = <2900000>;
182	};
183
184	l9 {
185		regulator-min-microvolt = <3300000>;
186		regulator-max-microvolt = <3300000>;
187	};
188
189	l10 {
190		regulator-min-microvolt = <2700000>;
191		regulator-max-microvolt = <2800000>;
192	};
193
194	l11 {
195		regulator-min-microvolt = <1800000>;
196		regulator-max-microvolt = <2950000>;
197		regulator-allow-set-load;
198		regulator-system-load = <200000>;
199	};
200
201	l12 {
202		regulator-min-microvolt = <1800000>;
203		regulator-max-microvolt = <2950000>;
204	};
205
206	l13 {
207		regulator-min-microvolt = <3075000>;
208		regulator-max-microvolt = <3075000>;
209	};
210
211	l14 {
212		regulator-min-microvolt = <1800000>;
213		regulator-max-microvolt = <3300000>;
214	};
215
216	l15 {
217		regulator-min-microvolt = <1800000>;
218		regulator-max-microvolt = <3300000>;
219	};
220
221	l16 {
222		regulator-min-microvolt = <1800000>;
223		regulator-max-microvolt = <3300000>;
224	};
225
226	l17 {
227		regulator-min-microvolt = <2850000>;
228		regulator-max-microvolt = <2850000>;
229	};
230
231	l18 {
232		regulator-min-microvolt = <2700000>;
233		regulator-max-microvolt = <2700000>;
234	};
235};
236
237&msmgpio {
238	gpio_keys_default: gpio-keys-default {
239		pins = "gpio107";
240		function = "gpio";
241
242		drive-strength = <2>;
243		bias-pull-up;
244	};
245
246	usb_vbus_default: usb-vbus-default {
247		pins = "gpio62";
248		function = "gpio";
249
250		bias-pull-up;
251	};
252};
253