blob: 6f8f86f161bb00bf0c0ceaf04b97442a10bdf5cb [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
William Hubbsc6e3fd22010-10-07 13:20:02 -05002#ifndef _SPEAKUP_SERIAL_H
3#define _SPEAKUP_SERIAL_H
4
Paul Gortmaker4b715982012-08-20 19:56:28 -04005#include <linux/serial.h> /* for rs_table, serial constants */
William Hubbsc6e3fd22010-10-07 13:20:02 -05006#include <linux/serial_reg.h> /* for more serial constants */
Okash Khawajaff59f2a2016-03-10 20:21:35 +00007#include <linux/serial_core.h>
William Hubbsc6e3fd22010-10-07 13:20:02 -05008
Okash Khawaja6b9ad1c2017-05-15 18:45:35 +01009#include "spk_priv.h"
10
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 */
Okash Khawaja6b9ad1c2017-05-15 18:45:35 +010024#define SPK_SERIAL_TIMEOUT SPK_SYNTH_TIMEOUT
William Hubbsc6e3fd22010-10-07 13:20:02 -050025/* 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