Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0c869f39 authored by Mahesh Kumar Sharma's avatar Mahesh Kumar Sharma
Browse files

ARM: dts: msm: vote S2F, S5A and S8C for BT



In order to power up BT chip, BT driver needs to vote
for additional S2F for digital at 0.95V, S5A for RFA1
at 1.9V and S8C at 1.35V for RFA2.

Change-Id: Ie6134ee7819496d538acd11b412c390f6b01ba43
Signed-off-by: default avatarMahesh kumar sharma <smahesh@codeaurora.org>
parent 3b3e314b
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -49,6 +49,13 @@
		pinctrl-0 = <&bt_en_active>;
		qca,bt-reset-gpio = <&tlmm 21 0>; /* BT_EN */
		qca,bt-vdd-ldo-supply = <&pm8150_s6>;
		qca,bt-vdd-dig-supply = <&pm8009_s2>;
		qca,bt-vdd-rfa1-supply = <&pm8150_s5>;
		qca,bt-vdd-rfa2-supply = <&pm8150a_s8>;

		qca,bt-vdd-ldo-voltage-level = <950000 950000>;
		qca,bt-vdd-dig-voltage-level = <950000 950000>;
		qca,bt-vdd-rfa1-voltage-level = <1900000 1900000>;
		qca,bt-vdd-rfa2-voltage-level = <1350000 1350000>;
	};
};
+7 −0
Original line number Diff line number Diff line
@@ -49,6 +49,13 @@
		pinctrl-0 = <&bt_en_active>;
		qca,bt-reset-gpio = <&tlmm 21 0>; /* BT_EN */
		qca,bt-vdd-ldo-supply = <&pm8150_s6>;
		qca,bt-vdd-dig-supply = <&pm8009_s2>;
		qca,bt-vdd-rfa1-supply = <&pm8150_s5>;
		qca,bt-vdd-rfa2-supply = <&pm8150a_s8>;

		qca,bt-vdd-ldo-voltage-level = <950000 950000>;
		qca,bt-vdd-dig-voltage-level = <950000 950000>;
		qca,bt-vdd-rfa1-voltage-level = <1900000 1900000>;
		qca,bt-vdd-rfa2-voltage-level = <1350000 1350000>;
	};
};
+45 −0
Original line number Diff line number Diff line
@@ -289,6 +289,27 @@ static int bluetooth_power(int on)
				goto vdd_ldo_fail;
			}
		}
		if (bt_power_pdata->bt_vdd_dig) {
			rc = bt_configure_vreg(bt_power_pdata->bt_vdd_dig);
			if (rc < 0) {
				BT_PWR_ERR("bt_power vdddig config failed");
				goto vdd_dig_fail;
			}
		}
		if (bt_power_pdata->bt_vdd_rfa1) {
			rc = bt_configure_vreg(bt_power_pdata->bt_vdd_rfa1);
			if (rc < 0) {
				BT_PWR_ERR("bt_power vddrfa1 config failed");
				goto vdd_rfa1_fail;
			}
		}
		if (bt_power_pdata->bt_vdd_rfa2) {
			rc = bt_configure_vreg(bt_power_pdata->bt_vdd_rfa2);
			if (rc < 0) {
				BT_PWR_ERR("bt_power vddrfa1 config failed");
				goto vdd_rfa2_fail;
			}
		}
		if (bt_power_pdata->bt_chip_pwd) {
			rc = bt_configure_vreg(bt_power_pdata->bt_chip_pwd);
			if (rc < 0) {
@@ -325,6 +346,15 @@ static int bluetooth_power(int on)
		if (bt_power_pdata->bt_chip_pwd)
			bt_vreg_disable(bt_power_pdata->bt_chip_pwd);
chip_pwd_fail:
		if (bt_power_pdata->bt_vdd_rfa2)
			bt_vreg_disable(bt_power_pdata->bt_vdd_rfa2);
vdd_rfa2_fail:
		if (bt_power_pdata->bt_vdd_rfa1)
			bt_vreg_disable(bt_power_pdata->bt_vdd_rfa1);
vdd_rfa1_fail:
		if (bt_power_pdata->bt_vdd_dig)
			bt_vreg_disable(bt_power_pdata->bt_vdd_dig);
vdd_dig_fail:
		if (bt_power_pdata->bt_vdd_ldo)
			bt_vreg_disable(bt_power_pdata->bt_vdd_ldo);
vdd_ldo_fail:
@@ -595,6 +625,21 @@ static int bt_power_populate_dt_pinfo(struct platform_device *pdev)
		if (rc < 0)
			BT_PWR_ERR("bt-chip-pwd not provided in device tree");

		rc = bt_dt_parse_vreg_info(&pdev->dev,
					&bt_power_pdata->bt_vdd_dig,
					"qca,bt-vdd-dig");
		if (rc < 0)
			BT_PWR_ERR("bt-vdd-dig not provided in device tree");
		rc = bt_dt_parse_vreg_info(&pdev->dev,
					&bt_power_pdata->bt_vdd_rfa1,
					"qca,bt-vdd-rfa1");
		if (rc < 0)
			BT_PWR_ERR("bt-vdd-rfa1 not provided in device tree");
		rc = bt_dt_parse_vreg_info(&pdev->dev,
					&bt_power_pdata->bt_vdd_rfa2,
					"qca,bt-vdd-rfa2");
		if (rc < 0)
			BT_PWR_ERR("bt-vdd-rfa2 not provided in device tree");
		rc = bt_dt_parse_clk_info(&pdev->dev,
					&bt_power_pdata->bt_chip_clk);
		if (rc < 0)
+6 −0
Original line number Diff line number Diff line
@@ -61,6 +61,12 @@ struct bluetooth_power_platform_data {
	struct bt_power_vreg_data *bt_vdd_xtal;
	/* VDD_CORE voltage regulator */
	struct bt_power_vreg_data *bt_vdd_core;
	/* VDD_DIG digital voltage regulator */
	struct bt_power_vreg_data *bt_vdd_dig;
	/* VDD RFA1 digital voltage regulator */
	struct bt_power_vreg_data *bt_vdd_rfa1;
	/* VDD RFA2 digital voltage regulator */
	struct bt_power_vreg_data *bt_vdd_rfa2;
	/* Optional: chip power down gpio-regulator
	 * chip power down data is required when bluetooth module
	 * and other modules like wifi co-exist in a single chip and