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