Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at c9a28fa7b9ac19b676deefa0a171ce7df8755c08 441 lines 14 kB view raw
1#ifndef _MXSER_H 2#define _MXSER_H 3 4/* 5 * Semi-public control interfaces 6 */ 7 8/* 9 * MOXA ioctls 10 */ 11 12#define MOXA 0x400 13#define MOXA_GETDATACOUNT (MOXA + 23) 14#define MOXA_GET_CONF (MOXA + 35) 15#define MOXA_DIAGNOSE (MOXA + 50) 16#define MOXA_CHKPORTENABLE (MOXA + 60) 17#define MOXA_HighSpeedOn (MOXA + 61) 18#define MOXA_GET_MAJOR (MOXA + 63) 19#define MOXA_GET_CUMAJOR (MOXA + 64) 20#define MOXA_GETMSTATUS (MOXA + 65) 21#define MOXA_SET_OP_MODE (MOXA + 66) 22#define MOXA_GET_OP_MODE (MOXA + 67) 23 24#define RS232_MODE 0 25#define RS485_2WIRE_MODE 1 26#define RS422_MODE 2 27#define RS485_4WIRE_MODE 3 28#define OP_MODE_MASK 3 29// above add by Victor Yu. 01-05-2004 30 31#define TTY_THRESHOLD_THROTTLE 128 32 33#define HI_WATER 768 34 35// added by James. 03-11-2004. 36#define MOXA_SDS_GETICOUNTER (MOXA + 68) 37#define MOXA_SDS_RSTICOUNTER (MOXA + 69) 38// (above) added by James. 39 40#define MOXA_ASPP_OQUEUE (MOXA + 70) 41#define MOXA_ASPP_SETBAUD (MOXA + 71) 42#define MOXA_ASPP_GETBAUD (MOXA + 72) 43#define MOXA_ASPP_MON (MOXA + 73) 44#define MOXA_ASPP_LSTATUS (MOXA + 74) 45#define MOXA_ASPP_MON_EXT (MOXA + 75) 46#define MOXA_SET_BAUD_METHOD (MOXA + 76) 47 48 49/* --------------------------------------------------- */ 50 51#define NPPI_NOTIFY_PARITY 0x01 52#define NPPI_NOTIFY_FRAMING 0x02 53#define NPPI_NOTIFY_HW_OVERRUN 0x04 54#define NPPI_NOTIFY_SW_OVERRUN 0x08 55#define NPPI_NOTIFY_BREAK 0x10 56 57#define NPPI_NOTIFY_CTSHOLD 0x01 // Tx hold by CTS low 58#define NPPI_NOTIFY_DSRHOLD 0x02 // Tx hold by DSR low 59#define NPPI_NOTIFY_XOFFHOLD 0x08 // Tx hold by Xoff received 60#define NPPI_NOTIFY_XOFFXENT 0x10 // Xoff Sent 61 62//CheckIsMoxaMust return value 63#define MOXA_OTHER_UART 0x00 64#define MOXA_MUST_MU150_HWID 0x01 65#define MOXA_MUST_MU860_HWID 0x02 66 67// follow just for Moxa Must chip define. 68// 69// when LCR register (offset 0x03) write following value, 70// the Must chip will enter enchance mode. And write value 71// on EFR (offset 0x02) bit 6,7 to change bank. 72#define MOXA_MUST_ENTER_ENCHANCE 0xBF 73 74// when enhance mode enable, access on general bank register 75#define MOXA_MUST_GDL_REGISTER 0x07 76#define MOXA_MUST_GDL_MASK 0x7F 77#define MOXA_MUST_GDL_HAS_BAD_DATA 0x80 78 79#define MOXA_MUST_LSR_RERR 0x80 // error in receive FIFO 80// enchance register bank select and enchance mode setting register 81// when LCR register equal to 0xBF 82#define MOXA_MUST_EFR_REGISTER 0x02 83// enchance mode enable 84#define MOXA_MUST_EFR_EFRB_ENABLE 0x10 85// enchance reister bank set 0, 1, 2 86#define MOXA_MUST_EFR_BANK0 0x00 87#define MOXA_MUST_EFR_BANK1 0x40 88#define MOXA_MUST_EFR_BANK2 0x80 89#define MOXA_MUST_EFR_BANK3 0xC0 90#define MOXA_MUST_EFR_BANK_MASK 0xC0 91 92// set XON1 value register, when LCR=0xBF and change to bank0 93#define MOXA_MUST_XON1_REGISTER 0x04 94 95// set XON2 value register, when LCR=0xBF and change to bank0 96#define MOXA_MUST_XON2_REGISTER 0x05 97 98// set XOFF1 value register, when LCR=0xBF and change to bank0 99#define MOXA_MUST_XOFF1_REGISTER 0x06 100 101// set XOFF2 value register, when LCR=0xBF and change to bank0 102#define MOXA_MUST_XOFF2_REGISTER 0x07 103 104#define MOXA_MUST_RBRTL_REGISTER 0x04 105#define MOXA_MUST_RBRTH_REGISTER 0x05 106#define MOXA_MUST_RBRTI_REGISTER 0x06 107#define MOXA_MUST_THRTL_REGISTER 0x07 108#define MOXA_MUST_ENUM_REGISTER 0x04 109#define MOXA_MUST_HWID_REGISTER 0x05 110#define MOXA_MUST_ECR_REGISTER 0x06 111#define MOXA_MUST_CSR_REGISTER 0x07 112 113// good data mode enable 114#define MOXA_MUST_FCR_GDA_MODE_ENABLE 0x20 115// only good data put into RxFIFO 116#define MOXA_MUST_FCR_GDA_ONLY_ENABLE 0x10 117 118// enable CTS interrupt 119#define MOXA_MUST_IER_ECTSI 0x80 120// enable RTS interrupt 121#define MOXA_MUST_IER_ERTSI 0x40 122// enable Xon/Xoff interrupt 123#define MOXA_MUST_IER_XINT 0x20 124// enable GDA interrupt 125#define MOXA_MUST_IER_EGDAI 0x10 126 127#define MOXA_MUST_RECV_ISR (UART_IER_RDI | MOXA_MUST_IER_EGDAI) 128 129// GDA interrupt pending 130#define MOXA_MUST_IIR_GDA 0x1C 131#define MOXA_MUST_IIR_RDA 0x04 132#define MOXA_MUST_IIR_RTO 0x0C 133#define MOXA_MUST_IIR_LSR 0x06 134 135// recieved Xon/Xoff or specical interrupt pending 136#define MOXA_MUST_IIR_XSC 0x10 137 138// RTS/CTS change state interrupt pending 139#define MOXA_MUST_IIR_RTSCTS 0x20 140#define MOXA_MUST_IIR_MASK 0x3E 141 142#define MOXA_MUST_MCR_XON_FLAG 0x40 143#define MOXA_MUST_MCR_XON_ANY 0x80 144#define MOXA_MUST_MCR_TX_XON 0x08 145 146 147// software flow control on chip mask value 148#define MOXA_MUST_EFR_SF_MASK 0x0F 149// send Xon1/Xoff1 150#define MOXA_MUST_EFR_SF_TX1 0x08 151// send Xon2/Xoff2 152#define MOXA_MUST_EFR_SF_TX2 0x04 153// send Xon1,Xon2/Xoff1,Xoff2 154#define MOXA_MUST_EFR_SF_TX12 0x0C 155// don't send Xon/Xoff 156#define MOXA_MUST_EFR_SF_TX_NO 0x00 157// Tx software flow control mask 158#define MOXA_MUST_EFR_SF_TX_MASK 0x0C 159// don't receive Xon/Xoff 160#define MOXA_MUST_EFR_SF_RX_NO 0x00 161// receive Xon1/Xoff1 162#define MOXA_MUST_EFR_SF_RX1 0x02 163// receive Xon2/Xoff2 164#define MOXA_MUST_EFR_SF_RX2 0x01 165// receive Xon1,Xon2/Xoff1,Xoff2 166#define MOXA_MUST_EFR_SF_RX12 0x03 167// Rx software flow control mask 168#define MOXA_MUST_EFR_SF_RX_MASK 0x03 169 170//#define MOXA_MUST_MIN_XOFFLIMIT 66 171//#define MOXA_MUST_MIN_XONLIMIT 20 172//#define ID1_RX_TRIG 120 173 174 175#define CHECK_MOXA_MUST_XOFFLIMIT(info) { \ 176 if ( (info)->IsMoxaMustChipFlag && \ 177 (info)->HandFlow.XoffLimit < MOXA_MUST_MIN_XOFFLIMIT ) { \ 178 (info)->HandFlow.XoffLimit = MOXA_MUST_MIN_XOFFLIMIT; \ 179 (info)->HandFlow.XonLimit = MOXA_MUST_MIN_XONLIMIT; \ 180 } \ 181} 182 183#define ENABLE_MOXA_MUST_ENCHANCE_MODE(baseio) { \ 184 u8 __oldlcr, __efr; \ 185 __oldlcr = inb((baseio)+UART_LCR); \ 186 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 187 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 188 __efr |= MOXA_MUST_EFR_EFRB_ENABLE; \ 189 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 190 outb(__oldlcr, (baseio)+UART_LCR); \ 191} 192 193#define DISABLE_MOXA_MUST_ENCHANCE_MODE(baseio) { \ 194 u8 __oldlcr, __efr; \ 195 __oldlcr = inb((baseio)+UART_LCR); \ 196 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 197 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 198 __efr &= ~MOXA_MUST_EFR_EFRB_ENABLE; \ 199 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 200 outb(__oldlcr, (baseio)+UART_LCR); \ 201} 202 203#define SET_MOXA_MUST_XON1_VALUE(baseio, Value) { \ 204 u8 __oldlcr, __efr; \ 205 __oldlcr = inb((baseio)+UART_LCR); \ 206 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 207 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 208 __efr &= ~MOXA_MUST_EFR_BANK_MASK; \ 209 __efr |= MOXA_MUST_EFR_BANK0; \ 210 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 211 outb((u8)(Value), (baseio)+MOXA_MUST_XON1_REGISTER); \ 212 outb(__oldlcr, (baseio)+UART_LCR); \ 213} 214 215#define SET_MOXA_MUST_XON2_VALUE(baseio, Value) { \ 216 u8 __oldlcr, __efr; \ 217 __oldlcr = inb((baseio)+UART_LCR); \ 218 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 219 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 220 __efr &= ~MOXA_MUST_EFR_BANK_MASK; \ 221 __efr |= MOXA_MUST_EFR_BANK0; \ 222 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 223 outb((u8)(Value), (baseio)+MOXA_MUST_XON2_REGISTER); \ 224 outb(__oldlcr, (baseio)+UART_LCR); \ 225} 226 227#define SET_MOXA_MUST_XOFF1_VALUE(baseio, Value) { \ 228 u8 __oldlcr, __efr; \ 229 __oldlcr = inb((baseio)+UART_LCR); \ 230 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 231 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 232 __efr &= ~MOXA_MUST_EFR_BANK_MASK; \ 233 __efr |= MOXA_MUST_EFR_BANK0; \ 234 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 235 outb((u8)(Value), (baseio)+MOXA_MUST_XOFF1_REGISTER); \ 236 outb(__oldlcr, (baseio)+UART_LCR); \ 237} 238 239#define SET_MOXA_MUST_XOFF2_VALUE(baseio, Value) { \ 240 u8 __oldlcr, __efr; \ 241 __oldlcr = inb((baseio)+UART_LCR); \ 242 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 243 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 244 __efr &= ~MOXA_MUST_EFR_BANK_MASK; \ 245 __efr |= MOXA_MUST_EFR_BANK0; \ 246 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 247 outb((u8)(Value), (baseio)+MOXA_MUST_XOFF2_REGISTER); \ 248 outb(__oldlcr, (baseio)+UART_LCR); \ 249} 250 251#define SET_MOXA_MUST_RBRTL_VALUE(baseio, Value) { \ 252 u8 __oldlcr, __efr; \ 253 __oldlcr = inb((baseio)+UART_LCR); \ 254 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 255 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 256 __efr &= ~MOXA_MUST_EFR_BANK_MASK; \ 257 __efr |= MOXA_MUST_EFR_BANK1; \ 258 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 259 outb((u8)(Value), (baseio)+MOXA_MUST_RBRTL_REGISTER); \ 260 outb(__oldlcr, (baseio)+UART_LCR); \ 261} 262 263#define SET_MOXA_MUST_RBRTH_VALUE(baseio, Value) { \ 264 u8 __oldlcr, __efr; \ 265 __oldlcr = inb((baseio)+UART_LCR); \ 266 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 267 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 268 __efr &= ~MOXA_MUST_EFR_BANK_MASK; \ 269 __efr |= MOXA_MUST_EFR_BANK1; \ 270 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 271 outb((u8)(Value), (baseio)+MOXA_MUST_RBRTH_REGISTER); \ 272 outb(__oldlcr, (baseio)+UART_LCR); \ 273} 274 275#define SET_MOXA_MUST_RBRTI_VALUE(baseio, Value) { \ 276 u8 __oldlcr, __efr; \ 277 __oldlcr = inb((baseio)+UART_LCR); \ 278 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 279 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 280 __efr &= ~MOXA_MUST_EFR_BANK_MASK; \ 281 __efr |= MOXA_MUST_EFR_BANK1; \ 282 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 283 outb((u8)(Value), (baseio)+MOXA_MUST_RBRTI_REGISTER); \ 284 outb(__oldlcr, (baseio)+UART_LCR); \ 285} 286 287#define SET_MOXA_MUST_THRTL_VALUE(baseio, Value) { \ 288 u8 __oldlcr, __efr; \ 289 __oldlcr = inb((baseio)+UART_LCR); \ 290 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 291 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 292 __efr &= ~MOXA_MUST_EFR_BANK_MASK; \ 293 __efr |= MOXA_MUST_EFR_BANK1; \ 294 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 295 outb((u8)(Value), (baseio)+MOXA_MUST_THRTL_REGISTER); \ 296 outb(__oldlcr, (baseio)+UART_LCR); \ 297} 298 299//#define MOXA_MUST_RBRL_VALUE 4 300#define SET_MOXA_MUST_FIFO_VALUE(info) { \ 301 u8 __oldlcr, __efr; \ 302 __oldlcr = inb((info)->base+UART_LCR); \ 303 outb(MOXA_MUST_ENTER_ENCHANCE, (info)->base+UART_LCR); \ 304 __efr = inb((info)->base+MOXA_MUST_EFR_REGISTER); \ 305 __efr &= ~MOXA_MUST_EFR_BANK_MASK; \ 306 __efr |= MOXA_MUST_EFR_BANK1; \ 307 outb(__efr, (info)->base+MOXA_MUST_EFR_REGISTER); \ 308 outb((u8)((info)->rx_high_water), (info)->base+MOXA_MUST_RBRTH_REGISTER); \ 309 outb((u8)((info)->rx_trigger), (info)->base+MOXA_MUST_RBRTI_REGISTER); \ 310 outb((u8)((info)->rx_low_water), (info)->base+MOXA_MUST_RBRTL_REGISTER); \ 311 outb(__oldlcr, (info)->base+UART_LCR); \ 312} 313 314 315 316#define SET_MOXA_MUST_ENUM_VALUE(baseio, Value) { \ 317 u8 __oldlcr, __efr; \ 318 __oldlcr = inb((baseio)+UART_LCR); \ 319 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 320 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 321 __efr &= ~MOXA_MUST_EFR_BANK_MASK; \ 322 __efr |= MOXA_MUST_EFR_BANK2; \ 323 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 324 outb((u8)(Value), (baseio)+MOXA_MUST_ENUM_REGISTER); \ 325 outb(__oldlcr, (baseio)+UART_LCR); \ 326} 327 328#define GET_MOXA_MUST_HARDWARE_ID(baseio, pId) { \ 329 u8 __oldlcr, __efr; \ 330 __oldlcr = inb((baseio)+UART_LCR); \ 331 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 332 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 333 __efr &= ~MOXA_MUST_EFR_BANK_MASK; \ 334 __efr |= MOXA_MUST_EFR_BANK2; \ 335 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 336 *pId = inb((baseio)+MOXA_MUST_HWID_REGISTER); \ 337 outb(__oldlcr, (baseio)+UART_LCR); \ 338} 339 340#define SET_MOXA_MUST_NO_SOFTWARE_FLOW_CONTROL(baseio) { \ 341 u8 __oldlcr, __efr; \ 342 __oldlcr = inb((baseio)+UART_LCR); \ 343 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 344 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 345 __efr &= ~MOXA_MUST_EFR_SF_MASK; \ 346 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 347 outb(__oldlcr, (baseio)+UART_LCR); \ 348} 349 350#define SET_MOXA_MUST_JUST_TX_SOFTWARE_FLOW_CONTROL(baseio) { \ 351 u8 __oldlcr, __efr; \ 352 __oldlcr = inb((baseio)+UART_LCR); \ 353 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 354 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 355 __efr &= ~MOXA_MUST_EFR_SF_MASK; \ 356 __efr |= MOXA_MUST_EFR_SF_TX1; \ 357 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 358 outb(__oldlcr, (baseio)+UART_LCR); \ 359} 360 361#define ENABLE_MOXA_MUST_TX_SOFTWARE_FLOW_CONTROL(baseio) { \ 362 u8 __oldlcr, __efr; \ 363 __oldlcr = inb((baseio)+UART_LCR); \ 364 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 365 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 366 __efr &= ~MOXA_MUST_EFR_SF_TX_MASK; \ 367 __efr |= MOXA_MUST_EFR_SF_TX1; \ 368 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 369 outb(__oldlcr, (baseio)+UART_LCR); \ 370} 371 372#define DISABLE_MOXA_MUST_TX_SOFTWARE_FLOW_CONTROL(baseio) { \ 373 u8 __oldlcr, __efr; \ 374 __oldlcr = inb((baseio)+UART_LCR); \ 375 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 376 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 377 __efr &= ~MOXA_MUST_EFR_SF_TX_MASK; \ 378 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 379 outb(__oldlcr, (baseio)+UART_LCR); \ 380} 381 382#define SET_MOXA_MUST_JUST_RX_SOFTWARE_FLOW_CONTROL(baseio) { \ 383 u8 __oldlcr, __efr; \ 384 __oldlcr = inb((baseio)+UART_LCR); \ 385 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 386 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 387 __efr &= ~MOXA_MUST_EFR_SF_MASK; \ 388 __efr |= MOXA_MUST_EFR_SF_RX1; \ 389 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 390 outb(__oldlcr, (baseio)+UART_LCR); \ 391} 392 393#define ENABLE_MOXA_MUST_RX_SOFTWARE_FLOW_CONTROL(baseio) { \ 394 u8 __oldlcr, __efr; \ 395 __oldlcr = inb((baseio)+UART_LCR); \ 396 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 397 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 398 __efr &= ~MOXA_MUST_EFR_SF_RX_MASK; \ 399 __efr |= MOXA_MUST_EFR_SF_RX1; \ 400 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 401 outb(__oldlcr, (baseio)+UART_LCR); \ 402} 403 404#define DISABLE_MOXA_MUST_RX_SOFTWARE_FLOW_CONTROL(baseio) { \ 405 u8 __oldlcr, __efr; \ 406 __oldlcr = inb((baseio)+UART_LCR); \ 407 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 408 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 409 __efr &= ~MOXA_MUST_EFR_SF_RX_MASK; \ 410 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 411 outb(__oldlcr, (baseio)+UART_LCR); \ 412} 413 414#define ENABLE_MOXA_MUST_TX_RX_SOFTWARE_FLOW_CONTROL(baseio) { \ 415 u8 __oldlcr, __efr; \ 416 __oldlcr = inb((baseio)+UART_LCR); \ 417 outb(MOXA_MUST_ENTER_ENCHANCE, (baseio)+UART_LCR); \ 418 __efr = inb((baseio)+MOXA_MUST_EFR_REGISTER); \ 419 __efr &= ~MOXA_MUST_EFR_SF_MASK; \ 420 __efr |= (MOXA_MUST_EFR_SF_RX1|MOXA_MUST_EFR_SF_TX1); \ 421 outb(__efr, (baseio)+MOXA_MUST_EFR_REGISTER); \ 422 outb(__oldlcr, (baseio)+UART_LCR); \ 423} 424 425#define ENABLE_MOXA_MUST_XON_ANY_FLOW_CONTROL(baseio) { \ 426 u8 __oldmcr; \ 427 __oldmcr = inb((baseio)+UART_MCR); \ 428 __oldmcr |= MOXA_MUST_MCR_XON_ANY; \ 429 outb(__oldmcr, (baseio)+UART_MCR); \ 430} 431 432#define DISABLE_MOXA_MUST_XON_ANY_FLOW_CONTROL(baseio) { \ 433 u8 __oldmcr; \ 434 __oldmcr = inb((baseio)+UART_MCR); \ 435 __oldmcr &= ~MOXA_MUST_MCR_XON_ANY; \ 436 outb(__oldmcr, (baseio)+UART_MCR); \ 437} 438 439#define READ_MOXA_MUST_GDL(baseio) inb((baseio)+MOXA_MUST_GDL_REGISTER) 440 441#endif