Thursday, February 11, 2010 1:35 PM, Bill Gatliff wrote: > Pavel Machek wrote: >>> +static void >>> +gpio_pwm_work (struct work_struct *work) >>> +{ >>> + struct gpio_pwm *gp = container_of(work, struct gpio_pwm, work); >>> + >>> + if (gp->active) >>> + gpio_direction_output(gp->gpio, gp->polarity ? 1 : 0); >>> + else >>> + gpio_direction_output(gp->gpio, gp->polarity ? 0 : 1); >>> +} >>> >> >> ...polarity ^ active ? >> > > ... except that if polarity and/or active are >1, I don't send the > values 1 or 0 to gpio_direction_output. I don't know if the API is > specifically intended to accept nonzero values that are greater than 1. FWIW, the gpiolib API will accept any non-zero value to "set" a gpio pin and a zero value to "clear" the pin. For that matter, some of the gpiolib drivers end up returning the bit position mask for a given gpio pin and not 1 or 0. For instance if the gpio pin in question is bit 6 in an 8-bit register and it is set, a __gpio_get_value will end up returning 0x40 and not '1'. Regards, Hartley -- To unsubscribe from this list: send the line "unsubscribe linux-embedded" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html