Re: [PATCH v3 4/4] mvebu: wrt1900ac: Use pwm-fan rather than gpio-fan
From: Andrew Lunn
Date: Mon Mar 27 2017 - 09:18:05 EST
On Sun, Mar 26, 2017 at 11:05:58PM +0200, Ralph Sennhauser wrote:
> On Fri, 24 Mar 2017 15:35:05 +0100
> Andrew Lunn <andrew@xxxxxxx> wrote:
>
> > > + pwm_fan {
> > > /* SUNON HA4010V4-0000-C99 */
> > > - compatible = "gpio-fan";
> > > - gpios = <&gpio0 24 0>;
> > >
> > > - gpio-fan,speed-map = <0 0
> > > - 4500 1>;
> > > + compatible = "pwm-fan";
> > > + pwms = <&gpio0 24 4000 0>;
> >
> > Hi Ralph
> >
> > I believe this last 0 is the flags parameter. Now that we have
> > #pwm-cells = 1, i think this last 0 should be dropped.
> >
> > Andrew
>
> Hi Andrew,
>
> isn't the 4000 (period?) pwm-cell #2 and 0 (flags?) pwm-cell #3? I
> actually expect "pwms = <&gpio0 24>;" here or "#pwm-cells = <2>;"
Hi Ralph
>From Documentation/devicetree/bindings/pwm/pwm.txt:
pwm-list ::= <single-pwm> [pwm-list]
single-pwm ::= <pwm-phandle> <pwm-specifier>
pwm-phandle : phandle to PWM controller node
pwm-specifier : array of #pwm-cells specifying the given PWM
(controller specific)
Our pwm-list has a single single-pwm.
phandle is &gpio0.
The remaining parts are the specifier, or which there should be #pwm-calls.
>From Documentation/devicetree/bindings/pwm/pwm.txt again:
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
So we are using the 24th PWM and 4000 nanosecod period. We don't want
any flags.
So
pwms = <&gpio0 24 4000>;
has a phandle, and then 2 cells.
Andrew