Re: [PATCHv3 1/3] pwm: make the PWM_POLARITY flag in DTB optional

From: Thierry Reding
Date: Mon Apr 07 2014 - 07:37:57 EST


On Wed, Apr 02, 2014 at 07:53:50AM +0200, Sascha Hauer wrote:
> On Fri, Mar 28, 2014 at 09:48:58AM +0100, Lothar WaÃmann wrote:
[...]
> > @@ -183,8 +173,11 @@ static void of_pwmchip_add(struct pwm_chip *chip)
> > return;
> >
> > if (!chip->of_xlate) {
> > - chip->of_xlate = of_pwm_simple_xlate;
> > - chip->of_pwm_n_cells = 2;
> > + chip->of_xlate = of_pwm_xlate;
> > + if (chip->ops->set_polarity)
> > + chip->of_pwm_n_cells = 3;
> > + else
> > + chip->of_pwm_n_cells = 2;
>
> I think the presence of the set_polarity callback shouldn't influence
> the number of cells the parser expects. As commented on 2/2 this doesn't
> actually mean the device actually support polarity inversion.

How so? A driver should only implement .set_polarity() if it supports
changing the polarity.

That said, I agree that the presence of .set_polarity() shouldn't
determine the number of cells. You could have any number of other flags
set via the third cell.

> Also, polarity inversion could still be done in software for hardware
> that doesn't support it.

No. You cannot emulate polarity inversion in software.

Thierry

Attachment: pgpwInb2KcJA7.pgp
Description: PGP signature