xref: /openbmc/u-boot/drivers/video/logicore_dp_dpcd.h (revision 282ce6454c45409805e2c470bbec170d21a4bd35)
1*25a9f974SMario Six /* SPDX-License-Identifier: GPL-2.0+ */
2*25a9f974SMario Six /*
3*25a9f974SMario Six  * logicore_dp_dpcd.h
4*25a9f974SMario Six  *
5*25a9f974SMario Six  * DPCD interface definition for XILINX LogiCore DisplayPort v6.1
6*25a9f974SMario Six  * based on Xilinx dp_v3_1 driver sources
7*25a9f974SMario Six  *
8*25a9f974SMario Six  * (C) Copyright 2016
9*25a9f974SMario Six  * Dirk Eibach,  Guntermann & Drunck GmbH, dirk.eibach@gdsys.cc
10*25a9f974SMario Six  */
11*25a9f974SMario Six 
12*25a9f974SMario Six #ifndef __GDSYS_LOGICORE_DP_DPCD_H__
13*25a9f974SMario Six #define __GDSYS_LOGICORE_DP_DPCD_H__
14*25a9f974SMario Six 
15*25a9f974SMario Six /* receiver capability field */
16*25a9f974SMario Six #define DPCD_REV						0x00000
17*25a9f974SMario Six #define DPCD_MAX_LINK_RATE					0x00001
18*25a9f974SMario Six #define DPCD_MAX_LANE_COUNT					0x00002
19*25a9f974SMario Six #define DPCD_MAX_DOWNSPREAD					0x00003
20*25a9f974SMario Six #define DPCD_NORP_PWR_V_CAP					0x00004
21*25a9f974SMario Six #define DPCD_DOWNSP_PRESENT					0x00005
22*25a9f974SMario Six #define DPCD_ML_CH_CODING_CAP					0x00006
23*25a9f974SMario Six #define DPCD_DOWNSP_COUNT_MSA_OUI				0x00007
24*25a9f974SMario Six #define	DPCD_RX_PORT0_CAP_0					0x00008
25*25a9f974SMario Six #define	DPCD_RX_PORT0_CAP_1					0x00009
26*25a9f974SMario Six #define	DPCD_RX_PORT1_CAP_0					0x0000A
27*25a9f974SMario Six #define	DPCD_RX_PORT1_CAP_1					0x0000B
28*25a9f974SMario Six #define DPCD_I2C_SPEED_CTL_CAP					0x0000C
29*25a9f974SMario Six #define DPCD_EDP_CFG_CAP					0x0000D
30*25a9f974SMario Six #define DPCD_TRAIN_AUX_RD_INTERVAL				0x0000E
31*25a9f974SMario Six #define DPCD_ADAPTER_CAP					0x0000F
32*25a9f974SMario Six #define DPCD_FAUX_CAP						0x00020
33*25a9f974SMario Six #define DPCD_MSTM_CAP						0x00021
34*25a9f974SMario Six #define DPCD_NUM_AUDIO_EPS					0x00022
35*25a9f974SMario Six #define	DPCD_AV_GRANULARITY					0x00023
36*25a9f974SMario Six #define DPCD_AUD_DEC_LAT_7_0					0x00024
37*25a9f974SMario Six #define DPCD_AUD_DEC_LAT_15_8					0x00025
38*25a9f974SMario Six #define DPCD_AUD_PP_LAT_7_0					0x00026
39*25a9f974SMario Six #define DPCD_AUD_PP_LAT_15_8					0x00027
40*25a9f974SMario Six #define DPCD_VID_INTER_LAT					0x00028
41*25a9f974SMario Six #define DPCD_VID_PROG_LAT					0x00029
42*25a9f974SMario Six #define DPCD_REP_LAT						0x0002A
43*25a9f974SMario Six #define DPCD_AUD_DEL_INS_7_0					0x0002B
44*25a9f974SMario Six #define DPCD_AUD_DEL_INS_15_8					0x0002C
45*25a9f974SMario Six #define DPCD_AUD_DEL_INS_23_16					0x0002D
46*25a9f974SMario Six #define DPCD_GUID						0x00030
47*25a9f974SMario Six #define DPCD_RX_GTC_VALUE_7_0					0x00054
48*25a9f974SMario Six #define DPCD_RX_GTC_VALUE_15_8					0x00055
49*25a9f974SMario Six #define DPCD_RX_GTC_VALUE_23_16					0x00056
50*25a9f974SMario Six #define DPCD_RX_GTC_VALUE_31_24					0x00057
51*25a9f974SMario Six #define DPCD_RX_GTC_MSTR_REQ					0x00058
52*25a9f974SMario Six #define DPCD_RX_GTC_FREQ_LOCK_DONE				0x00059
53*25a9f974SMario Six #define DPCD_DOWNSP_0_CAP					0x00080
54*25a9f974SMario Six #define DPCD_DOWNSP_1_CAP					0x00081
55*25a9f974SMario Six #define DPCD_DOWNSP_2_CAP					0x00082
56*25a9f974SMario Six #define DPCD_DOWNSP_3_CAP					0x00083
57*25a9f974SMario Six #define DPCD_DOWNSP_0_DET_CAP					0x00080
58*25a9f974SMario Six #define DPCD_DOWNSP_1_DET_CAP					0x00084
59*25a9f974SMario Six #define DPCD_DOWNSP_2_DET_CAP					0x00088
60*25a9f974SMario Six #define DPCD_DOWNSP_3_DET_CAP					0x0008C
61*25a9f974SMario Six 
62*25a9f974SMario Six /* link configuration field */
63*25a9f974SMario Six #define DPCD_LINK_BW_SET					0x00100
64*25a9f974SMario Six #define DPCD_LANE_COUNT_SET					0x00101
65*25a9f974SMario Six #define DPCD_TP_SET						0x00102
66*25a9f974SMario Six #define DPCD_TRAINING_LANE0_SET					0x00103
67*25a9f974SMario Six #define DPCD_TRAINING_LANE1_SET					0x00104
68*25a9f974SMario Six #define DPCD_TRAINING_LANE2_SET					0x00105
69*25a9f974SMario Six #define DPCD_TRAINING_LANE3_SET					0x00106
70*25a9f974SMario Six #define DPCD_DOWNSPREAD_CTRL					0x00107
71*25a9f974SMario Six #define DPCD_ML_CH_CODING_SET					0x00108
72*25a9f974SMario Six #define DPCD_I2C_SPEED_CTL_SET					0x00109
73*25a9f974SMario Six #define DPCD_EDP_CFG_SET					0x0010A
74*25a9f974SMario Six #define DPCD_LINK_QUAL_LANE0_SET				0x0010B
75*25a9f974SMario Six #define DPCD_LINK_QUAL_LANE1_SET				0x0010C
76*25a9f974SMario Six #define DPCD_LINK_QUAL_LANE2_SET				0x0010D
77*25a9f974SMario Six #define DPCD_LINK_QUAL_LANE3_SET				0x0010E
78*25a9f974SMario Six #define DPCD_TRAINING_LANE0_1_SET2				0x0010F
79*25a9f974SMario Six #define DPCD_TRAINING_LANE2_3_SET2				0x00110
80*25a9f974SMario Six #define DPCD_MSTM_CTRL						0x00111
81*25a9f974SMario Six #define DPCD_AUDIO_DELAY_7_0					0x00112
82*25a9f974SMario Six #define DPCD_AUDIO_DELAY_15_8					0x00113
83*25a9f974SMario Six #define DPCD_AUDIO_DELAY_23_6					0x00114
84*25a9f974SMario Six #define DPCD_UPSTREAM_DEVICE_DP_PWR_NEED			0x00118
85*25a9f974SMario Six #define DPCD_FAUX_MODE_CTRL					0x00120
86*25a9f974SMario Six #define DPCD_FAUX_FORWARD_CH_DRIVE_SET				0x00121
87*25a9f974SMario Six #define DPCD_BACK_CH_STATUS					0x00122
88*25a9f974SMario Six #define DPCD_FAUX_BACK_CH_SYMBOL_ERROR_COUNT			0x00123
89*25a9f974SMario Six #define DPCD_FAUX_BACK_CH_TRAINING_PATTERN_TIME			0x00125
90*25a9f974SMario Six #define DPCD_TX_GTC_VALUE_7_0					0x00154
91*25a9f974SMario Six #define DPCD_TX_GTC_VALUE_15_8					0x00155
92*25a9f974SMario Six #define DPCD_TX_GTC_VALUE_23_16					0x00156
93*25a9f974SMario Six #define DPCD_TX_GTC_VALUE_31_24					0x00157
94*25a9f974SMario Six #define DPCD_RX_GTC_VALUE_PHASE_SKEW_EN				0x00158
95*25a9f974SMario Six #define DPCD_TX_GTC_FREQ_LOCK_DONE				0x00159
96*25a9f974SMario Six #define DPCD_ADAPTER_CTRL					0x001A0
97*25a9f974SMario Six #define DPCD_BRANCH_DEVICE_CTRL					0x001A1
98*25a9f974SMario Six #define DPCD_PAYLOAD_ALLOCATE_SET				0x001C0
99*25a9f974SMario Six #define DPCD_PAYLOAD_ALLOCATE_START_TIME_SLOT			0x001C1
100*25a9f974SMario Six #define DPCD_PAYLOAD_ALLOCATE_TIME_SLOT_COUNT			0x001C2
101*25a9f974SMario Six 
102*25a9f974SMario Six /* link/sink status field */
103*25a9f974SMario Six #define DPCD_SINK_COUNT						0x00200
104*25a9f974SMario Six #define DPCD_DEVICE_SERVICE_IRQ					0x00201
105*25a9f974SMario Six #define DPCD_STATUS_LANE_0_1					0x00202
106*25a9f974SMario Six #define DPCD_STATUS_LANE_2_3					0x00203
107*25a9f974SMario Six #define DPCD_LANE_ALIGN_STATUS_UPDATED				0x00204
108*25a9f974SMario Six #define DPCD_SINK_STATUS					0x00205
109*25a9f974SMario Six #define DPCD_ADJ_REQ_LANE_0_1					0x00206
110*25a9f974SMario Six #define DPCD_ADJ_REQ_LANE_2_3					0x00207
111*25a9f974SMario Six #define DPCD_TRAINING_SCORE_LANE_0				0x00208
112*25a9f974SMario Six #define DPCD_TRAINING_SCORE_LANE_1				0x00209
113*25a9f974SMario Six #define DPCD_TRAINING_SCORE_LANE_2				0x0020A
114*25a9f974SMario Six #define DPCD_TRAINING_SCORE_LANE_3				0x0020B
115*25a9f974SMario Six #define DPCD_ADJ_REQ_PC2					0x0020C
116*25a9f974SMario Six #define DPCD_FAUX_FORWARD_CH_SYMBOL_ERROR_COUNT			0x0020D
117*25a9f974SMario Six #define DPCD_SYMBOL_ERROR_COUNT_LANE_0				0x00210
118*25a9f974SMario Six #define DPCD_SYMBOL_ERROR_COUNT_LANE_1				0x00212
119*25a9f974SMario Six #define DPCD_SYMBOL_ERROR_COUNT_LANE_2				0x00214
120*25a9f974SMario Six #define DPCD_SYMBOL_ERROR_COUNT_LANE_3				0x00216
121*25a9f974SMario Six 
122*25a9f974SMario Six /* automated testing sub-field */
123*25a9f974SMario Six #define DPCD_FAUX_FORWARD_CH_STATUS				0x00280
124*25a9f974SMario Six #define DPCD_FAUX_BACK_CH_DRIVE_SET				0x00281
125*25a9f974SMario Six #define DPCD_FAUX_BACK_CH_SYM_ERR_COUNT_CTRL			0x00282
126*25a9f974SMario Six #define DPCD_PAYLOAD_TABLE_UPDATE_STATUS			0x002C0
127*25a9f974SMario Six #define DPCD_VC_PAYLOAD_ID_SLOT(slotnum) \
128*25a9f974SMario Six 			(DPCD_PAYLOAD_TABLE_UPDATE_STATUS + slotnum)
129*25a9f974SMario Six 
130*25a9f974SMario Six /* sink control field */
131*25a9f974SMario Six #define DPCD_SET_POWER_DP_PWR_VOLTAGE				0x00600
132*25a9f974SMario Six 
133*25a9f974SMario Six /* sideband message buffers */
134*25a9f974SMario Six #define DPCD_DOWN_REQ						0x01000
135*25a9f974SMario Six #define DPCD_UP_REP						0x01200
136*25a9f974SMario Six #define DPCD_DOWN_REP						0x01400
137*25a9f974SMario Six #define DPCD_UP_REQ						0x01600
138*25a9f974SMario Six 
139*25a9f974SMario Six /* event status indicator field */
140*25a9f974SMario Six #define DPCD_SINK_COUNT_ESI					0x02002
141*25a9f974SMario Six #define DPCD_SINK_DEVICE_SERVICE_IRQ_VECTOR_ESI0		0x02003
142*25a9f974SMario Six #define DPCD_SINK_DEVICE_SERVICE_IRQ_VECTOR_ESI1		0x02004
143*25a9f974SMario Six #define DPCD_SINK_LINK_SERVICE_IRQ_VECTOR_ESI0			0x02005
144*25a9f974SMario Six #define DPCD_SINK_LANE0_1_STATUS				0x0200C
145*25a9f974SMario Six #define DPCD_SINK_LANE2_3_STATUS				0x0200D
146*25a9f974SMario Six #define DPCD_SINK_ALIGN_STATUS_UPDATED_ESI			0x0200E
147*25a9f974SMario Six #define DPCD_SINK_STATUS_ESI					0x0200F
148*25a9f974SMario Six 
149*25a9f974SMario Six /*
150*25a9f974SMario Six  * field addresses and sizes.
151*25a9f974SMario Six  */
152*25a9f974SMario Six #define DPCD_RECEIVER_CAP_FIELD_START				DPCD_REV
153*25a9f974SMario Six #define DPCD_RECEIVER_CAP_FIELD_SIZE				0x100
154*25a9f974SMario Six #define DPCD_LINK_CFG_FIELD_START				DPCD_LINK_BW_SET
155*25a9f974SMario Six #define DPCD_LINK_CFG_FIELD_SIZE				0x100
156*25a9f974SMario Six #define DPCD_LINK_SINK_STATUS_FIELD_START			DPCD_SINK_COUNT
157*25a9f974SMario Six #define DPCD_LINK_SINK_STATUS_FIELD_SIZE			0x17
158*25a9f974SMario Six /* 0x00000: DPCD_REV */
159*25a9f974SMario Six #define DPCD_REV_MNR_MASK					0x0F
160*25a9f974SMario Six #define DPCD_REV_MJR_MASK					0xF0
161*25a9f974SMario Six #define DPCD_REV_MJR_SHIFT					4
162*25a9f974SMario Six /* 0x00001: MAX_LINK_RATE */
163*25a9f974SMario Six #define DPCD_MAX_LINK_RATE_162GBPS				0x06
164*25a9f974SMario Six #define DPCD_MAX_LINK_RATE_270GBPS				0x0A
165*25a9f974SMario Six #define DPCD_MAX_LINK_RATE_540GBPS				0x14
166*25a9f974SMario Six /* 0x00002: MAX_LANE_COUNT */
167*25a9f974SMario Six #define DPCD_MAX_LANE_COUNT_MASK				0x1F
168*25a9f974SMario Six #define DPCD_MAX_LANE_COUNT_1					0x01
169*25a9f974SMario Six #define DPCD_MAX_LANE_COUNT_2					0x02
170*25a9f974SMario Six #define DPCD_MAX_LANE_COUNT_4					0x04
171*25a9f974SMario Six #define DPCD_TPS3_SUPPORT_MASK					0x40
172*25a9f974SMario Six #define DPCD_ENHANCED_FRAME_SUPPORT_MASK			0x80
173*25a9f974SMario Six /* 0x00003: MAX_DOWNSPREAD */
174*25a9f974SMario Six #define DPCD_MAX_DOWNSPREAD_MASK				0x01
175*25a9f974SMario Six #define DPCD_NO_AUX_HANDSHAKE_LINK_TRAIN_MASK			0x40
176*25a9f974SMario Six /* 0x00005: DOWNSP_PRESENT */
177*25a9f974SMario Six #define DPCD_DOWNSP_PRESENT_MASK				0x01
178*25a9f974SMario Six #define DPCD_DOWNSP_TYPE_MASK					0x06
179*25a9f974SMario Six #define DPCD_DOWNSP_TYPE_SHIFT					1
180*25a9f974SMario Six #define DPCD_DOWNSP_TYPE_DP					0x0
181*25a9f974SMario Six #define DPCD_DOWNSP_TYPE_AVGA_ADVII				0x1
182*25a9f974SMario Six #define DPCD_DOWNSP_TYPE_DVI_HDMI_DPPP				0x2
183*25a9f974SMario Six #define DPCD_DOWNSP_TYPE_OTHERS					0x3
184*25a9f974SMario Six #define DPCD_DOWNSP_FORMAT_CONV_MASK				0x08
185*25a9f974SMario Six #define DPCD_DOWNSP_DCAP_INFO_AVAIL_MASK			0x10
186*25a9f974SMario Six /* 0x00006, 0x00108: ML_CH_CODING_SUPPORT, ML_CH_CODING_SET */
187*25a9f974SMario Six #define DPCD_ML_CH_CODING_MASK					0x01
188*25a9f974SMario Six /* 0x00007: DOWNSP_COUNT_MSA_OUI */
189*25a9f974SMario Six #define DPCD_DOWNSP_COUNT_MASK					0x0F
190*25a9f974SMario Six #define DPCD_MSA_TIMING_PAR_IGNORED_MASK			0x40
191*25a9f974SMario Six #define DPCD_OUI_SUPPORT_MASK					0x80
192*25a9f974SMario Six /* 0x00008, 0x0000A: RX_PORT[0-1]_CAP_0 */
193*25a9f974SMario Six #define DPCD_RX_PORTX_CAP_0_LOCAL_EDID_PRESENT_MASK		0x02
194*25a9f974SMario Six #define DPCD_RX_PORTX_CAP_0_ASSOC_TO_PRECEDING_PORT_MASK	0x04
195*25a9f974SMario Six /* 0x0000C, 0x00109: I2C_SPEED_CTL_CAP, I2C_SPEED_CTL_SET */
196*25a9f974SMario Six #define DPCD_I2C_SPEED_CTL_NONE					0x00
197*25a9f974SMario Six #define DPCD_I2C_SPEED_CTL_1KBIPS				0x01
198*25a9f974SMario Six #define DPCD_I2C_SPEED_CTL_5KBIPS				0x02
199*25a9f974SMario Six #define DPCD_I2C_SPEED_CTL_10KBIPS				0x04
200*25a9f974SMario Six #define DPCD_I2C_SPEED_CTL_100KBIPS				0x08
201*25a9f974SMario Six #define DPCD_I2C_SPEED_CTL_400KBIPS				0x10
202*25a9f974SMario Six #define DPCD_I2C_SPEED_CTL_1MBIPS				0x20
203*25a9f974SMario Six /* 0x0000E: TRAIN_AUX_RD_INTERVAL */
204*25a9f974SMario Six #define DPCD_TRAIN_AUX_RD_INT_100_400US				0x00
205*25a9f974SMario Six #define DPCD_TRAIN_AUX_RD_INT_4MS				0x01
206*25a9f974SMario Six #define DPCD_TRAIN_AUX_RD_INT_8MS				0x02
207*25a9f974SMario Six #define DPCD_TRAIN_AUX_RD_INT_12MS				0x03
208*25a9f974SMario Six #define DPCD_TRAIN_AUX_RD_INT_16MS				0x04
209*25a9f974SMario Six /* 0x00020: DPCD_FAUX_CAP */
210*25a9f974SMario Six #define DPCD_FAUX_CAP_MASK					0x01
211*25a9f974SMario Six /* 0x00021: MSTM_CAP */
212*25a9f974SMario Six #define DPCD_MST_CAP_MASK					0x01
213*25a9f974SMario Six /* 0x00080, 0x00081|4, 0x00082|8, 0x00083|C: DOWNSP_X_(DET_)CAP */
214*25a9f974SMario Six #define DPCD_DOWNSP_X_CAP_TYPE_MASK				0x07
215*25a9f974SMario Six #define DPCD_DOWNSP_X_CAP_TYPE_DP				0x0
216*25a9f974SMario Six #define DPCD_DOWNSP_X_CAP_TYPE_AVGA				0x1
217*25a9f974SMario Six #define DPCD_DOWNSP_X_CAP_TYPE_DVI				0x2
218*25a9f974SMario Six #define DPCD_DOWNSP_X_CAP_TYPE_HDMI				0x3
219*25a9f974SMario Six #define DPCD_DOWNSP_X_CAP_TYPE_OTHERS				0x4
220*25a9f974SMario Six #define DPCD_DOWNSP_X_CAP_TYPE_DPPP				0x5
221*25a9f974SMario Six #define DPCD_DOWNSP_X_CAP_HPD_MASK				0x80
222*25a9f974SMario Six #define DPCD_DOWNSP_X_CAP_NON_EDID_ATTR_MASK			0xF0
223*25a9f974SMario Six #define DPCD_DOWNSP_X_CAP_NON_EDID_ATTR_SHIFT			4
224*25a9f974SMario Six #define DPCD_DOWNSP_X_CAP_NON_EDID_ATTR_720_480_I_60		0x1
225*25a9f974SMario Six #define DPCD_DOWNSP_X_CAP_NON_EDID_ATTR_720_480_I_50		0x2
226*25a9f974SMario Six #define DPCD_DOWNSP_X_CAP_NON_EDID_ATTR_1920_1080_I_60		0x3
227*25a9f974SMario Six #define DPCD_DOWNSP_X_CAP_NON_EDID_ATTR_1920_1080_I_50		0x4
228*25a9f974SMario Six #define DPCD_DOWNSP_X_CAP_NON_EDID_ATTR_1280_720_P_60		0x5
229*25a9f974SMario Six #define DPCD_DOWNSP_X_CAP_NON_EDID_ATTR_1280_720_P_50		0x7
230*25a9f974SMario Six /* 0x00082, 0x00086, 0x0008A, 0x0008E: DOWNSP_X_(DET_)CAP2 */
231*25a9f974SMario Six #define DPCD_DOWNSP_X_DCAP_MAX_BPC_MASK				0x03
232*25a9f974SMario Six #define DPCD_DOWNSP_X_DCAP_MAX_BPC_8				0x0
233*25a9f974SMario Six #define DPCD_DOWNSP_X_DCAP_MAX_BPC_10				0x1
234*25a9f974SMario Six #define DPCD_DOWNSP_X_DCAP_MAX_BPC_12				0x2
235*25a9f974SMario Six #define DPCD_DOWNSP_X_DCAP_MAX_BPC_16				0x3
236*25a9f974SMario Six /* 0x00082, 0x00086, 0x0008A, 0x0008E: DOWNSP_X_(DET_)CAP2 */
237*25a9f974SMario Six #define DPCD_DOWNSP_X_DCAP_HDMI_DPPP_FS2FP_MASK			0x01
238*25a9f974SMario Six #define DPCD_DOWNSP_X_DCAP_DVI_DL_MASK				0x02
239*25a9f974SMario Six #define DPCD_DOWNSP_X_DCAP_DVI_HCD_MASK				0x04
240*25a9f974SMario Six 
241*25a9f974SMario Six /* link configuration field masks, shifts, and register values */
242*25a9f974SMario Six /* 0x00100: DPCD_LINK_BW_SET */
243*25a9f974SMario Six #define DPCD_LINK_BW_SET_162GBPS				0x06
244*25a9f974SMario Six #define DPCD_LINK_BW_SET_270GBPS				0x0A
245*25a9f974SMario Six #define DPCD_LINK_BW_SET_540GBPS				0x14
246*25a9f974SMario Six /* 0x00101: LANE_COUNT_SET */
247*25a9f974SMario Six #define DPCD_LANE_COUNT_SET_MASK				0x1F
248*25a9f974SMario Six #define DPCD_LANE_COUNT_SET_1					0x01
249*25a9f974SMario Six #define DPCD_LANE_COUNT_SET_2					0x02
250*25a9f974SMario Six #define DPCD_LANE_COUNT_SET_4					0x04
251*25a9f974SMario Six #define DPCD_ENHANCED_FRAME_EN_MASK				0x80
252*25a9f974SMario Six /* 0x00102: TP_SET */
253*25a9f974SMario Six #define DPCD_TP_SEL_MASK					0x03
254*25a9f974SMario Six #define DPCD_TP_SEL_OFF						0x0
255*25a9f974SMario Six #define DPCD_TP_SEL_TP1						0x1
256*25a9f974SMario Six #define DPCD_TP_SEL_TP2						0x2
257*25a9f974SMario Six #define DPCD_TP_SEL_TP3						0x3
258*25a9f974SMario Six #define DPCD_TP_SET_LQP_MASK					0x06
259*25a9f974SMario Six #define DPCD_TP_SET_LQP_SHIFT					2
260*25a9f974SMario Six #define DPCD_TP_SET_LQP_OFF					0x0
261*25a9f974SMario Six #define DPCD_TP_SET_LQP_D102_TEST				0x1
262*25a9f974SMario Six #define DPCD_TP_SET_LQP_SER_MES					0x2
263*25a9f974SMario Six #define DPCD_TP_SET_LQP_PRBS7					0x3
264*25a9f974SMario Six #define DPCD_TP_SET_REC_CLK_OUT_EN_MASK				0x10
265*25a9f974SMario Six #define DPCD_TP_SET_SCRAMB_DIS_MASK				0x20
266*25a9f974SMario Six #define DPCD_TP_SET_SE_COUNT_SEL_MASK				0xC0
267*25a9f974SMario Six #define DPCD_TP_SET_SE_COUNT_SEL_SHIFT				6
268*25a9f974SMario Six #define DPCD_TP_SET_SE_COUNT_SEL_DE_ISE				0x0
269*25a9f974SMario Six #define DPCD_TP_SET_SE_COUNT_SEL_DE				0x1
270*25a9f974SMario Six #define DPCD_TP_SET_SE_COUNT_SEL_ISE				0x2
271*25a9f974SMario Six /* 0x00103-0x00106: TRAINING_LANE[0-3]_SET */
272*25a9f974SMario Six #define DPCD_TRAINING_LANEX_SET_VS_MASK				0x03
273*25a9f974SMario Six #define DPCD_TRAINING_LANEX_SET_MAX_VS_MASK			0x04
274*25a9f974SMario Six #define DPCD_TRAINING_LANEX_SET_PE_MASK				0x18
275*25a9f974SMario Six #define DPCD_TRAINING_LANEX_SET_PE_SHIFT			3
276*25a9f974SMario Six #define DPCD_TRAINING_LANEX_SET_MAX_PE_MASK			0x20
277*25a9f974SMario Six /* 0x00107: DOWNSPREAD_CTRL */
278*25a9f974SMario Six #define DPCD_SPREAD_AMP_MASK					0x10
279*25a9f974SMario Six #define DPCD_MSA_TIMING_PAR_IGNORED_EN_MASK			0x80
280*25a9f974SMario Six /* 0x00108: ML_CH_CODING_SET - Same as 0x00006: ML_CH_CODING_SUPPORT */
281*25a9f974SMario Six /* 0x00109: I2C_SPEED_CTL_SET - Same as 0x0000C: I2C_SPEED_CTL_CAP */
282*25a9f974SMario Six /* 0x0010F-0x00110: TRAINING_LANE[0_1-2_3]_SET2 */
283*25a9f974SMario Six #define DPCD_TRAINING_LANE_0_2_SET_PC2_MASK			0x03
284*25a9f974SMario Six #define DPCD_TRAINING_LANE_0_2_SET_MAX_PC2_MASK			0x04
285*25a9f974SMario Six #define DPCD_TRAINING_LANE_1_3_SET_PC2_MASK			0x30
286*25a9f974SMario Six #define DPCD_TRAINING_LANE_1_3_SET_PC2_SHIFT			4
287*25a9f974SMario Six #define DPCD_TRAINING_LANE_1_3_SET_MAX_PC2_MASK			0x40
288*25a9f974SMario Six /* 0x00111: MSTM_CTRL */
289*25a9f974SMario Six #define DPCD_MST_EN_MASK					0x01
290*25a9f974SMario Six #define DPCD_UP_REQ_EN_MASK					0x02
291*25a9f974SMario Six #define DPCD_UP_IS_SRC_MASK					0x03
292*25a9f974SMario Six 
293*25a9f974SMario Six /* link/sink status field masks, shifts, and register values */
294*25a9f974SMario Six /* 0x00200: SINK_COUNT */
295*25a9f974SMario Six #define DPCD_SINK_COUNT_LOW_MASK				0x3F
296*25a9f974SMario Six #define DPCD_SINK_CP_READY_MASK					0x40
297*25a9f974SMario Six #define DPCD_SINK_COUNT_HIGH_MASK				0x80
298*25a9f974SMario Six #define DPCD_SINK_COUNT_HIGH_LOW_SHIFT				1
299*25a9f974SMario Six /* 0x00202: STATUS_LANE_0_1 */
300*25a9f974SMario Six #define DPCD_STATUS_LANE_0_CR_DONE_MASK				0x01
301*25a9f974SMario Six #define DPCD_STATUS_LANE_0_CE_DONE_MASK				0x02
302*25a9f974SMario Six #define DPCD_STATUS_LANE_0_SL_DONE_MASK				0x04
303*25a9f974SMario Six #define DPCD_STATUS_LANE_1_CR_DONE_MASK				0x10
304*25a9f974SMario Six #define DPCD_STATUS_LANE_1_CE_DONE_MASK				0x20
305*25a9f974SMario Six #define DPCD_STATUS_LANE_1_SL_DONE_MASK				0x40
306*25a9f974SMario Six /* 0x00202: STATUS_LANE_2_3 */
307*25a9f974SMario Six #define DPCD_STATUS_LANE_2_CR_DONE_MASK				0x01
308*25a9f974SMario Six #define DPCD_STATUS_LANE_2_CE_DONE_MASK				0x02
309*25a9f974SMario Six #define DPCD_STATUS_LANE_2_SL_DONE_MASK				0x04
310*25a9f974SMario Six #define DPCD_STATUS_LANE_3_CR_DONE_MASK				0x10
311*25a9f974SMario Six #define DPCD_STATUS_LANE_3_CE_DONE_MASK				0x20
312*25a9f974SMario Six #define DPCD_STATUS_LANE_3_SL_DONE_MASK				0x40
313*25a9f974SMario Six /* 0x00204: LANE_ALIGN_STATUS_UPDATED */
314*25a9f974SMario Six #define DPCD_LANE_ALIGN_STATUS_UPDATED_IA_DONE_MASK \
315*25a9f974SMario Six 								0x01
316*25a9f974SMario Six #define DPCD_LANE_ALIGN_STATUS_UPDATED_DOWNSP_STATUS_CHANGED_MASK \
317*25a9f974SMario Six 								0x40
318*25a9f974SMario Six #define DPCD_LANE_ALIGN_STATUS_UPDATED_LINK_STATUS_UPDATED_MASK \
319*25a9f974SMario Six 								0x80
320*25a9f974SMario Six /* 0x00205: SINK_STATUS */
321*25a9f974SMario Six #define DPCD_SINK_STATUS_RX_PORT0_SYNC_STATUS_MASK		0x01
322*25a9f974SMario Six #define DPCD_SINK_STATUS_RX_PORT1_SYNC_STATUS_MASK		0x02
323*25a9f974SMario Six 
324*25a9f974SMario Six /* 0x00206, 0x00207: ADJ_REQ_LANE_[0,2]_[1,3] */
325*25a9f974SMario Six #define DPCD_ADJ_REQ_LANE_0_2_VS_MASK				0x03
326*25a9f974SMario Six #define DPCD_ADJ_REQ_LANE_0_2_PE_MASK				0x0C
327*25a9f974SMario Six #define DPCD_ADJ_REQ_LANE_0_2_PE_SHIFT				2
328*25a9f974SMario Six #define DPCD_ADJ_REQ_LANE_1_3_VS_MASK				0x30
329*25a9f974SMario Six #define DPCD_ADJ_REQ_LANE_1_3_VS_SHIFT				4
330*25a9f974SMario Six #define DPCD_ADJ_REQ_LANE_1_3_PE_MASK				0xC0
331*25a9f974SMario Six #define DPCD_ADJ_REQ_LANE_1_3_PE_SHIFT				6
332*25a9f974SMario Six /* 0x0020C: ADJ_REQ_PC2 */
333*25a9f974SMario Six #define DPCD_ADJ_REQ_PC2_LANE_0_MASK				0x03
334*25a9f974SMario Six #define DPCD_ADJ_REQ_PC2_LANE_1_MASK				0x0C
335*25a9f974SMario Six #define DPCD_ADJ_REQ_PC2_LANE_1_SHIFT				2
336*25a9f974SMario Six #define DPCD_ADJ_REQ_PC2_LANE_2_MASK				0x30
337*25a9f974SMario Six #define DPCD_ADJ_REQ_PC2_LANE_2_SHIFT				4
338*25a9f974SMario Six #define DPCD_ADJ_REQ_PC2_LANE_3_MASK				0xC0
339*25a9f974SMario Six #define DPCD_ADJ_REQ_PC2_LANE_3_SHIFT				6
340*25a9f974SMario Six 
341*25a9f974SMario Six #endif /* __GDSYS_LOGICORE_DP_DPCD_H__ */
342