00001 #ifndef _DEV_TLC16C550_H_
00002 #define _DEV_TLC16C550_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065 #include <sys/device.h>
00066 #include <dev/ace.h>
00067
00077
00078 #define ACE_MF_RTSSENSE 0x00000001UL
00079 #define ACE_MF_CTSCONTROL 0x00000002UL
00080 #define ACE_MF_DTRSENSE 0x00000004UL
00081 #define ACE_MF_DSRCONTROL 0x00000008UL
00082 #define ACE_MF_DCDCONTROL 0x00000010UL
00084 #define ACE_MF_RTSCONTROL 0x00000020UL
00085 #define ACE_MF_CTSSENSE 0x00000040UL
00086 #define ACE_MF_DTRCONTROL 0x00000080UL
00087 #define ACE_MF_DSRSENSE 0x00000100UL
00088 #define ACE_MF_DCDSENSE 0x00000200UL
00090 #define ACE_MF_SENSEMASK 0x0345
00091 #define ACE_MF_CONTROLMASK 0x00BC
00093 #define ACE_MF_XONXOFF 0x00000400UL
00095 #define ACE_MF_HALFDUPLEX 0x00000800UL
00097 #define ACE_MF_LOCALECHO 0x00010000UL
00098 #define ACE_MF_COOKEDMODE 0x00020000UL
00100 #define ACE_MF_NOBUFFER 0x00100000UL
00101 #define ACE_MF_LINEBUFFER 0x00200000UL
00102 #define ACE_MF_BUFFERMASK 0x00300000UL
00105 #define ACE_SF_RTSOFF 0x00000001UL
00106 #define ACE_SF_CTSOFF 0x00000002UL
00107 #define ACE_SF_DTROFF 0x00000004UL
00108 #define ACE_SF_DSROFF 0x00000008UL
00109 #define ACE_SF_DCDOFF 0x00000010UL
00111 #define ACE_SF_TXDISABLED 0x00000040UL
00112 #define ACE_SF_RXDISABLED 0x00000080UL
00114 #define ACE_HS_DCERTSCTS 0x00000003UL
00115 #define ACE_HS_DCEFULL 0x0000001FUL
00117 #define ACE_HS_DTERTSCTS 0x00000060UL
00118 #define ACE_HS_DTEFULL 0x000003E0UL
00120 #define ACE_HS_XONXOFF 0x00000400UL
00122 #ifndef ACE_CLOCK
00123 #define ACE_CLOCK 14745600UL
00124 #endif
00125
00126 #define ACE_FIFO_SIZE 16
00127
00128
00129 #ifdef ACE_HDX_LINE
00130 #undef ACE_HDX_LINE
00131 #endif
00132 #ifdef ACE_HDX_USE_RTS
00133 #define ACE_HDX_LINE MCR_RTS_MSK
00134 #endif
00135 #ifdef ACE_HDX_USE_DTR
00136 #define ACE_HDX_LINE MCR_DTR_MSK
00137 #endif
00138 #ifdef ACE_HDX_LINE
00139 #ifdef ACE_HDX_LINE_FLIP
00140 #define ACE_HDX_RECEIVE(base) *(uint8_t *) ((base) + ACE_MCR_OFS) &= ~ACE_HDX_LINE
00141 #define ACE_HDX_TRANSMIT(base) *(uint8_t *) ((base) + ACE_MCR_OFS) |= ACE_HDX_LINE
00142 #define ACE_HDX_IS_TRANSMIT(base) (*(uint8_t *) ((base) + ACE_MCR_OFS) & ACE_HDX_LINE)
00143 #else
00144 #define ACE_HDX_RECEIVE(base) *(uint8_t *) ((base) + ACE_MCR_OFS) |= ACE_HDX_LINE
00145 #define ACE_HDX_TRANSMIT(base) *(uint8_t *) ((base) + ACE_MCR_OFS) &= ~ACE_HDX_LINE
00146 #define ACE_HDX_IS_TRANSMIT(base) (!(*(uint8_t *) ((base) + ACE_MCR_OFS) & ACE_HDX_LINE))
00147 #endif
00148 #endif
00149
00153 typedef struct _ACEDCB ACEDCB;
00154
00159 struct _ACEDCB {
00161 NUTDEVICE *dev_next;
00162
00165 uint32_t dcb_rtimeout;
00166
00169 uint32_t dcb_wtimeout;
00170
00175 HANDLE dcb_tx_rdy;
00176
00181 HANDLE dcb_rx_rdy;
00182
00185 uint32_t dcb_modeflags;
00186
00189 uint8_t dcb_rfifo;
00190
00193 uint8_t dcb_wfifo;
00194 #ifdef ACE_HDX_LINE
00195
00197 u_int hdxByteTime;
00198
00201 u_int hdxOcrTime;
00202 #endif
00203 };
00204
00207 #endif