blob: 3ad7ff0bc3c3d37c41583e2362b32b884737f841 [file] [log] [blame]
William Hubbsc6e3fd22010-10-07 13:20:02 -05001#ifndef _SPEAKUP_SERIAL_H
2#define _SPEAKUP_SERIAL_H
3
Paul Gortmaker4b715982012-08-20 19:56:28 -04004#include <linux/serial.h> /* for rs_table, serial constants */
William Hubbsc6e3fd22010-10-07 13:20:02 -05005#include <linux/serial_reg.h> /* for more serial constants */
William Hubbsc6e3fd22010-10-07 13:20:02 -05006#ifndef __sparc__
Melike Yurtogluf79b0d92014-10-01 01:24:01 +03007#include <linux/serial.h>
William Hubbsc6e3fd22010-10-07 13:20:02 -05008#endif
Okash Khawajaff59f2a2016-03-10 20:21:35 +00009#include <linux/serial_core.h>
William Hubbsc6e3fd22010-10-07 13:20:02 -050010
Jiri Slaby3ee00172012-03-05 14:52:11 +010011/*
12 * this is cut&paste from 8250.h. Get rid of the structure, the definitions
13 * and this whole broken driver.
14 */
15struct old_serial_port {
16 unsigned int uart; /* unused */
17 unsigned int baud_base;
18 unsigned int port;
19 unsigned int irq;
Okash Khawajaff59f2a2016-03-10 20:21:35 +000020 upf_t flags; /* unused */
Jiri Slaby3ee00172012-03-05 14:52:11 +010021};
22
William Hubbsc6e3fd22010-10-07 13:20:02 -050023/* countdown values for serial timeouts in us */
24#define SPK_SERIAL_TIMEOUT 100000
25/* countdown values transmitter/dsr timeouts in us */
26#define SPK_XMITR_TIMEOUT 100000
27/* countdown values cts timeouts in us */
28#define SPK_CTS_TIMEOUT 100000
29/* check ttyS0 ... ttyS3 */
30#define SPK_LO_TTY 0
31#define SPK_HI_TTY 3
32/* # of timeouts permitted before disable */
33#define NUM_DISABLE_TIMEOUTS 3
34/* buffer timeout in ms */
35#define SPK_TIMEOUT 100
36#define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)
37
Shirish Gajera63b8ebe2015-03-28 13:21:39 -070038#define spk_serial_tx_busy() \
39 ((inb(speakup_info.port_tts + UART_LSR) & BOTH_EMPTY) != BOTH_EMPTY)
William Hubbsc6e3fd22010-10-07 13:20:02 -050040
William Hubbsc6e3fd22010-10-07 13:20:02 -050041#endif