File indexing completed on 2025-05-11 08:23:53
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef _BSPUART_H
0010 #define _BSPUART_H
0011
0012 #include <bsp/irq.h>
0013
0014 #include <sys/ioctl.h>
0015 #include <rtems/libio.h>
0016
0017 void BSP_uart_init(int uart, int baud, int hwFlow);
0018 void BSP_uart_set_baud(int uart, int baud);
0019 void BSP_uart_intr_ctrl(int uart, int cmd);
0020 void BSP_uart_throttle(int uart);
0021 void BSP_uart_unthrottle(int uart);
0022 int BSP_uart_polled_status(int uart);
0023 void BSP_uart_polled_write(int uart, int val);
0024 int BSP_uart_polled_read(int uart);
0025 void BSP_uart_termios_set(int uart, void *ttyp);
0026 ssize_t BSP_uart_termios_write_com(int minor, const char *buf, size_t len);
0027 int BSP_uart_termios_read_com (int minor);
0028 void BSP_uart_termios_isr_com1(void *unused);
0029 void BSP_uart_termios_isr_com2(void *unused);
0030 void BSP_uart_dbgisr_com1(void);
0031 void BSP_uart_dbgisr_com2(void);
0032 int BSP_uart_install_isr(int uart, rtems_irq_hdl handler);
0033 int BSP_uart_remove_isr(int uart, rtems_irq_hdl handler);
0034 ssize_t BSP_uart_termios_write_polled(int minor, const char *buf, size_t len);
0035 int BSP_uart_get_break_cb(int uart, rtems_libio_ioctl_args_t *arg);
0036 int BSP_uart_set_break_cb(int uart, rtems_libio_ioctl_args_t *arg);
0037
0038 extern unsigned BSP_poll_char_via_serial(void);
0039 extern void BSP_output_char_via_serial(const char val);
0040 extern int BSPConsolePort;
0041 extern int BSPBaseBaud;
0042
0043
0044
0045
0046
0047
0048 typedef void (*BSP_UartBreakCbProc)(
0049 int uartMinor,
0050 unsigned uartRBRLSRStatus,
0051 void *termiosPrivatePtr,
0052 void *private
0053 );
0054
0055 typedef struct BSP_UartBreakCbRec_ {
0056 BSP_UartBreakCbProc handler;
0057 void *private;
0058 } BSP_UartBreakCbRec, *BSP_UartBreakCb;
0059
0060 #define BIOCGETBREAKCB _IOR('b',1,sizeof(BSP_UartBreakCbRec))
0061 #define BIOCSETBREAKCB _IOW('b',2,sizeof(BSP_UartBreakCbRec))
0062
0063
0064
0065
0066
0067
0068 #define BSP_UART_INTR_CTRL_DISABLE (0)
0069 #define BSP_UART_INTR_CTRL_GDB (0xaa)
0070 #define BSP_UART_INTR_CTRL_ENABLE (0xbb)
0071 #define BSP_UART_INTR_CTRL_TERMIOS (0xcc)
0072
0073
0074 #define BSP_UART_STATUS_ERROR (-1)
0075 #define BSP_UART_STATUS_NOCHAR (0)
0076 #define BSP_UART_STATUS_CHAR (1)
0077 #define BSP_UART_STATUS_BREAK (2)
0078
0079
0080 #define BSP_UART_COM1 (0)
0081 #define BSP_UART_COM2 (1)
0082
0083
0084
0085
0086
0087
0088 #define RBR (0)
0089 #define THR (0)
0090 #define IER (1)
0091
0092
0093 #define IIR (2)
0094 #define FCR (2)
0095 #define LCR (3)
0096 #define MCR (4)
0097 #define LSR (5)
0098 #define MSR (6)
0099 #define SCR (7)
0100
0101
0102 #define DLL (0)
0103 #define DLM (1)
0104 #define AFR (2)
0105
0106
0107
0108
0109 #define MODEM_STATUS 0
0110 #define NO_MORE_INTR 1
0111 #define TRANSMITTER_HODING_REGISTER_EMPTY 2
0112 #define RECEIVER_DATA_AVAIL 4
0113 #define RECEIVER_ERROR 6
0114 #define CHARACTER_TIMEOUT_INDICATION 12
0115
0116
0117
0118
0119 #define RECEIVE_ENABLE 0x1
0120 #define TRANSMIT_ENABLE 0x2
0121 #define RECEIVER_LINE_ST_ENABLE 0x4
0122 #define MODEM_ENABLE 0x8
0123 #define INTERRUPT_DISABLE 0x0
0124
0125
0126
0127
0128 #define DR 0x01
0129 #define OE 0x02
0130 #define PE 0x04
0131 #define FE 0x08
0132 #define BI 0x10
0133 #define THRE 0x20
0134 #define TEMT 0x40
0135 #define ERFIFO 0x80
0136
0137
0138
0139
0140 #define DTR 0x01
0141 #define RTS 0x02
0142 #define OUT_1 0x04
0143 #define OUT_2 0x08
0144 #define LB 0x10
0145
0146
0147
0148
0149 #define CHR_5_BITS 0
0150 #define CHR_6_BITS 1
0151 #define CHR_7_BITS 2
0152 #define CHR_8_BITS 3
0153
0154 #define WL 0x03
0155 #define STB 0x04
0156 #define PEN 0x08
0157 #define EPS 0x10
0158 #define SP 0x20
0159 #define BCB 0x40
0160 #define DLAB 0x80
0161
0162
0163
0164
0165 #define DCTS 0x01
0166 #define DDSR 0x02
0167 #define TERI 0x04
0168 #define DDCD 0x08
0169 #define CTS 0x10
0170 #define DSR 0x20
0171 #define RI 0x40
0172 #define DCD 0x80
0173
0174
0175
0176
0177
0178 #define FIFO_CTRL 0x01
0179 #define FIFO_EN 0x01
0180 #define XMIT_RESET 0x02
0181 #define RCV_RESET 0x04
0182 #define FCR3 0x08
0183
0184 #define RECEIVE_FIFO_TRIGGER1 0x00
0185 #define RECEIVE_FIFO_TRIGGER4 0x40
0186 #define RECEIVE_FIFO_TRIGGER8 0x80
0187 #define RECEIVE_FIFO_TRIGGER12 0xc0
0188 #define TRIG_LEVEL 0xc0
0189
0190 #endif