Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
688fd9b6
Commit
688fd9b6
authored
Oct 19, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://bk.arm.linux.org.uk/linux-2.6-serial
into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents
77e305c5
40303111
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
146 additions
and
133 deletions
+146
-133
include/linux/serial_reg.h
include/linux/serial_reg.h
+146
-133
No files found.
include/linux/serial_reg.h
View file @
688fd9b6
...
...
@@ -14,47 +14,63 @@
#ifndef _LINUX_SERIAL_REG_H
#define _LINUX_SERIAL_REG_H
#define UART_RX 0
/* In: Receive buffer (DLAB=0) */
#define UART_TX 0
/* Out: Transmit buffer (DLAB=0) */
#define UART_DLL 0
/* Out: Divisor Latch Low (DLAB=1) */
#define UART_TRG 0
/* (LCR=BF) FCTR bit 7 selects Rx or Tx
* In: Fifo count
* Out: Fifo custom trigger levels
* XR16C85x only */
/*
* DLAB=0
*/
#define UART_RX 0
/* In: Receive buffer */
#define UART_TX 0
/* Out: Transmit buffer */
#define UART_DLM 1
/* Out: Divisor Latch High (DLAB=1) */
#define UART_IER 1
/* Out: Interrupt Enable Register */
#define UART_FCTR 1
/* (LCR=BF) Feature Control Register
* XR16C85x only */
#define UART_IER_MSI 0x08
/* Enable Modem status interrupt */
#define UART_IER_RLSI 0x04
/* Enable receiver line status interrupt */
#define UART_IER_THRI 0x02
/* Enable Transmitter holding register int. */
#define UART_IER_RDI 0x01
/* Enable receiver data interrupt */
/*
* Sleep mode for ST16650 and TI16750. For the ST16650, EFR[4]=1
*/
#define UART_IERX_SLEEP 0x10
/* Enable sleep mode */
#define UART_IIR 2
/* In: Interrupt ID Register */
#define UART_FCR 2
/* Out: FIFO Control Register */
#define UART_EFR 2
/* I/O: Extended Features Register */
/* (DLAB=1, 16C660 only) */
#define UART_IIR_NO_INT 0x01
/* No interrupts pending */
#define UART_IIR_ID 0x06
/* Mask for the interrupt ID */
#define UART_IIR_MSI 0x00
/* Modem status interrupt */
#define UART_IIR_THRI 0x02
/* Transmitter holding register empty */
#define UART_IIR_RDI 0x04
/* Receiver data interrupt */
#define UART_IIR_RLSI 0x06
/* Receiver line status interrupt */
#define UART_LCR 3
/* Out: Line Control Register */
#define UART_MCR 4
/* Out: Modem Control Register */
#define UART_LSR 5
/* In: Line Status Register */
#define UART_MSR 6
/* In: Modem Status Register */
#define UART_SCR 7
/* I/O: Scratch Register */
#define UART_EMSR 7
/* (LCR=BF) Extended Mode Select Register
* FCTR bit 6 selects SCR or EMSR
* XR16c85x only */
/*
* These are the definitions for the FIFO Control Register
* (16650 only)
*/
#define UART_FCR 2
/* Out: FIFO Control Register */
#define UART_FCR_ENABLE_FIFO 0x01
/* Enable the FIFO */
#define UART_FCR_CLEAR_RCVR 0x02
/* Clear the RCVR FIFO */
#define UART_FCR_CLEAR_XMIT 0x04
/* Clear the XMIT FIFO */
#define UART_FCR_DMA_SELECT 0x08
/* For DMA applications */
/*
* Note: The FIFO trigger levels are chip specific:
* RX:76 = 00 01 10 11 TX:54 = 00 01 10 11
* PC16550D: 1 4 8 14 xx xx xx xx
* TI16C550A: 1 4 8 14 xx xx xx xx
* TI16C550C: 1 4 8 14 xx xx xx xx
* ST16C550: 1 4 8 14 xx xx xx xx
* ST16C650: 8 16 24 28 16 8 24 30 PORT_16650V2
* NS16C552: 1 4 8 14 xx xx xx xx
* ST16C654: 8 16 56 60 8 16 32 56 PORT_16654
* TI16C750: 1 16 32 56 xx xx xx xx PORT_16750
* TI16C752: 8 16 56 60 8 16 32 56
*/
#define UART_FCR_R_TRIG_00 0x00
#define UART_FCR_R_TRIG_01 0x40
#define UART_FCR_R_TRIG_10 0x80
#define UART_FCR_R_TRIG_11 0xc0
#define UART_FCR_T_TRIG_00 0x00
#define UART_FCR_T_TRIG_01 0x10
#define UART_FCR_T_TRIG_10 0x20
#define UART_FCR_T_TRIG_11 0x30
#define UART_FCR_TRIGGER_MASK 0xC0
/* Mask for the FIFO trigger range */
#define UART_FCR_TRIGGER_1 0x00
/* Mask for trigger set at 1 */
#define UART_FCR_TRIGGER_4 0x40
/* Mask for trigger set at 4 */
#define UART_FCR_TRIGGER_8 0x80
/* Mask for trigger set at 8 */
#define UART_FCR_TRIGGER_14 0xC0
/* Mask for trigger set at 14 */
/* 16650
re
definitions */
/* 16650 definitions */
#define UART_FCR6_R_TRIGGER_8 0x00
/* Mask for receive trigger set at 1 */
#define UART_FCR6_R_TRIGGER_16 0x40
/* Mask for receive trigger set at 4 */
#define UART_FCR6_R_TRIGGER_24 0x80
/* Mask for receive trigger set at 8 */
...
...
@@ -63,83 +79,129 @@
#define UART_FCR6_T_TRIGGER_8 0x10
/* Mask for transmit trigger set at 8 */
#define UART_FCR6_T_TRIGGER_24 0x20
/* Mask for transmit trigger set at 24 */
#define UART_FCR6_T_TRIGGER_30 0x30
/* Mask for transmit trigger set at 30 */
/* TI 16750 definitions */
#define UART_FCR7_64BYTE 0x20
/* Go into 64 byte mode */
#define UART_FCR7_64BYTE 0x20
/* Go into 64 byte mode (TI16C750) */
#define UART_LCR 3
/* Out: Line Control Register */
/*
* These are the definitions for the Line Control Register
*
* Note: if the word length is 5 bits (UART_LCR_WLEN5), then setting
* UART_LCR_STOP will select 1.5 stop bits, not 2 stop bits.
*/
#define UART_LCR_DLAB 0x80
/* Divisor latch access bit */
#define UART_LCR_SBC 0x40
/* Set break control */
#define UART_LCR_SPAR 0x20
/* Stick parity (?) */
#define UART_LCR_EPAR 0x10
/* Even parity select */
#define UART_LCR_PARITY 0x08
/* Parity Enable */
#define UART_LCR_STOP 0x04
/* Stop bits: 0=1 stop bit, 1= 2 stop bits */
#define UART_LCR_WLEN5 0x00
/* Wordlength: 5 bits */
#define UART_LCR_WLEN6 0x01
/* Wordlength: 6 bits */
#define UART_LCR_WLEN7 0x02
/* Wordlength: 7 bits */
#define UART_LCR_WLEN8 0x03
/* Wordlength: 8 bits */
#define UART_LCR_DLAB 0x80
/* Divisor latch access bit */
#define UART_LCR_SBC 0x40
/* Set break control */
#define UART_LCR_SPAR 0x20
/* Stick parity (?) */
#define UART_LCR_EPAR 0x10
/* Even parity select */
#define UART_LCR_PARITY 0x08
/* Parity Enable */
#define UART_LCR_STOP 0x04
/* Stop bits: 0=1 bit, 1=2 bits */
#define UART_LCR_WLEN5 0x00
/* Wordlength: 5 bits */
#define UART_LCR_WLEN6 0x01
/* Wordlength: 6 bits */
#define UART_LCR_WLEN7 0x02
/* Wordlength: 7 bits */
#define UART_LCR_WLEN8 0x03
/* Wordlength: 8 bits */
#define UART_MCR 4
/* Out: Modem Control Register */
#define UART_MCR_CLKSEL 0x80
/* Divide clock by 4 (TI16C752, EFR[4]=1) */
#define UART_MCR_TCRTLR 0x40
/* Access TCR/TLR (TI16C752, EFR[4]=1) */
#define UART_MCR_XONANY 0x20
/* Enable Xon Any (TI16C752, EFR[4]=1) */
#define UART_MCR_AFE 0x20
/* Enable auto-RTS/CTS (TI16C550C/TI16C750) */
#define UART_MCR_LOOP 0x10
/* Enable loopback test mode */
#define UART_MCR_OUT2 0x08
/* Out2 complement */
#define UART_MCR_OUT1 0x04
/* Out1 complement */
#define UART_MCR_RTS 0x02
/* RTS complement */
#define UART_MCR_DTR 0x01
/* DTR complement */
#define UART_LSR 5
/* In: Line Status Register */
#define UART_LSR_TEMT 0x40
/* Transmitter empty */
#define UART_LSR_THRE 0x20
/* Transmit-hold-register empty */
#define UART_LSR_BI 0x10
/* Break interrupt indicator */
#define UART_LSR_FE 0x08
/* Frame error indicator */
#define UART_LSR_PE 0x04
/* Parity error indicator */
#define UART_LSR_OE 0x02
/* Overrun error indicator */
#define UART_LSR_DR 0x01
/* Receiver data ready */
#define UART_MSR 6
/* In: Modem Status Register */
#define UART_MSR_DCD 0x80
/* Data Carrier Detect */
#define UART_MSR_RI 0x40
/* Ring Indicator */
#define UART_MSR_DSR 0x20
/* Data Set Ready */
#define UART_MSR_CTS 0x10
/* Clear to Send */
#define UART_MSR_DDCD 0x08
/* Delta DCD */
#define UART_MSR_TERI 0x04
/* Trailing edge ring indicator */
#define UART_MSR_DDSR 0x02
/* Delta DSR */
#define UART_MSR_DCTS 0x01
/* Delta CTS */
#define UART_MSR_ANY_DELTA 0x0F
/* Any of the delta bits! */
#define UART_SCR 7
/* I/O: Scratch Register */
/*
*
These are the definitions for the Line Status Register
*
DLAB=1
*/
#define UART_LSR_TEMT 0x40
/* Transmitter empty */
#define UART_LSR_THRE 0x20
/* Transmit-hold-register empty */
#define UART_LSR_BI 0x10
/* Break interrupt indicator */
#define UART_LSR_FE 0x08
/* Frame error indicator */
#define UART_LSR_PE 0x04
/* Parity error indicator */
#define UART_LSR_OE 0x02
/* Overrun error indicator */
#define UART_LSR_DR 0x01
/* Receiver data ready */
#define UART_DLL 0
/* Out: Divisor Latch Low */
#define UART_DLM 1
/* Out: Divisor Latch High */
/*
* These are the definitions for the Interrupt Identification Register
* LCR=0xBF (or DLAB=1 for 16C660)
*/
#define UART_EFR 2
/* I/O: Extended Features Register */
#define UART_EFR_CTS 0x80
/* CTS flow control */
#define UART_EFR_RTS 0x40
/* RTS flow control */
#define UART_EFR_SCD 0x20
/* Special character detect */
#define UART_EFR_ECB 0x10
/* Enhanced control bit */
/*
* the low four bits control software flow control
*/
#define UART_IIR_NO_INT 0x01
/* No interrupts pending */
#define UART_IIR_ID 0x06
/* Mask for the interrupt ID */
#define UART_IIR_MSI 0x00
/* Modem status interrupt */
#define UART_IIR_THRI 0x02
/* Transmitter holding register empty */
#define UART_IIR_RDI 0x04
/* Receiver data interrupt */
#define UART_IIR_RLSI 0x06
/* Receiver line status interrupt */
/*
*
These are the definitions for the Interrupt Enable Register
*
LCR=0xBF, TI16C752, ST16650, ST16650A, ST16654
*/
#define UART_IER_MSI 0x08
/* Enable Modem status interrupt */
#define UART_IER_RLSI 0x04
/* Enable receiver line status interrupt */
#define UART_IER_THRI 0x02
/* Enable Transmitter holding register int. */
#define UART_IER_RDI 0x01
/* Enable receiver data interrupt */
#define UART_XON1 4
/* I/O: Xon character 1 */
#define UART_XON2 5
/* I/O: Xon character 2 */
#define UART_XOFF1 6
/* I/O: Xoff character 1 */
#define UART_XOFF2 7
/* I/O: Xoff character 2 */
/*
* Sleep mode for ST16650 and TI16750.
* Note that for 16650, EFR-bit 4 must be selected as well.
* EFR[4]=1 MCR[6]=1, TI16C752
*/
#define UART_IERX_SLEEP 0x10
/* Enable sleep mode */
#define UART_TI752_TCR 6
/* I/O: transmission control register */
#define UART_TI752_TLR 7
/* I/O: trigger level register */
/*
*
These are the definitions for the Modem Control Register
*
LCR=0xBF, XR16C85x
*/
#define UART_MCR_AFE 0x20
/* Enable auto-RTS/CTS (TI16C750) */
#define UART_MCR_LOOP 0x10
/* Enable loopback test mode */
#define UART_MCR_OUT2 0x08
/* Out2 complement */
#define UART_MCR_OUT1 0x04
/* Out1 complement */
#define UART_MCR_RTS 0x02
/* RTS complement */
#define UART_MCR_DTR 0x01
/* DTR complement */
#define UART_TRG 0
/* FCTR bit 7 selects Rx or Tx
* In: Fifo count
* Out: Fifo custom trigger levels */
/*
* These are the definitions for the Programmable Trigger Register
*/
#define UART_TRG_1 0x01
#define UART_TRG_4 0x04
#define UART_TRG_8 0x08
#define UART_TRG_16 0x10
#define UART_TRG_32 0x20
#define UART_TRG_64 0x40
#define UART_TRG_96 0x60
#define UART_TRG_120 0x78
#define UART_TRG_128 0x80
#define UART_FCTR 1
/* Feature Control Register */
#define UART_FCTR_RTS_NODELAY 0x00
/* RTS flow control delay */
#define UART_FCTR_RTS_4DELAY 0x01
#define UART_FCTR_RTS_6DELAY 0x02
#define UART_FCTR_RTS_8DELAY 0x03
#define UART_FCTR_IRDA 0x04
/* IrDa data encode select */
#define UART_FCTR_TX_INT 0x08
/* Tx interrupt type select */
#define UART_FCTR_TRGA 0x00
/* Tx/Rx 550 trigger table select */
#define UART_FCTR_TRGB 0x10
/* Tx/Rx 650 trigger table select */
#define UART_FCTR_TRGC 0x20
/* Tx/Rx 654 trigger table select */
#define UART_FCTR_TRGD 0x30
/* Tx/Rx 850 programmable trigger select */
#define UART_FCTR_SCR_SWAP 0x40
/* Scratch pad register swap */
#define UART_FCTR_RX 0x00
/* Programmable trigger mode select */
#define UART_FCTR_TX 0x80
/* Programmable trigger mode select */
/*
*
These are the definitions for the Modem Status Register
*
LCR=0xBF, FCTR[6]=1
*/
#define UART_MSR_DCD 0x80
/* Data Carrier Detect */
#define UART_MSR_RI 0x40
/* Ring Indicator */
#define UART_MSR_DSR 0x20
/* Data Set Ready */
#define UART_MSR_CTS 0x10
/* Clear to Send */
#define UART_MSR_DDCD 0x08
/* Delta DCD */
#define UART_MSR_TERI 0x04
/* Trailing edge ring indicator */
#define UART_MSR_DDSR 0x02
/* Delta DSR */
#define UART_MSR_DCTS 0x01
/* Delta CTS */
#define UART_MSR_ANY_DELTA 0x0F
/* Any of the delta bits! */
#define UART_EMSR 7
/* Extended Mode Select Register */
#define UART_EMSR_FIFO_COUNT 0x01
/* Rx/Tx select */
#define UART_EMSR_ALT_COUNT 0x02
/* Alternating count select */
/*
* The Intel XScale on-chip UARTs define these bits
...
...
@@ -156,17 +218,8 @@
#define UART_FCR_PXAR16 0x80
/* receive FIFO treshold = 16 */
#define UART_FCR_PXAR32 0xc0
/* receive FIFO treshold = 32 */
/*
* These are the definitions for the Extended Features Register
* (StarTech 16C660 only, when DLAB=1)
*/
#define UART_EFR_CTS 0x80
/* CTS flow control */
#define UART_EFR_RTS 0x40
/* RTS flow control */
#define UART_EFR_SCD 0x20
/* Special character detect */
#define UART_EFR_ECB 0x10
/* Enhanced control bit */
/*
* the low four bits control software flow control
*/
/*
* These register definitions are for the 16C950
...
...
@@ -203,47 +256,7 @@
#define UART_ACR_ICRRD 0x40
/* ICR Read enable */
#define UART_ACR_ASREN 0x80
/* Additional status enable */
/*
* These are the definitions for the Feature Control Register
* (XR16C85x only, when LCR=bf; doubles with the Interrupt Enable
* Register, UART register #1)
*/
#define UART_FCTR_RTS_NODELAY 0x00
/* RTS flow control delay */
#define UART_FCTR_RTS_4DELAY 0x01
#define UART_FCTR_RTS_6DELAY 0x02
#define UART_FCTR_RTS_8DELAY 0x03
#define UART_FCTR_IRDA 0x04
/* IrDa data encode select */
#define UART_FCTR_TX_INT 0x08
/* Tx interrupt type select */
#define UART_FCTR_TRGA 0x00
/* Tx/Rx 550 trigger table select */
#define UART_FCTR_TRGB 0x10
/* Tx/Rx 650 trigger table select */
#define UART_FCTR_TRGC 0x20
/* Tx/Rx 654 trigger table select */
#define UART_FCTR_TRGD 0x30
/* Tx/Rx 850 programmable trigger select */
#define UART_FCTR_SCR_SWAP 0x40
/* Scratch pad register swap */
#define UART_FCTR_RX 0x00
/* Programmable trigger mode select */
#define UART_FCTR_TX 0x80
/* Programmable trigger mode select */
/*
* These are the definitions for the Enhanced Mode Select Register
* (XR16C85x only, when LCR=bf and FCTR bit 6=1; doubles with the
* Scratch register, UART register #7)
*/
#define UART_EMSR_FIFO_COUNT 0x01
/* Rx/Tx select */
#define UART_EMSR_ALT_COUNT 0x02
/* Alternating count select */
/*
* These are the definitions for the Programmable Trigger
* Register (XR16C85x only, when LCR=bf; doubles with the UART RX/TX
* register, UART register #0)
*/
#define UART_TRG_1 0x01
#define UART_TRG_4 0x04
#define UART_TRG_8 0x08
#define UART_TRG_16 0x10
#define UART_TRG_32 0x20
#define UART_TRG_64 0x40
#define UART_TRG_96 0x60
#define UART_TRG_120 0x78
#define UART_TRG_128 0x80
/*
* These definitions are for the RSA-DV II/S card, from
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment