Re: [PATCH v5 2/3] usb: serial: xr_serial: Add gpiochip support

From: Linus Walleij
Date: Tue Dec 01 2020 - 09:38:58 EST


On Sun, Nov 22, 2020 at 6:08 PM Manivannan Sadhasivam <mani@xxxxxxxxxx> wrote:

> Add gpiochip support for Maxlinear/Exar USB to serial converter
> for controlling the available gpios.
>
> Inspired from cp210x usb to serial converter driver.
>
> Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
> Cc: linux-gpio@xxxxxxxxxxxxxxx
> Signed-off-by: Manivannan Sadhasivam <mani@xxxxxxxxxx>

This looks good to me overall, provided that it plays well with the
serial port.

One minor notice:

> +enum gpio_pins {
> + GPIO_RI = 0,
> + GPIO_CD,
> + GPIO_DSR,
> + GPIO_DTR,
> + GPIO_CTS,
> + GPIO_RTS,
> + GPIO_MAX,
> +};

You know the names of the pins...

> + port_priv->gc.ngpio = 6;
> + port_priv->gc.label = "xr_gpios";
> + port_priv->gc.request = xr_gpio_request;
> + port_priv->gc.free = xr_gpio_free;
> + port_priv->gc.get_direction = xr_gpio_direction_get;
> + port_priv->gc.direction_input = xr_gpio_direction_input;
> + port_priv->gc.direction_output = xr_gpio_direction_output;
> + port_priv->gc.get = xr_gpio_get;
> + port_priv->gc.set = xr_gpio_set;
> + port_priv->gc.owner = THIS_MODULE;
> + port_priv->gc.parent = &port->dev;
> + port_priv->gc.base = -1;
> + port_priv->gc.can_sleep = true;

So assign port_priv->gc.names here as well with an array
of strings with the names ("RI", "CD", ... etc).
This makes it look really nice in userspace if you do
e.g. "lsgpio".

With that:
Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>

Yours,
Linus Walleij