> Sugumar Natarajan wrote:
>On Fri, Sep 10, 2010 at 23:12:36, Caglar Akyuz wrote:
>> On Thursday 09 September 2010 01:40:49 pm Sugumar Natarajan wrote:
>> > This patch adds generic PWM support where it maintains the list of PWM
>> > control devices that can be added or removed.
>> >
>> > The interface provides a list of functions that can be accessed by the
>> > PWM control driver module and the generic PWM driver.
>> >
>> > The PWM control driver module such as eCAP uses the interface to
>> > register and add itself to the list as a PWM control device.
>> > The generic PWM driver uses the interface to search for a PWM control
>> > device and if present, uses the device for PWM control.
>> >
>> > Signed-off-by: Sugumar Natarajan <sugumar at ti.com>
>> > ---
>>
>> Hi,
>>
>> [...]
>>
>> > +
>> > +int pwm_enable(struct pwm_device *pwm) {
>> > + if (WARN_ON(!pwm))
>> > + return -EINVAL;
>> > +
>> > + return clk_enable(pwm->clk);
>> > +}
>> > +EXPORT_SYMBOL(pwm_enable);
>> > +
>>
>> I think 'clk_enable' should be controlled for un-matched pwm_enable/disable
>operation. Otherwise, disabling PWM won't shut down
>peripheral clock. If I understand inner workings of DaVinci clock
>implementation clock use_count is incremented with every
>clk_enable.
>>
>> Regards,
>> Caglar
>>
>
>Caglar,
> I could not understand what you mean by "un-match" .could you please
>explain?
>Regards,
>N.sugumar
List server didn't deliver this mail to me, I saw it from the archives. I mean
something like this:
int pwm_enable(struct pwm_device *pwm)
{
int rc = 0;
if (WARN_ON(!pwm))
return -EINVAL;
if (!pwm->clk_enabled) {
rc = clk_enable(pwm->clk);
if (!rc)
pwm->clk_enabled = 1;
}
return rc;
}
The reason is 'pwm_enable' can be called over and over without 'pwm_disable'
and vice versa. For instance, every time backlight value is changed,
pwm_enable is called by the backlight framework.
Regards,
Caglar
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source