Re: [PATCH v7 04/11] pwm: add DT bindings documentation for atmel-hlcdc-pwm driver
From: Thierry Reding
Date: Mon Oct 06 2014 - 08:23:33 EST
On Mon, Oct 06, 2014 at 12:33:26PM +0100, Mark Rutland wrote:
> On Mon, Oct 06, 2014 at 11:13:51AM +0100, Thierry Reding wrote:
> > On Wed, Oct 01, 2014 at 04:53:01PM +0200, Boris Brezillon wrote:
> > > From: Boris BREZILLON <boris.brezillon@xxxxxxxxxxxxxxxxxx>
> > >
> > > The HLCDC IP available in some Atmel SoCs (i.e. sam9x5i.e. at91sam9n12,
> > > at91sam9x5 family or sama5d3 family) provide a PWM device.
> > >
> > > The DT bindings used for this PWM device is following the default 3 cells
> > > bindings described in Documentation/devicetree/bindings/pwm/pwm.txt.
> > >
> > > Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
> > > ---
> > > .../devicetree/bindings/pwm/atmel-hlcdc-pwm.txt | 55 ++++++++++++++++++++++
> > > 1 file changed, 55 insertions(+)
> > > create mode 100644 Documentation/devicetree/bindings/pwm/atmel-hlcdc-pwm.txt
> > >
> > > diff --git a/Documentation/devicetree/bindings/pwm/atmel-hlcdc-pwm.txt b/Documentation/devicetree/bindings/pwm/atmel-hlcdc-pwm.txt
> > > new file mode 100644
> > > index 0000000..86ad3e2
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/pwm/atmel-hlcdc-pwm.txt
> > > @@ -0,0 +1,55 @@
> > > +Device-Tree bindings for Atmel's HLCDC (High LCD Controller) PWM driver
> > > +
> > > +The Atmel HLCDC PWM is subdevice of the HLCDC MFD device.
> > > +See ../mfd/atmel-hlcdc.txt for more details.
> > > +
> > > +Required properties:
> > > + - compatible: value should be one of the following:
> > > + "atmel,hlcdc-pwm"
> > > + - pinctr-names: the pin control state names. Should contain "default".
> > > + - pinctrl-0: should contain the pinctrl states described by pinctrl
> > > + default.
> > > + - #pwm-cells: should be set to 3. This PWM chip use the default 3 cells
> > > + bindings defined in Documentation/devicetree/bindings/pwm/pwm.txt.
> > > + The first cell encodes the PWM id (0 is the only acceptable value here,
> > > + because the chip only provide one PWM).
> > > + The second cell encodes the PWM period in nanoseconds.
> > > + The third cell encodes the PWM flags (the only supported flag is
> > > + PWM_POLARITY_INVERTED)
> >
> > Given that this already refers to the default 3 cells binding it doesn't
> > need to repeat part of the contents of pwm.txt.
>
> Given that pwm.txt states:
>
> pwm-specifier : array of #pwm-cells specifying the given PWM
> (controller specific)
It also goes on to say that:
"
pwm-specifier typically encodes the chip-relative PWM number and the PWM
period in nanoseconds.
Optionally, the pwm-specifier can encode a number of flags (defined in
<dt-bindings/pwm/pwm.h>) in a third cell:
- PWM_POLARITY_INVERTED: invert the PWM signal polarity
"
> I'd leave it here. Just because pwm.txt gives an example of a controller
> specific meaning for the pwm cells, I don't think we should rely on it
> everywhere.
If we do have a default meaning for a specifier and the majority (in
case of PWM every single one) of the device-specific bindings use it,
then I don't think it makes sense to duplicate information everywhere
else. We've been doing the same thing across the kernel for a long
time now, why should PWM be special?
Thierry
Attachment:
pgp3jcwGye1NE.pgp
Description: PGP signature