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 #include <sys/device.h>
00063 #include <dev/ace.h>
00064
00074
00075 #define ACE_MF_RTSSENSE 0x00000001UL
00076 #define ACE_MF_CTSCONTROL 0x00000002UL
00077 #define ACE_MF_DTRSENSE 0x00000004UL
00078 #define ACE_MF_DSRCONTROL 0x00000008UL
00079 #define ACE_MF_DCDCONTROL 0x00000010UL
00081 #define ACE_MF_RTSCONTROL 0x00000020UL
00082 #define ACE_MF_CTSSENSE 0x00000040UL
00083 #define ACE_MF_DTRCONTROL 0x00000080UL
00084 #define ACE_MF_DSRSENSE 0x00000100UL
00085 #define ACE_MF_DCDSENSE 0x00000200UL
00087 #define ACE_MF_SENSEMASK 0x0345
00088 #define ACE_MF_CONTROLMASK 0x00BC
00090 #define ACE_MF_XONXOFF 0x00000400UL
00092 #define ACE_MF_HALFDUPLEX 0x00000800UL
00094 #define ACE_MF_LOCALECHO 0x00010000UL
00095 #define ACE_MF_COOKEDMODE 0x00020000UL
00097 #define ACE_MF_NOBUFFER 0x00100000UL
00098 #define ACE_MF_LINEBUFFER 0x00200000UL
00099 #define ACE_MF_BUFFERMASK 0x00300000UL
00102 #define ACE_SF_RTSOFF 0x00000001UL
00103 #define ACE_SF_CTSOFF 0x00000002UL
00104 #define ACE_SF_DTROFF 0x00000004UL
00105 #define ACE_SF_DSROFF 0x00000008UL
00106 #define ACE_SF_DCDOFF 0x00000010UL
00108 #define ACE_SF_TXDISABLED 0x00000040UL
00109 #define ACE_SF_RXDISABLED 0x00000080UL
00111 #define ACE_HS_DCERTSCTS 0x00000003UL
00112 #define ACE_HS_DCEFULL 0x0000001FUL
00114 #define ACE_HS_DTERTSCTS 0x00000060UL
00115 #define ACE_HS_DTEFULL 0x000003E0UL
00117 #define ACE_HS_XONXOFF 0x00000400UL
00119 #ifndef ACE_CLOCK
00120 #define ACE_CLOCK 14745600UL
00121 #endif
00122
00123 #define ACE_FIFO_SIZE 16
00124
00125
00126 #ifdef ACE_HDX_LINE
00127 #undef ACE_HDX_LINE
00128 #endif
00129 #ifdef ACE_HDX_USE_RTS
00130 #define ACE_HDX_LINE MCR_RTS_MSK
00131 #endif
00132 #ifdef ACE_HDX_USE_DTR
00133 #define ACE_HDX_LINE MCR_DTR_MSK
00134 #endif
00135 #ifdef ACE_HDX_LINE
00136 #ifdef ACE_HDX_LINE_FLIP
00137 #define ACE_HDX_RECEIVE(base) *(u_char *) ((base) + ACE_MCR_OFS) &= ~ACE_HDX_LINE
00138 #define ACE_HDX_TRANSMIT(base) *(u_char *) ((base) + ACE_MCR_OFS) |= ACE_HDX_LINE
00139 #define ACE_HDX_IS_TRANSMIT(base) (*(u_char *) ((base) + ACE_MCR_OFS) & ACE_HDX_LINE)
00140 #else
00141 #define ACE_HDX_RECEIVE(base) *(u_char *) ((base) + ACE_MCR_OFS) |= ACE_HDX_LINE
00142 #define ACE_HDX_TRANSMIT(base) *(u_char *) ((base) + ACE_MCR_OFS) &= ~ACE_HDX_LINE
00143 #define ACE_HDX_IS_TRANSMIT(base) (!(*(u_char *) ((base) + ACE_MCR_OFS) & ACE_HDX_LINE))
00144 #endif
00145 #endif
00146
00150 typedef struct _ACEDCB ACEDCB;
00151
00156 struct _ACEDCB {
00158 NUTDEVICE *dev_next;
00159
00162 u_long dcb_rtimeout;
00163
00166 u_long dcb_wtimeout;
00167
00172 HANDLE dcb_tx_rdy;
00173
00178 HANDLE dcb_rx_rdy;
00179
00182 u_long dcb_modeflags;
00183
00186 u_char dcb_rfifo;
00187
00190 u_char dcb_wfifo;
00191 #ifdef ACE_HDX_LINE
00192
00194 u_int hdxByteTime;
00195
00198 u_int hdxOcrTime;
00199 #endif
00200 };
00201
00204 #endif