4 #include <linux/mfd/syscon.h>
5 #include <linux/regmap.h>
6 #include <linux/reset.h>
7 #include <linux/rk_fb.h>
11 #define DP_VERSION 0x10
13 #define TX_SW_RST 0x14
15 #define FUNC_EN_1 0x18
16 #define VID_CAP_FUNC_EN_N (0x1 << 6)
17 #define VID_FIFO_FUNC_EN_N (0x1 << 5)
18 #define AUD_FIFO_FUNC_EN_N (0x1 << 4)
19 #define AUD_FUNC_EN_N (0x1 << 3)
20 #define HDCP_FUNC_EN_N (0x1 << 2)
21 #define SW_FUNC_EN_N (0x1 << 0)
23 #define FUNC_EN_2 0x1C
24 #define SSC_FUNC_EN_N (0x1 << 7)
25 #define AUX_FUNC_EN_N (0x1 << 2)
26 #define SERDES_FIFO_FUNC_EN_N (0x1 << 1)
27 #define LS_CLK_DOMAIN_FUNC_EN_N (0x1 << 0)
29 #define VIDEO_CTL_1 0x20
30 #define VIDEO_EN (0x1 << 7)
31 #define VIDEO_MUTE (0x1 << 6)
33 #define VIDEO_CTL_2 0x24
34 #define IN_D_RANGE_MASK (0x1 << 7)
35 #define IN_D_RANGE_SHIFT (7)
36 #define IN_D_RANGE_CEA (0x1 << 7)
37 #define IN_D_RANGE_VESA (0x0 << 7)
38 #define IN_BPC_MASK (0x7 << 4)
39 #define IN_BPC_SHIFT (4)
40 #define IN_BPC_12_BITS (0x3 << 4)
41 #define IN_BPC_10_BITS (0x2 << 4)
42 #define IN_BPC_8_BITS (0x1 << 4)
43 #define IN_BPC_6_BITS (0x0 << 4)
44 #define IN_COLOR_F_MASK (0x3 << 0)
45 #define IN_COLOR_F_SHIFT (0)
46 #define IN_COLOR_F_YCBCR444 (0x2 << 0)
47 #define IN_COLOR_F_YCBCR422 (0x1 << 0)
48 #define IN_COLOR_F_RGB (0x0 << 0)
50 #define VIDEO_CTL_3 0x28
51 #define IN_YC_COEFFI_MASK (0x1 << 7)
52 #define IN_YC_COEFFI_SHIFT (7)
53 #define IN_YC_COEFFI_ITU709 (0x1 << 7)
54 #define IN_YC_COEFFI_ITU601 (0x0 << 7)
55 #define VID_CHK_UPDATE_TYPE_MASK (0x1 << 4)
56 #define VID_CHK_UPDATE_TYPE_SHIFT (4)
57 #define VID_CHK_UPDATE_TYPE_1 (0x1 << 4)
58 #define VID_CHK_UPDATE_TYPE_0 (0x0 << 4)
60 #define VIDEO_CTL_4 0x2c
61 #define BIST_EN (0x1 << 3)
62 #define BIST_WH_64 (0x1 << 2)
63 #define BIST_WH_32 (0x0 << 2)
64 #define BIST_TYPE_COLR_BAR (0x0 << 0)
65 #define BIST_TYPE_GRAY_BAR (0x1 << 0)
66 #define BIST_TYPE_MOBILE_BAR (0x2 << 0)
68 #define VIDEO_CTL_8 0x3C
69 #define VID_HRES_TH(x) (((x) & 0xf) << 4)
70 #define VID_VRES_TH(x) (((x) & 0xf) << 0)
72 #define VIDEO_CTL_10 0x44
73 #define F_SEL (0x1 << 4)
74 #define INTERACE_SCAN_CFG (0x1 << 2)
75 #define VSYNC_POLARITY_CFG (0x1 << 1)
76 #define HSYNC_POLARITY_CFG (0x1 << 0)
78 #define TOTAL_LINE_CFG_L 0x48
79 #define TOTAL_LINE_CFG_H 0x4c
80 #define ATV_LINE_CFG_L 0x50
81 #define ATV_LINE_CFG_H 0x54
82 #define VF_PORCH_REG 0x58
83 #define VSYNC_CFG_REG 0x5c
84 #define VB_PORCH_REG 0x60
85 #define TOTAL_PIXELL_REG 0x64
86 #define TOTAL_PIXELH_REG 0x68
87 #define ATV_PIXELL_REG 0x6c
88 #define ATV_PIXELH_REG 0x70
89 #define HF_PORCHL_REG 0x74
90 #define HF_PORCHH_REG 0x78
91 #define HSYNC_CFGL_REG 0x7c
92 #define HSYNC_CFGH_REG 0x80
93 #define HB_PORCHL_REG 0x84
94 #define HB_PORCHH_REG 0x88
98 #define TX_REG_COMMON 0x114
100 #define DP_BIAS 0x124
102 #define PLL_REG_1 0xfc
103 #define REF_CLK_24M (0x1 << 1)
104 #define REF_CLK_27M (0x0 << 1)
106 #define PLL_REG_2 0x9e4
107 #define PLL_REG_3 0x9e8
108 #define PLL_REG_4 0x9ec
109 #define PLL_REG_5 0xa00
110 #define DP_PWRDN 0x12c
111 #define PD_INC_BG (0x1 << 7)
112 #define PD_EXP_BG (0x1 << 6)
113 #define PD_AUX (0x1 << 5)
114 #define PD_PLL (0x1 << 4)
115 #define PD_CH3 (0x1 << 3)
116 #define PD_CH2 (0x1 << 2)
117 #define PD_CH1 (0x1 << 1)
118 #define PD_CH0 (0x1 << 0)
120 #define DP_RESERVE2 0x134
122 #define LANE_MAP 0x35C
123 #define LANE3_MAP_LOGIC_LANE_0 (0x0 << 6)
124 #define LANE3_MAP_LOGIC_LANE_1 (0x1 << 6)
125 #define LANE3_MAP_LOGIC_LANE_2 (0x2 << 6)
126 #define LANE3_MAP_LOGIC_LANE_3 (0x3 << 6)
127 #define LANE2_MAP_LOGIC_LANE_0 (0x0 << 4)
128 #define LANE2_MAP_LOGIC_LANE_1 (0x1 << 4)
129 #define LANE2_MAP_LOGIC_LANE_2 (0x2 << 4)
130 #define LANE2_MAP_LOGIC_LANE_3 (0x3 << 4)
131 #define LANE1_MAP_LOGIC_LANE_0 (0x0 << 2)
132 #define LANE1_MAP_LOGIC_LANE_1 (0x1 << 2)
133 #define LANE1_MAP_LOGIC_LANE_2 (0x2 << 2)
134 #define LANE1_MAP_LOGIC_LANE_3 (0x3 << 2)
135 #define LANE0_MAP_LOGIC_LANE_0 (0x0 << 0)
136 #define LANE0_MAP_LOGIC_LANE_1 (0x1 << 0)
137 #define LANE0_MAP_LOGIC_LANE_2 (0x2 << 0)
138 #define LANE0_MAP_LOGIC_LANE_3 (0x3 << 0)
140 #define ANALOG_CTL_2 0x374
141 #define SEL_24M (0x1 << 3)
143 /*#define ANALOG_CTL_3 0x378
144 #define PLL_FILTER_CTL_1 0x37C
145 #define TX_AMP_TUNING_CTL 0x380*/
147 #define AUX_HW_RETRY_CTL 0x390
149 #define INT_STA 0x3c0
151 #define COMMON_INT_STA_1 0x3C4
152 #define VSYNC_DET (0x1 << 7)
153 #define PLL_LOCK_CHG (0x1 << 6)
154 #define SPDIF_ERR (0x1 << 5)
155 #define SPDIF_UNSTBL (0x1 << 4)
156 #define VID_FORMAT_CHG (0x1 << 3)
157 #define AUD_CLK_CHG (0x1 << 2)
158 #define VID_CLK_CHG (0x1 << 1)
159 #define SW_INT (0x1 << 0)
161 #define COMMON_INT_STA_2 0x3C8
162 #define ENC_EN_CHG (0x1 << 6)
163 #define HW_BKSV_RDY (0x1 << 3)
164 #define HW_SHA_DONE (0x1 << 2)
165 #define HW_AUTH_STATE_CHG (0x1 << 1)
166 #define HW_AUTH_DONE (0x1 << 0)
168 #define COMMON_INT_STA_3 0x3CC
169 #define AFIFO_UNDER (0x1 << 7)
170 #define AFIFO_OVER (0x1 << 6)
171 #define R0_CHK_FLAG (0x1 << 5)
173 #define COMMON_INT_STA_4 0x3D0
174 #define PSR_ACTIVE (0x1 << 7)
175 #define PSR_INACTIVE (0x1 << 6)
176 #define SPDIF_BI_PHASE_ERR (0x1 << 5)
177 #define HOTPLUG_CHG (0x1 << 2)
178 #define HPD_LOST (0x1 << 1)
179 #define PLUG (0x1 << 0)
181 #define DP_INT_STA 0x3DC
182 #define INT_HPD (0x1 << 6)
183 #define HW_LT_DONE (0x1 << 5)
184 #define SINK_LOST (0x1 << 3)
185 #define LINK_LOST (0x1 << 2)
186 #define RPLY_RECEIV (0x1 << 1)
187 #define AUX_ERR (0x1 << 0)
189 #define COMMON_INT_MASK_1 0x3E0
190 #define COMMON_INT_MASK_2 0x3E4
191 #define COMMON_INT_MASK_3 0x3E8
192 #define COMMON_INT_MASK_4 0x3EC
193 #define DP_INT_STA_MASK 0x3F8
195 #define INT_CTL 0x3FC
196 #define SOFT_INT_CTRL (0x1 << 2)
197 #define INT_POL (0x1 << 0)
199 #define SYS_CTL_1 0x600
200 #define DET_STA (0x1 << 2)
201 #define FORCE_DET (0x1 << 1)
202 #define DET_CTRL (0x1 << 0)
204 #define SYS_CTL_2 0x604
205 #define CHA_CRI(x) (((x) & 0xf) << 4)
206 #define CHA_STA (0x1 << 2)
207 #define FORCE_CHA (0x1 << 1)
208 #define CHA_CTRL (0x1 << 0)
210 #define SYS_CTL_3 0x608
211 #define HPD_STATUS (0x1 << 6)
212 #define F_HPD (0x1 << 5)
213 #define HPD_CTRL (0x1 << 4)
214 #define HDCP_RDY (0x1 << 3)
215 #define STRM_VALID (0x1 << 2)
216 #define F_VALID (0x1 << 1)
217 #define VALID_CTRL (0x1 << 0)
219 #define SYS_CTL_4 0x60C
220 #define FIX_M_AUD (0x1 << 4)
221 #define ENHANCED (0x1 << 3)
222 #define FIX_M_VID (0x1 << 2)
223 #define M_VID_UPDATE_CTRL (0x3 << 0)
226 #define PKT_SEND_CTL 0x640
227 #define HDCP_CTL 0x648
229 #define LINK_BW_SET 0x680
230 #define LANE_CNT_SET 0x684
232 #define TRAINING_PTN_SET 0x688
233 #define SCRAMBLING_DISABLE (0x1 << 5)
234 #define SCRAMBLING_ENABLE (0x0 << 5)
235 #define LINK_QUAL_PATTERN_SET_MASK (0x7 << 2)
236 #define LINK_QUAL_PATTERN_SET_HBR2 (0x5 << 2)
237 #define LINK_QUAL_PATTERN_SET_80BIT (0x4 << 2)
238 #define LINK_QUAL_PATTERN_SET_PRBS7 (0x3 << 2)
239 #define LINK_QUAL_PATTERN_SET_D10_2 (0x1 << 2)
240 #define LINK_QUAL_PATTERN_SET_DISABLE (0x0 << 2)
241 #define SW_TRAINING_PATTERN_SET_MASK (0x3 << 0)
242 #define SW_TRAINING_PATTERN_SET_PTN2 (0x2 << 0)
243 #define SW_TRAINING_PATTERN_SET_PTN1 (0x1 << 0)
244 #define SW_TRAINING_PATTERN_SET_DISABLE (0x0 << 0)
246 #define LN0_LINK_TRAINING_CTL 0x68C
247 #define LN1_LINK_TRAINING_CTL 0x690
248 #define LN2_LINK_TRAINING_CTL 0x694
249 #define LN3_LINK_TRAINING_CTL 0x698
251 #define HW_LT_CTL 0x6a0
252 #define HW_LT_ERR_CODE_MASK 0x70
253 #define HW_LT_EN (0x1 << 0)
255 #define DEBUG_CTL 0x6C0
256 #define PLL_LOCK (0x1 << 4)
257 #define F_PLL_LOCK (0x1 << 3)
258 #define PLL_LOCK_CTRL (0x1 << 2)
259 #define POLL_EN (0x1 << 1)
260 #define PN_INV (0x1 << 0)
262 #define HPD_DEGLITCH_L 0x6C4
263 #define HPD_DEGLITCH_H 0x6C8
264 #define LINK_DEBUG_CTL 0x6E0
266 #define M_VID_0 0x700
267 #define M_VID_1 0x704
268 #define M_VID_2 0x708
269 #define N_VID_0 0x70C
270 #define N_VID_1 0x710
271 #define N_VID_2 0x714
273 #define VIDEO_FIFO_THRD 0x730
274 #define AUDIO_MARGIN 0x73C
276 #define M_VID_GEN_FILTER_TH 0x764
277 #define M_AUD_GEN_FILTER_TH 0x778
279 #define AUX_CH_STA 0x780
280 #define AUX_BUSY (0x1 << 4)
281 #define AUX_STATUS_MASK (0xf << 0)
283 #define AUX_CH_DEFER_CTL 0x788
284 #define DEFER_CTRL_EN (0x1 << 7)
285 #define DEFER_COUNT(x) (((x) & 0x7f) << 0)
287 #define AUX_RX_COMM 0x78C
288 #define BUFFER_DATA_CTL 0x790
289 #define BUF_CLR (0x1 << 7)
290 #define BUF_HAVE_DATA (0x1 << 4)
291 #define BUF_DATA_COUNT(x) (((x) & 0xf) << 0)
293 #define AUX_CH_CTL_1 0x794
294 #define AUX_LENGTH(x) (((x - 1) & 0xf) << 4)
295 #define AUX_TX_COMM_MASK (0xf << 0)
296 #define AUX_TX_COMM_DP_TRANSACTION (0x1 << 3)
297 #define AUX_TX_COMM_I2C_TRANSACTION (0x0 << 3)
298 #define AUX_TX_COMM_MOT (0x1 << 2)
299 #define AUX_TX_COMM_WRITE (0x0 << 0)
300 #define AUX_TX_COMM_READ (0x1 << 0)
302 #define DP_AUX_ADDR_7_0 0x798
303 #define DP_AUX_ADDR_15_8 0x79C
304 #define DP_AUX_ADDR_19_16 0x7A0
306 #define AUX_CH_CTL_2 0x7A4
307 #define PD_AUX_IDLE (0x1 << 3)
308 #define ADDR_ONLY (0x1 << 1)
309 #define AUX_EN (0x1 << 0)
311 #define BUF_DATA_0 0x7C0
313 #define SOC_GENERAL_CTL 0x800
316 #define RST_DP_TX (0x1 << 0)
319 #define TX_TERMINAL_CTRL_50_OHM (0x1 << 4)
324 #define DRIVE_DVDD_BIT_1_0625V (0x4 << 5)
325 #define VCO_BIT_600_MICRO (0x5 << 0)
327 /* PLL_FILTER_CTL_1 */
328 #define PD_RING_OSC (0x1 << 6)
329 #define AUX_TERMINAL_CTRL_37_5_OHM (0x0 << 4)
330 #define AUX_TERMINAL_CTRL_45_OHM (0x1 << 4)
331 #define AUX_TERMINAL_CTRL_50_OHM (0x2 << 4)
332 #define AUX_TERMINAL_CTRL_65_OHM (0x3 << 4)
333 #define TX_CUR1_2X (0x1 << 2)
334 #define TX_CUR_16_MA (0x3 << 0)
336 /* TX_AMP_TUNING_CTL */
337 #define CH3_AMP_SHIFT (24)
338 #define CH3_AMP_400_MV (0x0 << 24)
339 #define CH2_AMP_SHIFT (16)
340 #define CH2_AMP_400_MV (0x0 << 16)
341 #define CH1_AMP_SHIFT (8)
342 #define CH1_AMP_400_MV (0x0 << 8)
343 #define CH0_AMP_SHIFT (0)
344 #define CH0_AMP_400_MV (0x0 << 0)
346 /* AUX_HW_RETRY_CTL */
347 #define AUX_BIT_PERIOD_EXPECTED_DELAY(x) (((x) & 0x7) << 8)
348 #define AUX_HW_RETRY_INTERVAL_MASK (0x3 << 3)
349 #define AUX_HW_RETRY_INTERVAL_600_MICROSECONDS (0x0 << 3)
350 #define AUX_HW_RETRY_INTERVAL_800_MICROSECONDS (0x1 << 3)
351 #define AUX_HW_RETRY_INTERVAL_1000_MICROSECONDS (0x2 << 3)
352 #define AUX_HW_RETRY_INTERVAL_1800_MICROSECONDS (0x3 << 3)
353 #define AUX_HW_RETRY_COUNT_SEL(x) (((x) & 0x7) << 0)
357 /* LN0_LINK_TRAINING_CTL */
358 #define PRE_EMPHASIS_SET_MASK (0x3 << 3)
359 #define PRE_EMPHASIS_SET_SHIFT (3)
363 #define DP_PLL_PD (0x1 << 7)
364 #define DP_PLL_RESET (0x1 << 6)
365 #define DP_PLL_LOOP_BIT_DEFAULT (0x1 << 4)
366 #define DP_PLL_REF_BIT_1_1250V (0x5 << 0)
367 #define DP_PLL_REF_BIT_1_2500V (0x7 << 0)
370 #define MACRO_RST (0x1 << 5)
371 #define CH1_TEST (0x1 << 1)
372 #define CH0_TEST (0x1 << 0)
380 #define DP_TIMEOUT_LOOP_CNT 100
381 #define MAX_CR_LOOP 5
382 #define MAX_EQ_LOOP 5
386 #define GRF_EDP_REF_CLK_SEL_INTER (1 << 4)
387 #define GRF_EDP_HDCP_EN (1 << 15)
388 #define GRF_EDP_BIST_EN (1 << 14)
389 #define GRF_EDP_MEM_CTL_BY_EDP (1 << 13)
390 #define GRF_EDP_SECURE_EN (1 << 3)
391 #define EDP_SEL_VOP_LIT (1 << 5)
394 #define PANEL_SELF_REFRESH_CAPABILITY_SUPPORTED_AND_VERSION 0x70
395 #define PANEL_SELF_REFRESH_CAPABILITIES 0x71
396 #define PSR_SUPPORT 0x1
397 #define PSR_ENABLE 0x170
398 #define SUORPSR_EVENT_STATUS_INDICATOR 0x2007
399 #define SINK_DEVICE_PANEL_SELF_REFRESH_STATUS 0x2008
400 #define LAST_RECEIVED_PSR_SDP 0x200a
401 #define DEFINITION_WITHIN_LINKORSINK_DEVICE_POWER_CONTROL_FIELD 0x600
420 #define IF_TYPE 0x0244
421 #define VSC_SHADOW_DB1 0x0320
422 #define PSR_FRAME_UPDATA_CTRL 0x0318
423 #define SPDIF_AUDIO_CTL_0 0x00D8
427 DP_IRQ_TYPE_HP_CABLE_IN,
428 DP_IRQ_TYPE_HP_CABLE_OUT,
429 DP_IRQ_TYPE_HP_CHANGE,
433 enum color_coefficient {
448 enum clock_recovery_m_value_type {
453 enum video_timing_recognition_type {
454 VIDEO_TIMING_FROM_CAPTURE,
455 VIDEO_TIMING_FROM_REGISTER
479 enum link_rate_type {
480 LINK_RATE_1_62GBPS = 0x06,
481 LINK_RATE_2_70GBPS = 0x0a
484 enum link_lane_count_type {
490 enum link_training_state {
498 enum voltage_swing_level {
505 enum pre_emphasis_level {
506 PRE_EMPHASIS_LEVEL_0,
507 PRE_EMPHASIS_LEVEL_1,
508 PRE_EMPHASIS_LEVEL_2,
509 PRE_EMPHASIS_LEVEL_3,
512 enum analog_power_block {
525 bool h_sync_polarity;
526 bool v_sync_polarity;
529 enum color_space color_space;
530 enum dynamic_range dynamic_range;
531 enum color_coefficient ycbcr_coeff;
532 enum color_depth color_depth;
534 enum link_rate_type link_rate;
535 enum link_lane_count_type lane_count;
546 enum link_training_state lt_state;
561 struct clk *clk_edp; /*clk for edp controller*/
562 struct clk *clk_24m; /*clk for edp phy*/
563 struct clk *pclk; /*clk for phb bus*/
564 struct reset_control *rst_24m;
565 struct reset_control *rst_apb;
566 struct link_train link_train;
567 struct video_info video_info;
568 struct rk_screen screen;
569 struct fb_monspecs specs;
573 struct dentry *debugfs_dir;
577 void rk32_edp_enable_video_mute(struct rk32_edp *edp, bool enable);
578 void rk32_edp_stop_video(struct rk32_edp *edp);
579 void rk32_edp_lane_swap(struct rk32_edp *edp, bool enable);
580 void rk32_edp_init_refclk(struct rk32_edp *edp);
581 void rk32_edp_init_interrupt(struct rk32_edp *edp);
582 void rk32_edp_reset(struct rk32_edp *edp);
583 void rk32_edp_config_interrupt(struct rk32_edp *edp);
584 u32 rk32_edp_get_pll_lock_status(struct rk32_edp *edp);
585 void rk32_edp_analog_power_ctr(struct rk32_edp *edp, bool enable);
586 void rk32_edp_init_analog_func(struct rk32_edp *edp);
587 void rk32_edp_init_hpd(struct rk32_edp *edp);
588 void rk32_edp_reset_aux(struct rk32_edp *edp);
589 void rk32_edp_init_aux(struct rk32_edp *edp);
590 int rk32_edp_get_plug_in_status(struct rk32_edp *edp);
591 void rk32_edp_enable_sw_function(struct rk32_edp *edp);
592 int rk32_edp_start_aux_transaction(struct rk32_edp *edp);
593 int rk32_edp_write_byte_to_dpcd(struct rk32_edp *edp,
594 unsigned int reg_addr,
596 int rk32_edp_read_byte_from_dpcd(struct rk32_edp *edp,
597 unsigned int reg_addr,
598 unsigned char *data);
599 int rk32_edp_write_bytes_to_dpcd(struct rk32_edp *edp,
600 unsigned int reg_addr,
602 unsigned char data[]);
603 int rk32_edp_read_bytes_from_dpcd(struct rk32_edp *edp,
604 unsigned int reg_addr,
606 unsigned char data[]);
607 int rk32_edp_select_i2c_device(struct rk32_edp *edp,
608 unsigned int device_addr,
609 unsigned int reg_addr);
610 int rk32_edp_read_byte_from_i2c(struct rk32_edp *edp,
611 unsigned int device_addr,
612 unsigned int reg_addr,
614 int rk32_edp_read_bytes_from_i2c(struct rk32_edp *edp,
615 unsigned int device_addr,
616 unsigned int reg_addr,
618 unsigned char edid[]);
619 void rk32_edp_set_link_bandwidth(struct rk32_edp *edp, u32 bwtype);
620 void rk32_edp_get_link_bandwidth(struct rk32_edp *edp, u32 *bwtype);
621 void rk32_edp_set_lane_count(struct rk32_edp *edp, u32 count);
622 void rk32_edp_get_lane_count(struct rk32_edp *edp, u32 *count);
623 void rk32_edp_enable_enhanced_mode(struct rk32_edp *edp, bool enable);
624 void rk32_edp_set_training_pattern(struct rk32_edp *edp,
625 enum pattern_set pattern);
626 void rk32_edp_set_lane0_pre_emphasis(struct rk32_edp *edp, u32 level);
627 void rk32_edp_set_lane1_pre_emphasis(struct rk32_edp *edp, u32 level);
628 void rk32_edp_set_lane2_pre_emphasis(struct rk32_edp *edp, u32 level);
629 void rk32_edp_set_lane3_pre_emphasis(struct rk32_edp *edp, u32 level);
630 void rk32_edp_set_lane0_link_training(struct rk32_edp *edp,
632 void rk32_edp_set_lane1_link_training(struct rk32_edp *edp,
634 void rk32_edp_set_lane2_link_training(struct rk32_edp *edp,
636 void rk32_edp_set_lane3_link_training(struct rk32_edp *edp,
638 u32 rk32_edp_get_lane0_link_training(struct rk32_edp *edp);
639 u32 rk32_edp_get_lane1_link_training(struct rk32_edp *edp);
640 u32 rk32_edp_get_lane2_link_training(struct rk32_edp *edp);
641 u32 rk32_edp_get_lane3_link_training(struct rk32_edp *edp);
642 void rk32_edp_reset_macro(struct rk32_edp *edp);
643 int rk32_edp_init_video(struct rk32_edp *edp);
645 void rk32_edp_set_video_color_format(struct rk32_edp *edp,
650 int rk32_edp_is_slave_video_stream_clock_on(struct rk32_edp *edp);
651 void rk32_edp_set_video_cr_mn(struct rk32_edp *edp,
652 enum clock_recovery_m_value_type type,
655 void rk32_edp_set_video_timing_mode(struct rk32_edp *edp, u32 type);
656 void rk32_edp_enable_video_master(struct rk32_edp *edp, bool enable);
657 void rk32_edp_start_video(struct rk32_edp *edp);
658 int rk32_edp_is_video_stream_on(struct rk32_edp *edp);
659 void rk32_edp_config_video_slave_mode(struct rk32_edp *edp,
660 struct video_info *video_info);
661 void rk32_edp_enable_scrambling(struct rk32_edp *edp);
662 void rk32_edp_disable_scrambling(struct rk32_edp *edp);
663 void rk32_edp_rx_control(struct rk32_edp *edp, bool enable);
664 int rk32_edp_bist_cfg(struct rk32_edp *edp);
665 void rk32_edp_hw_link_training_en(struct rk32_edp *edp);
666 int rk32_edp_get_hw_lt_status(struct rk32_edp *edp);
667 int rk32_edp_wait_hw_lt_done(struct rk32_edp *edp);
668 enum dp_irq_type rk32_edp_get_irq_type(struct rk32_edp *edp);
669 void rk32_edp_clear_hotplug_interrupts(struct rk32_edp *edp);