1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef _SPEAKUP_SERIAL_H 3*4882a593Smuzhiyun #define _SPEAKUP_SERIAL_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <linux/serial.h> /* for rs_table, serial constants */ 6*4882a593Smuzhiyun #include <linux/serial_reg.h> /* for more serial constants */ 7*4882a593Smuzhiyun #include <linux/serial_core.h> 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include "spk_priv.h" 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun /* 12*4882a593Smuzhiyun * this is cut&paste from 8250.h. Get rid of the structure, the definitions 13*4882a593Smuzhiyun * and this whole broken driver. 14*4882a593Smuzhiyun */ 15*4882a593Smuzhiyun struct old_serial_port { 16*4882a593Smuzhiyun unsigned int uart; /* unused */ 17*4882a593Smuzhiyun unsigned int baud_base; 18*4882a593Smuzhiyun unsigned int port; 19*4882a593Smuzhiyun unsigned int irq; 20*4882a593Smuzhiyun upf_t flags; /* unused */ 21*4882a593Smuzhiyun }; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun /* countdown values for serial timeouts in us */ 24*4882a593Smuzhiyun #define SPK_SERIAL_TIMEOUT SPK_SYNTH_TIMEOUT 25*4882a593Smuzhiyun /* countdown values transmitter/dsr timeouts in us */ 26*4882a593Smuzhiyun #define SPK_XMITR_TIMEOUT 100000 27*4882a593Smuzhiyun /* countdown values cts timeouts in us */ 28*4882a593Smuzhiyun #define SPK_CTS_TIMEOUT 100000 29*4882a593Smuzhiyun /* check ttyS0 ... ttyS3 */ 30*4882a593Smuzhiyun #define SPK_LO_TTY 0 31*4882a593Smuzhiyun #define SPK_HI_TTY 3 32*4882a593Smuzhiyun /* # of timeouts permitted before disable */ 33*4882a593Smuzhiyun #define NUM_DISABLE_TIMEOUTS 3 34*4882a593Smuzhiyun /* buffer timeout in ms */ 35*4882a593Smuzhiyun #define SPK_TIMEOUT 100 36*4882a593Smuzhiyun #define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE) 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun #define spk_serial_tx_busy() \ 39*4882a593Smuzhiyun ((inb(speakup_info.port_tts + UART_LSR) & BOTH_EMPTY) != BOTH_EMPTY) 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun #endif 42