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: Vivek Gautam <vivek.gautam@codeaurora.org>
Reviewed-by: Subhash Jadavani <subhashj@codeaurora.org>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
This commit is contained in:
Bjorn Andersson 2017-01-22 13:17:48 -08:00 committed by Kishon Vijay Abraham I
parent 3471426f6d
commit 96c163f108
3 changed files with 1 additions and 6 deletions

View File

@ -29,7 +29,6 @@ Optional properties:
- vdda-pll-max-microamp : specifies max. load that can be drawn from pll supply - 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-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-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: Example:

View File

@ -77,7 +77,6 @@ struct ufs_qcom_phy_vreg {
int min_uV; int min_uV;
int max_uV; int max_uV;
bool enabled; bool enabled;
bool is_always_on;
}; };
struct ufs_qcom_phy { struct ufs_qcom_phy {

View File

@ -242,9 +242,6 @@ static int ufs_qcom_phy_init_vreg(struct device *dev,
} }
err = 0; 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")) { if (!strcmp(name, "vdda-pll")) {
@ -402,7 +399,7 @@ static int ufs_qcom_phy_disable_vreg(struct device *dev,
{ {
int ret = 0; int ret = 0;
if (!vreg || !vreg->enabled || vreg->is_always_on) if (!vreg || !vreg->enabled)
goto out; goto out;
ret = regulator_disable(vreg->reg); ret = regulator_disable(vreg->reg);