Linux Audio

Check our new training course

Linux kernel drivers training

Mar 31-Apr 9, 2025, special US time zones
Register
Loading...
  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 = [ 00 00 00 00 00 00 ];
 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	};
300};
301
302&pms405_gpios {
303	usb_vbus_boost_pin: usb-vbus-boost-state {
304		pinconf {
305			pins = "gpio3";
306			function = PMIC_GPIO_FUNC_NORMAL;
307			output-low;
308			power-source = <1>;
309		};
310	};
311	usb3_vbus_pin: usb3-vbus-state {
312		pinconf {
313			pins = "gpio12";
314			function = PMIC_GPIO_FUNC_NORMAL;
315			input-enable;
316			bias-pull-down;
317			power-source = <1>;
318		};
319	};
320};
321
322&usb2 {
323	status = "okay";
324};
325
326&usb2_phy_sec {
327	vdd-supply = <&vreg_l4_1p2>;
328	vdda1p8-supply = <&vreg_l5_1p8>;
329	vdda3p3-supply = <&vreg_l12_3p3>;
330	status = "okay";
331};
332
333&usb3 {
334	status = "okay";
335
336};
337
338&usb3_dwc3 {
339	dr_mode = "host";
340};
341
342&usb2_phy_prim {
343	vdd-supply = <&vreg_l4_1p2>;
344	vdda1p8-supply = <&vreg_l5_1p8>;
345	vdda3p3-supply = <&vreg_l12_3p3>;
346	status = "okay";
347};
348
349&usb3_phy {
350	vdd-supply = <&vreg_l3_1p05>;
351	vdda1p8-supply = <&vreg_l5_1p8>;
352	status = "okay";
353};
354
355&wifi {
356	status = "okay";
357	vdd-0.8-cx-mx-supply = <&vreg_l2_1p275>;
358	vdd-1.8-xo-supply = <&vreg_l5_1p8>;
359	vdd-1.3-rfa-supply = <&vreg_l1_1p3>;
360};
361
362/* PINCTRL - additions to nodes defined in qcs404.dtsi */
363
364&blsp1_uart2_default {
365	rx-pins {
366		drive-strength = <2>;
367		bias-disable;
368	};
369
370	tx-pins {
371		drive-strength = <2>;
372		bias-disable;
373	};
374};
375
376&blsp1_uart3_default {
377	cts-pins {
378		bias-disable;
379	};
380
381	rts-tx-pins {
382		drive-strength = <2>;
383		bias-disable;
384	};
385
386	rx-pins {
387		bias-pull-up;
388	};
389};