jcs's openbsd hax
openbsd
1/* $OpenBSD: pluartvar.h,v 1.5 2022/06/27 13:03:32 anton Exp $ */
2/*
3 * Copyright (c) 2014 Patrick Wildt <patrick@blueri.se>
4 * Copyright (c) 2005 Dale Rahn <drahn@dalerahn.com>
5 *
6 * Permission to use, copy, modify, and distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */
18
19struct pluart_softc {
20 struct device sc_dev;
21 bus_space_tag_t sc_iot;
22 bus_space_handle_t sc_ioh;
23 struct soft_intrhand *sc_si;
24 void *sc_irq;
25 struct tty *sc_tty;
26 struct timeout sc_diag_tmo;
27 struct timeout sc_dtr_tmo;
28 int sc_overflows;
29 int sc_floods;
30 int sc_errors;
31 int sc_halt;
32 u_int16_t sc_ucr1;
33 u_int16_t sc_ucr2;
34 u_int16_t sc_ucr3;
35 u_int16_t sc_ucr4;
36 u_int8_t sc_hwflags;
37 u_int8_t sc_hwrev;
38#define COM_HW_NOIEN 0x01
39#define COM_HW_FIFO 0x02
40#define COM_HW_SIR 0x20
41#define COM_HW_CONSOLE 0x40
42#define COM_HW_SBSA 0x80
43 u_int8_t sc_swflags;
44#define COM_SW_SOFTCAR 0x01
45#define COM_SW_CLOCAL 0x02
46#define COM_SW_CRTSCTS 0x04
47#define COM_SW_MDMBUF 0x08
48#define COM_SW_PPS 0x10
49 int sc_fifolen;
50 int sc_imsc;
51 int sc_clkfreq;
52
53 u_int8_t sc_initialize;
54 u_int8_t sc_cua;
55 u_int16_t *sc_ibuf, *sc_ibufp, *sc_ibufhigh, *sc_ibufend;
56#define UART_IBUFSIZE 128
57#define UART_IHIGHWATER 100
58 u_int16_t sc_ibufs[2][UART_IBUFSIZE];
59
60 struct clk *sc_clk;
61};
62
63void pluart_attach_common(struct pluart_softc *, int);
64int pluart_intr(void *);
65
66int pluartcnattach(bus_space_tag_t iot, bus_addr_t iobase, int rate,
67 tcflag_t cflag);