4 #include<linux/rk_screen.h>
5 #include<linux/earlysuspend.h>
6 #include<linux/anx9805.h>
8 #define ANX6345_SCL_RATE (100*1000)
14 #define DP_TX_PORT0_ADDR 0x70
15 #define HDMI_TX_PORT0_ADDR 0x72
17 /***************************************************************/
18 // DEV_ADDR = 0x7A or 0x7B , MIPI Rx Registers
19 #define MIPI_ANALOG_PWD_CTRL0 0x00
20 #define MIPI_ANALOG_PWD_CTRL1 0x01
21 #define MIPI_ANALOG_PWD_CTRL2 0x02
23 #define MIPI_MISC_CTRL 0x03
25 #define MIPI_TIMING_REG0 0x04
26 #define MIPI_TIMING_REG1 0x05
27 #define MIPI_TIMING_REG2 0x06
28 #define MIPI_TIMING_REG3 0x07
29 #define MIPI_TIMING_REG4 0x08
30 #define MIPI_TIMING_REG5 0x09
31 #define MIPI_TIMING_REG6 0x0a
33 #define MIPI_HS_JITTER_REG 0x0B
35 #define MIPI_VID_STABLE_CNT 0x0C
37 #define MIPI_ANALOG_CTRL0 0x0D
38 #define MIPI_ANALOG_CTRL1 0x0E
39 #define MIPI_ANALOG_CTRL2 0x0F
41 #define MIPI_PRBS_REG 0x10
42 #define MIPI_PROTOCOL_STATE 0x11
45 //End for DEV_addr 0x7A/0x7E
47 /***************************************************************/
48 // DEV_ADDR = 0x70 or 0x78 , Displayport mode and HDCP registers
49 #define SP_TX_HDCP_STATUS 0x00
50 #define SP_TX_HDCP_AUTH_PASS 0x02//bit position
52 #define SP_TX_HDCP_CONTROL_0_REG 0x01
53 #define SP_TX_HDCP_CONTROL_0_STORE_AN 0x80//bit position
54 #define SP_TX_HDCP_CONTROL_0_RX_REPEATER 0x40//bit position
55 #define SP_TX_HDCP_CONTROL_0_RE_AUTH 0x20//bit position
56 #define SP_TX_HDCP_CONTROL_0_SW_AUTH_OK 0x10//bit position
57 #define SP_TX_HDCP_CONTROL_0_HARD_AUTH_EN 0x08//bit position
58 #define SP_TX_HDCP_CONTROL_0_HDCP_ENC_EN 0x04//bit position
59 #define SP_TX_HDCP_CONTROL_0_BKSV_SRM_PASS 0x02//bit position
60 #define SP_TX_HDCP_CONTROL_0_KSVLIST_VLD 0x01//bit position
63 #define SP_TX_HDCP_CONTROL_1_REG 0x02
64 #define SP_TX_HDCP_CONTROL_1_DDC_NO_STOP 0x20//bit position
65 #define SP_TX_HDCP_CONTROL_1_DDC_NO_ACK 0x10//bit position
66 #define SP_TX_HDCP_CONTROL_1_EDDC_NO_ACK 0x08//bit position
67 //#define SP_TX_HDCP_CONTROL_1_HDCP_EMB_SCREEN_EN 0x04//bit position
68 #define SP_TX_HDCP_CONTROL_1_RCV_11_EN 0x02//bit position
69 #define SP_TX_HDCP_CONTROL_1_HDCP_11_EN 0x01//bit position
71 #define SP_TX_HDCP_LINK_CHK_FRAME_NUM 0x03
72 #define SP_TX_HDCP_CONTROL_2_REG 0x04
74 #define SP_TX_HDCP_AKSV0 0x05
75 #define SP_TX_HDCP_AKSV1 0x06
76 #define SP_TX_HDCP_AKSV2 0x07
77 #define SP_TX_HDCP_AKSV3 0x08
78 #define SP_TX_HDCP_AKSV4 0x09
81 #define SP_TX_HDCP_AN0 0x0A
82 #define SP_TX_HDCP_AN1 0x0B
83 #define SP_TX_HDCP_AN2 0x0C
84 #define SP_TX_HDCP_AN3 0x0D
85 #define SP_TX_HDCP_AN4 0x0E
86 #define SP_TX_HDCP_AN5 0x0F
87 #define SP_TX_HDCP_AN6 0x10
88 #define SP_TX_HDCP_AN7 0x11
91 #define SP_TX_HDCP_BKSV0 0x12
92 #define SP_TX_HDCP_BKSV1 0x13
93 #define SP_TX_HDCP_BKSV2 0x14
94 #define SP_TX_HDCP_BKSV3 0x15
95 #define SP_TX_HDCP_BKSV4 0x16
97 #define SP_TX_HDCP_R0_L 0x17
98 #define SP_TX_HDCP_R0_H 0x18
107 #define SP_TX_HDCP_R0_WAIT_Timer 0x40
111 #define SP_TX_SYS_CTRL1_REG 0x80
112 //#define SP_TX_SYS_CTRL1_PD_IO 0x80 // bit position
113 //#define SP_TX_SYS_CTRL1_PD_VID 0x40 // bit position
114 //#define SP_TX_SYS_CTRL1_PD_LINK 0x20 // bit position
115 //#define SP_TX_SYS_CTRL1_PD_TOTAL 0x10 // bit position
116 //#define SP_TX_SYS_CTRL1_MODE_SEL 0x08 // bit position
117 #define SP_TX_SYS_CTRL1_DET_STA 0x04 // bit position
118 #define SP_TX_SYS_CTRL1_FORCE_DET 0x02 // bit position
119 #define SP_TX_SYS_CTRL1_DET_CTRL 0x01 // bit position
121 #define SP_TX_SYS_CTRL2_REG 0x81
122 // #define SP_TX_SYS_CTRL2_ENHANCED 0x08 //bit position
123 #define SP_TX_SYS_CTRL2_CHA_STA 0x04 // bit position
124 #define SP_TX_SYS_CTRL2_FORCE_CHA 0x02 // bit position
125 #define SP_TX_SYS_CTRL2_CHA_CTRL 0x01 // bit position
127 #define SP_TX_SYS_CTRL3_REG 0x82
128 #define SP_TX_SYS_CTRL3_HPD_STATUS 0x40 // bit position
129 #define SP_TX_SYS_CTRL3_F_HPD 0x20 // bit position
130 #define SP_TX_SYS_CTRL3_HPD_CTRL 0x10 // bit position
131 #define SP_TX_SYS_CTRL3_STRM_VALID 0x04 // bit position
132 #define SP_TX_SYS_CTRL3_F_VALID 0x02 // bit position
133 #define SP_TX_SYS_CTRL3_VALID_CTRL 0x01 // bit position
135 #define SP_TX_SYS_CTRL4_REG 0x83
136 #define SP_TX_SYS_CTRL4_ENHANCED 0x08//bit position
138 #define SP_TX_VID_CTRL 0x84
140 #define SP_TX_AUD_CTRL 0x87
141 #define SP_TX_AUD_CTRL_AUD_EN 0x01
144 #define SP_TX_PKT_EN_REG 0x90
145 #define SP_TX_PKT_AUD_UP 0x80 // bit position
146 #define SP_TX_PKT_AVI_UD 0x40 // bit position
147 #define SP_TX_PKT_MPEG_UD 0x20 // bit position
148 #define SP_TX_PKT_SPD_UD 0x10 // bit position
149 #define SP_TX_PKT_AUD_EN 0x08 // bit position=
150 #define SP_TX_PKT_AVI_EN 0x04 // bit position
151 #define SP_TX_PKT_MPEG_EN 0x02 // bit position
152 #define SP_TX_PKT_SPD_EN 0x01 // bit position
155 #define SP_TX_HDCP_CTRL 0x92
157 #define SP_TX_LINK_BW_SET_REG 0xA0
158 #define SP_TX_LANE_COUNT_SET_REG 0xA1
160 #define SP_TX_TRAINING_PTN_SET_REG 0xA2
161 #define SP_TX_SCRAMBLE_DISABLE 0x20//bit 5
163 #define SP_TX_TRAINING_LANE0_SET_REG 0xA3
164 #define SP_TX_TRAINING_LANE0_SET_MAX_PRE_REACH 0x20 // bit position
165 #define SP_TX_TRAINING_LANE0_SET_MAX_DRIVE_REACH 0x04 // bit position
167 #define SP_TX_TRAINING_LANE1_SET_REG 0xA4
170 #define SSC_CTRL_REG1 0xA7
171 #define SPREAD_AMP 0x10//bit 4
172 #define MODULATION_FREQ 0x01//bit 0
175 #define SP_TX_LINK_TRAINING_CTRL_REG 0xA8
176 #define SP_TX_LINK_TRAINING_CTRL_EN 0x01 // bit position
179 #define SP_TX_DEBUG_REG1 0xB0
180 #define SP_TX_DEBUG_HPD_POLLING_DET 0x40//bit position
181 #define SP_TX_DEBUG_HPD_POLLING_EN 0x20//bit position
182 #define SP_TX_DEBUG_PLL_LOCK 0x10//bit position
185 #define SP_TX_LINK_DEBUG_REG 0xB8
186 #define SP_TX_LINK_DEBUG_INSERT_ER 0x02 // bit position
187 #define SP_TX_LINK_DEBUG_PRBS31_EN 0x01 // bit position
189 #define SP_TX_SINK_COUNT_REG 0xB9
191 #define SP_TX_LINK_STATUS_REG1 0xBB
193 #define SP_TX_SINK_STATUS_REG 0xBE
194 #define SP_TX_SINK_STATUS_SINK_STATUS_1 0x02 // bit position
195 #define SP_TX_SINK_STATUS_SINK_STATUS_0 0x01 // bit position
198 //#define SP_TX_LINK_TEST_COUNT 0xC0
201 #define SP_TX_PLL_CTRL_REG 0xC7
202 #define SP_TX_PLL_CTRL_PLL_PD 0x80 // bit position
203 #define SP_TX_PLL_CTRL_PLL_RESET 0x40 // bit position
204 //#define SP_TX_PLL_CTRL_CPREG_BLEED 0x08 // bit position
206 #define SP_TX_ANALOG_POWER_DOWN_REG 0xC8
207 #define SP_TX_ANALOG_POWER_DOWN_MACRO_PD 0x20 // bit position
208 #define SP_TX_ANALOG_POWER_DOWN_AUX_PD 0x10 // bit position
209 //#define SP_TX_ANALOG_POWER_DOWN_CH3_PD 0x08 // bit position
210 //#define SP_TX_ANALOG_POWER_DOWN_CH2_PD 0x04 // bit position
211 #define SP_TX_ANALOG_POWER_DOWN_CH1_PD 0x02 // bit position
212 #define SP_TX_ANALOG_POWER_DOWN_CH0_PD 0x01 // bit position
215 #define SP_TX_ANALOG_TEST_REG 0xC9
216 #define SP_TX_ANALOG_TEST_MACRO_RST 0x20 // bit position
217 #define SP_TX_ANALOG_TEST_PLL_TEST 0x10 // bit position
218 #define SP_TX_ANALOG_TEST_CH3_TEST 0x08 // bit position
219 #define SP_TX_ANALOG_TEST_CH2_TEST 0x04 // bit position
220 #define SP_TX_ANALOG_TEST_CH1_TEST 0x02 // bit position
221 #define SP_TX_ANALOG_TEST_CH0_TEST 0x01 // bit position
223 #define SP_TX_GNS_CTRL_REG 0xCD
224 #define SP_EQ_LOOP_CNT 0x40//bit position
225 #define SP_TX_VIDEO_MAP_CTRL 0x02 // bit position
226 #define SP_TX_RS_CTRL 0x01 // bit position
228 #define SP_TX_DOWN_SPREADING_CTRL1 0xD0 //guochuncheng
229 #define SP_TX_DOWN_SPREADING_CTRL2 0xD1
230 #define SP_TX_DOWN_SPREADING_CTRL3 0xD2
231 #define SP_TX_SSC_D_CTRL 0x40 //bit position
232 #define SP_TX_FS_CTRL_TH_CTRL 0x20 //bit position
234 #define SP_TX_M_CALCU_CTRL 0xD9
235 #define M_GEN_CLK_SEL 0x01//bit 0
238 #define SP_TX_EXTRA_ADDR_REG 0xCE
239 #define SP_TX_I2C_STRETCH_CTRL_REG 0xDB
240 #define SP_TX_AUX_STATUS 0xE0
241 #define SP_TX_DEFER_CTRL_REG 0xE2
242 #define SP_TXL_DEFER_CTRL_EN 0x80 // bit position
244 #define SP_TX_BUF_DATA_COUNT_REG 0xE4
245 #define SP_TX_AUX_CTRL_REG 0xE5
246 #define SP_TX_MOT_BIT 0x04//bit 2
248 #define SP_TX_AUX_ADDR_7_0_REG 0xE6
249 #define SP_TX_AUX_ADDR_15_8_REG 0xE7
250 #define SP_TX_AUX_ADDR_19_16_REG 0xE8
252 #define SP_TX_AUX_CTRL_REG2 0xE9
253 #define SP_TX_ADDR_ONLY_BIT 0x02//bit 1
255 #define SP_TX_BUF_DATA_0_REG 0xf0
256 #define SP_TX_BUF_DATA_1_REG 0xf1
257 #define SP_TX_BUF_DATA_2_REG 0xf2
258 #define SP_TX_BUF_DATA_3_REG 0xf3
259 #define SP_TX_BUF_DATA_4_REG 0xf4
260 #define SP_TX_BUF_DATA_5_REG 0xf5
261 #define SP_TX_BUF_DATA_6_REG 0xf6
262 #define SP_TX_BUF_DATA_7_REG 0xf7
263 #define SP_TX_BUF_DATA_8_REG 0xf8
264 #define SP_TX_BUF_DATA_9_REG 0xf9
265 #define SP_TX_BUF_DATA_10_REG 0xfa
266 #define SP_TX_BUF_DATA_11_REG 0xfb
267 #define SP_TX_BUF_DATA_12_REG 0xfc
268 #define SP_TX_BUF_DATA_13_REG 0xfd
269 #define SP_TX_BUF_DATA_14_REG 0xfe
270 #define SP_TX_BUF_DATA_15_REG 0xff
272 //End for Address 0x70 or 0x78
274 /***************************************************************/
275 // DEV_ADDR = 0x72 or 0x76, System control registers
276 #define SP_TX_VND_IDL_REG 0x00
277 #define SP_TX_VND_IDH_REG 0x01
278 #define SP_TX_DEV_IDL_REG 0x02
279 #define SP_TX_DEV_IDH_REG 0x03
280 #define SP_TX_DEV_REV_REG 0x04
282 #define SP_POWERD_CTRL_REG 0x05
283 #define SP_POWERD_REGISTER_REG 0x80// bit position
284 //#define SP_POWERD_MISC_REG 0x40// bit position
285 #define SP_POWERD_IO_REG 0x20// bit position
286 #define SP_POWERD_AUDIO_REG 0x10// bit position
287 #define SP_POWERD_VIDEO_REG 0x08// bit position
288 #define SP_POWERD_LINK_REG 0x04// bit position
289 #define SP_POWERD_TOTAL_REG 0x02// bit position
290 #define SP_MODE_SEL_REG 0x01// bit position
292 #define SP_TX_RST_CTRL_REG 0x06
293 #define SP_TX_RST_MISC_REG 0x80 // bit position
294 #define SP_TX_RST_VIDCAP_REG 0x40 // bit position
295 #define SP_TX_RST_VIDFIF_REG 0x20 // bit position
296 #define SP_TX_RST_AUDFIF_REG 0x10 // bit position
297 #define SP_TX_RST_AUDCAP_REG 0x08 // bit position
298 #define SP_TX_RST_HDCP_REG 0x04 // bit position
299 #define SP_TX_RST_SW_RST 0x02 // bit position
300 #define SP_TX_RST_HW_RST 0x01 // bit position
302 #define SP_TX_RST_CTRL2_REG 0x07
303 #define SP_TX_RST_SSC 0x80//bit position
304 #define SP_TX_AC_MODE 0x40//bit position
305 //#define SP_TX_DDC_RST 0x10//bit position
306 //#define SP_TX_TMDS_BIST_RST 0x08//bit position
307 #define SP_TX_AUX_RST 0x04//bit position
308 #define SP_TX_SERDES_FIFO_RST 0x02//bit position
309 #define SP_TX_I2C_REG_RST 0x01//bit position
312 #define SP_TX_VID_CTRL1_REG 0x08
313 #define SP_TX_VID_CTRL1_VID_EN 0x80 // bit position
314 #define SP_TX_VID_CTRL1_VID_MUTE 0x40 // bit position
315 #define SP_TX_VID_CTRL1_DE_GEN 0x20 // bit position
316 #define SP_TX_VID_CTRL1_DEMUX 0x10 // bit position
317 #define SP_TX_VID_CTRL1_IN_BIT 0x04 // bit position
318 #define SP_TX_VID_CTRL1_DDRCTRL 0x02 // bit position
319 #define SP_TX_VID_CTRL1_EDGE 0x01 // bit position
321 #define SP_TX_VID_CTRL2_REG 0x09
322 #define SP_TX_VID_CTRL1_YCBIT_SEL 0x04 // bit position
324 #define SP_TX_VID_CTRL3_REG 0x0A
326 #define SP_TX_VID_CTRL4_REG 0x0B
327 #define SP_TX_VID_CTRL4_E_SYNC_EN 0x80 //bit position
328 #define SP_TX_VID_CTRL4_EX_E_SYNC 0x40 // bit position
329 #define SP_TX_VID_CTRL4_BIST 0x08 // bit position
330 #define SP_TX_VID_CTRL4_BIST_WIDTH 0x04 // bit position
332 #define SP_TX_VID_CTRL5_REG 0x0C
334 #define SP_TX_VID_CTRL6_REG 0x0D
335 #define SP_TX_VID_UPSAMPLE 0x02//bit position
337 #define SP_TX_VID_CTRL7_REG 0x0E
338 #define SP_TX_VID_CTRL8_REG 0x0F
339 #define SP_TX_VID_CTRL9_REG 0x10
341 #define SP_TX_VID_CTRL10_REG 0x11
342 #define SP_TX_VID_CTRL10_INV_F 0x08 // bit position
343 #define SP_TX_VID_CTRL10_I_SCAN 0x04 // bit position
344 #define SP_TX_VID_CTRL10_VSYNC_POL 0x02 // bit position
345 #define SP_TX_VID_CTRL10_HSYNC_POL 0x01 // bit position
347 #define SP_TX_TOTAL_LINEL_REG 0x12
348 #define SP_TX_TOTAL_LINEH_REG 0x13
349 #define SP_TX_ACT_LINEL_REG 0x14
350 #define SP_TX_ACT_LINEH_REG 0x15
351 #define SP_TX_VF_PORCH_REG 0x16
352 #define SP_TX_VSYNC_CFG_REG 0x17
353 #define SP_TX_VB_PORCH_REG 0x18
354 #define SP_TX_TOTAL_PIXELL_REG 0x19
355 #define SP_TX_TOTAL_PIXELH_REG 0x1A
356 #define SP_TX_ACT_PIXELL_REG 0x1B
357 #define SP_TX_ACT_PIXELH_REG 0x1C
358 #define SP_TX_HF_PORCHL_REG 0x1D
359 #define SP_TX_HF_PORCHH_REG 0x1E
360 #define SP_TX_HSYNC_CFGL_REG 0x1F
361 #define SP_TX_HSYNC_CFGH_REG 0x20
362 #define SP_TX_HB_PORCHL_REG 0x21
363 #define SP_TX_HB_PORCHH_REG 0x22
365 #define SP_TX_VID_STATUS 0x23
367 #define SP_TX_TOTAL_LINE_STA_L 0x24
368 #define SP_TX_TOTAL_LINE_STA_H 0x25
369 #define SP_TX_ACT_LINE_STA_L 0x26
370 #define SP_TX_ACT_LINE_STA_H 0x27
371 #define SP_TX_V_F_PORCH_STA 0x28
372 #define SP_TX_V_SYNC_STA 0x29
373 #define SP_TX_V_B_PORCH_STA 0x2A
374 #define SP_TX_TOTAL_PIXEL_STA_L 0x2B
375 #define SP_TX_TOTAL_PIXEL_STA_H 0x2C
376 #define SP_TX_ACT_PIXEL_STA_L 0x2D
377 #define SP_TX_ACT_PIXEL_STA_H 0x2E
378 #define SP_TX_H_F_PORCH_STA_L 0x2F
379 #define SP_TX_H_F_PORCH_STA_H 0x30
380 #define SP_TX_H_SYNC_STA_L 0x31
381 #define SP_TX_H_SYNC_STA_H 0x32
382 #define SP_TX_H_B_PORCH_STA_L 0x33
383 #define SP_TX_H_B_PORCH_STA_H 0x34
385 #define SP_TX_Video_Interface_BIST 0x35
387 #define SPDIF_AUDIO_CTRL0 0x36
388 #define SPDIF_AUDIO_CTRL0_SPDIF_IN 0x80 // bit position
390 #define SPDIF_AUDIO_STATUS0 0x38
391 #define SPDIF_AUDIO_STATUS0_CLK_DET 0x80
392 #define SPDIF_AUDIO_STATUS0_AUD_DET 0x01
394 #define SPDIF_AUDIO_STATUS1 0x39
396 #define AUDIO_BIST_CTRL 0x3c
397 #define AUDIO_BIST_EN 0x01
399 //#define AUDIO_BIST_CHANNEL_STATUS1 0xd0
400 //#define AUDIO_BIST_CHANNEL_STATUS2 0xd1
401 //#define AUDIO_BIST_CHANNEL_STATUS3 0xd2
402 //#define AUDIO_BIST_CHANNEL_STATUS4 0xd3
403 //#define AUDIO_BIST_CHANNEL_STATUS5 0xd4
405 #define SP_TX_VIDEO_BIT_CTRL_0_REG 0x40
406 #define SP_TX_VIDEO_BIT_CTRL_1_REG 0x41
407 #define SP_TX_VIDEO_BIT_CTRL_2_REG 0x42
408 #define SP_TX_VIDEO_BIT_CTRL_3_REG 0x43
409 #define SP_TX_VIDEO_BIT_CTRL_4_REG 0x44
410 #define SP_TX_VIDEO_BIT_CTRL_5_REG 0x45
411 #define SP_TX_VIDEO_BIT_CTRL_6_REG 0x46
412 #define SP_TX_VIDEO_BIT_CTRL_7_REG 0x47
413 #define SP_TX_VIDEO_BIT_CTRL_8_REG 0x48
414 #define SP_TX_VIDEO_BIT_CTRL_9_REG 0x49
415 #define SP_TX_VIDEO_BIT_CTRL_10_REG 0x4a
416 #define SP_TX_VIDEO_BIT_CTRL_11_REG 0x4b
417 #define SP_TX_VIDEO_BIT_CTRL_12_REG 0x4c
418 #define SP_TX_VIDEO_BIT_CTRL_13_REG 0x4d
419 #define SP_TX_VIDEO_BIT_CTRL_14_REG 0x4e
420 #define SP_TX_VIDEO_BIT_CTRL_15_REG 0x4f
421 #define SP_TX_VIDEO_BIT_CTRL_16_REG 0x50
422 #define SP_TX_VIDEO_BIT_CTRL_17_REG 0x51
423 #define SP_TX_VIDEO_BIT_CTRL_18_REG 0x52
424 #define SP_TX_VIDEO_BIT_CTRL_19_REG 0x53
425 #define SP_TX_VIDEO_BIT_CTRL_20_REG 0x54
426 #define SP_TX_VIDEO_BIT_CTRL_21_REG 0x55
427 #define SP_TX_VIDEO_BIT_CTRL_22_REG 0x56
428 #define SP_TX_VIDEO_BIT_CTRL_23_REG 0x57
429 #define SP_TX_VIDEO_BIT_CTRL_24_REG 0x58
430 #define SP_TX_VIDEO_BIT_CTRL_25_REG 0x59
431 #define SP_TX_VIDEO_BIT_CTRL_26_REG 0x5a
432 #define SP_TX_VIDEO_BIT_CTRL_27_REG 0x5b
433 #define SP_TX_VIDEO_BIT_CTRL_28_REG 0x5c
434 #define SP_TX_VIDEO_BIT_CTRL_29_REG 0x5d
435 #define SP_TX_VIDEO_BIT_CTRL_30_REG 0x5e
436 #define SP_TX_VIDEO_BIT_CTRL_31_REG 0x5f
437 #define SP_TX_VIDEO_BIT_CTRL_32_REG 0x60
438 #define SP_TX_VIDEO_BIT_CTRL_33_REG 0x61
439 #define SP_TX_VIDEO_BIT_CTRL_34_REG 0x62
440 #define SP_TX_VIDEO_BIT_CTRL_35_REG 0x63
441 #define SP_TX_VIDEO_BIT_CTRL_36_REG 0x64
442 #define SP_TX_VIDEO_BIT_CTRL_37_REG 0x65
443 #define SP_TX_VIDEO_BIT_CTRL_38_REG 0x66
444 #define SP_TX_VIDEO_BIT_CTRL_39_REG 0x67
445 #define SP_TX_VIDEO_BIT_CTRL_40_REG 0x68
446 #define SP_TX_VIDEO_BIT_CTRL_41_REG 0x69
447 #define SP_TX_VIDEO_BIT_CTRL_42_REG 0x6a
448 #define SP_TX_VIDEO_BIT_CTRL_43_REG 0x6b
449 #define SP_TX_VIDEO_BIT_CTRL_44_REG 0x6c
450 #define SP_TX_VIDEO_BIT_CTRL_45_REG 0x6d
451 #define SP_TX_VIDEO_BIT_CTRL_46_REG 0x6e
452 #define SP_TX_VIDEO_BIT_CTRL_47_REG 0x6f
455 #define SP_TX_AVI_TYPE 0x70
456 #define SP_TX_AVI_VER 0x71
457 #define SP_TX_AVI_LEN 0x72
458 #define SP_TX_AVI_DB0 0x73
459 #define SP_TX_AVI_DB1 0x74
460 #define SP_TX_AVI_DB2 0x75
461 #define SP_TX_AVI_DB3 0x76
462 #define SP_TX_AVI_DB4 0x77
463 #define SP_TX_AVI_DB5 0x78
464 #define SP_TX_AVI_DB6 0x79
465 #define SP_TX_AVI_DB7 0x7A
466 #define SP_TX_AVI_DB8 0x7B
467 #define SP_TX_AVI_DB9 0x7C
468 #define SP_TX_AVI_DB10 0x7D
469 #define SP_TX_AVI_DB11 0x7E
470 #define SP_TX_AVI_DB12 0x7F
471 #define SP_TX_AVI_DB13 0x80
472 #define SP_TX_AVI_DB14 0x81
473 #define SP_TX_AVI_DB15 0x82
476 #define SP_TX_AUD_TYPE 0x83
477 #define SP_TX_AUD_VER 0x84
478 #define SP_TX_AUD_LEN 0x85
479 #define SP_TX_AUD_DB0 0x86
480 #define SP_TX_AUD_DB1 0x87
481 #define SP_TX_AUD_DB2 0x88
482 #define SP_TX_AUD_DB3 0x89
483 #define SP_TX_AUD_DB4 0x8A
484 #define SP_TX_AUD_DB5 0x8B
485 #define SP_TX_AUD_DB6 0x8C
486 #define SP_TX_AUD_DB7 0x8D
487 #define SP_TX_AUD_DB8 0x8E
488 #define SP_TX_AUD_DB9 0x8F
489 #define SP_TX_AUD_DB10 0x90
492 #define SP_TX_SPD_TYPE 0x91
493 #define SP_TX_SPD_VER 0x92
494 #define SP_TX_SPD_LEN 0x93
495 #define SP_TX_SPD_DATA0 0x94
496 #define SP_TX_SPD_DATA1 0x95
497 #define SP_TX_SPD_DATA2 0x96
498 #define SP_TX_SPD_DATA3 0x97
499 #define SP_TX_SPD_DATA4 0x98
500 #define SP_TX_SPD_DATA5 0x99
501 #define SP_TX_SPD_DATA6 0x9A
502 #define SP_TX_SPD_DATA7 0x9B
503 #define SP_TX_SPD_DATA8 0x9C
504 #define SP_TX_SPD_DATA9 0x9D
505 #define SP_TX_SPD_DATA10 0x9E
506 #define SP_TX_SPD_DATA11 0x9F
507 #define SP_TX_SPD_DATA12 0xA0
508 #define SP_TX_SPD_DATA13 0xA1
509 #define SP_TX_SPD_DATA14 0xA2
510 #define SP_TX_SPD_DATA15 0xA3
511 #define SP_TX_SPD_DATA16 0xA4
512 #define SP_TX_SPD_DATA17 0xA5
513 #define SP_TX_SPD_DATA18 0xA6
514 #define SP_TX_SPD_DATA19 0xA7
515 #define SP_TX_SPD_DATA20 0xA8
516 #define SP_TX_SPD_DATA21 0xA9
517 #define SP_TX_SPD_DATA22 0xAA
518 #define SP_TX_SPD_DATA23 0xAB
519 #define SP_TX_SPD_DATA24 0xAC
520 #define SP_TX_SPD_DATA25 0xAD
521 #define SP_TX_SPD_DATA26 0xAE
522 #define SP_TX_SPD_DATA27 0xAF
524 //Mpeg source info frame
525 #define SP_TX_MPEG_TYPE 0xB0
526 #define SP_TX_MPEG_VER 0xB1
527 #define SP_TX_MPEG_LEN 0xB2
528 #define SP_TX_MPEG_DATA0 0xB3
529 #define SP_TX_MPEG_DATA1 0xB4
530 #define SP_TX_MPEG_DATA2 0xB5
531 #define SP_TX_MPEG_DATA3 0xB6
532 #define SP_TX_MPEG_DATA4 0xB7
533 #define SP_TX_MPEG_DATA5 0xB8
534 #define SP_TX_MPEG_DATA6 0xB9
535 #define SP_TX_MPEG_DATA7 0xBA
536 #define SP_TX_MPEG_DATA8 0xBB
537 #define SP_TX_MPEG_DATA9 0xBC
538 #define SP_TX_MPEG_DATA10 0xBD
539 #define SP_TX_MPEG_DATA11 0xBE
540 #define SP_TX_MPEG_DATA12 0xBF
541 #define SP_TX_MPEG_DATA13 0xC0
542 #define SP_TX_MPEG_DATA14 0xC1
543 #define SP_TX_MPEG_DATA15 0xC2
544 #define SP_TX_MPEG_DATA16 0xC3
545 #define SP_TX_MPEG_DATA17 0xC4
546 #define SP_TX_MPEG_DATA18 0xC5
547 #define SP_TX_MPEG_DATA19 0xC6
548 #define SP_TX_MPEG_DATA20 0xC7
549 #define SP_TX_MPEG_DATA21 0xC8
550 #define SP_TX_MPEG_DATA22 0xC9
551 #define SP_TX_MPEG_DATA23 0xCA
552 #define SP_TX_MPEG_DATA24 0xCB
553 #define SP_TX_MPEG_DATA25 0xCC
554 #define SP_TX_MPEG_DATA26 0xCD
555 #define SP_TX_MPEG_DATA27 0xCE
557 //#define GNSS_CTRL_REG 0xCD
558 //#define ENABLE_SSC_FILTER 0x80//bit
560 //#define SSC_D_VALUE 0xD0
561 //#define SSC_CTRL_REG2 0xD1
563 #define ANALOG_DEBUG_REG1 0xDC
564 #define ANALOG_SEL_BG 0x40//bit 4
565 #define ANALOG_SWING_A_30PER 0x08//bit 3
567 #define ANALOG_DEBUG_REG2 0xDD
568 #define ANALOG_24M_SEL 0x08//bit 3
569 //#define ANALOG_FILTER_ENABLED 0x10//bit 4
572 #define ANALOG_DEBUG_REG3 0xDE
574 #define PLL_FILTER_CTRL1 0xDF
575 #define PD_RING_OSC 0x40//bit 6
577 #define PLL_FILTER_CTRL2 0xE0
578 #define PLL_FILTER_CTRL3 0xE1
579 #define PLL_FILTER_CTRL4 0xE2
580 #define PLL_FILTER_CTRL5 0xE3
581 #define PLL_FILTER_CTRL6 0xE4
583 #define SP_TX_I2S_CTRL 0xE6
584 #define SP_TX_I2S_FMT 0xE7
585 #define SP_TX_I2S_CH_Status1 0xD0
586 #define SP_TX_I2S_CH_Status2 0xD1
587 #define SP_TX_I2S_CH_Status3 0xD2
588 #define SP_TX_I2S_CH_Status4 0xD3
589 #define SP_TX_I2S_CH_Status5 0xD4
592 #define SP_COMMON_INT_STATUS1 0xF1
593 #define SP_COMMON_INT1_PLL_LOCK_CHG 0x40//bit position
594 #define SP_COMMON_INT1_VIDEO_FORMAT_CHG 0x08//bit position
595 #define SP_COMMON_INT1_AUDIO_CLK_CHG 0x04//bit position
596 #define SP_COMMON_INT1_VIDEO_CLOCK_CHG 0x02//bit position
599 #define SP_COMMON_INT_STATUS2 0xF2
600 #define SP_COMMON_INT2_AUTHCHG 0x02 //bit position
601 #define SP_COMMON_INT2_AUTHDONE 0x01 //bit position
603 #define SP_COMMON_INT_STATUS3 0xF3
604 #define SP_COMMON_INT3_AFIFO_UNDER 0x80//bit position
605 #define SP_COMMON_INT3_AFIFO_OVER 0x40//bit position
607 #define SP_COMMON_INT_STATUS4 0xF4
608 #define SP_COMMON_INT4_PLUG 0x01 // bit position
609 #define SP_COMMON_INT4_ESYNC_ERR 0x10 // bit position
610 #define SP_COMMON_INT4_HPDLOST 0x02 //bit position
611 #define SP_COMMON_INT4_HPD_CHANGE 0x04 //bit position
614 #define SP_TX_INT_STATUS1 0xF7
615 #define SP_TX_INT_STATUS1_HPD 0x40 //bit position
616 #define SP_TX_INT_STATUS1_TRAINING_Finish 0x20 // bit position
617 #define SP_TX_INT_STATUS1_POLLING_ERR 0x10 // bit position
619 #define SP_TX_INT_SINK_CHG 0x08//bit position
622 #define SP_COMMON_INT_MASK1 0xF8
623 #define SP_COMMON_INT_MASK2 0xF9
624 #define SP_COMMON_INT_MASK3 0xFA
625 #define SP_COMMON_INT_MASK4 0xFB
626 #define SP_INT_MASK 0xFE
627 #define SP_TX_INT_CTRL_REG 0xFF
628 //End for dev_addr 0x72 or 0x76
630 /***************************************************************/
631 /***************************************************************/
634 #define DPCD_DPCD_REV 0x00
635 #define DPCD_MAX_LINK_RATE 0x01
636 #define DPCD_MAX_LANE_COUNT 0x02
637 #define DPCD_MAX_DOWNSPREAD 0x03
638 #define DPCD_NORP 0x04
639 #define DPCD_DOWNSTREAMPORT_PRESENT 0x05
641 #define DPCD_RECEIVE_PORT0_CAP_0 0x08
642 #define DPCD_RECEIVE_PORT0_CAP_1 0x09
643 #define DPCD_RECEIVE_PORT0_CAP_2 0x0a
644 #define DPCD_RECEIVE_PORT0_CAP_3 0x0b
646 #define DPCD_LINK_BW_SET 0x00
647 #define DPCD_LANE_COUNT_SET 0x01
648 #define DPCD_TRAINING_PATTERN_SET 0x02
649 #define DPCD_TRAINNIG_LANE0_SET 0x03
650 #define DPCD_TRAINNIG_LANE1_SET 0x04
651 #define DPCD_TRAINNIG_LANE2_SET 0x05
652 #define DPCD_TRAINNIG_LANE3_SET 0x06
653 #define DPCD_DOWNSPREAD_CTRL 0x07
655 #define DPCD_SINK_COUNT 0x00
656 #define DPCD_DEVICE_SERVICE_IRQ_VECTOR 0x01
657 #define DPCD_LANE0_1_STATUS 0x02
658 #define DPCD_LANE2_3_STATUS 0x03
659 #define DPCD_LANE_ALIGN_STATUS_UPDATED 0x04
660 #define DPCD_SINK_STATUS 0x05
661 #define DPCD_ADJUST_REQUEST_LANE0_1 0x06
662 #define DPCD_ADJUST_REQUEST_LANE2_3 0x07
663 #define DPCD_TRAINING_SCORE_LANE0 0x08
664 #define DPCD_TRAINING_SCORE_LANE1 0x09
665 #define DPCD_TRAINING_SCORE_LANE2 0x0a
666 #define DPCD_TRAINING_SCORE_LANE3 0x0b
668 #define DPCD_TEST_REQUEST 0x18
669 #define DPCD_TEST_LINK_RATE 0x19
671 #define DPCD_TEST_LANE_COUNT 0x20
673 #define DPCD_TEST_Response 0x60
674 #define TEST_ACK 0x01
675 #define DPCD_TEST_EDID_Checksum_Write 0x04//bit position
677 #define DPCD_TEST_EDID_Checksum 0x61
680 #define DPCD_SPECIFIC_INTERRUPT 0x10
681 #define DPCD_USER_COMM1 0x22//define for downstream HDMI Rx sense detection
684 struct anx6345_platform_data {
685 unsigned int dvdd33_en_pin;
687 unsigned int dvdd18_en_pin;
689 unsigned int edp_rst_pin;
690 int (*power_ctl)(void);
694 struct i2c_client *client;
695 struct anx6345_platform_data *pdata;
697 struct dentry *debugfs_dir;
698 #ifdef CONFIG_HAS_EARLYSUSPEND
699 struct early_suspend early_suspend;
701 int (*edp_anx_init)(struct i2c_client *client);