66 lines
1.6 KiB
C
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
|