[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120502200356.GA25915@kroah.com>
Date: Wed, 2 May 2012 13:03:56 -0700
From: Greg KH <gregkh@...uxfoundation.org>
To: Preston Fick <pffick@...il.com>
Cc: linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-serial@...r.kernel.org, preston.fick@...abs.com
Subject: Re: [PATCH 3/3] usb: cp210x: Add ioctl for GPIO support
On Mon, Apr 30, 2012 at 11:06:50PM -0500, Preston Fick wrote:
> This patch adds support for GPIO for CP210x devices that support it through two
> IOCTLs to get or set the GPIO latch on a CP210x device. The specification for
> this can be found in Silicon Labs AN571 document on section 5.27.1-4.
>
> Signed-off-by: Preston Fick <preston.fick@...abs.com>
> ---
> drivers/usb/serial/cp210x.c | 98 +++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 98 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
> index b3646b8..9d1e542 100644
> --- a/drivers/usb/serial/cp210x.c
> +++ b/drivers/usb/serial/cp210x.c
> @@ -35,6 +35,8 @@
> */
> static int cp210x_open(struct tty_struct *tty, struct usb_serial_port *);
> static void cp210x_close(struct usb_serial_port *);
> +static int cp210x_ioctl(struct tty_struct *tty,
> + unsigned int cmd, unsigned long arg);
> static void cp210x_get_termios(struct tty_struct *,
> struct usb_serial_port *port);
> static void cp210x_get_termios_port(struct usb_serial_port *port,
> @@ -175,6 +177,7 @@ static struct usb_serial_driver cp210x_device = {
> .bulk_out_size = 256,
> .open = cp210x_open,
> .close = cp210x_close,
> + .ioctl = cp210x_ioctl,
> .break_ctl = cp210x_break_ctl,
> .set_termios = cp210x_set_termios,
> .tiocmget = cp210x_tiocmget,
> @@ -195,6 +198,10 @@ static struct usb_serial_driver * const serial_drivers[] = {
> #define CP2104_PARTNUM 0x04
> #define CP2105_PARTNUM 0x05
>
> +/* IOCTLs */
> +#define IOCTL_GPIOGET 0x8000
> +#define IOCTL_GPIOSET 0x8001
As Alan pointed out, we can't just add random ioctls for individual
drivers for this type of thing. We need to standardize on this.
Actually, why can't you use the GPIO subsystem for something like this?
Can't you export your device as both a usb-serial device and a gpio
device and have things work properly that way?
thanks,
greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists