On Sun, Sep 23, 2018 at 06:03:30PM +0200, Karoly Pados wrote: > This patch allows using the CBUS pins of FT-X devices as GPIO in CBUS > bitbanging mode. There is no conflict between the GPIO and VCP > functionality in this mode. Tested on FT230X and FT231X. > > As there is no way to request the current CBUS register configuration > from the device, all CBUS pins are set to a known state when the first > GPIO is requested. This allows using libftdi to set the GPIO pins > before loading this module for UART functionality, a behavior that > existing applications might be relying upon (though no specific case > is known to the authors of this patch). > > Signed-off-by: Karoly Pados <pados@xxxxxxxx> > --- > Changelog: > - v2: Fix compile error when CONFIG_GPIOLIB is not defined. > - v3: Incorporate review feedback. > - v4: Include linux/gpio/driver.h unconditionally. > Replace and invert gpio_input with gpio_output. > Make ftdi_gpio_direction_get return 0/1. > Change dev_err msg in ftdi_set_bitmode_req. > Change formatting of error checking in ftdi_gpio_get. > Drop dev_err in ftdi_gpio_set. > Remove some line breaks and empty lines. > Change error handling in ftdi_read_eeprom (and adjust caller). > Replace SIO->FTX in FTDI_SIO_CBUS_MUX_GPIO macro name. > - v5: Read only 4 bytes from eeprom in ftx_gpioconf_init. > Compare ftdi_read_eeprom result with 0 instead of eq. cehck. > Reserve 4 GPIOs even for FT234X. > Release CBUS after gpiochip deregister to avoid possible race. > Adjust comment on FTDI_SIO_SET_BITMODE macro. > Protect GPIO value/dir setting with mutex. This patch doesn't add any locking so I'm assuming you posted the wrong version of the patch. > Add support for gpiochip.get_multiple and set_multiple. > Add names to GPIO lines. I'll wait for v6. Thanks, Johan