xref: /OK3568_Linux_fs/kernel/drivers/scsi/ufs/unipro.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * drivers/scsi/ufs/unipro.h
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Copyright (C) 2013 Samsung Electronics Co., Ltd.
6*4882a593Smuzhiyun  */
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #ifndef _UNIPRO_H_
9*4882a593Smuzhiyun #define _UNIPRO_H_
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun /*
12*4882a593Smuzhiyun  * M-TX Configuration Attributes
13*4882a593Smuzhiyun  */
14*4882a593Smuzhiyun #define TX_HIBERN8TIME_CAPABILITY		0x000F
15*4882a593Smuzhiyun #define TX_MODE					0x0021
16*4882a593Smuzhiyun #define TX_HSRATE_SERIES			0x0022
17*4882a593Smuzhiyun #define TX_HSGEAR				0x0023
18*4882a593Smuzhiyun #define TX_PWMGEAR				0x0024
19*4882a593Smuzhiyun #define TX_AMPLITUDE				0x0025
20*4882a593Smuzhiyun #define TX_HS_SLEWRATE				0x0026
21*4882a593Smuzhiyun #define TX_SYNC_SOURCE				0x0027
22*4882a593Smuzhiyun #define TX_HS_SYNC_LENGTH			0x0028
23*4882a593Smuzhiyun #define TX_HS_PREPARE_LENGTH			0x0029
24*4882a593Smuzhiyun #define TX_LS_PREPARE_LENGTH			0x002A
25*4882a593Smuzhiyun #define TX_HIBERN8_CONTROL			0x002B
26*4882a593Smuzhiyun #define TX_LCC_ENABLE				0x002C
27*4882a593Smuzhiyun #define TX_PWM_BURST_CLOSURE_EXTENSION		0x002D
28*4882a593Smuzhiyun #define TX_BYPASS_8B10B_ENABLE			0x002E
29*4882a593Smuzhiyun #define TX_DRIVER_POLARITY			0x002F
30*4882a593Smuzhiyun #define TX_HS_UNTERMINATED_LINE_DRIVE_ENABLE	0x0030
31*4882a593Smuzhiyun #define TX_LS_TERMINATED_LINE_DRIVE_ENABLE	0x0031
32*4882a593Smuzhiyun #define TX_LCC_SEQUENCER			0x0032
33*4882a593Smuzhiyun #define TX_MIN_ACTIVATETIME			0x0033
34*4882a593Smuzhiyun #define TX_PWM_G6_G7_SYNC_LENGTH		0x0034
35*4882a593Smuzhiyun #define TX_REFCLKFREQ				0x00EB
36*4882a593Smuzhiyun #define TX_CFGCLKFREQVAL			0x00EC
37*4882a593Smuzhiyun #define	CFGEXTRATTR				0x00F0
38*4882a593Smuzhiyun #define DITHERCTRL2				0x00F1
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun /*
41*4882a593Smuzhiyun  * M-RX Configuration Attributes
42*4882a593Smuzhiyun  */
43*4882a593Smuzhiyun #define RX_MODE					0x00A1
44*4882a593Smuzhiyun #define RX_HSRATE_SERIES			0x00A2
45*4882a593Smuzhiyun #define RX_HSGEAR				0x00A3
46*4882a593Smuzhiyun #define RX_PWMGEAR				0x00A4
47*4882a593Smuzhiyun #define RX_LS_TERMINATED_ENABLE			0x00A5
48*4882a593Smuzhiyun #define RX_HS_UNTERMINATED_ENABLE		0x00A6
49*4882a593Smuzhiyun #define RX_ENTER_HIBERN8			0x00A7
50*4882a593Smuzhiyun #define RX_BYPASS_8B10B_ENABLE			0x00A8
51*4882a593Smuzhiyun #define RX_TERMINATION_FORCE_ENABLE		0x00A9
52*4882a593Smuzhiyun #define RX_MIN_ACTIVATETIME_CAPABILITY		0x008F
53*4882a593Smuzhiyun #define RX_HIBERN8TIME_CAPABILITY		0x0092
54*4882a593Smuzhiyun #define RX_REFCLKFREQ				0x00EB
55*4882a593Smuzhiyun #define	RX_CFGCLKFREQVAL			0x00EC
56*4882a593Smuzhiyun #define CFGWIDEINLN				0x00F0
57*4882a593Smuzhiyun #define CFGRXCDR8				0x00BA
58*4882a593Smuzhiyun #define ENARXDIRECTCFG4				0x00F2
59*4882a593Smuzhiyun #define CFGRXOVR8				0x00BD
60*4882a593Smuzhiyun #define RXDIRECTCTRL2				0x00C7
61*4882a593Smuzhiyun #define ENARXDIRECTCFG3				0x00F3
62*4882a593Smuzhiyun #define RXCALCTRL				0x00B4
63*4882a593Smuzhiyun #define ENARXDIRECTCFG2				0x00F4
64*4882a593Smuzhiyun #define CFGRXOVR4				0x00E9
65*4882a593Smuzhiyun #define RXSQCTRL				0x00B5
66*4882a593Smuzhiyun #define CFGRXOVR6				0x00BF
67*4882a593Smuzhiyun #define RX_HS_G1_SYNC_LENGTH_CAP		0x008B
68*4882a593Smuzhiyun #define RX_HS_G1_PREP_LENGTH_CAP		0x008C
69*4882a593Smuzhiyun #define RX_HS_G2_SYNC_LENGTH_CAP		0x0094
70*4882a593Smuzhiyun #define RX_HS_G3_SYNC_LENGTH_CAP		0x0095
71*4882a593Smuzhiyun #define RX_HS_G2_PREP_LENGTH_CAP		0x0096
72*4882a593Smuzhiyun #define RX_HS_G3_PREP_LENGTH_CAP		0x0097
73*4882a593Smuzhiyun #define RX_ADV_GRANULARITY_CAP			0x0098
74*4882a593Smuzhiyun #define RX_MIN_ACTIVATETIME_CAP			0x008F
75*4882a593Smuzhiyun #define RX_HIBERN8TIME_CAP			0x0092
76*4882a593Smuzhiyun #define RX_ADV_HIBERN8TIME_CAP			0x0099
77*4882a593Smuzhiyun #define RX_ADV_MIN_ACTIVATETIME_CAP		0x009A
78*4882a593Smuzhiyun 
79*4882a593Smuzhiyun 
80*4882a593Smuzhiyun #define is_mphy_tx_attr(attr)			(attr < RX_MODE)
81*4882a593Smuzhiyun #define RX_ADV_FINE_GRAN_STEP(x)		((((x) & 0x3) << 1) | 0x1)
82*4882a593Smuzhiyun #define SYNC_LEN_FINE(x)			((x) & 0x3F)
83*4882a593Smuzhiyun #define SYNC_LEN_COARSE(x)			((1 << 6) | ((x) & 0x3F))
84*4882a593Smuzhiyun #define PREP_LEN(x)				((x) & 0xF)
85*4882a593Smuzhiyun 
86*4882a593Smuzhiyun #define RX_MIN_ACTIVATETIME_UNIT_US		100
87*4882a593Smuzhiyun #define HIBERN8TIME_UNIT_US			100
88*4882a593Smuzhiyun 
89*4882a593Smuzhiyun /*
90*4882a593Smuzhiyun  * Common Block Attributes
91*4882a593Smuzhiyun  */
92*4882a593Smuzhiyun #define TX_GLOBALHIBERNATE			UNIPRO_CB_OFFSET(0x002B)
93*4882a593Smuzhiyun #define REFCLKMODE				UNIPRO_CB_OFFSET(0x00BF)
94*4882a593Smuzhiyun #define DIRECTCTRL19				UNIPRO_CB_OFFSET(0x00CD)
95*4882a593Smuzhiyun #define DIRECTCTRL10				UNIPRO_CB_OFFSET(0x00E6)
96*4882a593Smuzhiyun #define CDIRECTCTRL6				UNIPRO_CB_OFFSET(0x00EA)
97*4882a593Smuzhiyun #define RTOBSERVESELECT				UNIPRO_CB_OFFSET(0x00F0)
98*4882a593Smuzhiyun #define CBDIVFACTOR				UNIPRO_CB_OFFSET(0x00F1)
99*4882a593Smuzhiyun #define CBDCOCTRL5				UNIPRO_CB_OFFSET(0x00F3)
100*4882a593Smuzhiyun #define CBPRGPLL2				UNIPRO_CB_OFFSET(0x00F8)
101*4882a593Smuzhiyun #define CBPRGTUNING				UNIPRO_CB_OFFSET(0x00FB)
102*4882a593Smuzhiyun 
103*4882a593Smuzhiyun #define UNIPRO_CB_OFFSET(x)			(0x8000 | x)
104*4882a593Smuzhiyun 
105*4882a593Smuzhiyun /*
106*4882a593Smuzhiyun  * PHY Adpater attributes
107*4882a593Smuzhiyun  */
108*4882a593Smuzhiyun #define PA_ACTIVETXDATALANES	0x1560
109*4882a593Smuzhiyun #define PA_ACTIVERXDATALANES	0x1580
110*4882a593Smuzhiyun #define PA_TXTRAILINGCLOCKS	0x1564
111*4882a593Smuzhiyun #define PA_PHY_TYPE		0x1500
112*4882a593Smuzhiyun #define PA_AVAILTXDATALANES	0x1520
113*4882a593Smuzhiyun #define PA_AVAILRXDATALANES	0x1540
114*4882a593Smuzhiyun #define PA_MINRXTRAILINGCLOCKS	0x1543
115*4882a593Smuzhiyun #define PA_TXPWRSTATUS		0x1567
116*4882a593Smuzhiyun #define PA_RXPWRSTATUS		0x1582
117*4882a593Smuzhiyun #define PA_TXFORCECLOCK		0x1562
118*4882a593Smuzhiyun #define PA_TXPWRMODE		0x1563
119*4882a593Smuzhiyun #define PA_LEGACYDPHYESCDL	0x1570
120*4882a593Smuzhiyun #define PA_MAXTXSPEEDFAST	0x1521
121*4882a593Smuzhiyun #define PA_MAXTXSPEEDSLOW	0x1522
122*4882a593Smuzhiyun #define PA_MAXRXSPEEDFAST	0x1541
123*4882a593Smuzhiyun #define PA_MAXRXSPEEDSLOW	0x1542
124*4882a593Smuzhiyun #define PA_TXLINKSTARTUPHS	0x1544
125*4882a593Smuzhiyun #define PA_LOCAL_TX_LCC_ENABLE	0x155E
126*4882a593Smuzhiyun #define PA_TXSPEEDFAST		0x1565
127*4882a593Smuzhiyun #define PA_TXSPEEDSLOW		0x1566
128*4882a593Smuzhiyun #define PA_REMOTEVERINFO	0x15A0
129*4882a593Smuzhiyun #define PA_TXGEAR		0x1568
130*4882a593Smuzhiyun #define PA_TXTERMINATION	0x1569
131*4882a593Smuzhiyun #define PA_HSSERIES		0x156A
132*4882a593Smuzhiyun #define PA_PWRMODE		0x1571
133*4882a593Smuzhiyun #define PA_RXGEAR		0x1583
134*4882a593Smuzhiyun #define PA_RXTERMINATION	0x1584
135*4882a593Smuzhiyun #define PA_MAXRXPWMGEAR		0x1586
136*4882a593Smuzhiyun #define PA_MAXRXHSGEAR		0x1587
137*4882a593Smuzhiyun #define PA_RXHSUNTERMCAP	0x15A5
138*4882a593Smuzhiyun #define PA_RXLSTERMCAP		0x15A6
139*4882a593Smuzhiyun #define PA_GRANULARITY		0x15AA
140*4882a593Smuzhiyun #define PA_PACPREQTIMEOUT	0x1590
141*4882a593Smuzhiyun #define PA_PACPREQEOBTIMEOUT	0x1591
142*4882a593Smuzhiyun #define PA_HIBERN8TIME		0x15A7
143*4882a593Smuzhiyun #define PA_LOCALVERINFO		0x15A9
144*4882a593Smuzhiyun #define PA_GRANULARITY		0x15AA
145*4882a593Smuzhiyun #define PA_TACTIVATE		0x15A8
146*4882a593Smuzhiyun #define PA_PACPFRAMECOUNT	0x15C0
147*4882a593Smuzhiyun #define PA_PACPERRORCOUNT	0x15C1
148*4882a593Smuzhiyun #define PA_PHYTESTCONTROL	0x15C2
149*4882a593Smuzhiyun #define PA_PWRMODEUSERDATA0	0x15B0
150*4882a593Smuzhiyun #define PA_PWRMODEUSERDATA1	0x15B1
151*4882a593Smuzhiyun #define PA_PWRMODEUSERDATA2	0x15B2
152*4882a593Smuzhiyun #define PA_PWRMODEUSERDATA3	0x15B3
153*4882a593Smuzhiyun #define PA_PWRMODEUSERDATA4	0x15B4
154*4882a593Smuzhiyun #define PA_PWRMODEUSERDATA5	0x15B5
155*4882a593Smuzhiyun #define PA_PWRMODEUSERDATA6	0x15B6
156*4882a593Smuzhiyun #define PA_PWRMODEUSERDATA7	0x15B7
157*4882a593Smuzhiyun #define PA_PWRMODEUSERDATA8	0x15B8
158*4882a593Smuzhiyun #define PA_PWRMODEUSERDATA9	0x15B9
159*4882a593Smuzhiyun #define PA_PWRMODEUSERDATA10	0x15BA
160*4882a593Smuzhiyun #define PA_PWRMODEUSERDATA11	0x15BB
161*4882a593Smuzhiyun #define PA_CONNECTEDTXDATALANES	0x1561
162*4882a593Smuzhiyun #define PA_CONNECTEDRXDATALANES	0x1581
163*4882a593Smuzhiyun #define PA_LOGICALLANEMAP	0x15A1
164*4882a593Smuzhiyun #define PA_SLEEPNOCONFIGTIME	0x15A2
165*4882a593Smuzhiyun #define PA_STALLNOCONFIGTIME	0x15A3
166*4882a593Smuzhiyun #define PA_SAVECONFIGTIME	0x15A4
167*4882a593Smuzhiyun #define PA_TXHSADAPTTYPE       0x15D4
168*4882a593Smuzhiyun 
169*4882a593Smuzhiyun /* Adpat type for PA_TXHSADAPTTYPE attribute */
170*4882a593Smuzhiyun #define PA_REFRESH_ADAPT       0x00
171*4882a593Smuzhiyun #define PA_INITIAL_ADAPT       0x01
172*4882a593Smuzhiyun #define PA_NO_ADAPT            0x03
173*4882a593Smuzhiyun 
174*4882a593Smuzhiyun #define PA_TACTIVATE_TIME_UNIT_US	10
175*4882a593Smuzhiyun #define PA_HIBERN8_TIME_UNIT_US		100
176*4882a593Smuzhiyun 
177*4882a593Smuzhiyun /*Other attributes*/
178*4882a593Smuzhiyun #define VS_MPHYCFGUPDT		0xD085
179*4882a593Smuzhiyun #define VS_DEBUGOMC		0xD09E
180*4882a593Smuzhiyun #define VS_POWERSTATE		0xD083
181*4882a593Smuzhiyun 
182*4882a593Smuzhiyun #define PA_GRANULARITY_MIN_VAL	1
183*4882a593Smuzhiyun #define PA_GRANULARITY_MAX_VAL	6
184*4882a593Smuzhiyun 
185*4882a593Smuzhiyun /* PHY Adapter Protocol Constants */
186*4882a593Smuzhiyun #define PA_MAXDATALANES	4
187*4882a593Smuzhiyun 
188*4882a593Smuzhiyun #define DL_FC0ProtectionTimeOutVal_Default	8191
189*4882a593Smuzhiyun #define DL_TC0ReplayTimeOutVal_Default		65535
190*4882a593Smuzhiyun #define DL_AFC0ReqTimeOutVal_Default		32767
191*4882a593Smuzhiyun #define DL_FC1ProtectionTimeOutVal_Default	8191
192*4882a593Smuzhiyun #define DL_TC1ReplayTimeOutVal_Default		65535
193*4882a593Smuzhiyun #define DL_AFC1ReqTimeOutVal_Default		32767
194*4882a593Smuzhiyun 
195*4882a593Smuzhiyun #define DME_LocalFC0ProtectionTimeOutVal	0xD041
196*4882a593Smuzhiyun #define DME_LocalTC0ReplayTimeOutVal		0xD042
197*4882a593Smuzhiyun #define DME_LocalAFC0ReqTimeOutVal		0xD043
198*4882a593Smuzhiyun 
199*4882a593Smuzhiyun /* PA power modes */
200*4882a593Smuzhiyun enum {
201*4882a593Smuzhiyun 	FAST_MODE	= 1,
202*4882a593Smuzhiyun 	SLOW_MODE	= 2,
203*4882a593Smuzhiyun 	FASTAUTO_MODE	= 4,
204*4882a593Smuzhiyun 	SLOWAUTO_MODE	= 5,
205*4882a593Smuzhiyun 	UNCHANGED	= 7,
206*4882a593Smuzhiyun };
207*4882a593Smuzhiyun 
208*4882a593Smuzhiyun #define PWRMODE_MASK		0xF
209*4882a593Smuzhiyun #define PWRMODE_RX_OFFSET	4
210*4882a593Smuzhiyun 
211*4882a593Smuzhiyun /* PA TX/RX Frequency Series */
212*4882a593Smuzhiyun enum {
213*4882a593Smuzhiyun 	PA_HS_MODE_A	= 1,
214*4882a593Smuzhiyun 	PA_HS_MODE_B	= 2,
215*4882a593Smuzhiyun };
216*4882a593Smuzhiyun 
217*4882a593Smuzhiyun enum ufs_pwm_gear_tag {
218*4882a593Smuzhiyun 	UFS_PWM_DONT_CHANGE,	/* Don't change Gear */
219*4882a593Smuzhiyun 	UFS_PWM_G1,		/* PWM Gear 1 (default for reset) */
220*4882a593Smuzhiyun 	UFS_PWM_G2,		/* PWM Gear 2 */
221*4882a593Smuzhiyun 	UFS_PWM_G3,		/* PWM Gear 3 */
222*4882a593Smuzhiyun 	UFS_PWM_G4,		/* PWM Gear 4 */
223*4882a593Smuzhiyun 	UFS_PWM_G5,		/* PWM Gear 5 */
224*4882a593Smuzhiyun 	UFS_PWM_G6,		/* PWM Gear 6 */
225*4882a593Smuzhiyun 	UFS_PWM_G7,		/* PWM Gear 7 */
226*4882a593Smuzhiyun };
227*4882a593Smuzhiyun 
228*4882a593Smuzhiyun enum ufs_hs_gear_tag {
229*4882a593Smuzhiyun 	UFS_HS_DONT_CHANGE,	/* Don't change Gear */
230*4882a593Smuzhiyun 	UFS_HS_G1,		/* HS Gear 1 (default for reset) */
231*4882a593Smuzhiyun 	UFS_HS_G2,		/* HS Gear 2 */
232*4882a593Smuzhiyun 	UFS_HS_G3,		/* HS Gear 3 */
233*4882a593Smuzhiyun 	UFS_HS_G4,		/* HS Gear 4 */
234*4882a593Smuzhiyun };
235*4882a593Smuzhiyun 
236*4882a593Smuzhiyun enum ufs_unipro_ver {
237*4882a593Smuzhiyun 	UFS_UNIPRO_VER_RESERVED = 0,
238*4882a593Smuzhiyun 	UFS_UNIPRO_VER_1_40 = 1, /* UniPro version 1.40 */
239*4882a593Smuzhiyun 	UFS_UNIPRO_VER_1_41 = 2, /* UniPro version 1.41 */
240*4882a593Smuzhiyun 	UFS_UNIPRO_VER_1_6  = 3, /* UniPro version 1.6 */
241*4882a593Smuzhiyun 	UFS_UNIPRO_VER_1_61 = 4, /* UniPro version 1.61 */
242*4882a593Smuzhiyun 	UFS_UNIPRO_VER_1_8  = 5, /* UniPro version 1.8 */
243*4882a593Smuzhiyun 	UFS_UNIPRO_VER_MAX  = 6, /* UniPro unsupported version */
244*4882a593Smuzhiyun 	/* UniPro version field mask in PA_LOCALVERINFO */
245*4882a593Smuzhiyun 	UFS_UNIPRO_VER_MASK = 0xF,
246*4882a593Smuzhiyun };
247*4882a593Smuzhiyun 
248*4882a593Smuzhiyun /*
249*4882a593Smuzhiyun  * Data Link Layer Attributes
250*4882a593Smuzhiyun  */
251*4882a593Smuzhiyun #define DL_TC0TXFCTHRESHOLD	0x2040
252*4882a593Smuzhiyun #define DL_FC0PROTTIMEOUTVAL	0x2041
253*4882a593Smuzhiyun #define DL_TC0REPLAYTIMEOUTVAL	0x2042
254*4882a593Smuzhiyun #define DL_AFC0REQTIMEOUTVAL	0x2043
255*4882a593Smuzhiyun #define DL_AFC0CREDITTHRESHOLD	0x2044
256*4882a593Smuzhiyun #define DL_TC0OUTACKTHRESHOLD	0x2045
257*4882a593Smuzhiyun #define DL_TC1TXFCTHRESHOLD	0x2060
258*4882a593Smuzhiyun #define DL_FC1PROTTIMEOUTVAL	0x2061
259*4882a593Smuzhiyun #define DL_TC1REPLAYTIMEOUTVAL	0x2062
260*4882a593Smuzhiyun #define DL_AFC1REQTIMEOUTVAL	0x2063
261*4882a593Smuzhiyun #define DL_AFC1CREDITTHRESHOLD	0x2064
262*4882a593Smuzhiyun #define DL_TC1OUTACKTHRESHOLD	0x2065
263*4882a593Smuzhiyun #define DL_TXPREEMPTIONCAP	0x2000
264*4882a593Smuzhiyun #define DL_TC0TXMAXSDUSIZE	0x2001
265*4882a593Smuzhiyun #define DL_TC0RXINITCREDITVAL	0x2002
266*4882a593Smuzhiyun #define DL_TC0TXBUFFERSIZE	0x2005
267*4882a593Smuzhiyun #define DL_PEERTC0PRESENT	0x2046
268*4882a593Smuzhiyun #define DL_PEERTC0RXINITCREVAL	0x2047
269*4882a593Smuzhiyun #define DL_TC1TXMAXSDUSIZE	0x2003
270*4882a593Smuzhiyun #define DL_TC1RXINITCREDITVAL	0x2004
271*4882a593Smuzhiyun #define DL_TC1TXBUFFERSIZE	0x2006
272*4882a593Smuzhiyun #define DL_PEERTC1PRESENT	0x2066
273*4882a593Smuzhiyun #define DL_PEERTC1RXINITCREVAL	0x2067
274*4882a593Smuzhiyun 
275*4882a593Smuzhiyun /*
276*4882a593Smuzhiyun  * Network Layer Attributes
277*4882a593Smuzhiyun  */
278*4882a593Smuzhiyun #define N_DEVICEID		0x3000
279*4882a593Smuzhiyun #define N_DEVICEID_VALID	0x3001
280*4882a593Smuzhiyun #define N_TC0TXMAXSDUSIZE	0x3020
281*4882a593Smuzhiyun #define N_TC1TXMAXSDUSIZE	0x3021
282*4882a593Smuzhiyun 
283*4882a593Smuzhiyun /*
284*4882a593Smuzhiyun  * Transport Layer Attributes
285*4882a593Smuzhiyun  */
286*4882a593Smuzhiyun #define T_NUMCPORTS		0x4000
287*4882a593Smuzhiyun #define T_NUMTESTFEATURES	0x4001
288*4882a593Smuzhiyun #define T_CONNECTIONSTATE	0x4020
289*4882a593Smuzhiyun #define T_PEERDEVICEID		0x4021
290*4882a593Smuzhiyun #define T_PEERCPORTID		0x4022
291*4882a593Smuzhiyun #define T_TRAFFICCLASS		0x4023
292*4882a593Smuzhiyun #define T_PROTOCOLID		0x4024
293*4882a593Smuzhiyun #define T_CPORTFLAGS		0x4025
294*4882a593Smuzhiyun #define T_TXTOKENVALUE		0x4026
295*4882a593Smuzhiyun #define T_RXTOKENVALUE		0x4027
296*4882a593Smuzhiyun #define T_LOCALBUFFERSPACE	0x4028
297*4882a593Smuzhiyun #define T_PEERBUFFERSPACE	0x4029
298*4882a593Smuzhiyun #define T_CREDITSTOSEND		0x402A
299*4882a593Smuzhiyun #define T_CPORTMODE		0x402B
300*4882a593Smuzhiyun #define T_TC0TXMAXSDUSIZE	0x4060
301*4882a593Smuzhiyun #define T_TC1TXMAXSDUSIZE	0x4061
302*4882a593Smuzhiyun 
303*4882a593Smuzhiyun #ifdef FALSE
304*4882a593Smuzhiyun #undef FALSE
305*4882a593Smuzhiyun #endif
306*4882a593Smuzhiyun 
307*4882a593Smuzhiyun #ifdef TRUE
308*4882a593Smuzhiyun #undef TRUE
309*4882a593Smuzhiyun #endif
310*4882a593Smuzhiyun 
311*4882a593Smuzhiyun /* Boolean attribute values */
312*4882a593Smuzhiyun enum {
313*4882a593Smuzhiyun 	FALSE = 0,
314*4882a593Smuzhiyun 	TRUE,
315*4882a593Smuzhiyun };
316*4882a593Smuzhiyun 
317*4882a593Smuzhiyun /* CPort setting */
318*4882a593Smuzhiyun #define E2EFC_ON	(1 << 0)
319*4882a593Smuzhiyun #define E2EFC_OFF	(0 << 0)
320*4882a593Smuzhiyun #define CSD_N_ON	(0 << 1)
321*4882a593Smuzhiyun #define CSD_N_OFF	(1 << 1)
322*4882a593Smuzhiyun #define CSV_N_ON	(0 << 2)
323*4882a593Smuzhiyun #define CSV_N_OFF	(1 << 2)
324*4882a593Smuzhiyun #define CPORT_DEF_FLAGS	(CSV_N_OFF | CSD_N_OFF | E2EFC_OFF)
325*4882a593Smuzhiyun 
326*4882a593Smuzhiyun /* CPort connection state */
327*4882a593Smuzhiyun enum {
328*4882a593Smuzhiyun 	CPORT_IDLE = 0,
329*4882a593Smuzhiyun 	CPORT_CONNECTED,
330*4882a593Smuzhiyun };
331*4882a593Smuzhiyun 
332*4882a593Smuzhiyun #endif /* _UNIPRO_H_ */
333