1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (c) 2018, Linaro Limited
4 */
5
6#include <dt-bindings/gpio/gpio.h>
7#include "qcs404.dtsi"
8#include "pms405.dtsi"
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
11
12/ {
13	aliases {
14		serial0 = &blsp1_uart2;
15		serial1 = &blsp1_uart3;
16	};
17
18	chosen {
19		stdout-path = "serial0";
20	};
21
22	vph_pwr: vph-pwr-regulator {
23		compatible = "regulator-fixed";
24		regulator-name = "vph_pwr";
25		regulator-always-on;
26		regulator-boot-on;
27	};
28
29	vdd_ch0_3p3:
30	vdd_esmps3_3p3: vdd-esmps3-3p3-regulator {
31		compatible = "regulator-fixed";
32		regulator-name = "eSMPS3_3P3";
33
34		regulator-min-microvolt = <3300000>;
35		regulator-max-microvolt = <3300000>;
36		regulator-always-on;
37	};
38
39	usb3_vbus_reg: regulator-usb3-vbus {
40		compatible = "regulator-fixed";
41		regulator-name = "VBUS_BOOST_5V";
42		regulator-min-microvolt = <5000000>;
43		regulator-max-microvolt = <5000000>;
44		gpio = <&pms405_gpios 3 GPIO_ACTIVE_HIGH>;
45		pinctrl-names = "default";
46		pinctrl-0 = <&usb_vbus_boost_pin>;
47		vin-supply = <&vph_pwr>;
48		enable-active-high;
49
50		/* TODO: Drop this when introducing role switching */
51		regulator-always-on;
52	};
53};
54
55&blsp1_uart3 {
56	status = "okay";
57
58	bluetooth {
59		compatible = "qcom,wcn3990-bt";
60		vddio-supply = <&vreg_l6_1p8>;
61		vddxo-supply = <&vreg_l5_1p8>;
62		vddrf-supply = <&vreg_l1_1p3>;
63		vddch0-supply = <&vdd_ch0_3p3>;
64
65		local-bd-address = [ 02 00 00 00 5a ad ];
66
67		max-speed = <3200000>;
68	};
69};
70
71&blsp1_dma {
72	qcom,controlled-remotely;
73};
74
75&blsp2_dma {
76	qcom,controlled-remotely;
77};
78
79&gcc {
80	protected-clocks = <GCC_BIMC_CDSP_CLK>,
81			   <GCC_CDSP_CFG_AHB_CLK>,
82			   <GCC_CDSP_BIMC_CLK_SRC>,
83			   <GCC_CDSP_TBU_CLK>,
84			   <141>, /* GCC_WCSS_Q6_AHB_CLK */
85			   <142>; /* GCC_WCSS_Q6_AXIM_CLK */
86};
87
88&pms405_spmi_regulators {
89	vdd_s3-supply = <&vph_pwr>;
90
91	pms405_s3: s3 {
92		regulator-always-on;
93		regulator-boot-on;
94		regulator-name = "vdd_apc";
95		regulator-initial-mode = <1>;
96		regulator-min-microvolt = <1048000>;
97		regulator-max-microvolt = <1384000>;
98	};
99};
100
101&pcie {
102	status = "okay";
103
104	perst-gpios = <&tlmm 43 GPIO_ACTIVE_LOW>;
105
106	pinctrl-names = "default";
107	pinctrl-0 = <&perst_state>;
108};
109
110&pcie_phy {
111	status = "okay";
112
113	vdda-vp-supply = <&vreg_l3_1p05>;
114	vdda-vph-supply = <&vreg_l5_1p8>;
115};
116
117&remoteproc_adsp {
118	status = "okay";
119};
120
121&remoteproc_cdsp {
122	status = "okay";
123};
124
125&remoteproc_wcss {
126	status = "okay";
127};
128
129&rpm_requests {
130	regulators {
131		compatible = "qcom,rpm-pms405-regulators";
132
133		vdd_s1-supply = <&vph_pwr>;
134		vdd_s2-supply = <&vph_pwr>;
135		vdd_s3-supply = <&vph_pwr>;
136		vdd_s4-supply = <&vph_pwr>;
137		vdd_s5-supply = <&vph_pwr>;
138		vdd_l1_l2-supply = <&vreg_s5_1p35>;
139		vdd_l3_l8-supply = <&vreg_s5_1p35>;
140		vdd_l4-supply = <&vreg_s5_1p35>;
141		vdd_l5_l6-supply = <&vreg_s4_1p8>;
142		vdd_l7-supply = <&vph_pwr>;
143		vdd_l9-supply = <&vreg_s5_1p35>;
144		vdd_l10_l11_l12_l13-supply = <&vph_pwr>;
145
146		vreg_s4_1p8: s4 {
147			regulator-min-microvolt = <1728000>;
148			regulator-max-microvolt = <1920000>;
149		};
150
151		vreg_s5_1p35: s5 {
152			regulator-min-microvolt = <1352000>;
153			regulator-max-microvolt = <1352000>;
154		};
155
156		vreg_l1_1p3: l1 {
157			regulator-min-microvolt = <1240000>;
158			regulator-max-microvolt = <1352000>;
159		};
160
161		vreg_l2_1p275: l2 {
162			regulator-min-microvolt = <1048000>;
163			regulator-max-microvolt = <1280000>;
164		};
165
166		vreg_l3_1p05: l3 {
167			regulator-min-microvolt = <1048000>;
168			regulator-max-microvolt = <1160000>;
169		};
170
171		vreg_l4_1p2: l4 {
172			regulator-min-microvolt = <1144000>;
173			regulator-max-microvolt = <1256000>;
174		};
175
176		vreg_l5_1p8: l5 {
177			regulator-min-microvolt = <1800000>;
178			regulator-max-microvolt = <1800000>;
179		};
180
181		vreg_l6_1p8: l6 {
182			regulator-min-microvolt = <1800000>;
183			regulator-max-microvolt = <1800000>;
184			regulator-always-on;
185		};
186
187		vreg_l7_1p8: l7 {
188			regulator-min-microvolt = <1616000>;
189			regulator-max-microvolt = <3000000>;
190		};
191
192		vreg_l8_1p2: l8 {
193			regulator-min-microvolt = <1136000>;
194			regulator-max-microvolt = <1352000>;
195		};
196
197		vreg_l10_3p3: l10 {
198			regulator-min-microvolt = <2936000>;
199			regulator-max-microvolt = <3088000>;
200		};
201
202		vreg_l11_sdc2: l11 {
203			regulator-min-microvolt = <2696000>;
204			regulator-max-microvolt = <3304000>;
205		};
206
207		vreg_l12_3p3: l12 {
208			regulator-min-microvolt = <3050000>;
209			regulator-max-microvolt = <3300000>;
210		};
211
212		vreg_l13_3p3: l13 {
213			regulator-min-microvolt = <3000000>;
214			regulator-max-microvolt = <3300000>;
215		};
216	};
217};
218
219&sdcc1 {
220	status = "okay";
221
222	supports-cqe;
223	mmc-ddr-1_8v;
224	mmc-hs400-1_8v;
225	bus-width = <8>;
226	non-removable;
227
228	pinctrl-names = "default", "sleep";
229	pinctrl-0 = <&sdc1_on>;
230	pinctrl-1 = <&sdc1_off>;
231};
232
233&tlmm {
234	perst_state: perst-state {
235		pins = "gpio43";
236		function = "gpio";
237
238		drive-strength = <2>;
239		bias-disable;
240		output-low;
241	};
242
243	sdc1_on: sdc1-on-state {
244		clk-pins {
245			pins = "sdc1_clk";
246			bias-disable;
247			drive-strength = <16>;
248		};
249
250		cmd-pins {
251			pins = "sdc1_cmd";
252			bias-pull-up;
253			drive-strength = <10>;
254		};
255
256		data-pins {
257			pins = "sdc1_data";
258			bias-pull-up;
259			drive-strength = <10>;
260		};
261
262		rclk-pins {
263			pins = "sdc1_rclk";
264			bias-pull-down;
265		};
266	};
267
268	sdc1_off: sdc1-off-state {
269		clk-pins {
270			pins = "sdc1_clk";
271			bias-disable;
272			drive-strength = <2>;
273		};
274
275		cmd-pins {
276			pins = "sdc1_cmd";
277			bias-pull-up;
278			drive-strength = <2>;
279		};
280
281		data-pins {
282			pins = "sdc1_data";
283			bias-pull-up;
284			drive-strength = <2>;
285		};
286
287		rclk-pins {
288			pins = "sdc1_rclk";
289			bias-pull-down;
290		};
291	};
292
293	usb3_id_pin: usb3-id-state {
294		pins = "gpio116";
295		function = "gpio";
296
297		drive-strength = <2>;
298		bias-pull-up;
299		input-enable;
300	};
301};
302
303&pms405_gpios {
304	usb_vbus_boost_pin: usb-vbus-boost-state {
305		pinconf {
306			pins = "gpio3";
307			function = PMIC_GPIO_FUNC_NORMAL;
308			output-low;
309			power-source = <1>;
310		};
311	};
312	usb3_vbus_pin: usb3-vbus-state {
313		pinconf {
314			pins = "gpio12";
315			function = PMIC_GPIO_FUNC_NORMAL;
316			input-enable;
317			bias-pull-down;
318			power-source = <1>;
319		};
320	};
321};
322
323&usb2 {
324	status = "okay";
325};
326
327&usb2_phy_sec {
328	vdd-supply = <&vreg_l4_1p2>;
329	vdda1p8-supply = <&vreg_l5_1p8>;
330	vdda3p3-supply = <&vreg_l12_3p3>;
331	status = "okay";
332};
333
334&usb3 {
335	status = "okay";
336
337};
338
339&usb3_dwc3 {
340	dr_mode = "host";
341};
342
343&usb2_phy_prim {
344	vdd-supply = <&vreg_l4_1p2>;
345	vdda1p8-supply = <&vreg_l5_1p8>;
346	vdda3p3-supply = <&vreg_l12_3p3>;
347	status = "okay";
348};
349
350&usb3_phy {
351	vdd-supply = <&vreg_l3_1p05>;
352	vdda1p8-supply = <&vreg_l5_1p8>;
353	status = "okay";
354};
355
356&wifi {
357	status = "okay";
358	vdd-0.8-cx-mx-supply = <&vreg_l2_1p275>;
359	vdd-1.8-xo-supply = <&vreg_l5_1p8>;
360	vdd-1.3-rfa-supply = <&vreg_l1_1p3>;
361};
362
363/* PINCTRL - additions to nodes defined in qcs404.dtsi */
364
365&blsp1_uart2_default {
366	rx-pins {
367		drive-strength = <2>;
368		bias-disable;
369	};
370
371	tx-pins {
372		drive-strength = <2>;
373		bias-disable;
374	};
375};
376
377&blsp1_uart3_default {
378	cts-pins {
379		bias-disable;
380	};
381
382	rts-tx-pins {
383		drive-strength = <2>;
384		bias-disable;
385	};
386
387	rx-pins {
388		bias-pull-up;
389	};
390};
391