On Mon, Nov 26, 2012 at 09:30:03AM +0100, Peter Ujfalusi wrote: > On 11/23/2012 04:04 PM, Thierry Reding wrote: > > On Tue, Nov 20, 2012 at 10:56:22AM +0100, Peter Ujfalusi wrote: > >> The driver supports the following LED outputs as generic PWM driver: > >> TWL4030 LEDA and LEDB (PWMA and PWMB) > >> TWL6030 Charging indicator LED (PWM LED) > >> > >> On TWL6030 when the PWM requested LED is configured to be controlled by SW. > >> In this case the user can enable/disable and set the duty period freely. > >> When the PWM has been freed, the LED driver is put back to HW control. > >> > >> Signed-off-by: Peter Ujfalusi <[email protected]> > >> --- > >> drivers/pwm/Kconfig | 10 ++ > >> drivers/pwm/Makefile | 1 + > >> drivers/pwm/pwm-twl-led.c | 303 > >> ++++++++++++++++++++++++++++++++++++++++++++++ > >> 3 files changed, 314 insertions(+) > >> create mode 100644 drivers/pwm/pwm-twl-led.c > > > > Doesn't this belong in the drivers/leds subsystem? Besides that, the > > same comments as for the previous patch apply. One additional note > > below. > > The PINs itself are called as LED but they are PWMs at the end. If we > represent them as PWMs they can be used for different purposes which is going > to be needed for example in BeagleBoard, where the LEDA (PWMA) is used as a > GPO to enable/disable the USB host power.
Heh, that's an interesting use-case for a PWM. =)
> Also the removed 'twl6030-pwm' driver was only controlled the LED part of
> twl6030.
> With this series I enable the use of the PWMs and the PWMs behind of the LED
> functions to give us flexibility on how we are using them.
Alright, we can keep it in the PWM subsystem then.
> >> +static struct platform_driver twl_pwmled_driver = {
> >> + .driver = {
> >> + .name = "twl-pwmled",
> >> + .of_match_table = of_match_ptr(twl_pwmled_of_match),
> >> + },
> >> + .probe = twl_pwmled_probe,
> >> + .remove = __devexit_p(twl_pwmled_remove),
> >
> > You didn't annotate twl_pwmled_remove() with __devexit, so __devexit_p
> > isn't needed here either.
>
> Oh yes, I have also received patches from a series which removes the
> _devexit_p() from the kernel.
> But should the __devexit need to be added to the remove function?
__devexit_p without a corresponding __devexit doesn't make sense. But as
all of __devinit, __devexit and __devexit_p will be removed sooner or
later, new code just shouldn't bother adding it. In this case, just drop
__devexit_p.
Thierry
pgpBF273zedCC.pgp
Description: PGP signature

