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

Commit 96c163f1 authored by Bjorn Andersson's avatar Bjorn Andersson Committed by Kishon Vijay Abraham I
Browse files

phy: qcom-ufs: Remove -always-on property



The fact that a regulator is always-on is a property of the regulator,
not a specific consumer. Implementing this in the driver leads to a
system behaviour that is dependent on if the Qualcomm UFS PHY was ever
(partially) probed.

If the specific regulator should be always on in a particular device,
mark it so by specifying "regulator-always-on" in the regulator node.

Reviewed-by: default avatarVivek Gautam <vivek.gautam@codeaurora.org>
Reviewed-by: default avatarSubhash Jadavani <subhashj@codeaurora.org>
Acked-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: default avatarKishon Vijay Abraham I <kishon@ti.com>
parent 3471426f
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ Optional properties:
- vdda-pll-max-microamp : specifies max. load that can be drawn from pll supply
- vddp-ref-clk-supply   : phandle to UFS device ref_clk pad power supply
- vddp-ref-clk-max-microamp : specifies max. load that can be drawn from this supply
- vddp-ref-clk-always-on : specifies if this supply needs to be kept always on

Example:

+0 −1
Original line number Diff line number Diff line
@@ -77,7 +77,6 @@ struct ufs_qcom_phy_vreg {
	int min_uV;
	int max_uV;
	bool enabled;
	bool is_always_on;
};

struct ufs_qcom_phy {
+1 −4
Original line number Diff line number Diff line
@@ -242,9 +242,6 @@ static int ufs_qcom_phy_init_vreg(struct device *dev,
			}
			err = 0;
		}
		snprintf(prop_name, MAX_PROP_NAME, "%s-always-on", name);
		vreg->is_always_on = of_property_read_bool(dev->of_node,
							   prop_name);
	}

	if (!strcmp(name, "vdda-pll")) {
@@ -402,7 +399,7 @@ static int ufs_qcom_phy_disable_vreg(struct device *dev,
{
	int ret = 0;

	if (!vreg || !vreg->enabled || vreg->is_always_on)
	if (!vreg || !vreg->enabled)
		goto out;

	ret = regulator_disable(vreg->reg);