Doc: serial-rs485.txt: update RS485 driver interface
authorBaruch Siach <baruch@tkos.co.il>
Thu, 4 Jun 2015 07:56:59 +0000 (10:56 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 13 Jun 2015 00:39:51 +0000 (17:39 -0700)
Since commit a5f276f10ff7 (serial_core: Handle TIOC[GS]RS485 ioctls.,
2014-11-06) serial_core handles RS485 ioctls. Drivers only need to implement
the rs485_config callback. Update serial-rs485.txt to reflect these changes.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/serial/serial-rs485.txt

index 39dac95422a3e57f0c0711ba8d67fd147cfea950..2253b8b45a7415f6f08505d1509b5fad9e2817c3 100644 (file)
    the values given by the device tree.
 
    Any driver for devices capable of working both as RS232 and RS485 should
-   provide at least the following ioctls:
-
-    - TIOCSRS485 (typically associated with number 0x542F). This ioctl is used
-      to enable/disable RS485 mode from user-space
-
-    - TIOCGRS485 (typically associated with number 0x542E). This ioctl is used
-      to get RS485 mode from kernel-space (i.e., driver) to user-space.
-
-   In other words, the serial driver should contain a code similar to the next
-   one:
-
-       static struct uart_ops atmel_pops = {
-               /* ... */
-               .ioctl          = handle_ioctl,
-       };
-
-       static int handle_ioctl(struct uart_port *port,
-               unsigned int cmd,
-               unsigned long arg)
-       {
-               struct serial_rs485 rs485conf;
-
-               switch (cmd) {
-               case TIOCSRS485:
-                       if (copy_from_user(&rs485conf,
-                               (struct serial_rs485 *) arg,
-                               sizeof(rs485conf)))
-                                       return -EFAULT;
-
-                       /* ... */
-                       break;
-
-               case TIOCGRS485:
-                       if (copy_to_user((struct serial_rs485 *) arg,
-                               ...,
-                               sizeof(rs485conf)))
-                                       return -EFAULT;
-                       /* ... */
-                       break;
-
-               /* ... */
-               }
-       }
-
+   implement the rs485_config callback in the uart_port structure. The
+   serial_core calls rs485_config to do the device specific part in response
+   to TIOCSRS485 and TIOCGRS485 ioctls (see below). The rs485_config callback
+   receives a pointer to struct serial_rs485.
 
 4. USAGE FROM USER-LEVEL
 
@@ -85,7 +45,7 @@
 
        #include <linux/serial.h>
 
-       /* Driver-specific ioctls: */
+       /* RS485 ioctls: */
        #define TIOCGRS485      0x542E
        #define TIOCSRS485      0x542F