1116f7cc4SDouglas Anderson// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2116f7cc4SDouglas Anderson/*
3116f7cc4SDouglas Anderson * sc7280 Qcard device tree source
4116f7cc4SDouglas Anderson *
5116f7cc4SDouglas Anderson * Qcard PCB has the processor, RAM, eMMC (if stuffed), and eDP connector (if
6116f7cc4SDouglas Anderson * stuffed) on it. This device tree tries to encapsulate all the things that
7116f7cc4SDouglas Anderson * all boards using Qcard will have in common. Given that there are stuffing
8116f7cc4SDouglas Anderson * options, some things may be left with status "disabled" and enabled in
9116f7cc4SDouglas Anderson * the actual board device tree files.
10116f7cc4SDouglas Anderson *
11116f7cc4SDouglas Anderson * Copyright 2022 Google LLC.
12116f7cc4SDouglas Anderson */
13116f7cc4SDouglas Anderson
14116f7cc4SDouglas Anderson#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
15116f7cc4SDouglas Anderson#include <dt-bindings/iio/qcom,spmi-adc7-pmr735a.h>
16116f7cc4SDouglas Anderson#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
17116f7cc4SDouglas Anderson#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
18116f7cc4SDouglas Anderson
19116f7cc4SDouglas Anderson#include "sc7280.dtsi"
20116f7cc4SDouglas Anderson
21116f7cc4SDouglas Anderson/* PMICs depend on spmi_bus label and so must come after SoC */
22116f7cc4SDouglas Anderson#include "pm7325.dtsi"
23116f7cc4SDouglas Anderson#include "pm8350c.dtsi"
24116f7cc4SDouglas Anderson#include "pmk8350.dtsi"
25116f7cc4SDouglas Anderson
26116f7cc4SDouglas Anderson/ {
27116f7cc4SDouglas Anderson	aliases {
28116f7cc4SDouglas Anderson		bluetooth0 = &bluetooth;
29116f7cc4SDouglas Anderson		serial0 = &uart5;
30116f7cc4SDouglas Anderson		serial1 = &uart7;
31116f7cc4SDouglas Anderson	};
32116f7cc4SDouglas Anderson};
33116f7cc4SDouglas Anderson
34116f7cc4SDouglas Anderson&apps_rsc {
35116f7cc4SDouglas Anderson	/*
36116f7cc4SDouglas Anderson	 * Regulators are given labels corresponding to the various names
37116f7cc4SDouglas Anderson	 * they are referred to on schematics. They are also given labels
38116f7cc4SDouglas Anderson	 * corresponding to named voltage inputs on the SoC or components
39116f7cc4SDouglas Anderson	 * bundled with the SoC (like radio companion chips). We totally
40116f7cc4SDouglas Anderson	 * ignore it when one regulator is the input to another regulator.
41116f7cc4SDouglas Anderson	 * That's handled automatically by the initial config given to
42116f7cc4SDouglas Anderson	 * RPMH by the firmware.
43116f7cc4SDouglas Anderson	 *
44116f7cc4SDouglas Anderson	 * Regulators that the HLOS (High Level OS) doesn't touch at all
45116f7cc4SDouglas Anderson	 * are left out of here since they are managed elsewhere.
46116f7cc4SDouglas Anderson	 */
47116f7cc4SDouglas Anderson
48116f7cc4SDouglas Anderson	pm7325-regulators {
49116f7cc4SDouglas Anderson		compatible = "qcom,pm7325-rpmh-regulators";
50116f7cc4SDouglas Anderson		qcom,pmic-id = "b";
51116f7cc4SDouglas Anderson
52116f7cc4SDouglas Anderson		vdd19_pmu_pcie_i:
53116f7cc4SDouglas Anderson		vdd19_pmu_rfa_i:
54116f7cc4SDouglas Anderson		vreg_s1b_1p856: smps1 {
55116f7cc4SDouglas Anderson			regulator-min-microvolt = <1856000>;
56116f7cc4SDouglas Anderson			regulator-max-microvolt = <2040000>;
57116f7cc4SDouglas Anderson		};
58116f7cc4SDouglas Anderson
59116f7cc4SDouglas Anderson		vdd_pmu_aon_i:
60116f7cc4SDouglas Anderson		vdd09_pmu_rfa_i:
61116f7cc4SDouglas Anderson		vdd095_mx_pmu:
62116f7cc4SDouglas Anderson		vdd095_pmu:
63116f7cc4SDouglas Anderson		vreg_s7b_0p952: smps7 {
64116f7cc4SDouglas Anderson			regulator-min-microvolt = <535000>;
65116f7cc4SDouglas Anderson			regulator-max-microvolt = <1120000>;
66116f7cc4SDouglas Anderson		};
67116f7cc4SDouglas Anderson
68116f7cc4SDouglas Anderson		vdd13_pmu_rfa_i:
69116f7cc4SDouglas Anderson		vdd13_pmu_pcie_i:
70116f7cc4SDouglas Anderson		vreg_s8b_1p256: smps8 {
71116f7cc4SDouglas Anderson			regulator-min-microvolt = <1256000>;
72116f7cc4SDouglas Anderson			regulator-max-microvolt = <1500000>;
73116f7cc4SDouglas Anderson		};
74116f7cc4SDouglas Anderson
75116f7cc4SDouglas Anderson		vdd_a_usbssdp_0_core:
76116f7cc4SDouglas Anderson		vreg_l1b_0p912: ldo1 {
77116f7cc4SDouglas Anderson			regulator-min-microvolt = <825000>;
78116f7cc4SDouglas Anderson			regulator-max-microvolt = <925000>;
79116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
80116f7cc4SDouglas Anderson		};
81116f7cc4SDouglas Anderson
82116f7cc4SDouglas Anderson		vdd_a_usbhs_3p1:
83116f7cc4SDouglas Anderson		vreg_l2b_3p072: ldo2 {
84116f7cc4SDouglas Anderson			regulator-min-microvolt = <2700000>;
85116f7cc4SDouglas Anderson			regulator-max-microvolt = <3544000>;
86116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
87116f7cc4SDouglas Anderson		};
88116f7cc4SDouglas Anderson
89116f7cc4SDouglas Anderson		vdd_a_csi_0_1_1p2:
90116f7cc4SDouglas Anderson		vdd_a_csi_2_3_1p2:
91116f7cc4SDouglas Anderson		vdd_a_csi_4_1p2:
92116f7cc4SDouglas Anderson		vdd_a_dsi_0_1p2:
93116f7cc4SDouglas Anderson		vdd_a_edp_0_1p2:
94116f7cc4SDouglas Anderson		vdd_a_qlink_0_1p2:
95116f7cc4SDouglas Anderson		vdd_a_qlink_1_1p2:
96116f7cc4SDouglas Anderson		vdd_a_pcie_0_1p2:
97116f7cc4SDouglas Anderson		vdd_a_pcie_1_1p2:
98116f7cc4SDouglas Anderson		vdd_a_ufs_0_1p2:
99116f7cc4SDouglas Anderson		vdd_a_usbssdp_0_1p2:
100116f7cc4SDouglas Anderson		vreg_l6b_1p2: ldo6 {
101116f7cc4SDouglas Anderson			regulator-min-microvolt = <1140000>;
102116f7cc4SDouglas Anderson			regulator-max-microvolt = <1260000>;
103116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
104116f7cc4SDouglas Anderson		};
105116f7cc4SDouglas Anderson
106116f7cc4SDouglas Anderson		/*
107116f7cc4SDouglas Anderson		 * Despite the fact that this is named to be 2.5V on the
108116f7cc4SDouglas Anderson		 * schematic, it powers eMMC which doesn't accept 2.5V
109116f7cc4SDouglas Anderson		 */
110116f7cc4SDouglas Anderson		vreg_l7b_2p5: ldo7 {
111116f7cc4SDouglas Anderson			regulator-min-microvolt = <2960000>;
112116f7cc4SDouglas Anderson			regulator-max-microvolt = <2960000>;
113116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
114116f7cc4SDouglas Anderson		};
115116f7cc4SDouglas Anderson
116116f7cc4SDouglas Anderson		vdd_px_wcd9385:
117116f7cc4SDouglas Anderson		vdd_txrx:
118116f7cc4SDouglas Anderson		vddpx_0:
119116f7cc4SDouglas Anderson		vddpx_3:
120116f7cc4SDouglas Anderson		vddpx_7:
121116f7cc4SDouglas Anderson		vreg_l18b_1p8: ldo18 {
122116f7cc4SDouglas Anderson			regulator-min-microvolt = <1800000>;
123116f7cc4SDouglas Anderson			regulator-max-microvolt = <2000000>;
124116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
125116f7cc4SDouglas Anderson		};
126116f7cc4SDouglas Anderson
127116f7cc4SDouglas Anderson		vdd_1p8:
128116f7cc4SDouglas Anderson		vdd_px_sdr735:
129116f7cc4SDouglas Anderson		vdd_pxm:
130116f7cc4SDouglas Anderson		vdd18_io:
131116f7cc4SDouglas Anderson		vddio_px_1:
132116f7cc4SDouglas Anderson		vddio_px_2:
133116f7cc4SDouglas Anderson		vddio_px_3:
134116f7cc4SDouglas Anderson		vddpx_ts:
135116f7cc4SDouglas Anderson		vddpx_wl4otp:
136116f7cc4SDouglas Anderson		vreg_l19b_1p8: ldo19 {
137116f7cc4SDouglas Anderson			regulator-min-microvolt = <1800000>;
138116f7cc4SDouglas Anderson			regulator-max-microvolt = <1800000>;
139116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
140116f7cc4SDouglas Anderson		};
141116f7cc4SDouglas Anderson	};
142116f7cc4SDouglas Anderson
143116f7cc4SDouglas Anderson	pm8350c-regulators {
144116f7cc4SDouglas Anderson		compatible = "qcom,pm8350c-rpmh-regulators";
145116f7cc4SDouglas Anderson		qcom,pmic-id = "c";
146116f7cc4SDouglas Anderson
147116f7cc4SDouglas Anderson		vdd22_wlbtpa_ch0:
148116f7cc4SDouglas Anderson		vdd22_wlbtpa_ch1:
149116f7cc4SDouglas Anderson		vdd22_wlbtppa_ch0:
150116f7cc4SDouglas Anderson		vdd22_wlbtppa_ch1:
151116f7cc4SDouglas Anderson		vdd22_wlpa5g_ch0:
152116f7cc4SDouglas Anderson		vdd22_wlpa5g_ch1:
153116f7cc4SDouglas Anderson		vdd22_wlppa5g_ch0:
154116f7cc4SDouglas Anderson		vdd22_wlppa5g_ch1:
155116f7cc4SDouglas Anderson		vreg_s1c_2p2: smps1 {
156116f7cc4SDouglas Anderson			regulator-min-microvolt = <2190000>;
157116f7cc4SDouglas Anderson			regulator-max-microvolt = <2210000>;
158116f7cc4SDouglas Anderson		};
159116f7cc4SDouglas Anderson
160116f7cc4SDouglas Anderson		lp4_vdd2_1p052:
161116f7cc4SDouglas Anderson		vreg_s9c_0p676: smps9 {
162116f7cc4SDouglas Anderson			regulator-min-microvolt = <1010000>;
163116f7cc4SDouglas Anderson			regulator-max-microvolt = <1170000>;
164116f7cc4SDouglas Anderson		};
165116f7cc4SDouglas Anderson
166116f7cc4SDouglas Anderson		vdda_apc_cs_1p8:
167116f7cc4SDouglas Anderson		vdda_gfx_cs_1p8:
168116f7cc4SDouglas Anderson		vdda_turing_q6_cs_1p8:
169116f7cc4SDouglas Anderson		vdd_a_cxo_1p8:
170116f7cc4SDouglas Anderson		vdd_a_qrefs_1p8:
171116f7cc4SDouglas Anderson		vdd_a_usbhs_1p8:
172116f7cc4SDouglas Anderson		vdd_qfprom:
173116f7cc4SDouglas Anderson		vreg_l1c_1p8: ldo1 {
174116f7cc4SDouglas Anderson			regulator-min-microvolt = <1800000>;
175116f7cc4SDouglas Anderson			regulator-max-microvolt = <1980000>;
176116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
177116f7cc4SDouglas Anderson		};
178116f7cc4SDouglas Anderson
179116f7cc4SDouglas Anderson		vreg_l2c_1p8: ldo2 {
180116f7cc4SDouglas Anderson			regulator-min-microvolt = <1620000>;
181116f7cc4SDouglas Anderson			regulator-max-microvolt = <1980000>;
182116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
183116f7cc4SDouglas Anderson		};
184116f7cc4SDouglas Anderson
185116f7cc4SDouglas Anderson		vreg_l3c_3p0: ldo3 {
186116f7cc4SDouglas Anderson			regulator-min-microvolt = <2800000>;
187116f7cc4SDouglas Anderson			regulator-max-microvolt = <3540000>;
188116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
189116f7cc4SDouglas Anderson		};
190116f7cc4SDouglas Anderson
191116f7cc4SDouglas Anderson		vddpx_5:
192116f7cc4SDouglas Anderson		vreg_l4c_1p8_3p0: ldo4 {
193116f7cc4SDouglas Anderson			regulator-min-microvolt = <1620000>;
194116f7cc4SDouglas Anderson			regulator-max-microvolt = <3300000>;
195116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
196116f7cc4SDouglas Anderson		};
197116f7cc4SDouglas Anderson
198116f7cc4SDouglas Anderson		vddpx_6:
199116f7cc4SDouglas Anderson		vreg_l5c_1p8_3p0: ldo5 {
200116f7cc4SDouglas Anderson			regulator-min-microvolt = <1620000>;
201116f7cc4SDouglas Anderson			regulator-max-microvolt = <3300000>;
202116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
203116f7cc4SDouglas Anderson		};
204116f7cc4SDouglas Anderson
205116f7cc4SDouglas Anderson		vddpx_2:
206116f7cc4SDouglas Anderson		vreg_l6c_2p96: ldo6 {
207116f7cc4SDouglas Anderson			regulator-min-microvolt = <1800000>;
208116f7cc4SDouglas Anderson			regulator-max-microvolt = <2950000>;
209116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
210116f7cc4SDouglas Anderson		};
211116f7cc4SDouglas Anderson
212116f7cc4SDouglas Anderson		vreg_l7c_3p0: ldo7 {
213116f7cc4SDouglas Anderson			regulator-min-microvolt = <3000000>;
214116f7cc4SDouglas Anderson			regulator-max-microvolt = <3544000>;
215116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
216116f7cc4SDouglas Anderson		};
217116f7cc4SDouglas Anderson
218116f7cc4SDouglas Anderson		vreg_l8c_1p8: ldo8 {
219116f7cc4SDouglas Anderson			regulator-min-microvolt = <1620000>;
220116f7cc4SDouglas Anderson			regulator-max-microvolt = <2000000>;
221116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
222116f7cc4SDouglas Anderson		};
223116f7cc4SDouglas Anderson
224116f7cc4SDouglas Anderson		vreg_l9c_2p96: ldo9 {
225116f7cc4SDouglas Anderson			regulator-min-microvolt = <2960000>;
226116f7cc4SDouglas Anderson			regulator-max-microvolt = <2960000>;
227116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
228116f7cc4SDouglas Anderson		};
229116f7cc4SDouglas Anderson
230116f7cc4SDouglas Anderson		vdd_a_csi_0_1_0p9:
231116f7cc4SDouglas Anderson		vdd_a_csi_2_3_0p9:
232116f7cc4SDouglas Anderson		vdd_a_csi_4_0p9:
233116f7cc4SDouglas Anderson		vdd_a_dsi_0_0p9:
234116f7cc4SDouglas Anderson		vdd_a_dsi_0_pll_0p9:
235116f7cc4SDouglas Anderson		vdd_a_edp_0_0p9:
236116f7cc4SDouglas Anderson		vdd_a_gnss_0p9:
237116f7cc4SDouglas Anderson		vdd_a_pcie_0_core:
238116f7cc4SDouglas Anderson		vdd_a_pcie_1_core:
239116f7cc4SDouglas Anderson		vdd_a_qlink_0_0p9:
240116f7cc4SDouglas Anderson		vdd_a_qlink_0_0p9_ck:
241116f7cc4SDouglas Anderson		vdd_a_qlink_1_0p9:
242116f7cc4SDouglas Anderson		vdd_a_qlink_1_0p9_ck:
243116f7cc4SDouglas Anderson		vdd_a_qrefs_0p875_0:
244116f7cc4SDouglas Anderson		vdd_a_qrefs_0p875_1:
245116f7cc4SDouglas Anderson		vdd_a_qrefs_0p875_2:
246116f7cc4SDouglas Anderson		vdd_a_qrefs_0p875_3:
247116f7cc4SDouglas Anderson		vdd_a_qrefs_0p875_4_5:
248116f7cc4SDouglas Anderson		vdd_a_qrefs_0p875_6:
249116f7cc4SDouglas Anderson		vdd_a_qrefs_0p875_7:
250116f7cc4SDouglas Anderson		vdd_a_qrefs_0p875_8:
251116f7cc4SDouglas Anderson		vdd_a_qrefs_0p875_9:
252116f7cc4SDouglas Anderson		vdd_a_ufs_0_core:
253116f7cc4SDouglas Anderson		vdd_a_usbhs_core:
254116f7cc4SDouglas Anderson		vreg_l10c_0p88: ldo10 {
255116f7cc4SDouglas Anderson			regulator-min-microvolt = <720000>;
256116f7cc4SDouglas Anderson			regulator-max-microvolt = <1050000>;
257116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
258116f7cc4SDouglas Anderson		};
259116f7cc4SDouglas Anderson
260116f7cc4SDouglas Anderson		vreg_l11c_2p8: ldo11 {
261116f7cc4SDouglas Anderson			regulator-min-microvolt = <2800000>;
262116f7cc4SDouglas Anderson			regulator-max-microvolt = <3544000>;
263116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
264116f7cc4SDouglas Anderson		};
265116f7cc4SDouglas Anderson
266116f7cc4SDouglas Anderson		vreg_l12c_1p8: ldo12 {
267116f7cc4SDouglas Anderson			regulator-min-microvolt = <1650000>;
268116f7cc4SDouglas Anderson			regulator-max-microvolt = <2000000>;
269116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
270116f7cc4SDouglas Anderson		};
271116f7cc4SDouglas Anderson
272116f7cc4SDouglas Anderson		vreg_l13c_3p0: ldo13 {
273116f7cc4SDouglas Anderson			regulator-min-microvolt = <2700000>;
274116f7cc4SDouglas Anderson			regulator-max-microvolt = <3544000>;
275116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
276116f7cc4SDouglas Anderson		};
277116f7cc4SDouglas Anderson
278116f7cc4SDouglas Anderson		vdd_flash:
279116f7cc4SDouglas Anderson		vdd_iris_rgb:
280116f7cc4SDouglas Anderson		vdd_mic_bias:
281116f7cc4SDouglas Anderson		vreg_bob: bob {
282116f7cc4SDouglas Anderson			regulator-min-microvolt = <3008000>;
283116f7cc4SDouglas Anderson			regulator-max-microvolt = <3960000>;
284116f7cc4SDouglas Anderson			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
285116f7cc4SDouglas Anderson		};
286116f7cc4SDouglas Anderson	};
287116f7cc4SDouglas Anderson};
288116f7cc4SDouglas Anderson
289116f7cc4SDouglas Anderson/* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */
290116f7cc4SDouglas Anderson
291116f7cc4SDouglas Anderson&ipa {
292116f7cc4SDouglas Anderson	status = "okay";
293116f7cc4SDouglas Anderson	modem-init;
294116f7cc4SDouglas Anderson};
295116f7cc4SDouglas Anderson
296116f7cc4SDouglas Anderson&pcie1_phy {
297116f7cc4SDouglas Anderson	vdda-phy-supply = <&vreg_l10c_0p88>;
298116f7cc4SDouglas Anderson	vdda-pll-supply = <&vreg_l6b_1p2>;
299116f7cc4SDouglas Anderson};
300116f7cc4SDouglas Anderson
301116f7cc4SDouglas Anderson&pmk8350_vadc {
302116f7cc4SDouglas Anderson	pmk8350-die-temp@3 {
303116f7cc4SDouglas Anderson		reg = <PMK8350_ADC7_DIE_TEMP>;
304116f7cc4SDouglas Anderson		label = "pmk8350_die_temp";
305116f7cc4SDouglas Anderson		qcom,pre-scaling = <1 1>;
306116f7cc4SDouglas Anderson	};
307116f7cc4SDouglas Anderson
308116f7cc4SDouglas Anderson	pmr735a-die-temp@403 {
309116f7cc4SDouglas Anderson		reg = <PMR735A_ADC7_DIE_TEMP>;
310116f7cc4SDouglas Anderson		label = "pmr735a_die_temp";
311116f7cc4SDouglas Anderson		qcom,pre-scaling = <1 1>;
312116f7cc4SDouglas Anderson	};
313116f7cc4SDouglas Anderson};
314116f7cc4SDouglas Anderson
315116f7cc4SDouglas Anderson&qfprom {
316116f7cc4SDouglas Anderson	vcc-supply = <&vdd_qfprom>;
317116f7cc4SDouglas Anderson};
318116f7cc4SDouglas Anderson
319116f7cc4SDouglas Anderson/* For eMMC. NOTE: not all Qcards have eMMC stuffed */
320116f7cc4SDouglas Anderson&sdhc_1 {
321116f7cc4SDouglas Anderson	vmmc-supply = <&vreg_l7b_2p5>;
322116f7cc4SDouglas Anderson	vqmmc-supply = <&vreg_l19b_1p8>;
323116f7cc4SDouglas Anderson
324116f7cc4SDouglas Anderson	non-removable;
325116f7cc4SDouglas Anderson	no-sd;
326116f7cc4SDouglas Anderson	no-sdio;
327116f7cc4SDouglas Anderson};
328116f7cc4SDouglas Anderson
329116f7cc4SDouglas Andersonuart_dbg: &uart5 {
330116f7cc4SDouglas Anderson	compatible = "qcom,geni-debug-uart";
331116f7cc4SDouglas Anderson	status = "okay";
332116f7cc4SDouglas Anderson};
333116f7cc4SDouglas Anderson
334116f7cc4SDouglas Andersonmos_bt_uart: &uart7 {
335116f7cc4SDouglas Anderson	status = "okay";
336116f7cc4SDouglas Anderson
337116f7cc4SDouglas Anderson	/delete-property/ interrupts;
338116f7cc4SDouglas Anderson	interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
339116f7cc4SDouglas Anderson				<&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
340116f7cc4SDouglas Anderson	pinctrl-names = "default", "sleep";
341116f7cc4SDouglas Anderson	pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>, <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
342116f7cc4SDouglas Anderson
343116f7cc4SDouglas Anderson	bluetooth: bluetooth {
344116f7cc4SDouglas Anderson		compatible = "qcom,wcn6750-bt";
345116f7cc4SDouglas Anderson		pinctrl-names = "default";
346116f7cc4SDouglas Anderson		pinctrl-0 = <&mos_bt_en>;
347116f7cc4SDouglas Anderson		enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
348116f7cc4SDouglas Anderson		swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
349116f7cc4SDouglas Anderson		vddaon-supply = <&vreg_s7b_0p952>;
350116f7cc4SDouglas Anderson		vddbtcxmx-supply = <&vreg_s7b_0p952>;
351116f7cc4SDouglas Anderson		vddrfacmn-supply = <&vreg_s7b_0p952>;
352116f7cc4SDouglas Anderson		vddrfa0p8-supply = <&vreg_s7b_0p952>;
353116f7cc4SDouglas Anderson		vddrfa1p7-supply = <&vdd19_pmu_rfa_i>;
354116f7cc4SDouglas Anderson		vddrfa1p2-supply = <&vdd13_pmu_rfa_i>;
355116f7cc4SDouglas Anderson		vddrfa2p2-supply = <&vreg_s1c_2p2>;
356116f7cc4SDouglas Anderson		vddasd-supply = <&vreg_l11c_2p8>;
357116f7cc4SDouglas Anderson		vddio-supply = <&vreg_l18b_1p8>;
358116f7cc4SDouglas Anderson		max-speed = <3200000>;
359116f7cc4SDouglas Anderson	};
360116f7cc4SDouglas Anderson};
361116f7cc4SDouglas Anderson
362116f7cc4SDouglas Anderson&usb_1_hsphy {
363116f7cc4SDouglas Anderson	vdda-pll-supply = <&vdd_a_usbhs_core>;
364116f7cc4SDouglas Anderson	vdda33-supply = <&vdd_a_usbhs_3p1>;
365116f7cc4SDouglas Anderson	vdda18-supply = <&vdd_a_usbhs_1p8>;
366116f7cc4SDouglas Anderson};
367116f7cc4SDouglas Anderson
368116f7cc4SDouglas Anderson&usb_1_qmpphy {
369116f7cc4SDouglas Anderson	vdda-phy-supply = <&vdd_a_usbssdp_0_1p2>;
370116f7cc4SDouglas Anderson	vdda-pll-supply = <&vdd_a_usbssdp_0_core>;
371116f7cc4SDouglas Anderson};
372116f7cc4SDouglas Anderson
373116f7cc4SDouglas Anderson&usb_2_hsphy {
374116f7cc4SDouglas Anderson	vdda-pll-supply = <&vdd_a_usbhs_core>;
375116f7cc4SDouglas Anderson	vdda33-supply = <&vdd_a_usbhs_3p1>;
376116f7cc4SDouglas Anderson	vdda18-supply = <&vdd_a_usbhs_1p8>;
377116f7cc4SDouglas Anderson};
378116f7cc4SDouglas Anderson
379116f7cc4SDouglas Anderson/*
380116f7cc4SDouglas Anderson * PINCTRL - ADDITIONS TO NODES IN PARENT DEVICE TREE FILES
381116f7cc4SDouglas Anderson *
382116f7cc4SDouglas Anderson * NOTE: In general if pins leave the Qcard then the pinctrl goes in the
383116f7cc4SDouglas Anderson * baseboard or board device tree, not here.
384116f7cc4SDouglas Anderson */
385116f7cc4SDouglas Anderson
386116f7cc4SDouglas Anderson/*
387116f7cc4SDouglas Anderson * For ts_i2c
388116f7cc4SDouglas Anderson *
389116f7cc4SDouglas Anderson * Technically this i2c bus actually leaves the Qcard, but it leaves directly
390116f7cc4SDouglas Anderson * via the eDP connector (it doesn't hit the baseboard). The external pulls
391116f7cc4SDouglas Anderson * are on Qcard.
392116f7cc4SDouglas Anderson */
393116f7cc4SDouglas Anderson&qup_i2c13_data_clk {
394116f7cc4SDouglas Anderson	/* Has external pull */
395116f7cc4SDouglas Anderson	bias-disable;
396116f7cc4SDouglas Anderson	drive-strength = <2>;
397116f7cc4SDouglas Anderson};
398116f7cc4SDouglas Anderson
399116f7cc4SDouglas Anderson/* For mos_bt_uart */
400116f7cc4SDouglas Anderson&qup_uart7_cts {
401*3d0e375bSVijaya Krishna Nivarthi	/*
402*3d0e375bSVijaya Krishna Nivarthi	 * Configure a bias-bus-hold on CTS to lower power
403*3d0e375bSVijaya Krishna Nivarthi	 * usage when Bluetooth is turned off. Bus hold will
404*3d0e375bSVijaya Krishna Nivarthi	 * maintain a low power state regardless of whether
405*3d0e375bSVijaya Krishna Nivarthi	 * the Bluetooth module drives the pin in either
406*3d0e375bSVijaya Krishna Nivarthi	 * direction or leaves the pin fully unpowered.
407*3d0e375bSVijaya Krishna Nivarthi	 */
408*3d0e375bSVijaya Krishna Nivarthi	bias-bus-hold;
409116f7cc4SDouglas Anderson};
410116f7cc4SDouglas Anderson
411116f7cc4SDouglas Anderson/* For mos_bt_uart */
412116f7cc4SDouglas Anderson&qup_uart7_rts {
413116f7cc4SDouglas Anderson	/* We'll drive RTS, so no pull */
414116f7cc4SDouglas Anderson	bias-disable;
415116f7cc4SDouglas Anderson	drive-strength = <2>;
416116f7cc4SDouglas Anderson};
417116f7cc4SDouglas Anderson
418116f7cc4SDouglas Anderson/* For mos_bt_uart */
419116f7cc4SDouglas Anderson&qup_uart7_tx {
420116f7cc4SDouglas Anderson	/* We'll drive TX, so no pull */
421116f7cc4SDouglas Anderson	bias-disable;
422116f7cc4SDouglas Anderson	drive-strength = <2>;
423116f7cc4SDouglas Anderson};
424116f7cc4SDouglas Anderson
425116f7cc4SDouglas Anderson/* For mos_bt_uart */
426116f7cc4SDouglas Anderson&qup_uart7_rx {
427116f7cc4SDouglas Anderson	/*
428116f7cc4SDouglas Anderson	 * Configure a pull-up on RX. This is needed to avoid
429116f7cc4SDouglas Anderson	 * garbage data when the TX pin of the Bluetooth module is
430116f7cc4SDouglas Anderson	 * in tri-state (module powered off or not driving the
431116f7cc4SDouglas Anderson	 * signal yet).
432116f7cc4SDouglas Anderson	 */
433116f7cc4SDouglas Anderson	bias-pull-up;
434116f7cc4SDouglas Anderson};
435116f7cc4SDouglas Anderson
436116f7cc4SDouglas Anderson/* eMMC, if stuffed, is straight on the Qcard */
437116f7cc4SDouglas Anderson&sdc1_clk {
438116f7cc4SDouglas Anderson	bias-disable;
439116f7cc4SDouglas Anderson	drive-strength = <16>;
440116f7cc4SDouglas Anderson};
441116f7cc4SDouglas Anderson
442116f7cc4SDouglas Anderson&sdc1_cmd {
443116f7cc4SDouglas Anderson	bias-pull-up;
444116f7cc4SDouglas Anderson	drive-strength = <10>;
445116f7cc4SDouglas Anderson};
446116f7cc4SDouglas Anderson
447116f7cc4SDouglas Anderson&sdc1_data {
448116f7cc4SDouglas Anderson	bias-pull-up;
449116f7cc4SDouglas Anderson	drive-strength = <10>;
450116f7cc4SDouglas Anderson};
451116f7cc4SDouglas Anderson
452116f7cc4SDouglas Anderson&sdc1_rclk {
453116f7cc4SDouglas Anderson	bias-pull-down;
454116f7cc4SDouglas Anderson};
455116f7cc4SDouglas Anderson
456116f7cc4SDouglas Anderson/*
457116f7cc4SDouglas Anderson * PINCTRL - QCARD
458116f7cc4SDouglas Anderson *
459116f7cc4SDouglas Anderson * This has entries that are defined by Qcard even if they go to the main
460116f7cc4SDouglas Anderson * board. In cases where the pulls may be board dependent we defer those
461116f7cc4SDouglas Anderson * settings to the board device tree. Drive strengths tend to be assinged here
462116f7cc4SDouglas Anderson * but could conceivably be overwridden by board device trees.
463116f7cc4SDouglas Anderson */
464116f7cc4SDouglas Anderson
465116f7cc4SDouglas Anderson&pm8350c_gpios {
466116f7cc4SDouglas Anderson	pmic_edp_bl_en: pmic-edp-bl-en {
467116f7cc4SDouglas Anderson		pins = "gpio7";
468116f7cc4SDouglas Anderson		function = "normal";
469116f7cc4SDouglas Anderson		bias-disable;
470116f7cc4SDouglas Anderson		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
471116f7cc4SDouglas Anderson
472116f7cc4SDouglas Anderson		/* Force backlight to be disabled to match state at boot. */
473116f7cc4SDouglas Anderson		output-low;
474116f7cc4SDouglas Anderson	};
475116f7cc4SDouglas Anderson
476116f7cc4SDouglas Anderson	pmic_edp_bl_pwm: pmic-edp-bl-pwm {
477116f7cc4SDouglas Anderson		pins = "gpio8";
478116f7cc4SDouglas Anderson		function = "func1";
479116f7cc4SDouglas Anderson		bias-disable;
480116f7cc4SDouglas Anderson		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
481116f7cc4SDouglas Anderson		output-low;
482116f7cc4SDouglas Anderson		power-source = <0>;
483116f7cc4SDouglas Anderson	};
484116f7cc4SDouglas Anderson};
485116f7cc4SDouglas Anderson
486116f7cc4SDouglas Anderson&tlmm {
487116f7cc4SDouglas Anderson	mos_bt_en: mos-bt-en {
488116f7cc4SDouglas Anderson		pins = "gpio85";
489116f7cc4SDouglas Anderson		function = "gpio";
490116f7cc4SDouglas Anderson		drive-strength = <2>;
491116f7cc4SDouglas Anderson		output-low;
492116f7cc4SDouglas Anderson	};
493116f7cc4SDouglas Anderson
494116f7cc4SDouglas Anderson	/* For mos_bt_uart */
495116f7cc4SDouglas Anderson	qup_uart7_sleep_cts: qup-uart7-sleep-cts {
496116f7cc4SDouglas Anderson		pins = "gpio28";
497116f7cc4SDouglas Anderson		function = "gpio";
498116f7cc4SDouglas Anderson		/*
499*3d0e375bSVijaya Krishna Nivarthi		 * Configure a bias-bus-hold on CTS to lower power
500*3d0e375bSVijaya Krishna Nivarthi		 * usage when Bluetooth is turned off. Bus hold will
501*3d0e375bSVijaya Krishna Nivarthi		 * maintain a low power state regardless of whether
502*3d0e375bSVijaya Krishna Nivarthi		 * the Bluetooth module drives the pin in either
503*3d0e375bSVijaya Krishna Nivarthi		 * direction or leaves the pin fully unpowered.
504116f7cc4SDouglas Anderson		 */
505*3d0e375bSVijaya Krishna Nivarthi		bias-bus-hold;
506116f7cc4SDouglas Anderson	};
507116f7cc4SDouglas Anderson
508116f7cc4SDouglas Anderson	/* For mos_bt_uart */
509116f7cc4SDouglas Anderson	qup_uart7_sleep_rts: qup-uart7-sleep-rts {
510116f7cc4SDouglas Anderson		pins = "gpio29";
511116f7cc4SDouglas Anderson		function = "gpio";
512116f7cc4SDouglas Anderson		/*
513116f7cc4SDouglas Anderson		 * Configure pull-down on RTS. As RTS is active low
514116f7cc4SDouglas Anderson		 * signal, pull it low to indicate the BT SoC that it
515116f7cc4SDouglas Anderson		 * can wakeup the system anytime from suspend state by
516116f7cc4SDouglas Anderson		 * pulling RX low (by sending wakeup bytes).
517116f7cc4SDouglas Anderson		 */
518116f7cc4SDouglas Anderson		bias-pull-down;
519116f7cc4SDouglas Anderson	};
520116f7cc4SDouglas Anderson
521116f7cc4SDouglas Anderson	/* For mos_bt_uart */
522116f7cc4SDouglas Anderson	qup_uart7_sleep_rx: qup-uart7-sleep-rx {
523116f7cc4SDouglas Anderson		pins = "gpio31";
524116f7cc4SDouglas Anderson		function = "gpio";
525116f7cc4SDouglas Anderson		/*
526116f7cc4SDouglas Anderson		 * Configure a pull-up on RX. This is needed to avoid
527116f7cc4SDouglas Anderson		 * garbage data when the TX pin of the Bluetooth module
528116f7cc4SDouglas Anderson		 * is floating which may cause spurious wakeups.
529116f7cc4SDouglas Anderson		 */
530116f7cc4SDouglas Anderson		bias-pull-up;
531116f7cc4SDouglas Anderson	};
532116f7cc4SDouglas Anderson
533116f7cc4SDouglas Anderson	/* For mos_bt_uart */
534116f7cc4SDouglas Anderson	qup_uart7_sleep_tx: qup-uart7-sleep-tx {
535116f7cc4SDouglas Anderson		pins = "gpio30";
536116f7cc4SDouglas Anderson		function = "gpio";
537116f7cc4SDouglas Anderson		/*
538116f7cc4SDouglas Anderson		 * Configure pull-up on TX when it isn't actively driven
539116f7cc4SDouglas Anderson		 * to prevent BT SoC from receiving garbage during sleep.
540116f7cc4SDouglas Anderson		 */
541116f7cc4SDouglas Anderson		bias-pull-up;
542116f7cc4SDouglas Anderson	};
543116f7cc4SDouglas Anderson
544116f7cc4SDouglas Anderson	ts_int_conn: ts-int-conn {
545116f7cc4SDouglas Anderson		pins = "gpio55";
546116f7cc4SDouglas Anderson		function = "gpio";
547116f7cc4SDouglas Anderson		bias-pull-up;
548116f7cc4SDouglas Anderson	};
549116f7cc4SDouglas Anderson
550116f7cc4SDouglas Anderson	ts_rst_conn: ts-rst-conn {
551116f7cc4SDouglas Anderson		pins = "gpio54";
552116f7cc4SDouglas Anderson		function = "gpio";
553116f7cc4SDouglas Anderson		bias-pull-up;
554116f7cc4SDouglas Anderson		drive-strength = <2>;
555116f7cc4SDouglas Anderson	};
556116f7cc4SDouglas Anderson};
557