linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2] cpufreq: imx6: remove pu regulator dependency for SOCs with no PU regulator
@ 2014-06-20  7:42 Anson Huang
  2014-06-20  8:30 ` Viresh Kumar
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Anson Huang @ 2014-06-20  7:42 UTC (permalink / raw)
  To: rjw, viresh.kumar, shawn.guo; +Cc: linux-pm

PU regulator is not a necessary regulator for cpufreq, not all
i.MX6 SoCs have PU regulator, only if SOC has PU regulator, then its
voltage must be equal to SOC regulator, so remove the dependency
to support i.MX6SX which has no PU regulator.

Signed-off-by: Anson Huang <b20788@freescale.com>
---
 drivers/cpufreq/imx6q-cpufreq.c |   35 +++++++++++++++++++++--------------
 1 file changed, 21 insertions(+), 14 deletions(-)

diff --git a/drivers/cpufreq/imx6q-cpufreq.c b/drivers/cpufreq/imx6q-cpufreq.c
index af366c2..c2d3076 100644
--- a/drivers/cpufreq/imx6q-cpufreq.c
+++ b/drivers/cpufreq/imx6q-cpufreq.c
@@ -66,10 +66,12 @@ static int imx6q_set_target(struct cpufreq_policy *policy, unsigned int index)
 
 	/* scaling up?  scale voltage before frequency */
 	if (new_freq > old_freq) {
-		ret = regulator_set_voltage_tol(pu_reg, imx6_soc_volt[index], 0);
-		if (ret) {
-			dev_err(cpu_dev, "failed to scale vddpu up: %d\n", ret);
-			return ret;
+		if (!IS_ERR(pu_reg)) {
+			ret = regulator_set_voltage_tol(pu_reg, imx6_soc_volt[index], 0);
+			if (ret) {
+				dev_err(cpu_dev, "failed to scale vddpu up: %d\n", ret);
+				return ret;
+			}
 		}
 		ret = regulator_set_voltage_tol(soc_reg, imx6_soc_volt[index], 0);
 		if (ret) {
@@ -121,10 +123,12 @@ static int imx6q_set_target(struct cpufreq_policy *policy, unsigned int index)
 			dev_warn(cpu_dev, "failed to scale vddsoc down: %d\n", ret);
 			ret = 0;
 		}
-		ret = regulator_set_voltage_tol(pu_reg, imx6_soc_volt[index], 0);
-		if (ret) {
-			dev_warn(cpu_dev, "failed to scale vddpu down: %d\n", ret);
-			ret = 0;
+		if (!IS_ERR(pu_reg)) {
+			ret = regulator_set_voltage_tol(pu_reg, imx6_soc_volt[index], 0);
+			if (ret) {
+				dev_warn(cpu_dev, "failed to scale vddpu down: %d\n", ret);
+				ret = 0;
+			}
 		}
 	}
 
@@ -182,9 +186,9 @@ static int imx6q_cpufreq_probe(struct platform_device *pdev)
 	}
 
 	arm_reg = regulator_get(cpu_dev, "arm");
-	pu_reg = regulator_get(cpu_dev, "pu");
+	pu_reg = regulator_get_optional(cpu_dev, "pu");
 	soc_reg = regulator_get(cpu_dev, "soc");
-	if (IS_ERR(arm_reg) || IS_ERR(pu_reg) || IS_ERR(soc_reg)) {
+	if (IS_ERR(arm_reg) || IS_ERR(soc_reg)) {
 		dev_err(cpu_dev, "failed to get regulators\n");
 		ret = -ENOENT;
 		goto put_reg;
@@ -268,9 +272,11 @@ soc_opp_out:
 	ret = regulator_set_voltage_time(soc_reg, imx6_soc_volt[0], imx6_soc_volt[num - 1]);
 	if (ret > 0)
 		transition_latency += ret * 1000;
-	ret = regulator_set_voltage_time(pu_reg, imx6_soc_volt[0], imx6_soc_volt[num - 1]);
-	if (ret > 0)
-		transition_latency += ret * 1000;
+	if (!IS_ERR(pu_reg)) {
+		ret = regulator_set_voltage_time(pu_reg, imx6_soc_volt[0], imx6_soc_volt[num - 1]);
+		if (ret > 0)
+			transition_latency += ret * 1000;
+	}
 
 	/*
 	 * OPP is maintained in order of increasing frequency, and
@@ -327,7 +333,8 @@ static int imx6q_cpufreq_remove(struct platform_device *pdev)
 	cpufreq_unregister_driver(&imx6q_cpufreq_driver);
 	dev_pm_opp_free_cpufreq_table(cpu_dev, &freq_table);
 	regulator_put(arm_reg);
-	regulator_put(pu_reg);
+	if (!IS_ERR(pu_reg))
+		regulator_put(pu_reg);
 	regulator_put(soc_reg);
 	clk_put(arm_clk);
 	clk_put(pll1_sys_clk);
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH V2] cpufreq: imx6: remove pu regulator dependency for SOCs with no PU regulator
  2014-06-20  7:42 [PATCH V2] cpufreq: imx6: remove pu regulator dependency for SOCs with no PU regulator Anson Huang
@ 2014-06-20  8:30 ` Viresh Kumar
  2014-06-21 12:28 ` Shawn Guo
  2014-07-18  8:31 ` Shawn Guo
  2 siblings, 0 replies; 5+ messages in thread
From: Viresh Kumar @ 2014-06-20  8:30 UTC (permalink / raw)
  To: Anson Huang; +Cc: Rafael J. Wysocki, Shawn Guo, linux-pm@vger.kernel.org

On 20 June 2014 13:12, Anson Huang <b20788@freescale.com> wrote:
> PU regulator is not a necessary regulator for cpufreq, not all
> i.MX6 SoCs have PU regulator, only if SOC has PU regulator, then its
> voltage must be equal to SOC regulator, so remove the dependency
> to support i.MX6SX which has no PU regulator.
>
> Signed-off-by: Anson Huang <b20788@freescale.com>
> ---
>  drivers/cpufreq/imx6q-cpufreq.c |   35 +++++++++++++++++++++--------------
>  1 file changed, 21 insertions(+), 14 deletions(-)

Acked-by: Viresh Kumar <viresh.kumar@linaro.org>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH V2] cpufreq: imx6: remove pu regulator dependency for SOCs with no PU regulator
  2014-06-20  7:42 [PATCH V2] cpufreq: imx6: remove pu regulator dependency for SOCs with no PU regulator Anson Huang
  2014-06-20  8:30 ` Viresh Kumar
@ 2014-06-21 12:28 ` Shawn Guo
  2014-07-18  8:31 ` Shawn Guo
  2 siblings, 0 replies; 5+ messages in thread
From: Shawn Guo @ 2014-06-21 12:28 UTC (permalink / raw)
  To: Anson Huang; +Cc: rjw, viresh.kumar, linux-pm

On Fri, Jun 20, 2014 at 03:42:18PM +0800, Anson Huang wrote:
> PU regulator is not a necessary regulator for cpufreq, not all
> i.MX6 SoCs have PU regulator, only if SOC has PU regulator, then its
> voltage must be equal to SOC regulator, so remove the dependency
> to support i.MX6SX which has no PU regulator.
> 
> Signed-off-by: Anson Huang <b20788@freescale.com>

Acked-by: Shawn Guo <shawn.guo@freescale.com>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH V2] cpufreq: imx6: remove pu regulator dependency for SOCs with no PU regulator
  2014-06-20  7:42 [PATCH V2] cpufreq: imx6: remove pu regulator dependency for SOCs with no PU regulator Anson Huang
  2014-06-20  8:30 ` Viresh Kumar
  2014-06-21 12:28 ` Shawn Guo
@ 2014-07-18  8:31 ` Shawn Guo
  2014-07-19  0:06   ` Rafael J. Wysocki
  2 siblings, 1 reply; 5+ messages in thread
From: Shawn Guo @ 2014-07-18  8:31 UTC (permalink / raw)
  To: Rafael J. Wysocki, Anson Huang; +Cc: viresh.kumar, linux-pm

On Fri, Jun 20, 2014 at 03:42:18PM +0800, Anson Huang wrote:
> PU regulator is not a necessary regulator for cpufreq, not all
> i.MX6 SoCs have PU regulator, only if SOC has PU regulator, then its
> voltage must be equal to SOC regulator, so remove the dependency
> to support i.MX6SX which has no PU regulator.
> 
> Signed-off-by: Anson Huang <b20788@freescale.com>

Rafael,

Can you please apply this for 3.17?  Thanks.

Shawn

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH V2] cpufreq: imx6: remove pu regulator dependency for SOCs with no PU regulator
  2014-07-18  8:31 ` Shawn Guo
@ 2014-07-19  0:06   ` Rafael J. Wysocki
  0 siblings, 0 replies; 5+ messages in thread
From: Rafael J. Wysocki @ 2014-07-19  0:06 UTC (permalink / raw)
  To: Shawn Guo; +Cc: Anson Huang, viresh.kumar, linux-pm

On Friday, July 18, 2014 04:31:18 PM Shawn Guo wrote:
> On Fri, Jun 20, 2014 at 03:42:18PM +0800, Anson Huang wrote:
> > PU regulator is not a necessary regulator for cpufreq, not all
> > i.MX6 SoCs have PU regulator, only if SOC has PU regulator, then its
> > voltage must be equal to SOC regulator, so remove the dependency
> > to support i.MX6SX which has no PU regulator.
> > 
> > Signed-off-by: Anson Huang <b20788@freescale.com>
> 
> Rafael,
> 
> Can you please apply this for 3.17?  Thanks.

Queued up for 3.17, thanks!

-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-07-18 23:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-20  7:42 [PATCH V2] cpufreq: imx6: remove pu regulator dependency for SOCs with no PU regulator Anson Huang
2014-06-20  8:30 ` Viresh Kumar
2014-06-21 12:28 ` Shawn Guo
2014-07-18  8:31 ` Shawn Guo
2014-07-19  0:06   ` Rafael J. Wysocki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).