[PATCH 1/2] PWM: add pwm framework support

Sascha Hauer s.hauer at pengutronix.de
Tue Jun 28 12:18:42 EDT 2011


On Tue, Jun 28, 2011 at 02:27:04PM +0200, Arnd Bergmann wrote:
> On Tuesday 28 June 2011, Sascha Hauer wrote:
> > This patch adds framework support for PWM (pulse width modulation) devices.
> > 
> > The is a barebone PWM API already in the kernel under include/linux/pwm.h,
> > but it does not allow for multiple drivers as each of them implements the
> > pwm_*() functions.
> 
> Hi Sascha,
> 
> This looks very nice.
> I have only trivial comments, except for the suggestion to use idr.
>  
> > +PWM core
> > +M:	Sascha Hauer <s.hauer at pengutronix.de>
> > +L:	linux-kernel at vger.kernel.org
> > +S:	Maintained
> 
> I would add
> 
> F:	drivers/pwm/
> 
> > diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig
> > new file mode 100644
> > index 0000000..93c1052
> > --- /dev/null
> > +++ b/drivers/pwm/Kconfig
> > @@ -0,0 +1,12 @@
> > +menuconfig PWM
> > +	bool "PWM Support"
> > +	help
> > +	  This enables PWM support through the generic PWM framework.
> > +	  You only need to enable this, if you also want to enable
> > +	  one or more of the PWM drivers below.
> 
> Remove the comma.
> 
> > +
> > +/*
> > + * The next pwm id to assign. We do not bother to fill gaps which
> > + * occur during dynamic registering/deregistering of pwms, but
> > + * instead assign a uniq id to each new pwm.
>                        unique
> 
> > + */
> > +static int next_pwm_id;
> 
> How about using idr? It provides you a fast lookup and handles giving
> out unique numbers.

Sounds like a good idea, but is idr compatible with the pwmchip_reserve
function below? idr gives no guarantee that the first id is zero, but I
need exactly this to make the ids for the internal PWMs known at compile
time.

(In the longer term it probably makes sense to implement a
pwm_get(struct device *, const char *id) similar to the clk api, I just
wanted to stay compatible to the current PWM API for now)

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the linux-arm-kernel mailing list