Doc: serial-rs485.txt: update RS485 driver interface
Since commit a5f276f10f
(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>
This commit is contained in:
parent
3e20c31a22
commit
71206b9f81
|
@ -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
|
||||
|
||||
|
@ -85,7 +45,7 @@
|
|||
|
||||
#include <linux/serial.h>
|
||||
|
||||
/* Driver-specific ioctls: */
|
||||
/* RS485 ioctls: */
|
||||
#define TIOCGRS485 0x542E
|
||||
#define TIOCSRS485 0x542F
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user