162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * msm8939-pm8916.dtsi describes common properties (e.g. regulator connections)
462306a36Sopenharmony_ci * that apply to most devices that make use of the MSM8939 SoC and PM8916 PMIC.
562306a36Sopenharmony_ci * Many regulators have a fixed purpose in the original reference design and
662306a36Sopenharmony_ci * were rarely re-used for different purposes. Devices that deviate from the
762306a36Sopenharmony_ci * typical reference design should not make use of this include and instead add
862306a36Sopenharmony_ci * the necessary properties in the board-specific device tree.
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include "msm8939.dtsi"
1262306a36Sopenharmony_ci#include "pm8916.dtsi"
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci&mdss_dsi0 {
1562306a36Sopenharmony_ci	vdda-supply = <&pm8916_l2>;
1662306a36Sopenharmony_ci	vddio-supply = <&pm8916_l6>;
1762306a36Sopenharmony_ci};
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci&mdss_dsi0_phy {
2062306a36Sopenharmony_ci	vddio-supply = <&pm8916_l6>;
2162306a36Sopenharmony_ci};
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci&mdss_dsi1 {
2462306a36Sopenharmony_ci	vdda-supply = <&pm8916_l2>;
2562306a36Sopenharmony_ci	vddio-supply = <&pm8916_l6>;
2662306a36Sopenharmony_ci};
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci&mdss_dsi1_phy {
2962306a36Sopenharmony_ci	vddio-supply = <&pm8916_l6>;
3062306a36Sopenharmony_ci};
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci&mpss {
3362306a36Sopenharmony_ci	pll-supply = <&pm8916_l7>;
3462306a36Sopenharmony_ci};
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci&pm8916_codec {
3762306a36Sopenharmony_ci	vdd-cdc-io-supply = <&pm8916_l5>;
3862306a36Sopenharmony_ci	vdd-cdc-tx-rx-cx-supply = <&pm8916_l5>;
3962306a36Sopenharmony_ci	vdd-micbias-supply = <&pm8916_l13>;
4062306a36Sopenharmony_ci};
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci&rpm_requests {
4362306a36Sopenharmony_ci	pm8916_rpm_regulators: regulators {
4462306a36Sopenharmony_ci		compatible = "qcom,rpm-pm8916-regulators";
4562306a36Sopenharmony_ci		vdd_l1_l2_l3-supply = <&pm8916_s3>;
4662306a36Sopenharmony_ci		vdd_l4_l5_l6-supply = <&pm8916_s4>;
4762306a36Sopenharmony_ci		vdd_l7-supply = <&pm8916_s4>;
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci		/* pm8916_s1 is managed by rpmpd (MSM8939_VDDMDCX) */
5062306a36Sopenharmony_ci		/* pm8916_s2 is managed by rpmpd (MSM8939_VDDCX) */
5162306a36Sopenharmony_ci		pm8916_s3: s3 {
5262306a36Sopenharmony_ci			regulator-min-microvolt = <1250000>;
5362306a36Sopenharmony_ci			regulator-max-microvolt = <1350000>;
5462306a36Sopenharmony_ci			regulator-always-on; /* Needed for L2 */
5562306a36Sopenharmony_ci		};
5662306a36Sopenharmony_ci		pm8916_s4: s4 {
5762306a36Sopenharmony_ci			regulator-min-microvolt = <1850000>;
5862306a36Sopenharmony_ci			regulator-max-microvolt = <2150000>;
5962306a36Sopenharmony_ci			regulator-always-on; /* Needed for L5/L7 */
6062306a36Sopenharmony_ci		};
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci		/*
6362306a36Sopenharmony_ci		 * Some of the regulators are unused or managed by another
6462306a36Sopenharmony_ci		 * processor (e.g. the modem). We should still define nodes for
6562306a36Sopenharmony_ci		 * them to ensure the vote from the application processor can be
6662306a36Sopenharmony_ci		 * dropped in case the regulators are already on during boot.
6762306a36Sopenharmony_ci		 *
6862306a36Sopenharmony_ci		 * The labels for these nodes are omitted on purpose because
6962306a36Sopenharmony_ci		 * boards should configure a proper voltage before using them.
7062306a36Sopenharmony_ci		 */
7162306a36Sopenharmony_ci		l1 {};
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci		pm8916_l2: l2 {
7462306a36Sopenharmony_ci			regulator-min-microvolt = <1200000>;
7562306a36Sopenharmony_ci			regulator-max-microvolt = <1200000>;
7662306a36Sopenharmony_ci			regulator-always-on; /* Needed for LPDDR RAM */
7762306a36Sopenharmony_ci		};
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci		/* pm8916_l3 is managed by rpmpd (MSM8939_VDDMX) */
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci		l4 {};
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci		pm8916_l5: l5 {
8462306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
8562306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
8662306a36Sopenharmony_ci			regulator-always-on; /* Needed for most digital I/O */
8762306a36Sopenharmony_ci		};
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci		pm8916_l6: l6 {
9062306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
9162306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
9262306a36Sopenharmony_ci		};
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci		pm8916_l7: l7 {
9562306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
9662306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
9762306a36Sopenharmony_ci			regulator-always-on; /* Needed for CPU PLL */
9862306a36Sopenharmony_ci		};
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci		pm8916_l8: l8 {
10162306a36Sopenharmony_ci			regulator-min-microvolt = <2900000>;
10262306a36Sopenharmony_ci			regulator-max-microvolt = <2900000>;
10362306a36Sopenharmony_ci		};
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci		pm8916_l9: l9 {
10662306a36Sopenharmony_ci			regulator-min-microvolt = <3300000>;
10762306a36Sopenharmony_ci			regulator-max-microvolt = <3300000>;
10862306a36Sopenharmony_ci		};
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci		l10 {};
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci		pm8916_l11: l11 {
11362306a36Sopenharmony_ci			regulator-min-microvolt = <2950000>;
11462306a36Sopenharmony_ci			regulator-max-microvolt = <2950000>;
11562306a36Sopenharmony_ci			regulator-allow-set-load;
11662306a36Sopenharmony_ci			regulator-system-load = <200000>;
11762306a36Sopenharmony_ci		};
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci		pm8916_l12: l12 {
12062306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
12162306a36Sopenharmony_ci			regulator-max-microvolt = <2950000>;
12262306a36Sopenharmony_ci		};
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci		pm8916_l13: l13 {
12562306a36Sopenharmony_ci			regulator-min-microvolt = <3075000>;
12662306a36Sopenharmony_ci			regulator-max-microvolt = <3075000>;
12762306a36Sopenharmony_ci		};
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci		l14 {};
13062306a36Sopenharmony_ci		l15 {};
13162306a36Sopenharmony_ci		l16 {};
13262306a36Sopenharmony_ci		l17 {};
13362306a36Sopenharmony_ci		l18 {};
13462306a36Sopenharmony_ci	};
13562306a36Sopenharmony_ci};
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ci&sdhc_1 {
13862306a36Sopenharmony_ci	vmmc-supply = <&pm8916_l8>;
13962306a36Sopenharmony_ci	vqmmc-supply = <&pm8916_l5>;
14062306a36Sopenharmony_ci};
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ci&sdhc_2 {
14362306a36Sopenharmony_ci	vmmc-supply = <&pm8916_l11>;
14462306a36Sopenharmony_ci	vqmmc-supply = <&pm8916_l12>;
14562306a36Sopenharmony_ci};
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ci&usb_hs_phy {
14862306a36Sopenharmony_ci	v1p8-supply = <&pm8916_l7>;
14962306a36Sopenharmony_ci	v3p3-supply = <&pm8916_l13>;
15062306a36Sopenharmony_ci};
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci&wcnss {
15362306a36Sopenharmony_ci	vddpx-supply = <&pm8916_l7>;
15462306a36Sopenharmony_ci};
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci&wcnss_iris {
15762306a36Sopenharmony_ci	vddxo-supply = <&pm8916_l7>;
15862306a36Sopenharmony_ci	vddrfa-supply = <&pm8916_s3>;
15962306a36Sopenharmony_ci	vddpa-supply = <&pm8916_l9>;
16062306a36Sopenharmony_ci	vdddig-supply = <&pm8916_l5>;
16162306a36Sopenharmony_ci};
162