1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2021, Luca Weiss <luca@z3ntu.xyz>
4 */
5
6/dts-v1/;
7
8#include "qcom-msm8226.dtsi"
9#include "pm8226.dtsi"
10#include <dt-bindings/clock/qcom,mmcc-msm8974.h>
11
12/delete-node/ &adsp_region;
13
14/ {
15	model = "LG G Watch R";
16	compatible = "lg,lenok", "qcom,apq8026";
17	chassis-type = "watch";
18	qcom,board-id = <132 0x0a>;
19	qcom,msm-id = <199 0x20000>;
20
21	aliases {
22		serial0 = &blsp1_uart3;
23		serial1 = &blsp1_uart4;
24	};
25
26	chosen {
27		stdout-path = "serial0:115200n8";
28	};
29
30	reserved-memory {
31		sbl_region: sbl@2f00000 {
32			reg = <0x02f00000 0x100000>;
33			no-map;
34		};
35
36		external_image_region: external-image@3100000 {
37			reg = <0x03100000 0x200000>;
38			no-map;
39		};
40
41		adsp_region: adsp@3300000 {
42			reg = <0x03300000 0x1400000>;
43			no-map;
44		};
45	};
46
47	vreg_wlan: wlan-regulator {
48		compatible = "regulator-fixed";
49
50		regulator-name = "wl-reg";
51		regulator-min-microvolt = <2950000>;
52		regulator-max-microvolt = <2950000>;
53
54		gpio = <&tlmm 46 GPIO_ACTIVE_HIGH>;
55		enable-active-high;
56
57		pinctrl-names = "default";
58		pinctrl-0 = <&wlan_regulator_default_state>;
59	};
60
61	pwm_vibrator: pwm {
62		compatible = "clk-pwm";
63		clocks = <&mmcc CAMSS_GP0_CLK>;
64
65		pinctrl-0 = <&vibrator_clk_default_state>;
66		pinctrl-names = "default";
67
68		#pwm-cells = <2>;
69	};
70
71	vibrator {
72		compatible = "pwm-vibrator";
73
74		pwms = <&pwm_vibrator 0 10000>;
75		pwm-names = "enable";
76
77		vcc-supply = <&pm8226_l28>;
78		enable-gpios = <&tlmm 62 GPIO_ACTIVE_HIGH>;
79
80		pinctrl-0 = <&vibrator_en_default_state>;
81		pinctrl-names = "default";
82	};
83};
84
85&adsp {
86	status = "okay";
87};
88
89&blsp1_i2c1 {
90	status = "okay";
91
92	fuel-gauge@55 {
93		compatible = "ti,bq27421";
94		reg = <0x55>;
95	};
96};
97
98&blsp1_i2c5 {
99	status = "okay";
100	clock-frequency = <384000>;
101
102	touchscreen@20 {
103		compatible = "syna,rmi4-i2c";
104		reg = <0x20>;
105
106		interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>;
107		vdd-supply = <&pm8226_l15>;
108		vio-supply = <&pm8226_l22>;
109
110		pinctrl-names = "default";
111		pinctrl-0 = <&touch_pins>;
112
113		#address-cells = <1>;
114		#size-cells = <0>;
115
116		rmi4-f01@1 {
117			reg = <0x1>;
118			syna,nosleep-mode = <1>;
119		};
120
121		rmi4-f12@12 {
122			reg = <0x12>;
123			syna,sensor-type = <1>;
124		};
125	};
126};
127
128&blsp1_uart3 {
129	status = "okay";
130};
131
132&blsp1_uart4 {
133	status = "okay";
134
135	pinctrl-names = "default";
136	pinctrl-0 = <&blsp1_uart4_default_state>;
137
138	bluetooth {
139		compatible = "brcm,bcm43430a0-bt";
140
141		max-speed = <3000000>;
142
143		pinctrl-names = "default";
144		pinctrl-0 = <&bluetooth_default_state>;
145
146		host-wakeup-gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>;
147		device-wakeup-gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
148		shutdown-gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
149	};
150};
151
152&rpm_requests {
153	regulators {
154		compatible = "qcom,rpm-pm8226-regulators";
155
156		pm8226_s3: s3 {
157			regulator-min-microvolt = <1200000>;
158			regulator-max-microvolt = <1350000>;
159		};
160		pm8226_s4: s4 {
161			regulator-min-microvolt = <1800000>;
162			regulator-max-microvolt = <2200000>;
163		};
164		pm8226_s5: s5 {
165			regulator-min-microvolt = <1150000>;
166			regulator-max-microvolt = <1150000>;
167		};
168
169		pm8226_l1: l1 {
170			regulator-min-microvolt = <1225000>;
171			regulator-max-microvolt = <1225000>;
172		};
173		pm8226_l2: l2 {
174			regulator-min-microvolt = <1200000>;
175			regulator-max-microvolt = <1200000>;
176		};
177		pm8226_l3: l3 {
178			regulator-min-microvolt = <750000>;
179			regulator-max-microvolt = <1337500>;
180		};
181		pm8226_l4: l4 {
182			regulator-min-microvolt = <1200000>;
183			regulator-max-microvolt = <1200000>;
184		};
185		pm8226_l5: l5 {
186			regulator-min-microvolt = <1200000>;
187			regulator-max-microvolt = <1200000>;
188		};
189		pm8226_l6: l6 {
190			regulator-min-microvolt = <1800000>;
191			regulator-max-microvolt = <1800000>;
192		};
193		pm8226_l7: l7 {
194			regulator-min-microvolt = <1850000>;
195			regulator-max-microvolt = <1850000>;
196		};
197		pm8226_l8: l8 {
198			regulator-min-microvolt = <1800000>;
199			regulator-max-microvolt = <1800000>;
200		};
201		pm8226_l9: l9 {
202			regulator-min-microvolt = <2050000>;
203			regulator-max-microvolt = <2050000>;
204		};
205		pm8226_l10: l10 {
206			regulator-min-microvolt = <1800000>;
207			regulator-max-microvolt = <1800000>;
208		};
209		pm8226_l12: l12 {
210			regulator-min-microvolt = <1800000>;
211			regulator-max-microvolt = <1800000>;
212		};
213		pm8226_l14: l14 {
214			regulator-min-microvolt = <2750000>;
215			regulator-max-microvolt = <2750000>;
216		};
217		pm8226_l15: l15 {
218			regulator-min-microvolt = <3300000>;
219			regulator-max-microvolt = <3300000>;
220		};
221		pm8226_l16: l16 {
222			regulator-min-microvolt = <3000000>;
223			regulator-max-microvolt = <3350000>;
224		};
225		pm8226_l17: l17 {
226			regulator-min-microvolt = <2950000>;
227			regulator-max-microvolt = <2950000>;
228		};
229		pm8226_l18: l18 {
230			regulator-min-microvolt = <3000000>;
231			regulator-max-microvolt = <3300000>;
232		};
233		pm8226_l19: l19 {
234			regulator-min-microvolt = <3000000>;
235			regulator-max-microvolt = <3000000>;
236		};
237		pm8226_l20: l20 {
238			regulator-min-microvolt = <3075000>;
239			regulator-max-microvolt = <3075000>;
240		};
241		pm8226_l21: l21 {
242			regulator-min-microvolt = <1800000>;
243			regulator-max-microvolt = <2950000>;
244		};
245		pm8226_l22: l22 {
246			regulator-min-microvolt = <1800000>;
247			regulator-max-microvolt = <1800000>;
248		};
249		pm8226_l23: l23 {
250			regulator-min-microvolt = <1800000>;
251			regulator-max-microvolt = <2950000>;
252		};
253		pm8226_l24: l24 {
254			regulator-min-microvolt = <1300000>;
255			regulator-max-microvolt = <1350000>;
256		};
257		pm8226_l25: l25 {
258			regulator-min-microvolt = <1775000>;
259			regulator-max-microvolt = <2125000>;
260		};
261		pm8226_l26: l26 {
262			regulator-min-microvolt = <1225000>;
263			regulator-max-microvolt = <1225000>;
264		};
265		pm8226_l27: l27 {
266			regulator-min-microvolt = <2050000>;
267			regulator-max-microvolt = <2050000>;
268		};
269		pm8226_l28: l28 {
270			regulator-min-microvolt = <2700000>;
271			regulator-max-microvolt = <3000000>;
272		};
273
274		pm8226_lvs1: lvs1 {};
275	};
276};
277
278&sdhc_1 {
279	status = "okay";
280
281	vmmc-supply = <&pm8226_l17>;
282	vqmmc-supply = <&pm8226_l6>;
283
284	bus-width = <8>;
285	non-removable;
286};
287
288&sdhc_3 {
289	status = "okay";
290
291	max-frequency = <100000000>;
292	non-removable;
293
294	vmmc-supply = <&vreg_wlan>;
295	vqmmc-supply = <&pm8226_l6>;
296
297	#address-cells = <1>;
298	#size-cells = <0>;
299
300	wifi@1 {
301		compatible = "brcm,bcm43430a0-fmac", "brcm,bcm4329-fmac";
302		reg = <1>;
303
304		interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_FALLING>;
305		interrupt-names = "host-wake";
306
307		pinctrl-names = "default";
308		pinctrl-0 = <&wlan_hostwake_default_state>;
309	};
310};
311
312&smbb {
313	qcom,fast-charge-safe-current = <450000>;
314	qcom,fast-charge-current-limit = <400000>;
315	qcom,fast-charge-safe-voltage = <4350000>;
316	qcom,fast-charge-high-threshold-voltage = <4350000>;
317	qcom,auto-recharge-threshold-voltage = <4240000>;
318	qcom,minimum-input-voltage = <4450000>;
319
320	status = "okay";
321};
322
323&tlmm {
324	blsp1_uart4_default_state: blsp1-uart4-default-state {
325		pins = "gpio12", "gpio13", "gpio14", "gpio15";
326		function = "blsp_uart4";
327		drive-strength = <8>;
328		bias-disable;
329	};
330
331	bluetooth_default_state: bluetooth-default-state {
332		pins = "gpio47", "gpio48";
333		function = "gpio";
334		drive-strength = <2>;
335		bias-disable;
336	};
337
338	touch_pins: touch-state {
339		irq-pins {
340			pins = "gpio17";
341			function = "gpio";
342
343			drive-strength = <8>;
344			bias-pull-down;
345		};
346
347		reset-pins {
348			pins = "gpio16";
349			function = "gpio";
350
351			drive-strength = <8>;
352			bias-disable;
353			output-high;
354		};
355	};
356
357	vibrator_clk_default_state: vibrator-clk-default-state {
358		pins = "gpio33";
359		function = "gp0_clk";
360		drive-strength = <2>;
361		bias-disable;
362	};
363
364	vibrator_en_default_state: vibrator-en-default-state {
365		pins = "gpio62";
366		function = "gpio";
367		drive-strength = <2>;
368		bias-disable;
369	};
370
371	wlan_hostwake_default_state: wlan-hostwake-default-state {
372		pins = "gpio37";
373		function = "gpio";
374		drive-strength = <2>;
375		bias-disable;
376	};
377
378	wlan_regulator_default_state: wlan-regulator-default-state {
379		pins = "gpio46";
380		function = "gpio";
381		drive-strength = <2>;
382		bias-pull-up;
383	};
384};
385
386&usb {
387	status = "okay";
388	extcon = <&smbb>;
389	dr_mode = "peripheral";
390};
391
392&usb_hs_phy {
393	extcon = <&smbb>;
394	v1p8-supply = <&pm8226_l10>;
395	v3p3-supply = <&pm8226_l20>;
396};
397