Home | History | Annotate | Line # | Download | only in imx
imxuartreg.h revision 1.3.4.1
      1  1.3.4.1  rmind /* $NetBSD: imxuartreg.h,v 1.3.4.1 2011/03/05 20:49:35 rmind Exp $ */
      2      1.2   matt /*
      3      1.2   matt  * register definitions for Freescale i.MX31 and i.MX31L UARTs
      4      1.2   matt  *
      5      1.2   matt  * UART specification obtained from:
      6      1.2   matt  *	MCIMX31 and MCIMX31L Application Processors
      7      1.2   matt  *	Reference Manual
      8      1.2   matt  *	MCIMC31RM
      9      1.2   matt  *	Rev. 2.3
     10      1.2   matt  *	1/2007
     11  1.3.4.1  rmind  *
     12  1.3.4.1  rmind  *	MCIMC51 Multimedia Application Processor
     13  1.3.4.1  rmind  *	Reference Manual
     14  1.3.4.1  rmind  *      MCMIMX51RM
     15  1.3.4.1  rmind  *	Rev.1
     16  1.3.4.1  rmind  *	2/2010
     17  1.3.4.1  rmind  */
     18  1.3.4.1  rmind #ifndef	_IMXUARTREG_H
     19  1.3.4.1  rmind #define	_IMXUARTREG_H
     20  1.3.4.1  rmind 
     21  1.3.4.1  rmind #ifdef	__ASSEMBLER__
     22  1.3.4.1  rmind #define	__BIT(n)	(1<<(n))
     23  1.3.4.1  rmind #define	__BITS(hi,lo)   ((~((~0)<<((hi)+1)))&((~0)<<(lo)))
     24  1.3.4.1  rmind #else
     25  1.3.4.1  rmind #include <sys/cdefs.h>
     26  1.3.4.1  rmind #endif
     27      1.2   matt 
     28      1.2   matt /*
     29      1.2   matt  * Registers are 32 bits wide; the 16 MSBs are unused --
     30      1.2   matt  * they read as zeros and are ignored on write.
     31      1.2   matt  */
     32      1.2   matt 
     33      1.2   matt 
     34      1.2   matt /*
     35      1.2   matt  * register offsets
     36      1.2   matt  */
     37  1.3.4.1  rmind #define	IMX_URXD	0x00	/* r  */	/* UART Receiver Reg */
     38  1.3.4.1  rmind #define	IMX_UTXD	0x40	/* w  */	/* UART Transmitter Reg */
     39  1.3.4.1  rmind #define	IMX_UCR1	0x80	/* rw */	/* UART Control Reg 1 */
     40  1.3.4.1  rmind #define	IMX_UCR2	0x84	/* rw */	/* UART Control Reg 2 */
     41  1.3.4.1  rmind #define	IMX_UCR3	0x88	/* rw */	/* UART Control Reg 3 */
     42  1.3.4.1  rmind #define	IMX_UCR4	0x8c	/* rw */	/* UART Control Reg 4 */
     43  1.3.4.1  rmind #define	IMX_UCRn(n)	(IMX_UCR1 + ((n) << 2))
     44  1.3.4.1  rmind #define	IMX_UFCR	0x90	/* rw */	/* UART FIFO Control Reg */
     45  1.3.4.1  rmind #define	IMX_USR1	0x94	/* rw */	/* UART Status Reg 1 */
     46  1.3.4.1  rmind #define	IMX_USR2	0x98	/* rw */	/* UART Status Reg 2 */
     47  1.3.4.1  rmind #define	IMX_USRn(n)	(IMX_USR1 + ((n) << 2))
     48  1.3.4.1  rmind #define	IMX_UESC	0x9c	/* rw */	/* UART Escape Character Reg */
     49  1.3.4.1  rmind #define	IMX_UTIM	0xa0	/* rw */	/* UART Escape Timer Reg */
     50  1.3.4.1  rmind #define	IMX_UBIR	0xa4	/* rw */	/* UART BRM Incremental Reg */
     51  1.3.4.1  rmind #define	IMX_UBMR	0xa8	/* rw */	/* UART BRM Modulator Reg */
     52  1.3.4.1  rmind #define	IMX_UBRC	0xac	/* r  */	/* UART Baud Rate Count Reg */
     53  1.3.4.1  rmind #define	IMX_ONEMS	0xb0	/* rw */	/* UART One Millisecond Reg */
     54  1.3.4.1  rmind #define	IMX_UTS		0xb4	/* rw */	/* UART Test Reg */
     55  1.3.4.1  rmind 
     56  1.3.4.1  rmind #define	IMX_UART_SIZE	0xb8
     57      1.2   matt 
     58      1.2   matt /*
     59      1.2   matt  * bit attributes:
     60      1.2   matt  * 	ro	read-only
     61      1.2   matt  * 	wo	write-only
     62      1.2   matt  *	rw	read/write
     63      1.2   matt  * 	w1c	write 1 to clear
     64      1.2   matt  *
     65      1.2   matt  * attrs defined but apparently unused for the UART:
     66      1.2   matt  *	rwm	rw bit that can be modified by HW (other than reset)
     67      1.2   matt  *	scb	self-clear: write 1 has some effect, always reads as 0
     68      1.2   matt  */
     69      1.2   matt 
     70      1.2   matt /*
     71      1.2   matt  * IMX_URXD bits
     72      1.2   matt  */
     73  1.3.4.1  rmind #define	IMX_URXD_RX_DATA	__BITS(7,0)	/* ro */
     74  1.3.4.1  rmind #define	IMX_URXD_RESV		__BITS(9,8)	/* ro */
     75  1.3.4.1  rmind #define	IMX_URXD_PRERR		__BIT(10)		/* ro */
     76  1.3.4.1  rmind #define	IMX_URXD_BRK		__BIT(11)		/* ro */
     77  1.3.4.1  rmind #define	IMX_URXD_FRMERR		__BIT(12)		/* ro */
     78  1.3.4.1  rmind #define	IMX_URXD_OVRRUN		__BIT(13)		/* ro */
     79  1.3.4.1  rmind #define	IMX_URXD_ERR		__BIT(14)		/* ro */
     80  1.3.4.1  rmind #define	IMX_URXD_CHARDY		__BIT(15)		/* ro */
     81      1.2   matt 
     82      1.2   matt /*
     83      1.2   matt  * IMX_UTXD bits
     84      1.2   matt  */
     85  1.3.4.1  rmind #define	IMX_UTXD_TX_DATA	__BITS(7,0)	/* wo */
     86  1.3.4.1  rmind #define	IMX_UTXD_RESV		__BITS(15,8)
     87      1.2   matt 
     88      1.2   matt /*
     89      1.2   matt  * IMX_UCR1 bits
     90      1.2   matt  */
     91  1.3.4.1  rmind #define	IMX_UCR1_UARTEN		__BIT(0)		/* rw */
     92  1.3.4.1  rmind #define	IMX_UCR1_DOZE		__BIT(1)		/* rw */
     93  1.3.4.1  rmind #define	IMX_UCR1_ATDMAEN	__BIT(2)		/* rw */
     94  1.3.4.1  rmind #define	IMX_UCR1_TXDMAEN	__BIT(3)		/* rw */
     95  1.3.4.1  rmind #define	IMX_UCR1_SNDBRK		__BIT(4)		/* rw */
     96  1.3.4.1  rmind #define	IMX_UCR1_RTSDEN		__BIT(5)		/* rw */
     97  1.3.4.1  rmind #define	IMX_UCR1_TXMPTYEN	__BIT(6)		/* rw */
     98  1.3.4.1  rmind #define	IMX_UCR1_IREN		__BIT(7)		/* rw */
     99  1.3.4.1  rmind #define	IMX_UCR1_RXDMAEN	__BIT(8)		/* rw */
    100  1.3.4.1  rmind #define	IMX_UCR1_RRDYEN		__BIT(9)		/* rw */
    101  1.3.4.1  rmind #define	IMX_UCR1_ICD		__BITS(11,10)	/* rw */
    102  1.3.4.1  rmind #define	IMX_UCR1_IDEN		__BIT(12)		/* rw */
    103  1.3.4.1  rmind #define	IMX_UCR1_TRDYEN		__BIT(13)		/* rw */
    104  1.3.4.1  rmind #define	IMX_UCR1_ADBR		__BIT(14)		/* rw */
    105  1.3.4.1  rmind #define	IMX_UCR1_ADEN		__BIT(15)		/* rw */
    106      1.2   matt 
    107      1.2   matt /*
    108      1.2   matt  * IMX_UCR2 bits
    109      1.2   matt  */
    110  1.3.4.1  rmind #define	IMX_UCR2_SRST		__BIT(0)		/* rw */
    111  1.3.4.1  rmind #define	IMX_UCR2_RXEN		__BIT(1)		/* rw */
    112  1.3.4.1  rmind #define	IMX_UCR2_TXEN		__BIT(2)		/* rw */
    113  1.3.4.1  rmind #define	IMX_UCR2_ATEN		__BIT(3)		/* rw */
    114  1.3.4.1  rmind #define	IMX_UCR2_RTSEN		__BIT(4)		/* rw */
    115  1.3.4.1  rmind #define	IMX_UCR2_WS		__BIT(5)		/* rw */
    116  1.3.4.1  rmind #define	IMX_UCR2_STPB		__BIT(6)		/* rw */
    117  1.3.4.1  rmind #define	IMX_UCR2_PROE		__BIT(7)		/* rw */
    118  1.3.4.1  rmind #define	IMX_UCR2_PREN		__BIT(8)		/* rw */
    119  1.3.4.1  rmind #define	IMX_UCR2_RTEC		__BITS(10,9)	/* rw */
    120  1.3.4.1  rmind #define	IMX_UCR2_ESCEN		__BIT(11)		/* rw */
    121  1.3.4.1  rmind #define	IMX_UCR2_CTS		__BIT(12)		/* rw */
    122  1.3.4.1  rmind #define	IMX_UCR2_CTSC		__BIT(13)		/* rw */
    123  1.3.4.1  rmind #define	IMX_UCR2_IRTS		__BIT(14)		/* rw */
    124  1.3.4.1  rmind #define	IMX_UCR2_ESCI		__BIT(15)		/* rw */
    125      1.2   matt 
    126      1.2   matt /*
    127      1.2   matt  * IMX_UCR3 bits
    128      1.2   matt  */
    129  1.3.4.1  rmind #define	IMX_UCR3_ACIEN		__BIT(0)		/* rw */
    130  1.3.4.1  rmind #define	IMX_UCR3_INVT		__BIT(1)		/* rw */
    131  1.3.4.1  rmind #define	IMX_UCR3_RXDMUXSEL	__BIT(2)		/* rw */
    132  1.3.4.1  rmind #define	IMX_UCR3_DTRDEN		__BIT(3)		/* rw */
    133  1.3.4.1  rmind #define	IMX_UCR3_AWAKEN		__BIT(4)		/* rw */
    134  1.3.4.1  rmind #define	IMX_UCR3_AIRINTEN	__BIT(5)		/* rw */
    135  1.3.4.1  rmind #define	IMX_UCR3_RXDSEN		__BIT(6)		/* rw */
    136  1.3.4.1  rmind #define	IMX_UCR3_ADNIMP		__BIT(7)		/* rw */
    137  1.3.4.1  rmind #define	IMX_UCR3_RI		__BIT(8)		/* rw */
    138  1.3.4.1  rmind #define	IMX_UCR3_DCD		__BIT(9)		/* rw */
    139  1.3.4.1  rmind #define	IMX_UCR3_DSR		__BIT(10)		/* rw */
    140  1.3.4.1  rmind #define	IMX_UCR3_FRAERREN	__BIT(11)		/* rw */
    141  1.3.4.1  rmind #define	IMX_UCR3_PARERREN	__BIT(12)		/* rw */
    142  1.3.4.1  rmind #define	IMX_UCR3_DTREN		__BIT(13)		/* rw */
    143  1.3.4.1  rmind #define	IMX_UCR3_DPEC		__BITS(15,14)	/* rw */
    144      1.2   matt 
    145      1.2   matt /*
    146      1.2   matt  * IMX_UCR4 bits
    147      1.2   matt  */
    148  1.3.4.1  rmind #define	IMX_UCR4_DREN		__BIT(0)		/* rw */
    149  1.3.4.1  rmind #define	IMX_UCR4_OREN		__BIT(1)		/* rw */
    150  1.3.4.1  rmind #define	IMX_UCR4_BKEN		__BIT(2)		/* rw */
    151  1.3.4.1  rmind #define	IMX_UCR4_TCEN		__BIT(3)		/* rw */
    152  1.3.4.1  rmind #define	IMX_UCR4_LPBYP		__BIT(4)		/* rw */
    153  1.3.4.1  rmind #define	IMX_UCR4_IRSC		__BIT(5)		/* rw */
    154  1.3.4.1  rmind #define	IMX_UCR4_IDDMAEN	__BIT(6)		/* rw */
    155  1.3.4.1  rmind #define	IMX_UCR4_WKEN		__BIT(7)		/* rw */
    156  1.3.4.1  rmind #define	IMX_UCR4_ENIRI		__BIT(8)		/* rw */
    157  1.3.4.1  rmind #define	IMX_UCR4_INVR		__BIT(9)		/* rw */
    158  1.3.4.1  rmind #define	IMX_UCR4_CTSTL		__BITS(15,10)	/* rw */
    159      1.2   matt 
    160      1.2   matt /*
    161      1.2   matt  * IMX_UFCR bits
    162      1.2   matt  */
    163  1.3.4.1  rmind #define	IMX_UFCR_RXTL_SHIFT	0
    164  1.3.4.1  rmind #define	IMX_UFCR_RXTL		__BITS(5,IMX_UFCR_RXTL_SHIFT)	/* rw */
    165  1.3.4.1  rmind #define	IMX_UFCR_DCEDTE		__BIT(6)		/* rw */
    166  1.3.4.1  rmind #define	IMX_UFCR_RFDIV_SHIFT	7
    167  1.3.4.1  rmind #define	IMX_UFCR_RFDIV		__BITS(9,IMX_UFCR_RFDIV_SHIFT)	/* rw */
    168  1.3.4.1  rmind #define	IMX_UFCR_TXTL_SHIFT	10
    169  1.3.4.1  rmind #define	IMX_UFCR_TXTL		__BITS(15,IMX_UFCR_TXTL_SHIFT)	/* rw */
    170  1.3.4.1  rmind 
    171  1.3.4.1  rmind #define	IMX_UFCR_DIVIDER_TO_RFDIV(div)	\
    172  1.3.4.1  rmind 	(((6 - div) % 7) & 0x7)
    173      1.2   matt 
    174      1.2   matt /*
    175      1.2   matt  * IMX_USR1 bits
    176      1.2   matt  */
    177  1.3.4.1  rmind #define	IMX_USR1_RESV		__BITS(3,0)
    178  1.3.4.1  rmind #define	IMX_USR1_AWAKE		__BIT(4)		/* w1c */
    179  1.3.4.1  rmind #define	IMX_USR1_AIRINT		__BIT(5)		/* w1c */
    180  1.3.4.1  rmind #define	IMX_USR1_RXDS		__BIT(6)		/* ro  */
    181  1.3.4.1  rmind #define	IMX_USR1_DTRD		__BIT(7)		/* w1c */
    182  1.3.4.1  rmind #define	IMX_USR1_AGTIM		__BIT(8)		/* w1c */
    183  1.3.4.1  rmind #define	IMX_USR1_RRDY		__BIT(9)		/* ro  */
    184  1.3.4.1  rmind #define	IMX_USR1_FRAMERR	__BIT(10)		/* w1c */
    185  1.3.4.1  rmind #define	IMX_USR1_ESCF		__BIT(11)		/* w1c */
    186  1.3.4.1  rmind #define	IMX_USR1_RTSD		__BIT(12)		/* w1c */
    187  1.3.4.1  rmind #define	IMX_USR1_TRDY		__BIT(13)		/* ro  */
    188  1.3.4.1  rmind #define	IMX_USR1_RTSS		__BIT(14)		/* ro  */
    189  1.3.4.1  rmind #define	IMX_USR1_PARITYERR	__BIT(15)		/* w1c */
    190      1.2   matt 
    191      1.2   matt /*
    192      1.2   matt  * IMX_USR2 bits
    193      1.2   matt  */
    194  1.3.4.1  rmind #define	IMX_USR2_RDR		__BIT(0)
    195  1.3.4.1  rmind #define	IMX_USR2_ORE		__BIT(1)		/* w1c */
    196  1.3.4.1  rmind #define	IMX_USR2_BRCD		__BIT(2)		/* w1c */
    197  1.3.4.1  rmind #define	IMX_USR2_TXDC		__BIT(3)		/* ro  */
    198  1.3.4.1  rmind #define	IMX_USR2_RTSF		__BIT(4)		/* w1c */
    199  1.3.4.1  rmind #define	IMX_USR2_DCDIN		__BIT(5)		/* ro  */
    200  1.3.4.1  rmind #define	IMX_USR2_DCDDELT	__BIT(6)		/* rw  */
    201  1.3.4.1  rmind #define	IMX_USR2_WAKE		__BIT(7)		/* w1c */
    202  1.3.4.1  rmind #define	IMX_USR2_IRINT		__BIT(8)		/* rw  */
    203  1.3.4.1  rmind #define	IMX_USR2_RIIN		__BIT(9)		/* ro  */
    204  1.3.4.1  rmind #define	IMX_USR2_RIDELT		__BIT(10)		/* w1c */
    205  1.3.4.1  rmind #define	IMX_USR2_ACST		__BIT(11)		/* rw  */
    206  1.3.4.1  rmind #define	IMX_USR2_IDLE		__BIT(12)		/* w1c */
    207  1.3.4.1  rmind #define	IMX_USR2_DTRF		__BIT(13)		/* rw  */
    208  1.3.4.1  rmind #define	IMX_USR2_TXFE		__BIT(14)		/* ro  */
    209  1.3.4.1  rmind #define	IMX_USR2_ADET		__BIT(15)		/* w1c */
    210      1.2   matt 
    211      1.2   matt /*
    212      1.2   matt  * IMX_UESC bits
    213      1.2   matt  */
    214  1.3.4.1  rmind #define	IMX_UESC_ESC_CHAR	__BITS(7,0)	/* rw */
    215  1.3.4.1  rmind #define	IMX_UESC_RESV		__BITS(15,8)
    216      1.2   matt 
    217      1.2   matt /*
    218      1.2   matt  * IMX_UTIM bits
    219      1.2   matt  */
    220  1.3.4.1  rmind #define	IMX_UTIM_TIM		__BITS(11,0)	/* rw */
    221  1.3.4.1  rmind #define	IMX_UTIM_RESV		__BITS(15,12)
    222      1.2   matt 
    223      1.2   matt /*
    224      1.2   matt  * IMX_UBIR bits
    225      1.2   matt  */
    226  1.3.4.1  rmind #define	IMX_UBIR_INC		__BITS(15,0)	/* rw */
    227      1.2   matt 
    228      1.2   matt /*
    229      1.2   matt  * IMX_UBMR bits
    230      1.2   matt  */
    231  1.3.4.1  rmind #define	IMX_UBMR_MOD		__BITS(15,0)	/* rw */
    232      1.2   matt 
    233      1.2   matt /*
    234      1.2   matt  * IMX_UBRC bits
    235      1.2   matt  */
    236  1.3.4.1  rmind #define	IMX_UBRC_BCNT		__BITS(15,0)	/* ro */
    237      1.2   matt 
    238      1.2   matt /*
    239      1.2   matt  * IMX_ONEMS bits
    240      1.2   matt  */
    241  1.3.4.1  rmind #define	IMX_ONEMS_ONEMS		__BITS(15,0)	/* rw */
    242      1.2   matt 
    243      1.2   matt /*
    244      1.2   matt  * IMX_UTS bits
    245      1.2   matt  */
    246  1.3.4.1  rmind #define	IMX_UTS_SOFTRST		__BIT(0)		/* rw */
    247  1.3.4.1  rmind #define	IMX_UTS_RESVa		__BITS(2,1)
    248  1.3.4.1  rmind #define	IMX_UTS_RXFULL		__BIT(3)		/* rw */
    249  1.3.4.1  rmind #define	IMX_UTS_TXFUL		__BIT(4)		/* rw */
    250  1.3.4.1  rmind #define	IMX_UTS_RXEMPTY		__BIT(5)		/* rw */
    251  1.3.4.1  rmind #define	IMX_UTS_TXEMPTY		__BIT(5)		/* rw */
    252  1.3.4.1  rmind #define	IMX_UTS_RESVb		__BITS(8,7)
    253  1.3.4.1  rmind #define	IMX_UTS_RXDBG		__BIT(9)		/* rw */
    254  1.3.4.1  rmind #define	IMX_UTS_LOOPIR		__BIT(10)		/* rw */
    255  1.3.4.1  rmind #define	IMX_UTS_DBGEN		__BIT(11)		/* rw */
    256  1.3.4.1  rmind #define	IMX_UTS_LOOP		__BIT(12)		/* rw */
    257  1.3.4.1  rmind #define	IMX_UTS_FRCPERR		__BIT(13)		/* rw */
    258  1.3.4.1  rmind #define	IMX_UTS_RESVc		__BITS(15,14)
    259  1.3.4.1  rmind #define	IMX_UTS_RESV		(IMX_UTS_RESVa|IMX_UTS_RESVb|IMX_UTS_RESVc)
    260      1.2   matt 
    261  1.3.4.1  rmind #ifndef	__ASSEMBLER__
    262      1.2   matt /*
    263      1.2   matt  * interrupt specs
    264      1.2   matt  * see Table 31-25. "Interrupts an DMA"
    265      1.2   matt  */
    266      1.2   matt 
    267      1.2   matt /*
    268      1.2   matt  * abstract interrupts spec indexing
    269      1.2   matt  */
    270      1.2   matt typedef enum {
    271      1.2   matt 	RX_RRDY=0,
    272      1.2   matt 	RX_ID,
    273      1.2   matt 	RX_DR,
    274      1.2   matt 	RX_RXDS,
    275      1.2   matt 	RX_AT,
    276      1.2   matt 	TX_TXMPTY,
    277      1.2   matt 	TX_TRDY,
    278      1.2   matt 	TX_TC,
    279      1.2   matt 	MINT_OR,
    280      1.2   matt 	MINT_BR,
    281      1.2   matt 	MINT_WK,
    282      1.2   matt 	MINT_AD,
    283      1.2   matt 	MINT_ACI,
    284      1.2   matt 	MINT_ESCI,
    285      1.2   matt 	MINT_IRI,
    286      1.2   matt 	MINT_AIRINT,
    287      1.2   matt 	MINT_AWAK,
    288      1.2   matt 	MINT_FRAERR,
    289      1.2   matt 	MINT_PARERR,
    290      1.2   matt 	MINT_RTSD,
    291      1.2   matt 	MINT_RTS,
    292      1.2   matt 	MINT_DCE_DTR,
    293      1.2   matt 	MINT_DTE_RI,
    294      1.2   matt 	MINT_DTE_DCE,
    295      1.2   matt 	MINT_DTRD,
    296      1.2   matt 	RX_DMAREQ_RXDMA,
    297      1.2   matt 	RX_DMAREQ_ATDMA,
    298      1.2   matt 	RX_DMAREQ_IDDMA,
    299      1.2   matt 	RX_DMAREQ_TXDMA,
    300      1.2   matt } imxuart_intrix_t;
    301      1.2   matt 
    302      1.2   matt /*
    303      1.2   matt  * abstract interrupts spec
    304      1.2   matt  */
    305      1.2   matt typedef struct {
    306      1.2   matt 	const uint32_t	enb_bit;
    307  1.3.4.1  rmind 	const uint	enb_reg;
    308      1.2   matt 	const uint32_t	flg_bit;
    309  1.3.4.1  rmind 	const uint	flg_reg;
    310  1.3.4.1  rmind 	const char *	name;		/* for debug */
    311      1.2   matt } imxuart_intrspec_t;
    312      1.2   matt 
    313  1.3.4.1  rmind #define	IMXUART_INTRSPEC(cv, cr, sv, sr) \
    314      1.2   matt 	{ IMX_UCR##cr##_##cv, ((cr) - 1), IMX_USR##sr##_##sv, ((sr) - 1), #sv }
    315      1.2   matt 
    316      1.2   matt static const imxuart_intrspec_t imxuart_intrspec_tab[] = {
    317      1.2   matt /* ipi_uart_rx */
    318      1.2   matt 	IMXUART_INTRSPEC(RRDYEN,   1, RRDY,      1),
    319      1.2   matt 	IMXUART_INTRSPEC(IDEN,     1, IDLE,      2),
    320      1.2   matt 	IMXUART_INTRSPEC(DREN,     4, RDR,       2),
    321      1.2   matt 	IMXUART_INTRSPEC(RXDSEN,   3, RXDS,      1),
    322      1.2   matt 	IMXUART_INTRSPEC(ATEN,     2, AGTIM,     1),
    323      1.2   matt /* ipi_uart_tx */
    324      1.2   matt 	IMXUART_INTRSPEC(TXMPTYEN, 1, TXFE,      2),
    325      1.2   matt 	IMXUART_INTRSPEC(TRDYEN,   1, TRDY,      1),
    326      1.2   matt 	IMXUART_INTRSPEC(TCEN,     4, TXDC,      2),
    327      1.2   matt /* ipi_uart_mint */
    328      1.2   matt 	IMXUART_INTRSPEC(OREN,     4, ORE,       2),
    329      1.2   matt 	IMXUART_INTRSPEC(BKEN,     4, BRCD,      2),
    330      1.2   matt 	IMXUART_INTRSPEC(WKEN,     4, WAKE,      2),
    331      1.2   matt 	IMXUART_INTRSPEC(ADEN,     1, ADET,      2),
    332      1.2   matt 	IMXUART_INTRSPEC(ACIEN,    3, ACST,      2),
    333      1.2   matt 	IMXUART_INTRSPEC(ESCI,     2, ESCF,      1),
    334      1.2   matt 	IMXUART_INTRSPEC(ENIRI,    4, IRINT,     2),
    335      1.2   matt 	IMXUART_INTRSPEC(AIRINTEN, 3, AIRINT,    1),
    336      1.2   matt 	IMXUART_INTRSPEC(AWAKEN,   3, AWAKE,     1),
    337      1.2   matt 	IMXUART_INTRSPEC(FRAERREN, 3, FRAMERR,   1),
    338      1.2   matt 	IMXUART_INTRSPEC(PARERREN, 3, PARITYERR, 1),
    339      1.2   matt 	IMXUART_INTRSPEC(RTSDEN,   1, RTSD,      1),
    340      1.2   matt 	IMXUART_INTRSPEC(RTSEN,    2, RTSF,      2),
    341      1.2   matt 	IMXUART_INTRSPEC(DTREN,    3, DTRF,      2),
    342      1.2   matt 	IMXUART_INTRSPEC(RI,       3, DTRF,      2),
    343      1.2   matt 	IMXUART_INTRSPEC(DCD,      3, DCDDELT,   2),
    344      1.2   matt 	IMXUART_INTRSPEC(DTRDEN,   3, DTRD,      1),
    345      1.2   matt /* ipd_uart_rx_dmareq */
    346      1.2   matt 	IMXUART_INTRSPEC(RXDMAEN,  1, RRDY,      1),
    347      1.2   matt 	IMXUART_INTRSPEC(ATDMAEN,  1, AGTIM,     1),
    348      1.2   matt 	IMXUART_INTRSPEC(IDDMAEN,  4, IDLE,      2),
    349      1.2   matt /* ipd_uart_tx_dmareq */
    350      1.2   matt 	IMXUART_INTRSPEC(TXDMAEN,  1, TRDY,      1),
    351      1.2   matt };
    352  1.3.4.1  rmind #define	IMXUART_INTRSPEC_TAB_SZ	\
    353      1.2   matt 	(sizeof(imxuart_intrspec_tab) / sizeof(imxuart_intrspec_tab[0]))
    354      1.2   matt 
    355  1.3.4.1  rmind #endif	/* __ASSEMBLER__ */
    356  1.3.4.1  rmind 
    357      1.2   matt /*
    358      1.2   matt  * functional groupings of intr status flags by reg
    359      1.2   matt  */
    360  1.3.4.1  rmind #define	IMXUART_RXINTR_USR1	(IMX_USR1_RRDY|IMX_USR1_RXDS|IMX_USR1_AGTIM)
    361  1.3.4.1  rmind #define	IMXUART_RXINTR_USR2	(IMX_USR2_IDLE|IMX_USR2_RDR)
    362  1.3.4.1  rmind #define	IMXUART_TXINTR_USR1	(IMX_USR1_TRDY)
    363  1.3.4.1  rmind #define	IMXUART_TXINTR_USR2	(IMX_USR2_TXFE|IMX_USR2_TXDC)
    364  1.3.4.1  rmind #define	IMXUART_MINT_USR1	(IMX_USR1_ESCF|IMX_USR1_AIRINT||IMX_USR1_AWAKE \
    365      1.2   matt 				|IMX_USR1_FRAMERR|IMX_USR1_PARITYERR \
    366      1.2   matt 				|IMX_USR1_RTSD|IMX_USR1_DTRD)
    367  1.3.4.1  rmind #define	IMXUART_MINT_USR2	(IMX_USR2_ORE|IMX_USR2_BRCD|IMX_USR2_WAKE \
    368      1.2   matt 				|IMX_USR2_ADET|IMX_USR2_ACST|IMX_USR2_IRINT \
    369      1.2   matt 				|IMX_USR2_RTSF|IMX_USR2_DTRF|IMX_USR2_DTRF \
    370      1.2   matt 				|IMX_USR2_DCDDELT)
    371  1.3.4.1  rmind #define	IMXUART_RXDMA_USR1	(IMX_USR1_RRDY|IMX_USR1_AGTIM)
    372  1.3.4.1  rmind #define	IMXUART_RXDMA_USR2	(IMX_USR2_IDLE)
    373  1.3.4.1  rmind #define	IMXUART_TXDMA_USR1	(IMX_USR1_TRDY)
    374  1.3.4.1  rmind #define	IMXUART_TXDMA_USR2	(0)
    375      1.2   matt 
    376      1.2   matt /*
    377      1.2   matt  * all intr status flags by reg
    378      1.2   matt  */
    379  1.3.4.1  rmind #define	IMXUART_INTRS_USR1	(IMXUART_RXINTR_USR1|IMXUART_TXINTR_USR1 \
    380      1.2   matt 				|IMXUART_MINT_USR1|IMXUART_RXDMA_USR1 \
    381      1.2   matt 				|IMXUART_TXDMA_USR1)
    382  1.3.4.1  rmind #define	IMXUART_INTRS_USR2	(IMXUART_RXINTR_USR2|IMXUART_TXINTR_USR2 \
    383      1.2   matt 				|IMXUART_MINT_USR2|IMXUART_RXDMA_USR2 \
    384      1.2   matt 				|IMXUART_TXDMA_USR2)
    385      1.2   matt 
    386      1.2   matt /*
    387      1.2   matt  * all intr controls by reg
    388      1.2   matt  */
    389  1.3.4.1  rmind #define	IMXUART_INTRS_UCR1	(IMX_UCR1_RRDYEN|IMX_UCR1_IDEN \
    390      1.2   matt 				|IMX_UCR1_TXMPTYEN|IMX_UCR1_TRDYEN \
    391      1.2   matt 				|IMX_UCR1_ADEN|IMX_UCR1_RTSDEN \
    392      1.2   matt 				|IMX_UCR1_RXDMAEN|IMX_UCR1_RXDMAEN \
    393      1.2   matt 				|IMX_UCR1_ATDMAEN|IMX_UCR1_TXDMAEN)
    394  1.3.4.1  rmind #define	IMXUART_INTRS_UCR2	(IMX_UCR2_ATEN|IMX_UCR2_ESCI|IMX_UCR2_RTSEN)
    395  1.3.4.1  rmind #define	IMXUART_INTRS_UCR3	(IMX_UCR3_RXDSEN|IMX_UCR3_ACIEN \
    396      1.2   matt 				|IMX_UCR3_AIRINTEN|IMX_UCR3_AWAKEN \
    397      1.2   matt 				|IMX_UCR3_FRAERREN|IMX_UCR3_PARERREN \
    398      1.2   matt 				|IMX_UCR3_DTREN|IMX_UCR3_RI \
    399      1.2   matt 				|IMX_UCR3_DCD|IMX_UCR3_DTRDEN)
    400  1.3.4.1  rmind #define	IMXUART_INTRS_UCR4	(IMX_UCR4_DREN|IMX_UCR4_TCEN|IMX_UCR4_OREN \
    401      1.2   matt 				|IMX_UCR4_BKEN|IMX_UCR4_WKEN \
    402      1.2   matt 				|IMX_UCR4_ENIRI|IMX_UCR4_IDDMAEN)
    403      1.2   matt 
    404      1.2   matt 
    405  1.3.4.1  rmind #endif	/* _IMXUARTREG_H */
    406