summaryrefslogtreecommitdiff
path: root/sys/dev/marvell/gtmpscreg.h
blob: 5e4b3ae347744f355809e771f904c88e2c9fc3f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
/*	$NetBSD: gtmpscreg.h,v 1.5 2016/01/15 12:09:15 joerg Exp $	*/

/*
 * Copyright (c) 2002 Allegro Networks, Inc., Wasabi Systems, Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *      This product includes software developed for the NetBSD Project by
 *      Allegro Networks, Inc., and Wasabi Systems, Inc.
 * 4. The name of Allegro Networks, Inc. may not be used to endorse
 *    or promote products derived from this software without specific prior
 *    written permission.
 * 5. The name of Wasabi Systems, Inc. may not be used to endorse
 *    or promote products derived from this software without specific prior
 *    written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY ALLEGRO NETWORKS, INC. AND
 * WASABI SYSTEMS, INC. ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL EITHER ALLEGRO NETWORKS, INC. OR WASABI SYSTEMS, INC.
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

/*
 * gtmpscreg.h - register defines for GT-64260 MPSC
 *
 * creation	Sun Apr  8 11:49:57 PDT 2001	cliff
 */

#ifndef _GTMPSCREG_H
#define _GTMPSCREG_H

#define GTMPSC_BASE(u)	(MPSC0_BASE + ((u) << 12))
#define GTMPSC_SIZE	0x1000

#define GTMPSC_NCHAN	2		/* Number of MPSC channels */

/*******************************************************************************
 *
 * MPSC register address offsets relative to the base mapping
 */
#define GTMPSC_MMCR_LO	0x000		/* MPSC Main Config Register Low */
#define GTMPSC_MMCR_HI	0x004		/* MPSC Main Config Register High */
#define GTMPSC_MPCR	0x008		/* MPSC Protocol Config Register */
#define GTMPSC_CHR_BASE	0x008		/* MPSC Channel Register Base */
#define GTMPSC_CHRN(n)	(GTMPSC_CHR_BASE + ((n) << 2))
#define GTMPSC_NCHR	11		/* CHR 1-11? */

#define GTMPSC_MRR	0xb400		/* MPSC Routing Register */
#define GTMPSC_RCRR	0xb404		/* MPSC RX Clock Routing Register */
#define GTMPSC_TCRR	0xb408		/* MPSC TX Clock Routing Register */


/*******************************************************************************
 *
 * MPSC register values & bit defines
 *
 *	values are provided for UART mode only
 */
/*
 * MPSC Routing Register bits
 */
#define GTMPSC_MRR_PORT0	0		/* serial port #0 */
#define GTMPSC_MRR_NONE		7		/* unconnected */
						/* all other "routes" resvd. */
#define GTMPSC_MRR_MR0_MASK	__BITS(2,0)	/* routing mask for MPSC0 */
#define GTMPSC_MRR_RESa		__BITS(5,3)
#define GTMPSC_MRR_MR1_MASK	__BITS(8,6)	/* routing mask for MPSC1 */
#define GTMPSC_MRR_RESb		__BITS(30,9)
#define GTMPSC_MRRE_DSC		__BIT(31)	/* "Don't Stop Clock" */
#define GTMPSC_MRR_RES (GTMPSC_MRR_RESa|GTMPSC_MRR_RESb)
/*
 * MPSC Clock Routing Register bits
 * the bitfields and route definitions are common for RCRR and TCRR
 * except for MPSC_TCRR_TSCLK0
 */
#define GTMPSC_CRR_BRG0		0x0		/* Baud Rate Generator #0 */
#define GTMPSC_CRR_BRG1		0x1		/* Baud Rate Generator #1 */
#define GTMPSC_CRR_BRG2		0x2		/* Baud Rate Generator #2 */
#define GTMPSC_CRR_SCLK0	0x8		/* SCLK0 */
#define GTMPSC_TCRR_TSCLK0	0x9		/* TSCLK0 (for TCRR only) */
						/* all other values resvd. */
#define GTMPSC_CRR(u, v)	((v) << GTMPSC_CRR_SHIFT(u))
#define GTMPSC_CRR_SHIFT(u)	((u) * 8)
#define GTMPSC_CRR_MASK		0xf
#define GTMPSC_CRR_RESa		__BITS(7,4)
#define GTMPSC_CRR_RESb		__BITS(31,12)
#define GTMPSC_CRR_RES (GTMPSC_CRR_RESa|GTMPSC_CRR_RESb)
/*
 * MPSC Main Configuration Register LO bits
 */
#define GTMPSC_MMCR_LO_MODE_MASK __BITS(2,0)
#define GTMPSC_MMCR_LO_MODE_UART (0x4 << 0)	/* UART mode */
#define GTMPSC_MMCR_LO_TTX	 __BIT(3)	/* Transparent TX */
#define GTMPSC_MMCR_LO_TRX	 __BIT(4)	/* Transparent RX */
#define GTMPSC_MMCR_LO_RESa	 __BIT(5)
#define GTMPSC_MMCR_LO_ET	 __BIT(6)	/* Enable TX */
#define GTMPSC_MMCR_LO_ER	 __BIT(7)	/* Enable RX */
#define GTMPSC_MMCR_LO_LPBK_MASK __BITS(9,8)	/* Loop Back */
#define GTMPSC_MMCR_LO_LPBK_NONE (0 << 8)	/* Normal (non-loop) */
#define GTMPSC_MMCR_LO_LPBK_LOOP (1 << 8)	/* Loop Back */
#define GTMPSC_MMCR_LO_LPBK_ECHO (2 << 8)	/* Echo */
#define GTMPSC_MMCR_LO_LPBK_LBE	(3 << 8)	/* Loop Back and Echo */
#define GTMPSC_MMCR_LO_NLM	__BIT(10)	/* Null Modem */
#define GTMPSC_MMCR_LO_RESb	__BIT(11)
#define GTMPSC_MMCR_LO_TSYN	__BIT(12)	/* Transmitter sync to Rcvr. */
#define GTMPSC_MMCR_LO_RESc	__BIT(13)
#define GTMPSC_MMCR_LO_TSNS_MASK __BITS(15,14)	/* Transmit Sense */
#define GTMPSC_MMCR_LO_TSNS_INF	(0 << 14)	/* Infinite */
#define GTMPSC_MMCR_LO_TIDL	__BIT(16)	/* TX Idles */
#define GTMPSC_MMCR_LO_RTSM	__BIT(17)	/* RTS Mode */
#define GTMPSC_MMCR_LO_RESd	__BIT(18)
#define GTMPSC_MMCR_LO_CTSS	__BIT(19)	/* CTS Sampling mode */
#define GTMPSC_MMCR_LO_CDS	__BIT(20)	/* CD Sampling mode */
#define GTMPSC_MMCR_LO_CTSM	__BIT(21)	/* CTS operating Mode */
#define GTMPSC_MMCR_LO_CDM	__BIT(22)	/* CD operating Mode */
#define GTMPSC_MMCR_LO_CRCM_MASK __BITS(25,23)	/* CRC Mode */
#define GTMPSC_MMCR_LO_CRCM_NONE (0 << 23)	/* CRC Mode */
#define GTMPSC_MMCR_LO_RESe	__BITS(27,26)
#define GTMPSC_MMCR_LO_TRVD	__BIT(28)	/* Transmit Reverse Data */
#define GTMPSC_MMCR_LO_RRVD	__BIT(29)	/* Receive  Reverse Data */
#define GTMPSC_MMCR_LO_RESf	__BIT(30)
#define GTMPSC_MMCR_LO_GDE	__BIT(31)	/* Glitch Detect Enable */
#define GTMPSC_MMCR_LO_RES \
		(GTMPSC_MMCR_LO_RESa|GTMPSC_MMCR_LO_RESb|GTMPSC_MMCR_LO_RESc \
		|GTMPSC_MMCR_LO_RESd|GTMPSC_MMCR_LO_RESe|GTMPSC_MMCR_LO_RESf)
/*
 * MPSC Main Configuration Register HI bits
 */
#define GTMPSC_MMCR_HI_TCI	 __BIT(0)	/* TX Clock Invert */
#define GTMPSC_MMCR_HI_TINV	 __BIT(1)	/* TX Bitstream Inversion */
#define GTMPSC_MMCR_HI_TPL	 __BITS(4,2)	/* TX Preable Length */
#define GTMPSC_MMCR_HI_TPL_NONE	 0		/* no TX Preable (default) */
#define GTMPSC_MMCR_HI_TPL_16	 (6 << 2)	/* 16 byte preamble */
#define GTMPSC_MMCR_HI_TPPT_MASK __BITS(8,5)	/* TX Preable Pattern */
#define GTMPSC_MMCR_HI_TPPT_NONE (0 << 5)	/* TX Preable Pattern */
#define GTMPSC_MMCR_HI_TCDV_MASK __BITS(10,9)	/* TX Clock Divide */
#define GTMPSC_MMCR_HI_TCDV_1X	 (0 << 9)	/* 1x clock mode */
#define GTMPSC_MMCR_HI_TCDV_8X	 (1 << 9)	/* 8x clock mode */
#define GTMPSC_MMCR_HI_TCDV_16X	 (2 << 9)	/* 16x clock mode */
#define GTMPSC_MMCR_HI_TCDV_32X	 (3 << 9)	/* 32x clock mode */
#define GTMPSC_MMCR_HI_TDEC_MASK __BITS(13,11)	/* TX Encoder */
#define GTMPSC_MMCR_HI_TDEC_NRZ	 (0 << 9)	/* NRZ (default) */
#define GTMPSC_MMCR_HI_TDEC_NRZI (1 << 9)	/* NRZI (mark) */
#define GTMPSC_MMCR_HI_TDEC_FM0	 (2 << 9)	/* FM0 */
#define GTMPSC_MMCR_HI_TDEC_MAN	 (4 << 9)	/* Manchester */
#define GTMPSC_MMCR_HI_TDEC_DMAN (6 << 9)	/* Differential Manchester */
						/* all other values rsvd. */
#define GTMPSC_MMCR_HI_RESa	__BITS(15,14)
#define GTMPSC_MMCR_HI_RINV	__BIT(16)	/* RX Bitstream Inversion */
#define GTMPSC_MMCR_HI_GDW	__BITS(20,17)	/* Clock Glitch Width */
#define GTMPSC_MMCR_HI_RESb	__BIT(21)
#define GTMPSC_MMCR_HI_RDW	__BIT(22)	/* Reveive Data Width */
#define GTMPSC_MMCR_HI_RSYL_MASK  __BITS(24,23)	/* Reveive Sync Width */
#define GTMPSC_MMCR_HI_RSYL_EXT	  (0 << 23)	/* External sync */
#define GTMPSC_MMCR_HI_RSYL_4BIT  (1 << 23)	/* 4-bit sync */
#define GTMPSC_MMCR_HI_RSYL_8BIT  (2 << 23)	/* 8-bit sync */
#define GTMPSC_MMCR_HI_RSYL_16BIT (3 << 23)	/* 16-bit sync */
#define GTMPSC_MMCR_HI_RCDV_MASK __BITS(26,25)	/* Receive Clock Divider */
#define GTMPSC_MMCR_HI_RCDV_1X   (0 << 25)	/* 1x clock mode (default) */
#define GTMPSC_MMCR_HI_RCDV_8X   (1 << 25)	/* 8x clock mode (default) */
#define GTMPSC_MMCR_HI_RCDV_16X  (2 << 25)	/* 16x clock mode (default) */
#define GTMPSC_MMCR_HI_RCDV_32X  (3 << 25)	/* 16x clock mode (default) */
#define GTMPSC_MMCR_HI_RENC_MASK __BITS(29,27)	/* Receive Encoder */
#define GTMPSC_MMCR_HI_RENC_NRZ	(0 << 27)	/* NRZ (default) */
#define GTMPSC_MMCR_HI_RENC_NRZI (1 << 27)	/* NRZI */
#define GTMPSC_MMCR_HI_RENC_FM0	(2 << 27)	/* FM0 */
#define GTMPSC_MMCR_HI_RENC_MAN	(4 << 27)	/* Manchester */
#define GTMPSC_MMCR_HI_RENC_DMAN (6 << 27)	/* Differential Manchester */
						/* all other values rsvd. */
#define GTMPSC_MMCR_HI_SEDG_MASK __BITS(31,30)	/* Sync Clock Edge */
#define GTMPSC_MMCR_HI_SEDG_BOTH (0 << 30)	/* rising and falling (dflt) */
#define GTMPSC_MMCR_HI_SEDG_RISE (1 << 30)	/* rising edge */
#define GTMPSC_MMCR_HI_SEDG_FALL (2 << 30)	/* falling edge */
#define GTMPSC_MMCR_HI_SEDG_NONE (3 << 30)	/* no adjustment */
/*
 * SDMAx Command/Status Register bits for UART Mode, RX
 *
 * XXX these belong in sdmareg.h ?
 */
#define SDMA_CSR_RX_PE		__BIT(0)	/* Parity Error */
#define SDMA_CSR_RX_CDL		__BIT(1)	/* Carrier Detect Loss */
#define SDMA_CSR_RX_RESa	__BIT(2)
#define SDMA_CSR_RX_FR		__BIT(3)	/* Framing Error */
#define SDMA_CSR_RX_RESb	__BITS(5,4)
#define SDMA_CSR_RX_OR		__BIT(6)	/* Data Overrun */
#define SDMA_CSR_RX_RESc	__BITS(8,7)
#define SDMA_CSR_RX_BR		__BIT(9)	/* Break Received */
#define SDMA_CSR_RX_MI		__BIT(10)	/* Max Idle */
#define SDMA_CSR_RX_ADDR	__BIT(11)	/* Address */
#define SDMA_CSR_RX_AMATCH	__BIT(12)	/* Address match */
#define SDMA_CSR_RX_CT		__BIT(13)	/* Transparency Control char */
#define SDMA_CSR_RX_C		__BIT(14)	/* Control char */
#define SDMA_CSR_RX_ES		__BIT(15)	/* Error Summary */
#define SDMA_CSR_RX_L		__BIT(16)	/* Last */
#define SDMA_CSR_RX_F		__BIT(17)	/* First */
#define SDMA_CSR_RX_RESd	__BITS(22,18)
#define SDMA_CSR_RX_EI		__BIT(23)	/* Enable Interrupt */
#define SDMA_CSR_RX_RESe	__BITS(29,24)
#define SDMA_CSR_RX_AUTO	__BIT(30)	/* Auto Mode */
#define SDMA_CSR_RX_OWN		__BIT(31)	/* Owner */
#define SDMA_CSR_RX_RES (SDMA_CSR_RX_RESa|SDMA_CSR_RX_RESb|SDMA_CSR_RX_RESc \
			 |SDMA_CSR_RX_RESd|SDMA_CSR_RX_RESe)
/*
 * SDMAx Command/Status Register bits for UART Mode, TX
 */
#define SDMA_CSR_TX_RESa	__BIT(0)
#define SDMA_CSR_TX_CTSL	__BIT(1)	/* CTS Loss */
#define SDMA_CSR_TX_RESb	__BITS(14,2)
#define SDMA_CSR_TX_ES		__BIT(15)	/* Error Summary */
#define SDMA_CSR_TX_L		__BIT(16)	/* Last */
#define SDMA_CSR_TX_F		__BIT(17)	/* First */
#define SDMA_CSR_TX_P		__BIT(18)	/* Preamble */
#define SDMA_CSR_TX_ADDR	__BIT(19)	/* Address */
#define SDMA_CSR_TX_NS		__BIT(20)	/* No Stop Bit */
#define SDMA_CSR_TX_RESc	__BITS(22,21)
#define SDMA_CSR_TX_EI		__BIT(23)	/* Enable Interrupt */
#define SDMA_CSR_TX_RESd	__BITS(29,24)
#define SDMA_CSR_TX_AUTO	__BIT(30)	/* Auto Mode */
#define SDMA_CSR_TX_OWN		__BIT(31)	/* Owner */
#define SDMA_CSR_TX_RES \
	(SDMA_CSR_TX_RESa|SDMA_CSR_TX_RESb|SDMA_CSR_TX_RESc|SDMA_CSR_TX_RESd)
/*
 * MPSCx Protocol Configuration Register for UART Mode
 */
#define GTMPSC_MPCR_RESa	__BITS(5,0)
#define GTMPSC_MPCR_DRT		__BIT(6)	/* Disable Rx on Tx */
#define GTMPSC_MPCR_ISO		__BIT(7)	/* Isochronous Mode */
#define GTMPSC_MPCR_RZS		__BIT(8)	/* Rx Zero Stop Bit(s) */
#define GTMPSC_MPCR_FRZ		__BIT(9)	/* Freeze Tx */
#define GTMPSC_MPCR_UM_MASK	__BITS(11,10)	/* UART Mode mask */
#define GTMPSC_MPCR_UM_NORM	(0 << 10)	/* Normal UART Mode */
#define GTMPSC_MPCR_UM_MDROP	(1 << 10)	/* Multi-Drop UART Mode */
						/* other values are resvd. */
#define GTMPSC_MPCR_CLMASK	__BITS(13,12)	/* Character Length mask */
#define GTMPSC_MPCR_CL_5	(0 << 12)	/* 5 data bits */
#define GTMPSC_MPCR_CL_6	(1 << 12)	/* 6 data bits */
#define GTMPSC_MPCR_CL_7	(2 << 12)	/* 7 data bits */
#define GTMPSC_MPCR_CL_8	(3 << 12)	/* 8 data bits */
#define GTMPSC_MPCR_SBL_1	(0 << 14)	/* 1 stop bit */
#define GTMPSC_MPCR_SBL_2	(1 << 14)	/* 2 stop bits */
#define GTMPSC_MPCR_FLC_NORM	0x0		/* Normal Flow Ctl mode */
#define GTMPSC_MPCR_FLC_ASYNC	__BIT(15)	/* Asynchronous Flow Ctl mode */
#define GTMPSC_MPCR_RESb	__BITS(31,16)
#define GTMPSC_MPCR_RES (GTMPSC_MPCR_RESa|GTMPSC_MPCR_RESb)
/*
 * MPSC Channel Register 1 for UART Mode "Break/Stuff"
 */
#define GTMPSC_CHR1_TCS		__BITS(7,0)	/* Constrol Stuff Character */
#define GTMPSC_CHR1_BRK		__BITS(23,16)	/* Break Count */
#define GTMPSC_CHR1_RES		__BITS(15,8)|__BITS(31,24)
/*
 * MPSC Channel Register 2 for UART Mode "Command"
 */
#define GTMPSC_CHR2_RESa	__BIT(0)
#define GTMPSC_CHR2_TEV		__BIT(1)	/* Tx Enb. Vert. Redundancy  */
#define GTMPSC_CHR2_TPM_MASK	__BITS(3,2)	/* Tx Parity Mode mask */
#define GTMPSC_CHR2_TPM_ODD	(0 << 2)	/* Odd Tx Parity */
#define GTMPSC_CHR2_TPM_LOW	(1 << 2)	/* Low (always 0) Tx Parity */
#define GTMPSC_CHR2_TPM_EVEN	(2 << 2)	/* Even Tx Parity */
#define GTMPSC_CHR2_TPM_HIGH	(3 << 2)	/* High (always 1) Tx Parity */
#define GTMPSC_CHR2_RESb	__BITS(6,4)
#define GTMPSC_CHR2_TXABORT	__BIT(7)	/* Tx Abort */
#define GTMPSC_CHR2_RESc	__BIT(8)
#define GTMPSC_CHR2_TCS		__BIT(9)	/* Tx TCS Char */
#define GTMPSC_CHR2_RESd	__BITS(16,10)
#define GTMPSC_CHR2_REC		__BIT(17)	/* Rx Enb. Vert. Redundancy */
#define GTMPSC_CHR2_RPM_MASK	__BITS(19,18)	/* Rx Parity Mode mask */
#define GTMPSC_CHR2_RPM_ODD	(0 << 18)	/* Odd Rx Parity */
#define GTMPSC_CHR2_RPM_LOW	(1 << 18)	/* Low (always 0) Rx Parity */
#define GTMPSC_CHR2_RPM_EVEN	(2 << 18)	/* Even Rx Parity */
#define GTMPSC_CHR2_RPM_HIGH	(3 << 18)	/* High (always 1) Rx Parity */
#define GTMPSC_CHR2_RESe	__BITS(22,20)
#define GTMPSC_CHR2_RXABORT	__BIT(23)	/* Rx Abort */
#define GTMPSC_CHR2_RESf	__BIT(24)
#define GTMPSC_CHR2_CRD		__BIT(25)	/* Close RX Descriptor */
#define GTMPSC_CHR2_RESg	__BITS(30,26)
#define GTMPSC_CHR2_EH		__BIT(31)	/* Enter Hunt */
#define GTMPSC_CHR2_RES \
		(GTMPSC_CHR2_RESa|GTMPSC_CHR2_RESb|GTMPSC_CHR2_RESc| \
		 GTMPSC_CHR2_RESd|GTMPSC_CHR2_RESe|GTMPSC_CHR2_RESf| \
		 GTMPSC_CHR2_RESg)
/*
 * MPSC Channel Register 3 for UART Mode "Max Idle"
 */
#define GTMPSC_CHR3_MIR		__BITS(15,0)	/* Max Idle Char count */
#define GTMPSC_CHR3_RES		__BITS(31,16)
/*
 * MPSC Channel Register 4 for UART Mode "Control Filtering"
 */
#define GTMPSC_CHR4_CFR		__BITS(7,0)	/* Control bit compare enable */
#define GTMPSC_CHR4_RES		__BITS(31,8)
/*
 * MPSC Channel Registers 5..8 for UART Mode "UART Control Character"
 *
 * NOTE: two 16 bit CHRCC fields exist in each of Channel Registers 5..8
 */
#define GTMPSC_CHRCC_SHIFT	16
#define GTMPSC_CHRCC_CHAR	__BITS(7,0)	/* the control character */
#define GTMPSC_CHRCC_RES	__BITS(11,8)
#define GTMPSC_CHRCC_INT	__BIT(12)	/* Interrupt */
#define GTMPSC_CHRCC_CO		__BIT(13)	/* ISO 3309 Control Octet */
#define GTMPSC_CHRCC_R		__BIT(14)	/* Reject */
#define GTMPSC_CHRCC_V		__BIT(15)	/* Valid */
/*
 * MPSC Channel Register 9 for UART Mode "Address" (for multidrop operation)
 */
#define GTMPSC_CHR9_AD1		__BITS(7,0)	/* address #1 */
#define GTMPSC_CHR9_RESa	__BITS(14,8)
#define GTMPSC_CHR9_MODE1	__BIT(15)	/* mode #1 */
#define GTMPSC_CHR9_AD2		__BITS(23,16)	/* address #2 */
#define GTMPSC_CHR9_RESb	__BITS(30,24)
#define GTMPSC_CHR9_MODE2	__BIT(31)	/* mode #2 */
#define GTMPSC_CHR9_RES	(GTMPSC_CHR9_RESa|GTMPSC_CHR9_RESb)
/*
 * MPSC Channel Register 10 for UART Mode "Event Status"
 */
#define GTMPSC_CHR10_CTS	__BIT(0)	/* Clear To Send */
#define GTMPSC_CHR10_CD		__BIT(1)	/* Carrier Detect */
#define GTMPSC_CHR10_RESa	__BIT(2)
#define GTMPSC_CHR10_TIDLE	__BIT(3)	/* Tx in Idle State */
#define GTMPSC_CHR10_RESb	__BIT(4)
#define GTMPSC_CHR10_RHS	__BIT(5)	/* Rx in HUNT State */
#define GTMPSC_CHR10_RESc	__BIT(6)
#define GTMPSC_CHR10_RLS	__BIT(7)	/* Rx Line STatus */
#define GTMPSC_CHR10_RESd	__BITS(10,8)
#define GTMPSC_CHR10_RLIDL	__BIT(11)	/* Rx IDLE Line */
#define GTMPSC_CHR10_RESe	__BITS(15,12)
#define GTMPSC_CHR10_RCRn	__BITS(23,16)	/* Received Control Char # */
#define GTMPSC_CHR10_RESf	__BITS(31,24)
#define GTMPSC_CHR10_RES \
		(GTMPSC_CHR10_RESa|GTMPSC_CHR10_RESb|GTMPSC_CHR10_RESc \
		|GTMPSC_CHR10_RESd|GTMPSC_CHR10_RESe|GTMPSC_CHR10_RESf)


#endif	/* _GTMPSCREG_H */