On Mon, 7 Jul 2014, Benjamin Tissoires wrote: > > CP2112 does not offer an atomic method to set both gpio > > direction and value. > > Also it does not permit to set gpio value before putting > > gpio in output. In fact, accordingly to Silicon Labs > > AN495, Rev. 0.2, cpt. 4.4, the HID report to set gpio > > values "does not affect any pins that are not configured > > as outputs". > > > > This is confirmed on evaluation board CP2112-EK. > > With current driver, after execute: > > echo in > /sys/class/gpio/gpio248/direction > > echo low > /sys/class/gpio/gpio248/direction > > gpio output is still high. Only after a following > > echo low > /sys/class/gpio/gpio248/direction > > gpio output gets low. > > > > Fix driver by changing order of operations; first set > > direction then set value. > > > > The drawback of this new sequence is that we can have > > a pulse on gpio pin when direction is changed from > > input to output-low, but this cannot be avoided on > > current CP2112. > > In this case, does keeping the first cp2112_gpio_set() before setting > the output direction prevents the pulse? > If so, then you can just keep the current code, and simply add the > cp2112_gpio_set() at the end of cp2112_gpio_direction_output(). > > In both case, this is: > Reviewed-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx> I am queuing this for 3.17, thanks. -- Jiri Kosina SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html