Files
retrobsd/sys/include/uart.h
Serge Vakulenko d1f1e614f0 Kernel sources reformated with 4 space indent, no tabs.
Unused file include/trace.h deleted.
2015-06-23 19:00:24 -07:00

66 lines
1.6 KiB
C

#ifndef _UART_H
#define _UART_H
#include "tty.h"
#define NUART 6
#define UART_MAJOR 12
#ifdef KERNEL
#include "conf.h"
struct uart_irq {
int er;
int rx;
int tx;
};
extern const struct uart_irq uirq[NUART];
/*
* PIC32 UART registers.
*/
struct uartreg {
volatile unsigned mode; /* Mode */
volatile unsigned modeclr;
volatile unsigned modeset;
volatile unsigned modeinv;
volatile unsigned sta; /* Status and control */
volatile unsigned staclr;
volatile unsigned staset;
volatile unsigned stainv;
volatile unsigned txreg; /* Transmit */
volatile unsigned unused1;
volatile unsigned unused2;
volatile unsigned unused3;
volatile unsigned rxreg; /* Receive */
volatile unsigned unused4;
volatile unsigned unused5;
volatile unsigned unused6;
volatile unsigned brg; /* Baud rate */
volatile unsigned brgclr;
volatile unsigned brgset;
volatile unsigned brginv;
};
extern struct tty uartttys[NUART];
extern struct uartreg *uart[NUART];
extern void uartinit();
extern int uartopen (dev_t dev, int flag, int mode);
extern int uartclose (dev_t dev, int flag, int mode);
extern int uartread (dev_t dev, struct uio * uio, int flag);
extern int uartwrite (dev_t dev, struct uio *uio, int flag);
extern int uartselect (register dev_t dev, int rw);
extern int uartioctl (dev_t dev, register u_int cmd, caddr_t addr, int flag);
extern void uartintr(dev_t dev);
extern void uartstart (register struct tty *tp);
extern void uartputc(dev_t dev, char c);
extern char uartgetc(dev_t dev);
extern const struct devspec uartdevs[];
extern unsigned int uart_major;
#endif
#endif