mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-26 14:17:26 -04:00
tty: Cris has a nice RS485 ioctl so we should steal it
JP Tosoni observed: "About a RS485 ioctl: could you consider the attached files which are already in the Linux kernel (in include/asm-cris). They define a TIOCSERSETRS485 (ioctl.h), and the data structure (rs485.h) with allows to specify timings. Sounds just like what we want ?" and he's right: sort of. Rework the structure to use flag bits and make the time delay a fixed sized field so we don't get 32/64bit problems. Add the ioctls to x86 so that people know what to add to their platform of choice. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
6f967f7891
commit
c26c56c0f4
2 changed files with 18 additions and 0 deletions
|
@ -51,6 +51,8 @@
|
||||||
#define TCSETS2 _IOW('T', 0x2B, struct termios2)
|
#define TCSETS2 _IOW('T', 0x2B, struct termios2)
|
||||||
#define TCSETSW2 _IOW('T', 0x2C, struct termios2)
|
#define TCSETSW2 _IOW('T', 0x2C, struct termios2)
|
||||||
#define TCSETSF2 _IOW('T', 0x2D, struct termios2)
|
#define TCSETSF2 _IOW('T', 0x2D, struct termios2)
|
||||||
|
#define TIOCGRS485 0x542E
|
||||||
|
#define TIOCSRS485 0x542F
|
||||||
#define TIOCGPTN _IOR('T', 0x30, unsigned int)
|
#define TIOCGPTN _IOR('T', 0x30, unsigned int)
|
||||||
/* Get Pty Number (of pty-mux device) */
|
/* Get Pty Number (of pty-mux device) */
|
||||||
#define TIOCSPTLCK _IOW('T', 0x31, int) /* Lock/unlock Pty */
|
#define TIOCSPTLCK _IOW('T', 0x31, int) /* Lock/unlock Pty */
|
||||||
|
|
|
@ -173,6 +173,22 @@ struct serial_icounter_struct {
|
||||||
int reserved[9];
|
int reserved[9];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Serial interface for controlling RS485 settings on chips with suitable
|
||||||
|
* support. Set with TIOCSRS485 and get with TIOCGRS485 if supported by your
|
||||||
|
* platform. The set function returns the new state, with any unsupported bits
|
||||||
|
* reverted appropriately.
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct serial_rs485 {
|
||||||
|
__u32 flags; /* RS485 feature flags */
|
||||||
|
#define SER_RS485_ENABLED (1 << 0)
|
||||||
|
#define SER_RS485_RTS_ON_SEND (1 << 1)
|
||||||
|
#define SER_RS485_RTS_AFTER_SEND (1 << 2)
|
||||||
|
__u32 delay_rts_before_send; /* Milliseconds */
|
||||||
|
__u32 padding[6]; /* Memory is cheap, new structs
|
||||||
|
are a royal PITA .. */
|
||||||
|
};
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
#include <linux/compiler.h>
|
#include <linux/compiler.h>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue