Re: [PATCH v5] USB: serial: ftdi_sio: implement GPIO support for FT-X devices

From: Karoly Pados
Date: Mon Sep 24 2018 - 07:52:47 EST


Oops, I sent v4 again, so it had no changes at all. Can't I just resend v5 instead of calling it v6?

September 24, 2018 10:48 AM, "Johan Hovold" <johan@xxxxxxxxxx> wrote:

> 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