xref: /OK3568_Linux_fs/kernel/drivers/tty/rocket.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * rocket.h --- the exported interface of the rocket driver to its configuration program.
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Written by Theodore Ts'o, Copyright 1997.
6*4882a593Smuzhiyun  * Copyright 1997 Comtrol Corporation.
7*4882a593Smuzhiyun  *
8*4882a593Smuzhiyun  */
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun /*  Model Information Struct */
11*4882a593Smuzhiyun typedef struct {
12*4882a593Smuzhiyun 	unsigned long model;
13*4882a593Smuzhiyun 	char modelString[80];
14*4882a593Smuzhiyun 	unsigned long numPorts;
15*4882a593Smuzhiyun 	int loadrm2;
16*4882a593Smuzhiyun 	int startingPortNumber;
17*4882a593Smuzhiyun } rocketModel_t;
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun struct rocket_config {
20*4882a593Smuzhiyun 	int line;
21*4882a593Smuzhiyun 	int flags;
22*4882a593Smuzhiyun 	int closing_wait;
23*4882a593Smuzhiyun 	int close_delay;
24*4882a593Smuzhiyun 	int port;
25*4882a593Smuzhiyun 	int reserved[32];
26*4882a593Smuzhiyun };
27*4882a593Smuzhiyun 
28*4882a593Smuzhiyun struct rocket_ports {
29*4882a593Smuzhiyun 	int tty_major;
30*4882a593Smuzhiyun 	int callout_major;
31*4882a593Smuzhiyun 	rocketModel_t rocketModel[8];
32*4882a593Smuzhiyun };
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun struct rocket_version {
35*4882a593Smuzhiyun 	char rocket_version[32];
36*4882a593Smuzhiyun 	char rocket_date[32];
37*4882a593Smuzhiyun 	char reserved[64];
38*4882a593Smuzhiyun };
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun /*
41*4882a593Smuzhiyun  * Rocketport flags
42*4882a593Smuzhiyun  */
43*4882a593Smuzhiyun /*#define ROCKET_CALLOUT_NOHUP    0x00000001 */
44*4882a593Smuzhiyun #define ROCKET_FORCE_CD		0x00000002
45*4882a593Smuzhiyun #define ROCKET_HUP_NOTIFY	0x00000004
46*4882a593Smuzhiyun #define ROCKET_SPLIT_TERMIOS	0x00000008
47*4882a593Smuzhiyun #define ROCKET_SPD_MASK		0x00000070
48*4882a593Smuzhiyun #define ROCKET_SPD_HI		0x00000010	/* Use 57600 instead of 38400 bps */
49*4882a593Smuzhiyun #define ROCKET_SPD_VHI		0x00000020	/* Use 115200 instead of 38400 bps */
50*4882a593Smuzhiyun #define ROCKET_SPD_SHI		0x00000030	/* Use 230400 instead of 38400 bps */
51*4882a593Smuzhiyun #define ROCKET_SPD_WARP	        0x00000040	/* Use 460800 instead of 38400 bps */
52*4882a593Smuzhiyun #define ROCKET_SAK		0x00000080
53*4882a593Smuzhiyun #define ROCKET_SESSION_LOCKOUT	0x00000100
54*4882a593Smuzhiyun #define ROCKET_PGRP_LOCKOUT	0x00000200
55*4882a593Smuzhiyun #define ROCKET_RTS_TOGGLE	0x00000400
56*4882a593Smuzhiyun #define ROCKET_MODE_MASK        0x00003000
57*4882a593Smuzhiyun #define ROCKET_MODE_RS232       0x00000000
58*4882a593Smuzhiyun #define ROCKET_MODE_RS485       0x00001000
59*4882a593Smuzhiyun #define ROCKET_MODE_RS422       0x00002000
60*4882a593Smuzhiyun #define ROCKET_FLAGS		0x00003FFF
61*4882a593Smuzhiyun 
62*4882a593Smuzhiyun #define ROCKET_USR_MASK 0x0071	/* Legal flags that non-privileged
63*4882a593Smuzhiyun 				 * users can set or reset */
64*4882a593Smuzhiyun 
65*4882a593Smuzhiyun /*
66*4882a593Smuzhiyun  * For closing_wait and closing_wait2
67*4882a593Smuzhiyun  */
68*4882a593Smuzhiyun #define ROCKET_CLOSING_WAIT_NONE	ASYNC_CLOSING_WAIT_NONE
69*4882a593Smuzhiyun #define ROCKET_CLOSING_WAIT_INF		ASYNC_CLOSING_WAIT_INF
70*4882a593Smuzhiyun 
71*4882a593Smuzhiyun /*
72*4882a593Smuzhiyun  * Rocketport ioctls -- "RP"
73*4882a593Smuzhiyun  */
74*4882a593Smuzhiyun #define RCKP_GET_CONFIG		0x00525002
75*4882a593Smuzhiyun #define RCKP_SET_CONFIG		0x00525003
76*4882a593Smuzhiyun #define RCKP_GET_PORTS		0x00525004
77*4882a593Smuzhiyun #define RCKP_RESET_RM2		0x00525005
78*4882a593Smuzhiyun #define RCKP_GET_VERSION	0x00525006
79*4882a593Smuzhiyun 
80*4882a593Smuzhiyun /*  Rocketport Models */
81*4882a593Smuzhiyun #define MODEL_RP32INTF        0x0001	/* RP 32 port w/external I/F   */
82*4882a593Smuzhiyun #define MODEL_RP8INTF         0x0002	/* RP 8 port w/external I/F    */
83*4882a593Smuzhiyun #define MODEL_RP16INTF        0x0003	/* RP 16 port w/external I/F   */
84*4882a593Smuzhiyun #define MODEL_RP8OCTA         0x0005	/* RP 8 port w/octa cable      */
85*4882a593Smuzhiyun #define MODEL_RP4QUAD         0x0004	/* RP 4 port w/quad cable      */
86*4882a593Smuzhiyun #define MODEL_RP8J            0x0006	/* RP 8 port w/RJ11 connectors */
87*4882a593Smuzhiyun #define MODEL_RP4J            0x0007	/* RP 4 port w/RJ45 connectors */
88*4882a593Smuzhiyun #define MODEL_RP8SNI          0x0008	/* RP 8 port w/ DB78 SNI connector */
89*4882a593Smuzhiyun #define MODEL_RP16SNI         0x0009	/* RP 16 port w/ DB78 SNI connector */
90*4882a593Smuzhiyun #define MODEL_RPP4            0x000A	/* RP Plus 4 port              */
91*4882a593Smuzhiyun #define MODEL_RPP8            0x000B	/* RP Plus 8 port              */
92*4882a593Smuzhiyun #define MODEL_RP2_232         0x000E	/* RP Plus 2 port RS232        */
93*4882a593Smuzhiyun #define MODEL_RP2_422         0x000F	/* RP Plus 2 port RS232        */
94*4882a593Smuzhiyun 
95*4882a593Smuzhiyun /*  Rocketmodem II Models */
96*4882a593Smuzhiyun #define MODEL_RP6M            0x000C	/* RM 6 port                   */
97*4882a593Smuzhiyun #define MODEL_RP4M            0x000D	/* RM 4 port                   */
98*4882a593Smuzhiyun 
99*4882a593Smuzhiyun /* Universal PCI boards */
100*4882a593Smuzhiyun #define MODEL_UPCI_RP32INTF   0x0801	/* RP UPCI 32 port w/external I/F     */
101*4882a593Smuzhiyun #define MODEL_UPCI_RP8INTF    0x0802	/* RP UPCI 8 port w/external I/F      */
102*4882a593Smuzhiyun #define MODEL_UPCI_RP16INTF   0x0803	/* RP UPCI 16 port w/external I/F     */
103*4882a593Smuzhiyun #define MODEL_UPCI_RP8OCTA    0x0805	/* RP UPCI 8 port w/octa cable        */
104*4882a593Smuzhiyun #define MODEL_UPCI_RM3_8PORT  0x080C	/* RP UPCI Rocketmodem III 8 port     */
105*4882a593Smuzhiyun #define MODEL_UPCI_RM3_4PORT  0x080C	/* RP UPCI Rocketmodem III 4 port     */
106*4882a593Smuzhiyun 
107*4882a593Smuzhiyun /*  Compact PCI 16 port  */
108*4882a593Smuzhiyun #define MODEL_CPCI_RP16INTF   0x0903	/* RP Compact PCI 16 port w/external I/F */
109*4882a593Smuzhiyun 
110*4882a593Smuzhiyun /* All ISA boards */
111*4882a593Smuzhiyun #define MODEL_ISA             0x1000
112