On Tue, Mar 18, 2014 at 4:47 PM, Tim Kryger <tim.kryger@xxxxxxxxxx> wrote: > On Tue, Mar 18, 2014 at 2:52 PM, Thierry Reding > <thierry.reding@xxxxxxxxx> wrote: >> On Wed, Mar 12, 2014 at 01:15:43PM -0700, Tim Kryger wrote: >>> + >>> + /* There is polarity support in HW but it is easier to manage in SW */ >>> + if (pwm->polarity == PWM_POLARITY_INVERSED) >>> + duty_ns = period_ns - duty_ns; >> >> No, this is wrong. You're not actually changing the *polarity* here. > > Please elaborate. I don't understand what is wrong here. > > Does polarity influence the output while a PWM is disabled? > >>> +static int kona_pwmc_set_polarity(struct pwm_chip *chip, struct pwm_device *pwm, >>> + enum pwm_polarity polarity) >>> +{ >>> + /* >>> + * The framework only allows the polarity to be changed when a PWM is >>> + * disabled so no immediate action is required here. When a channel is >>> + * enabled, the polarity gets handled as part of the re-config step. >>> + */ >>> + >>> + return 0; >>> +} >> >> See above. If you don't want to implement the hardware support for >> inversed polarity, then simply don't implement this. > > I had originally planned to omit polarity support but because it > affects the binding (which is treated as ABI), it wouldn't be possible > to add it in later without defining a new compatible string. I would like to get this right but it occurred to me that there may be a way to defer the implementation of this feature without disrupting the binding. Would it be acceptable to continue using #pwm-cells = <3> and of_pwm_xlate_with_flags but return -EINVAL from kona_pwmc_set_polarity if PWM_POLARITY_INVERSED is specified? -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html