Skip to content

Commit

Permalink
Doc: serial-rs485.txt: update RS485 driver interface
Browse files Browse the repository at this point in the history
Since commit a5f276f (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 <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
baruchsiach authored and gregkh committed Jun 13, 2015
1 parent 3e20c31 commit 71206b9
Showing 1 changed file with 5 additions and 45 deletions.
50 changes: 5 additions & 45 deletions Documentation/serial/serial-rs485.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,50 +33,10 @@
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

Expand All @@ -85,7 +45,7 @@

#include <linux/serial.h>

/* Driver-specific ioctls: */
/* RS485 ioctls: */
#define TIOCGRS485 0x542E
#define TIOCSRS485 0x542F

Expand Down

0 comments on commit 71206b9

Please sign in to comment.