[PATCH 1/3] dt-bindings: pwm: imx-pwm: Add constraints for #pwm-cells
Uwe Kleine-König
u.kleine-koenig at pengutronix.de
Mon Nov 6 03:02:34 PST 2023
On Mon, Nov 06, 2023 at 11:49:19AM +0100, Alexander Stein wrote:
> Hello Uwe,
>
> Am Montag, 6. November 2023, 11:36:21 CET schrieb Uwe Kleine-König:
> > Hello,
> >
> > [dropped Philippe Schenker from Cc as his email bounced in the past]
> >
> > On Mon, Nov 06, 2023 at 10:52:03AM +0100, Alexander Stein wrote:
> > > Only fsl,imx1-pwm comptabile devices use #pwm-cells = <2>. Newer SoCs
> > > supportinverted PWM output, thus #pwm-cells needs to be set to 3.
> > >
> > > Signed-off-by: Alexander Stein <alexander.stein at ew.tq-group.com>
> > > ---
> > >
> > > .../devicetree/bindings/pwm/imx-pwm.yaml | 20 ++++++++++++++++---
> > > 1 file changed, 17 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/Documentation/devicetree/bindings/pwm/imx-pwm.yaml
> > > b/Documentation/devicetree/bindings/pwm/imx-pwm.yaml index
> > > c01dff3b7f843..59a981c0f39ab 100644
> > > --- a/Documentation/devicetree/bindings/pwm/imx-pwm.yaml
> > > +++ b/Documentation/devicetree/bindings/pwm/imx-pwm.yaml
> > > @@ -9,9 +9,6 @@ title: Freescale i.MX PWM controller
> > >
> > > maintainers:
> > > - Philipp Zabel <p.zabel at pengutronix.de>
> > >
> > > -allOf:
> > > - - $ref: pwm.yaml#
> > > -
> > >
> > > properties:
> > > "#pwm-cells":
> > > description: |
> > >
> > > @@ -74,6 +71,23 @@ required:
> > > additionalProperties: false
> > >
> > > +allOf:
> > > + - $ref: pwm.yaml#
> > > +
> > > + - if:
> > > + properties:
> > > + compatible:
> > > + contains:
> > > + const: fsl,imx1-pwm
> > > + then:
> > > + properties:
> > > + "#pwm-cells":
> > > + enum: [2]
> >
> > Given that arch/arm/boot/dts/nxp/imx/imx1.dtsi has:
> >
> > pwm: pwm at 208000 {
> > #pwm-cells = <3>;
> > compatible = "fsl,imx1-pwm";
> > ...
> >
> > this looks wrong.
>
> Indeed, something i doesn't match. Checking with [1] section 22.4.1 there are
> no bits regarding output inversion. Also pwm_imx1_apply returns -EINVAL if
> state->polarity != PWM_POLARITY_NORMAL.
> So IMO "#pwm-cells = <3>" is wrong for imx1. If fixed to 2, this also matches
> the description for the value of #pwm-cells in imx-pwm.yaml.
The reasoning only works in one direction, i.e. if your PWM supports
inversed polarity you need #pwm-cells = <3>. But there no problem in
using 3 cells for a PWM that doesn't support inversed output. Some might
call it unnecessary verboseness, other might call it consistency.
I'd say the right thing to do here is to stick to = 3 and adapt this
patch and the already existing comment in imx-pwm.yaml.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | https://www.pengutronix.de/ |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20231106/150ef06a/attachment-0001.sig>
More information about the linux-arm-kernel
mailing list