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