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