diff mbox

[v2] pwm: pwm-tiehrpwm: Update the clock handling of pwm-tiehrpwm driver

Message ID 1357823126-19333-1-git-send-email-avinashphilip@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

avinash philip Jan. 10, 2013, 1:05 p.m. UTC
From: "Philip, Avinash" <avinashphilip@ti.com>

The clock framework has changed and it's now better to invoke
clock_prepare_enable() and clk_disable_unprepare() rather than the
legacy clk_enable() and clk_disable() calls. This patch converts the
pwm-tiehrpwm driver to the new framework.

Signed-off-by: Philip Avinash <avinashphilip@ti.com>
---
Changes Since v1:
	- Check the return value of TBCLK enable in .pwm_enable()

In 3.8-rc1, common clock frame work support added to AM335x.

 drivers/pwm/pwm-tiehrpwm.c |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

Comments

Thierry Reding Jan. 14, 2013, 7:29 a.m. UTC | #1
On Thu, Jan 10, 2013 at 06:35:26PM +0530, Philip Avinash wrote:
> From: "Philip, Avinash" <avinashphilip@ti.com>
> 
> The clock framework has changed and it's now better to invoke
> clock_prepare_enable() and clk_disable_unprepare() rather than the
> legacy clk_enable() and clk_disable() calls. This patch converts the
> pwm-tiehrpwm driver to the new framework.
> 
> Signed-off-by: Philip Avinash <avinashphilip@ti.com>

Applied, thanks.

Thierry
Thierry Reding Jan. 17, 2013, 3:52 p.m. UTC | #2
On Thu, Jan 10, 2013 at 06:35:26PM +0530, Philip Avinash wrote:
> From: "Philip, Avinash" <avinashphilip@ti.com>
> 
> The clock framework has changed and it's now better to invoke
> clock_prepare_enable() and clk_disable_unprepare() rather than the
> legacy clk_enable() and clk_disable() calls. This patch converts the
> pwm-tiehrpwm driver to the new framework.
> 
> Signed-off-by: Philip Avinash <avinashphilip@ti.com>
> ---
> Changes Since v1:
> 	- Check the return value of TBCLK enable in .pwm_enable()
> 
> In 3.8-rc1, common clock frame work support added to AM335x.
> 
>  drivers/pwm/pwm-tiehrpwm.c |   10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)

I had applied this to my for-next branch, but reading the commit message
again it would seem that this should actually go into 3.8, right?

Thierry
avinash philip Jan. 18, 2013, 4:18 a.m. UTC | #3
On Thu, Jan 17, 2013 at 21:22:18, Thierry Reding wrote:
> On Thu, Jan 10, 2013 at 06:35:26PM +0530, Philip Avinash wrote:
> > From: "Philip, Avinash" <avinashphilip@ti.com>
> > 
> > The clock framework has changed and it's now better to invoke
> > clock_prepare_enable() and clk_disable_unprepare() rather than the
> > legacy clk_enable() and clk_disable() calls. This patch converts the
> > pwm-tiehrpwm driver to the new framework.
> > 
> > Signed-off-by: Philip Avinash <avinashphilip@ti.com>
> > ---
> > Changes Since v1:
> > 	- Check the return value of TBCLK enable in .pwm_enable()
> > 
> > In 3.8-rc1, common clock frame work support added to AM335x.
> > 
> >  drivers/pwm/pwm-tiehrpwm.c |   10 ++++++++--
> >  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> I had applied this to my for-next branch, but reading the commit message
> again it would seem that this should actually go into 3.8, right?

Common clock framework support added for am335x in 3.8 only, still EHRPWM
tbclk not present in clock tree. I expect this to be in 3.9. So this patch
also requires to be in 3.9 only.

Thanks
Avinash

> 
> Thierry
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Thierry Reding Jan. 18, 2013, 6:49 a.m. UTC | #4
On Fri, Jan 18, 2013 at 04:18:27AM +0000, Philip, Avinash wrote:
> On Thu, Jan 17, 2013 at 21:22:18, Thierry Reding wrote:
> > On Thu, Jan 10, 2013 at 06:35:26PM +0530, Philip Avinash wrote:
> > > From: "Philip, Avinash" <avinashphilip@ti.com>
> > > 
> > > The clock framework has changed and it's now better to invoke
> > > clock_prepare_enable() and clk_disable_unprepare() rather than the
> > > legacy clk_enable() and clk_disable() calls. This patch converts the
> > > pwm-tiehrpwm driver to the new framework.
> > > 
> > > Signed-off-by: Philip Avinash <avinashphilip@ti.com>
> > > ---
> > > Changes Since v1:
> > > 	- Check the return value of TBCLK enable in .pwm_enable()
> > > 
> > > In 3.8-rc1, common clock frame work support added to AM335x.
> > > 
> > >  drivers/pwm/pwm-tiehrpwm.c |   10 ++++++++--
> > >  1 file changed, 8 insertions(+), 2 deletions(-)
> > 
> > I had applied this to my for-next branch, but reading the commit message
> > again it would seem that this should actually go into 3.8, right?
> 
> Common clock framework support added for am335x in 3.8 only, still EHRPWM
> tbclk not present in clock tree. I expect this to be in 3.9. So this patch
> also requires to be in 3.9 only.

Okay, I'll leave it in my for-next branch then, which gets merged into
linux-next and will go into 3.9.

Thierry
diff mbox

Patch

diff --git a/drivers/pwm/pwm-tiehrpwm.c b/drivers/pwm/pwm-tiehrpwm.c
index 72a6dd4..4fcafbf 100644
--- a/drivers/pwm/pwm-tiehrpwm.c
+++ b/drivers/pwm/pwm-tiehrpwm.c
@@ -318,6 +318,7 @@  static int ehrpwm_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm)
 {
 	struct ehrpwm_pwm_chip *pc = to_ehrpwm_pwm_chip(chip);
 	unsigned short aqcsfrc_val, aqcsfrc_mask;
+	int ret;
 
 	/* Leave clock enabled on enabling PWM */
 	pm_runtime_get_sync(chip->dev);
@@ -341,7 +342,12 @@  static int ehrpwm_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm)
 	configure_polarity(pc, pwm->hwpwm);
 
 	/* Enable TBCLK before enabling PWM device */
-	clk_enable(pc->tbclk);
+	ret = clk_prepare_enable(pc->tbclk);
+	if (ret) {
+		pr_err("Failed to enable TBCLK for %s\n",
+				dev_name(pc->chip.dev));
+		return ret;
+	}
 
 	/* Enable time counter for free_run */
 	ehrpwm_modify(pc->mmio_base, TBCTL, TBCTL_RUN_MASK, TBCTL_FREE_RUN);
@@ -372,7 +378,7 @@  static void ehrpwm_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm)
 	ehrpwm_modify(pc->mmio_base, AQCSFRC, aqcsfrc_mask, aqcsfrc_val);
 
 	/* Disabling TBCLK on PWM disable */
-	clk_disable(pc->tbclk);
+	clk_disable_unprepare(pc->tbclk);
 
 	/* Stop Time base counter */
 	ehrpwm_modify(pc->mmio_base, TBCTL, TBCTL_RUN_MASK, TBCTL_STOP_NEXT);