11e6dfe47SStephan Gerhold// SPDX-License-Identifier: GPL-2.0-only
288028fa0SStephan Gerhold/*
388028fa0SStephan Gerhold * msm8939-pm8916.dtsi describes common properties (e.g. regulator connections)
488028fa0SStephan Gerhold * that apply to most devices that make use of the MSM8939 SoC and PM8916 PMIC.
588028fa0SStephan Gerhold * Many regulators have a fixed purpose in the original reference design and
688028fa0SStephan Gerhold * were rarely re-used for different purposes. Devices that deviate from the
788028fa0SStephan Gerhold * typical reference design should not make use of this include and instead add
888028fa0SStephan Gerhold * the necessary properties in the board-specific device tree.
988028fa0SStephan Gerhold */
101e6dfe47SStephan Gerhold
111e6dfe47SStephan Gerhold#include "msm8939.dtsi"
121e6dfe47SStephan Gerhold#include "pm8916.dtsi"
131e6dfe47SStephan Gerhold
14835f9395SStephan Gerhold&mdss_dsi0 {
151e6dfe47SStephan Gerhold	vdda-supply = <&pm8916_l2>;
161e6dfe47SStephan Gerhold	vddio-supply = <&pm8916_l6>;
171e6dfe47SStephan Gerhold};
181e6dfe47SStephan Gerhold
19835f9395SStephan Gerhold&mdss_dsi0_phy {
20835f9395SStephan Gerhold	vddio-supply = <&pm8916_l6>;
21835f9395SStephan Gerhold};
22835f9395SStephan Gerhold
23835f9395SStephan Gerhold&mdss_dsi1 {
241e6dfe47SStephan Gerhold	vdda-supply = <&pm8916_l2>;
251e6dfe47SStephan Gerhold	vddio-supply = <&pm8916_l6>;
261e6dfe47SStephan Gerhold};
271e6dfe47SStephan Gerhold
28835f9395SStephan Gerhold&mdss_dsi1_phy {
291e6dfe47SStephan Gerhold	vddio-supply = <&pm8916_l6>;
301e6dfe47SStephan Gerhold};
311e6dfe47SStephan Gerhold
321e6dfe47SStephan Gerhold&mpss {
331e6dfe47SStephan Gerhold	pll-supply = <&pm8916_l7>;
341e6dfe47SStephan Gerhold};
351e6dfe47SStephan Gerhold
36dce92545SStephan Gerhold&pm8916_codec {
37dce92545SStephan Gerhold	vdd-cdc-io-supply = <&pm8916_l5>;
38dce92545SStephan Gerhold	vdd-cdc-tx-rx-cx-supply = <&pm8916_l5>;
39dce92545SStephan Gerhold	vdd-micbias-supply = <&pm8916_l13>;
40dce92545SStephan Gerhold};
41dce92545SStephan Gerhold
421e6dfe47SStephan Gerhold&rpm_requests {
435cdab9a8SStephan Gerhold	pm8916_rpm_regulators: regulators {
441e6dfe47SStephan Gerhold		compatible = "qcom,rpm-pm8916-regulators";
455cdab9a8SStephan Gerhold		vdd_l1_l2_l3-supply = <&pm8916_s3>;
465cdab9a8SStephan Gerhold		vdd_l4_l5_l6-supply = <&pm8916_s4>;
475cdab9a8SStephan Gerhold		vdd_l7-supply = <&pm8916_s4>;
481e6dfe47SStephan Gerhold
491e6dfe47SStephan Gerhold		/* pm8916_s1 is managed by rpmpd (MSM8939_VDDMDCX) */
501e6dfe47SStephan Gerhold		/* pm8916_s2 is managed by rpmpd (MSM8939_VDDCX) */
515cdab9a8SStephan Gerhold		pm8916_s3: s3 {
525cdab9a8SStephan Gerhold			regulator-min-microvolt = <1250000>;
535cdab9a8SStephan Gerhold			regulator-max-microvolt = <1350000>;
54*ecbfba69SStephan Gerhold			regulator-always-on; /* Needed for L2 */
555cdab9a8SStephan Gerhold		};
565cdab9a8SStephan Gerhold		pm8916_s4: s4 {
575cdab9a8SStephan Gerhold			regulator-min-microvolt = <1850000>;
585cdab9a8SStephan Gerhold			regulator-max-microvolt = <2150000>;
59*ecbfba69SStephan Gerhold			regulator-always-on; /* Needed for L5/L7 */
605cdab9a8SStephan Gerhold		};
611e6dfe47SStephan Gerhold
625cdab9a8SStephan Gerhold		/*
635cdab9a8SStephan Gerhold		 * Some of the regulators are unused or managed by another
645cdab9a8SStephan Gerhold		 * processor (e.g. the modem). We should still define nodes for
655cdab9a8SStephan Gerhold		 * them to ensure the vote from the application processor can be
665cdab9a8SStephan Gerhold		 * dropped in case the regulators are already on during boot.
675cdab9a8SStephan Gerhold		 *
685cdab9a8SStephan Gerhold		 * The labels for these nodes are omitted on purpose because
695cdab9a8SStephan Gerhold		 * boards should configure a proper voltage before using them.
705cdab9a8SStephan Gerhold		 */
715cdab9a8SStephan Gerhold		l1 {};
725cdab9a8SStephan Gerhold
735cdab9a8SStephan Gerhold		pm8916_l2: l2 {
745cdab9a8SStephan Gerhold			regulator-min-microvolt = <1200000>;
755cdab9a8SStephan Gerhold			regulator-max-microvolt = <1200000>;
76*ecbfba69SStephan Gerhold			regulator-always-on; /* Needed for LPDDR RAM */
775cdab9a8SStephan Gerhold		};
785cdab9a8SStephan Gerhold
791e6dfe47SStephan Gerhold		/* pm8916_l3 is managed by rpmpd (MSM8939_VDDMX) */
805cdab9a8SStephan Gerhold
815cdab9a8SStephan Gerhold		l4 {};
825cdab9a8SStephan Gerhold
835cdab9a8SStephan Gerhold		pm8916_l5: l5 {
845cdab9a8SStephan Gerhold			regulator-min-microvolt = <1800000>;
855cdab9a8SStephan Gerhold			regulator-max-microvolt = <1800000>;
86*ecbfba69SStephan Gerhold			regulator-always-on; /* Needed for most digital I/O */
875cdab9a8SStephan Gerhold		};
885cdab9a8SStephan Gerhold
895cdab9a8SStephan Gerhold		pm8916_l6: l6 {
905cdab9a8SStephan Gerhold			regulator-min-microvolt = <1800000>;
915cdab9a8SStephan Gerhold			regulator-max-microvolt = <1800000>;
925cdab9a8SStephan Gerhold		};
935cdab9a8SStephan Gerhold
945cdab9a8SStephan Gerhold		pm8916_l7: l7 {
955cdab9a8SStephan Gerhold			regulator-min-microvolt = <1800000>;
965cdab9a8SStephan Gerhold			regulator-max-microvolt = <1800000>;
97*ecbfba69SStephan Gerhold			regulator-always-on; /* Needed for CPU PLL */
985cdab9a8SStephan Gerhold		};
995cdab9a8SStephan Gerhold
1005cdab9a8SStephan Gerhold		pm8916_l8: l8 {
1015cdab9a8SStephan Gerhold			regulator-min-microvolt = <2900000>;
1025cdab9a8SStephan Gerhold			regulator-max-microvolt = <2900000>;
1035cdab9a8SStephan Gerhold		};
1045cdab9a8SStephan Gerhold
1055cdab9a8SStephan Gerhold		pm8916_l9: l9 {
1065cdab9a8SStephan Gerhold			regulator-min-microvolt = <3300000>;
1075cdab9a8SStephan Gerhold			regulator-max-microvolt = <3300000>;
1085cdab9a8SStephan Gerhold		};
1095cdab9a8SStephan Gerhold
1105cdab9a8SStephan Gerhold		l10 {};
1115cdab9a8SStephan Gerhold
1125cdab9a8SStephan Gerhold		pm8916_l11: l11 {
1135cdab9a8SStephan Gerhold			regulator-min-microvolt = <2950000>;
1145cdab9a8SStephan Gerhold			regulator-max-microvolt = <2950000>;
1155cdab9a8SStephan Gerhold			regulator-allow-set-load;
1165cdab9a8SStephan Gerhold			regulator-system-load = <200000>;
1175cdab9a8SStephan Gerhold		};
1185cdab9a8SStephan Gerhold
1195cdab9a8SStephan Gerhold		pm8916_l12: l12 {
1205cdab9a8SStephan Gerhold			regulator-min-microvolt = <1800000>;
1215cdab9a8SStephan Gerhold			regulator-max-microvolt = <2950000>;
1225cdab9a8SStephan Gerhold		};
1235cdab9a8SStephan Gerhold
1245cdab9a8SStephan Gerhold		pm8916_l13: l13 {
1255cdab9a8SStephan Gerhold			regulator-min-microvolt = <3075000>;
1265cdab9a8SStephan Gerhold			regulator-max-microvolt = <3075000>;
1275cdab9a8SStephan Gerhold		};
1285cdab9a8SStephan Gerhold
1295cdab9a8SStephan Gerhold		l14 {};
1305cdab9a8SStephan Gerhold		l15 {};
1315cdab9a8SStephan Gerhold		l16 {};
1325cdab9a8SStephan Gerhold		l17 {};
1335cdab9a8SStephan Gerhold		l18 {};
1341e6dfe47SStephan Gerhold	};
1351e6dfe47SStephan Gerhold};
1361e6dfe47SStephan Gerhold
1371e6dfe47SStephan Gerhold&sdhc_1 {
1381e6dfe47SStephan Gerhold	vmmc-supply = <&pm8916_l8>;
1391e6dfe47SStephan Gerhold	vqmmc-supply = <&pm8916_l5>;
1401e6dfe47SStephan Gerhold};
1411e6dfe47SStephan Gerhold
1421e6dfe47SStephan Gerhold&sdhc_2 {
1431e6dfe47SStephan Gerhold	vmmc-supply = <&pm8916_l11>;
1441e6dfe47SStephan Gerhold	vqmmc-supply = <&pm8916_l12>;
1451e6dfe47SStephan Gerhold};
1461e6dfe47SStephan Gerhold
1471e6dfe47SStephan Gerhold&usb_hs_phy {
1481e6dfe47SStephan Gerhold	v1p8-supply = <&pm8916_l7>;
1491e6dfe47SStephan Gerhold	v3p3-supply = <&pm8916_l13>;
1501e6dfe47SStephan Gerhold};
1511e6dfe47SStephan Gerhold
1521e6dfe47SStephan Gerhold&wcnss {
1531e6dfe47SStephan Gerhold	vddpx-supply = <&pm8916_l7>;
1541e6dfe47SStephan Gerhold};
1551e6dfe47SStephan Gerhold
1561e6dfe47SStephan Gerhold&wcnss_iris {
1571e6dfe47SStephan Gerhold	vddxo-supply = <&pm8916_l7>;
1581e6dfe47SStephan Gerhold	vddrfa-supply = <&pm8916_s3>;
1591e6dfe47SStephan Gerhold	vddpa-supply = <&pm8916_l9>;
1601e6dfe47SStephan Gerhold	vdddig-supply = <&pm8916_l5>;
1611e6dfe47SStephan Gerhold};
162