1 #ifndef _RK3288_HDMI_HW_H
2 #define _RK3288_HDMI_HW_H
3 #include <linux/interrupt.h>
4 #include "../rockchip-hdmi.h"
6 /*#define HDMI_INT_USE_POLL 1*/
18 /* Color Space Convertion Mode */
20 CSC_RGB_0_255_TO_RGB_16_235_8BIT, /* RGB 0-255 input to RGB
21 16-235 output that is 8bit
23 CSC_RGB_0_255_TO_RGB_16_235_10BIT, /* RGB 0-255 input to RGB
24 16-235 output that is 8bit
26 CSC_RGB_0_255_TO_ITU601_16_235_8BIT, /* RGB 0-255 input to YCbCr
27 16-235 output according
28 BT601 that is 8bit clolor
30 CSC_RGB_0_255_TO_ITU601_16_235_10BIT, /* RGB 0-255 input to YCbCr
31 16-235 output according
32 BT601 that is 10bit clolor
34 CSC_RGB_0_255_TO_ITU709_16_235_8BIT, /* RGB 0-255 input to YCbCr
35 16-235 output accroding
36 BT709 that is 8bit clolor
38 CSC_RGB_0_255_TO_ITU709_16_235_10BIT, /* RGB 0-255 input to YCbCr
39 16-235 output accroding
40 BT709 that is 10bit clolor
42 CSC_ITU601_16_235_TO_RGB_0_255_8BIT, /* YCbCr 16-235 input to RGB
43 0-255 output according
44 BT601 that is 8bit clolor
46 CSC_ITU709_16_235_TO_RGB_0_255_8BIT, /* YCbCr 16-235 input to RGB
47 0-255 output according
48 BT709 that is 8bit clolor
50 CSC_ITU601_16_235_TO_RGB_16_235_8BIT, /* YCbCr 16-235 input to RGB
51 16-235 output according
52 BT601 that is 8bit clolor
54 CSC_ITU709_16_235_TO_RGB_16_235_8BIT /* YCbCr 16-235 input to RGB
55 16-235 output according
56 BT709 that is 8bit clolor
60 #define HDMI_SCL_RATE (100*1000)
61 #define DDC_I2C_EDID_ADDR 0x50 /* 0xA0/2 = 0x50 */
62 #define DDC_I2C_SEG_ADDR 0x30 /* 0x60/2 = 0x30 */
63 #define DDC_I2C_SCDC_ADDR 0x54 /* 0xa8/2 = 0x54 */
65 /* Register and Field Descriptions */
66 /* Identification Registers */
67 #define IDENTIFICATION_BASE 0x0000
69 #define DESIGN_ID 0x0000
70 #define REVISION_ID 0x0001
71 #define PRODUCT_ID0 0x0002
72 #define PRODUCT_ID1 0x0003
74 #define CONFIG0_ID 0x0004
75 #define m_PREPEN (1 << 7)
76 #define m_AUDSPDIF (1 << 5)
77 #define m_AUDI2S (1 << 4)
78 #define m_HDMI14 (1 << 3)
79 #define m_CSC (1 << 2)
80 #define m_CEC (1 << 1)
81 #define m_HDCP (1 << 0)
83 #define CONFIG1_ID 0x0005
84 #define m_HDCP22 (1 << 6)
85 #define m_HDMI20 (1 << 5)
86 #define m_CONFAPB (1 << 1)
88 #define CONFIG2_ID 0x0006
91 HDMI_MHL_WITH_HEAC_PHY = 0xb2,
93 HDMI_3D_TX_WITH_HEAC_PHY = 0xe2,
94 HDMI_3D_TX_PHY = 0xf2,
98 #define CONFIG3_ID 0x0007
99 #define m_AHB_AUD_DMA (1 << 1)
100 #define m_GP_AUD (1 << 0)
102 /* Interrupt Registers */
103 #define INTERRUPT_BASE 0x0100
105 #define IH_FC_STAT0 0x0100
106 #define m_AUD_INFOFRAME (1 << 7)
107 #define m_AUD_CONTENT_PROTECT (1 << 6)
108 #define m_AUD_HBR (1 << 5)
109 #define m_AUD_SAMPLE (1 << 2)
110 #define m_AUD_CLK_REGEN (1 << 1)
111 #define m_NULL_PACKET (1 << 0)
113 #define IH_FC_STAT1 0x0101
114 #define m_GMD (1 << 7)
115 #define m_ISCR1 (1 << 6)
116 #define m_ISCR2 (1 << 5)
117 #define m_VSD (1 << 4)
118 #define m_SPD (1 << 3)
119 #define m_AVI_INFOFRAME (1 << 1)
120 #define m_GCP (1 << 0)
122 #define v_AVI_INFOFRAME(n) (((n)&0x01) << 1)
124 #define IH_FC_STAT2 0x0102
125 #define m_LOWPRIO_OVERFLOW (1 << 1)
126 #define m_HIGHPRIO_OVERFLOW (1 << 0)
128 #define IH_AS_SATA0 0x0103
129 #define m_FIFO_UNDERRUN (1 << 4)
130 #define m_FIFO_OVERRUN (1 << 3)
131 #define m_AUD_FIFO_UDFLOW_THR (1 << 2)
132 #define m_AUD_FIFO_UDFLOW (1 << 1)
133 #define m_AUD_FIFO_OVERFLOW (1 << 0)
135 #define IH_PHY_STAT0 0x0104
136 #define m_RX_SENSE3 (1 << 5)
137 #define m_RX_SENSE2 (1 << 4)
138 #define m_RX_SENSE1 (1 << 3)
139 #define m_RX_SENSE0 (1 << 2)
140 #define m_TX_PHY_LOCK (1 << 1)
141 #define m_HPD (1 << 0)
143 #define IH_I2CM_STAT0 0x0105
144 #define m_SCDC_READREQ (1 << 2)
145 #define m_I2CM_DONE (1 << 1)
146 #define m_I2CM_ERROR (1 << 0)
148 #define IH_CEC_STAT0 0x0106
149 #define m_WAKEUP (1 << 6)
150 #define m_ERR_FOLLOW (1 << 5)
151 #define m_ERR_INITIATOR (1 << 4)
152 #define m_ARB_LOST (1 << 3)
153 #define m_NACK (1 << 2)
154 #define m_EOM (1 << 1)
155 #define m_DONE (1 << 0)
157 #define IH_VP_STAT0 0x0107
158 #define m_FIFOFULL_REPET (1 << 7)
159 #define m_FIFOEMPTY_REPET (1 << 6)
160 #define m_FIFOFULL_PACK (1 << 5)
161 #define m_FIFOEMPTY_PACK (1 << 4)
162 #define m_FIFOFULL_REMAP (1 << 3)
163 #define m_FIFOEMPTY_REMAP (1 << 2)
164 #define m_FIFOFULL_BYPASS (1 << 1)
165 #define m_FIFOEMPTY_BYPASS (1 << 0)
167 #define IH_I2CMPHY_STAT0 0x0108
168 #define m_I2CMPHY_DONE (1 << 1)
169 #define m_I2CMPHY_ERR (1 << 0)
171 #define IH_AHBDMAAUD_STAT0 0x0109
172 #define m_AUDDMA_INT_BUFOVERRUN (1 << 6)
173 #define m_AUDDMA_INT_ERR (1 << 5)
174 #define m_AUDDMA_INT_LOST (1 << 4)
175 #define m_AUDDMA_INT_RETRYSPLIT (1 << 3)
176 #define m_AUDDMA_INT_DONE (1 << 2)
177 #define m_AUDDMA_INT_BUFFULL (1 << 1)
178 #define m_AUDDMA_INT_BUFEMPTY (1 << 0)
180 #define IH_DECODE 0x0170
181 #define m_IH_FC_STAT0 (1 << 7)
182 #define m_IH_FC_STAT1 (1 << 6)
183 #define m_IH_FC_STAT2_VP (1 << 5)
184 #define m_IH_AS_STAT0 (1 << 4)
185 #define m_IH_PHY (1 << 3)
186 #define m_IH_I2CM_STAT0 (1 << 2)
187 #define m_IH_CEC_STAT0 (1 << 1)
188 #define m_IH_AHBDMAAUD_STAT0 (1 << 0)
190 #define IH_MUTE_FC_STAT0 0x0180
191 #define m_AUDI_MUTE (1 << 7)
192 #define m_ACP_MUTE (1 << 6)
193 #define m_DST_MUTE (1 << 4)
194 #define m_OBA_MUTE (1 << 3)
195 #define m_AUDS_MUTE (1 << 2)
196 #define m_ACR_MUTE (1 << 1)
197 #define m_NULL_MUTE (1 << 0)
199 #define IH_MUTE_FC_STAT1 0x0181
200 #define m_GMD_MUTE (1 << 7)
201 #define m_ISCR1_MUTE (1 << 6)
202 #define m_ISCR2_MUTE (1 << 5)
203 #define m_VSD_MUTE (1 << 4)
204 #define m_SPD_MUTE (1 << 3)
205 #define m_AVI_MUTE (1 << 1)
206 #define m_GCP_MUTE (1 << 0)
208 #define IH_MUTE_FC_STAT2 0x0182
209 #define m_LPRIO_OVERFLOW_MUTE (1 << 1)
210 #define m_HPRIO_OVERFLOW_MUTE (1 << 0)
212 #define IH_MUTE_AS_STAT0 0x0183
213 #define m_FIFO_UNDERRUN_MUTE (1 << 4)
214 #define m_FIFO_OVERRUN_MUTE (1 << 3)
215 #define m_AUD_FIFO_UDF_THR_MUTE (1 << 2)
216 #define m_AUD_FIFO_UDF_MUTE (1 << 1)
217 #define m_AUD_FIFO_OVF_MUTE (1 << 0)
219 #define IH_MUTE_PHY_STAT0 0x0184
220 #define m_RX_SENSE3_MUTE (1 << 5)
221 #define m_RX_SENSE2_MUTE (1 << 4)
222 #define m_RX_SENSE1_MUTE (1 << 3)
223 #define m_RX_SENSE0_MUTE (1 << 2)
224 #define m_TX_PHY_LOCK_MUTE (1 << 1)
225 #define m_HPD_MUTE (1 << 0)
227 #define IH_MUTE_I2CM_STAT0 0x0185
228 #define m_SCDC_READREQ_MUTE (1 << 2)
229 #define v_SCDC_READREQ_MUTE(n) (((n)&0x01) << 2)
230 #define m_I2CM_DONE_MUTE (1 << 1)
231 #define v_I2CM_DONE_MUTE(n) (((n)&0x01) << 1)
232 #define m_I2CM_ERR_MUTE (1 << 0)
233 #define v_I2CM_ERR_MUTE(n) (((n)&0x01) << 0)
235 #define IH_MUTE_CEC_STAT0 0x0186
236 #define m_WAKEUP_MUTE (1 << 6)
237 #define m_ERR_FOLLOW_MUTE (1 << 5)
238 #define m_ERR_INITIATOR_MUTE (1 << 4)
239 #define m_ARB_LOST_MUTE (1 << 3)
240 #define m_NACK_MUTE (1 << 2)
241 #define m_EOM_MUTE (1 << 1)
242 #define m_DONE_MUTE (1 << 0)
244 #define IH_MUTE_VP_STAT0 0x0187
245 #define m_FIFOFULL_REP_MUTE (1 << 7)
246 #define m_FIFOEMPTY_REP_MUTE (1 << 6)
247 #define m_FIFOFULL_PACK_MUTE (1 << 5)
248 #define m_FIFOEMPTY_PACK_MUTE (1 << 4)
249 #define m_FIFOFULL_REMAP_MUTE (1 << 3)
250 #define m_FIFOEMPTY_REMAP_MUTE (1 << 2)
251 #define m_FIFOFULL_BYP_MUTE (1 << 1)
252 #define m_FIFOEMPTY_BYP_MUTE (1 << 0)
254 #define IH_MUTE_I2CMPHY_STAT0 0x0188
255 #define m_I2CMPHY_DONE_MUTE (1 << 1)
256 #define m_I2CMPHY_ERR_MUTE (1 << 0)
258 #define IH_MUTE_AHBDMAAUD_STAT0 0x0189
259 #define IH_MUTE 0x01ff
261 /* Video Sampler Registers */
262 #define VIDEO_SAMPLER_BASE 0x0200
264 #define TX_INVID0 0x0200
265 #define m_INTERNAL_DE_GEN (1 << 7)
266 #define v_INTERNAL_DE_GEN(n) (((n)&0x01) << 7)
268 VIDEO_RGB444_8BIT = 0x01,
269 VIDEO_RGB444_10BIT = 0x03,
270 VIDEO_RGB444_12BIT = 0x05,
271 VIDEO_RGB444_16BIT = 0x07,
272 VIDEO_YCBCR444_8BIT = 0x09, /* or YCbCr420 */
273 VIDEO_YCBCR444_10BIT = 0x0b, /* or YCbCr420 */
274 VIDEO_YCBCR444_12BIT = 0x0d, /* or YCbCr420 */
275 VIDEO_YCBCR444_16BIT = 0x0f, /* or YCbCr420 */
276 VIDEO_YCBCR422_12BIT = 0x12,
277 VIDEO_YCBCR422_10BIT = 0x14,
278 VIDEO_YCBCR422_8BIT = 0x16
280 #define m_VIDEO_MAPPING (0x1f << 0)
281 #define v_VIDEO_MAPPING(n) ((n)&0x1f)
283 #define TX_INSTUFFING 0x0201
284 #define m_BCBDATA_STUFF (1 << 2)
285 #define v_BCBDATA_STUFF(n) (((n)&0x01) << 2)
286 #define m_RCRDATA_STUFF (1 << 1)
287 #define v_RCRDATA_STUFF(n) (((n)&0x01) << 1)
288 #define m_GYDATA_STUFF (1 << 0)
289 #define v_GYDATA_STUFF(n) (((n)&0x01) << 0)
291 #define TX_GYDATA0 0x0202
292 #define TX_GYDATA1 0x0203
293 #define TX_RCRDATA0 0x0204
294 #define TX_RCRDATA1 0x0205
295 #define TX_BCBDATA0 0x0206
296 #define TX_BCBDATA1 0x0207
298 /* Video Packetizer Registers */
299 #define VIDEO_PACKETIZER_BASE 0x0800
301 #define VP_STATUS 0x0800
302 #define m_PACKING_PHASE (0x0f << 0)
304 #define VP_PR_CD 0x0801
306 COLOR_DEPTH_24BIT_DEFAULT = 0,
307 COLOR_DEPTH_24BIT = 0x04,
312 #define m_COLOR_DEPTH (0x0f << 4)
313 #define v_COLOR_DEPTH(n) (((n)&0x0f) << 4)
326 #define m_DESIRED_PR_FACTOR (0x0f << 0)
327 #define v_DESIRED_PR_FACTOR(n) (((n)&0x0f) << 0)
329 #define VP_STUFF 0x0802
330 #define m_IDEFAULT_PHASE (1 << 5)
331 #define v_IDEFAULT_PHASE(n) (((n)&0x01) << 5)
332 #define m_IFIX_PP_TO_LAST (1 << 4)
333 #define m_ICX_GOTO_P0_ST (1 << 3)
338 #define m_YCC422_STUFFING (1 << 2)
339 #define v_YCC422_STUFFING(n) (((n)&0x01) << 2)
340 #define m_PP_STUFFING (1 << 1)
341 #define v_PP_STUFFING(n) (((n)&0x01) << 1)
342 #define m_PR_STUFFING (1 << 0)
343 #define v_PR_STUFFING(n) (((n)&0x01) << 0)
345 #define VP_REMAP 0x0803
351 #define m_YCC422_SIZE (0x03 << 0)
352 #define v_YCC422_SIZE(n) (((n)&0x03) << 0)
354 #define VP_CONF 0x0804
355 #define m_BYPASS_EN (1 << 6)
356 #define v_BYPASS_EN(n) (((n)&0x01) << 6)
357 #define m_PIXEL_PACK_EN (1 << 5)
358 #define v_PIXEL_PACK_EN(n) (((n)&0x01) << 5)
359 #define m_PIXEL_REPET_EN (1 << 4)
360 #define v_PIXEL_REPET_EN(n) (((n)&0x01) << 4)
361 #define m_YCC422_EN (1 << 3)
362 #define v_YCC422_EN(n) (((n)&0x01) << 3)
363 #define m_BYPASS_SEL (1 << 2)
364 #define v_BYPASS_SEL(n) (((n)&0x01) << 2)
366 OUT_FROM_PIXEL_PACKING = 0,
367 OUT_FROM_YCC422_REMAP,
370 #define m_OUTPUT_SEL (0x03 << 0)
371 #define v_OUTPUT_SEL(n) ((n&0x03) << 0)
373 #define VP_MASK 0x0807
374 #define m_OINTFULL_REPET (1 << 7)
375 #define m_OINTEMPTY_REPET (1 << 6)
376 #define m_OINTFULL_PACK (1 << 5)
377 #define m_OINTEMPTY_PACK (1 << 4)
378 #define m_OINTFULL_REMAP (1 << 3)
379 #define m_OINTEMPTY_REMAP (1 << 2)
380 #define m_OINTFULL_BYPASS (1 << 1)
381 #define m_OINTEMPTY_BYPASS (1 << 0)
383 /* Frame Composer Registers */
384 #define FRAME_COMPOSER_BASE 0x1000
386 #define FC_INVIDCONF 0x1000
387 #define m_FC_HDCP_KEEPOUT (1 << 7)
388 #define v_FC_HDCP_KEEPOUT(n) (((n)&0x01) << 7)
389 #define m_FC_VSYNC_POL (1 << 6)
390 #define v_FC_VSYNC_POL(n) (((n)&0x01) << 6)
391 #define m_FC_HSYNC_POL (1 << 5)
392 #define v_FC_HSYNC_POL(n) (((n)&0x01) << 5)
393 #define m_FC_DE_POL (1 << 4)
394 #define v_FC_DE_POL(n) (((n)&0x01) << 4)
395 #define m_FC_HDMI_DVI (1 << 3)
396 #define v_FC_HDMI_DVI(n) (((n)&0x01) << 3)
397 #define m_FC_VBLANK (1 << 1)
398 #define v_FC_VBLANK(n) (((n)&0x01) << 1)
399 #define m_FC_INTERLACE_MODE (1 << 0)
400 #define v_FC_INTERLACE_MODE(n) (((n)&0x01) << 0)
402 #define FC_INHACTIV0 0x1001
404 #define FC_INHACTIV1 0x1002
405 #define v_FC_HACTIVE1(n) ((n) & 0x3f)
406 #define m_FC_H_ACTIVE_13 (1 << 5)
407 #define v_FC_H_ACTIVE_13(n) (((n)&0x01) << 5)
408 #define m_FC_H_ACTIVE_12 (1 << 4)
409 #define v_FC_H_ACTIVE_12(n) (((n)&0x01) << 4)
410 #define m_FC_H_ACTIVE (0x0f << 0)
411 #define v_FC_H_ACTIVE(n) (((n)&0x0f) << 0)
413 #define FC_INHBLANK0 0x1003
415 #define FC_INHBLANK1 0x1004
416 #define v_FC_HBLANK1(n) ((n) & 0x1f)
417 #define m_FC_H_BLANK_12_11 (0x07 << 2)
418 #define v_FC_H_BLANK_12_11(n) (((n)&0x07) << 2)
419 #define m_FC_H_BLANK (0x03 << 0)
420 #define v_FC_H_BLANK(n) (((n)&0x03) << 0)
422 #define FC_INVACTIV0 0x1005
424 #define FC_INVACTIV1 0x1006
425 #define v_FC_VACTIVE1(n) ((n) & 0x1f)
426 #define m_FC_V_ACTIVE_12_11 (0x03 << 3)
427 #define v_FC_V_ACTIVE_12_11(n) (((n)&0x03) << 3)
428 #define m_FC_V_ACTIVE (0x07 << 0)
429 #define v_FC_V_ACTIVE(n) (((n)&0x07) << 0)
431 #define FC_INVBLANK 0x1007
432 #define FC_HSYNCINDELAY0 0x1008
434 #define FC_HSYNCINDELAY1 0x1009
435 #define v_FC_HSYNCINDEAY1(n) ((n) & 0x1f)
436 #define m_FC_H_SYNCFP_12_11 (0x03 << 3)
437 #define v_FC_H_SYNCFP_12_11(n) (((n)&0x03) << 3)
438 #define m_FC_H_SYNCFP (0x07 << 0)
439 #define v_FC_H_SYNCFP(n) (((n)&0x07) << 0)
441 #define FC_HSYNCINWIDTH0 0x100a
443 #define FC_HSYNCINWIDTH1 0x100b
444 #define v_FC_HSYNCWIDTH1(n) ((n) & 0x03)
445 #define m_FC_HSYNC_9 (1 << 1)
446 #define v_FC_HSYNC_9(n) (((n)&0x01) << 1)
447 #define m_FC_HSYNC (1 << 0)
448 #define v_FC_HSYNC(n) (((n)&0x01) << 0)
450 #define FC_VSYNCINDELAY 0x100c
451 #define FC_VSYNCINWIDTH 0x100d
452 #define FC_INFREQ0 0x100e
453 #define FC_INFREQ1 0x100f
454 #define FC_INFREQ2 0x1010
455 #define FC_CTRLDUR 0x1011
456 #define FC_EXCTRLDUR 0x1012
457 #define FC_EXCTRLSPAC 0x1013
458 #define FC_CH0PREAM 0x1014
459 #define FC_CH1PREAM 0x1015
460 #define FC_CH2PREAM 0x1016
462 #define FC_AVICONF3 0x1017
463 enum YCC_QUAN_RANGE {
464 YQ_LIMITED_RANGE = 0,
468 #define m_FC_YQ (0x03 << 2)
469 #define v_FC_YQ(n) (((n)&0x03) << 2)
470 enum IT_CONTENT_TYPE {
476 #define m_FC_CN (0x03 << 0)
477 #define v_FC_CN(n) (((n)&0x03) << 0)
479 #define FC_GCP 0x1018
480 #define m_FC_DEFAULT_PHASE (1 << 2)
481 #define v_FC_DEFAULT_PHASE(n) (((n)&0x01) << 2)
482 #define m_FC_SET_AVMUTE (1 << 1)
483 #define v_FC_SET_AVMUTE(n) (((n)&0x01) << 1)
484 #define m_FC_CLR_AVMUTE (1 << 0)
485 #define v_FC_CLR_AVMUTE(n) (((n)&0x01) << 0)
488 AVI_COLOR_MODE_RGB = 0,
489 AVI_COLOR_MODE_YCBCR422,
490 AVI_COLOR_MODE_YCBCR444,
491 AVI_COLOR_MODE_YCBCR420
494 AVI_COLORIMETRY_NO_DATA = 0,
495 AVI_COLORIMETRY_SMPTE_170M,
496 AVI_COLORIMETRY_ITU709,
497 AVI_COLORIMETRY_EXTENDED
500 AVI_CODED_FRAME_ASPECT_NO_DATA,
501 AVI_CODED_FRAME_ASPECT_4_3,
502 AVI_CODED_FRAME_ASPECT_16_9
505 ACTIVE_ASPECT_RATE_DEFAULT = 0x08,
506 ACTIVE_ASPECT_RATE_4_3,
507 ACTIVE_ASPECT_RATE_16_9,
508 ACTIVE_ASPECT_RATE_14_9
511 AVI_QUANTIZATION_RANGE_DEFAULT = 0,
512 AVI_QUANTIZATION_RANGE_LIMITED,
513 AVI_QUANTIZATION_RANGE_FULL
516 #define FC_AVICONF0 0x1019
517 #define m_FC_RGC_YCC_2 (1 << 7) /* use for HDMI2.0 TX */
518 #define v_FC_RGC_YCC_2(n) (((n)&0x01) << 7)
519 #define m_FC_ACTIV_FORMAT (1 << 6)
520 #define v_FC_ACTIV_FORMAT(n) (((n)&0x01) << 6)
521 #define m_FC_SCAN_INFO (0x03 << 4)
522 #define v_FC_SCAN_INFO(n) (((n)&0x03) << 4)
523 #define m_FC_BAR_FORMAT (0x03 << 2)
524 #define v_FC_BAR_FORMAT(n) (((n)&0x03) << 2)
525 #define m_FC_RGC_YCC (0x03 << 0)
526 #define v_FC_RGC_YCC(n) (((n)&0x03) << 0)
528 #define FC_AVICONF1 0x101a
529 #define m_FC_COLORIMETRY (0x03 << 6)
530 #define v_FC_COLORIMETRY(n) (((n)&0x03) << 6)
531 #define m_FC_PIC_ASPEC_RATIO (0x03 << 4)
532 #define v_FC_PIC_ASPEC_RATIO(n) (((n)&0x03) << 4)
533 #define m_FC_ACT_ASPEC_RATIO (0x0f << 0)
534 #define v_FC_ACT_ASPEC_RATIO(n) (((n)&0x0f) << 0)
536 #define FC_AVICONF2 0x101b
537 #define m_FC_IT_CONTENT (1 << 7)
538 #define v_FC_IT_CONTENT(n) (((n)&0x01) << 7)
539 #define m_FC_EXT_COLORIMETRY (0x07 << 4)
540 #define v_FC_EXT_COLORIMETRY(n) (((n)&0x07) << 4)
541 #define m_FC_QUAN_RANGE (0x03 << 2)
542 #define v_FC_QUAN_RANGE(n) (((n)&0x03) << 2)
543 #define m_FC_NUN_PIC_SCALE (0x03 << 0)
544 #define v_FC_NUN_PIC_SCALE(n) (((n)&0x03) << 0)
546 #define FC_AVIVID 0x101c
547 #define m_FC_AVIVID_H (1 << 7) /* use for HDMI2.0 TX */
548 #define v_FC_AVIVID_H(n) (((n)&0x01) << 7)
549 #define m_FC_AVIVID (0x7f << 0)
550 #define v_FC_AVIVID(n) (((n)&0x7f) << 0)
552 #define FC_AVIETB0 0x101d
553 #define FC_AVIETB1 0x101e
554 #define FC_AVISBB0 0x101f
555 #define FC_AVISBB1 0x1020
556 #define FC_AVIELB0 0x1021
557 #define FC_AVIELB1 0x1022
558 #define FC_AVISRB0 0x1023
559 #define FC_AVISRB1 0x1024
561 #define FC_AUDICONF0 0x1025
562 #define m_FC_CHN_CNT (0x07 << 4)
563 #define v_FC_CHN_CNT(n) (((n)&0x07) << 4)
564 #define m_FC_CODING_TYEP (0x0f << 0)
565 #define v_FC_CODING_TYEP(n) (((n)&0x0f) << 0)
567 #define FC_AUDICONF1 0x1026
568 #define m_FC_SAMPLE_SIZE (0x03 << 4)
569 #define v_FC_SAMPLE_SIZE(n) (((n)&0x03) << 4)
570 #define m_FC_SAMPLE_FREQ (0x07 << 0)
571 #define v_FC_SAMPLE_FREQ(n) (((n)&0x07) << 0)
573 #define FC_AUDICONF2 0x1027
575 #define FC_AUDICONF3 0x1028
576 #define m_FC_LFE_PBL (0x03 << 5) /*only use for HDMI1.4 TX*/
577 #define v_FC_LFE_PBL(n) (((n)&0x03) << 5)
578 #define m_FC_DM_INH (1 << 4)
579 #define v_FC_DM_INH(n) (((n)&0x01) << 4)
580 #define m_FC_LSV (0x0f << 0)
581 #define v_FC_LSV(n) (((n)&0x0f) << 0)
583 #define FC_VSDIEEEID2 0x1029
584 #define FC_VSDSIZE 0x102a
585 #define FC_VSDIEEEID1 0x1030
586 #define FC_VSDIEEEID0 0x1031
587 #define FC_VSDPAYLOAD0 0x1032 /* 0~23 */
588 #define FC_SPDVENDORNAME0 0x104a /* 0~7 */
589 #define FC_SPDPRODUCTNAME0 0x1052 /* 0~15 */
590 #define FC_SPDDEVICEINF 0x1062
592 #define FC_AUDSCONF 0x1063
593 #define m_AUD_PACK_SAMPFIT (0x0f << 4)
594 #define v_AUD_PACK_SAMPFIT(n) (((n)&0x0f) << 4)
595 #define m_AUD_PACK_LAYOUT (1 << 0)
596 #define v_AUD_PACK_LAYOUT(n) (((n)&0x01) << 0)
598 #define FC_AUDSSTAT 0x1064
599 #define FC_AUDSV 0x1065
600 #define FC_AUDSU 0x1066
601 #define FC_AUDSCHNLS0 0x1067 /*0~8*/
602 #define FC_AUDSCHNLS1 0x1068
603 #define FC_AUDSCHNLS2 0x1069
604 #define FC_AUDSCHNLS3 0x106a
605 #define FC_AUDSCHNLS4 0x106b
606 #define FC_AUDSCHNLS5 0x106c
607 #define FC_AUDSCHNLS6 0x106d
608 #define FC_AUDSCHNLS7 0x106e
609 #define FC_AUDSCHNLS8 0x106f
621 #define m_AUDIO_SAMPLE_RATE (0x0f << 0)
622 #define v_AUDIO_SAMPLE_RATE(n) (((n)&0x0f) << 0)
623 #define m_AUDIO_ORI_SAMPLE_RATE (0x0f << 4)
624 #define v_AUDIO_ORI_SAMPLE_RATE(n) (((~n)&0x0f) << 4)
625 #define m_AUDIO_WORD_LENGTH (0x0f << 0)
626 #define v_AUDIO_WORD_LENGTH(n) (((n)&0x0f) << 0)
628 #define FC_CTRLQHIGH 0x1073
629 #define FC_CTRLQLOW 0x1074
630 #define FC_ACP0 0x1075
631 #define FC_ACP16 0x1082 /* 16~1 */
632 #define FC_ISCR1_0 0x1092
633 #define FC_ISCR1_16 0x1093 /* 16~1 */
634 #define FC_ISCR2_15 0x10a3 /* 15~0 */
636 #define FC_DATAUTO0 0x10b3
637 #define m_SPD_AUTO (1 << 4)
638 #define v_SPD_AUTO(n) (((n)&0x01) << 4)
639 #define m_VSD_AUTO (1 << 3)
640 #define v_VSD_AUTO(n) (((n)&0x01) << 3)
641 #define m_ISCR2_AUTO (1 << 2)
642 #define v_ISCR2_AUTO(n) (((n)&0x01) << 2)
643 #define m_ISCR1_AUTO (1 << 1)
644 #define v_ISCR1_AUTO(n) (((n)&0x01) << 1)
645 #define m_ACP_AUTO (1 << 0)
646 #define v_ACP_AUTO(n) (((n)&0x01) << 0)
648 #define FC_DATAUTO1 0x10b4
649 #define FC_DATAUTO2 0x10b5
651 #define FC_DATMAN 0x10b6
652 #define m_SPD_MAN (1 << 4)
653 #define v_SPD_MAN(n) (((n)&0x01) << 4)
654 #define m_VSD_MAN (1 << 3)
655 #define v_VSD_MAN(n) (((n)&0x01) << 3)
656 #define m_ISCR2_MAN (1 << 2)
657 #define v_ISCR2_MAN(n) (((n)&0x01) << 2)
658 #define m_ISCR1_MAN (1 << 1)
659 #define v_ISCR1_MAN(n) (((n)&0x01) << 1)
660 #define m_ACP_MAN (1 << 0)
661 #define v_ACP_MAN(n) (((n)&0x01) << 0)
663 #define FC_DATAUTO3 0x10b7
664 #define m_AVI_AUTO (1 << 3)
665 #define v_AVI_AUTO(n) (((n)&0x01) << 3)
666 #define m_GCP_AUTO (1 << 2)
667 #define v_GCP_AUTO(n) (((n)&0x01) << 2)
668 #define m_AAI_AUTO (1 << 1)
669 #define v_AAI_AUTO(n) (((n)&0x01) << 1)
670 #define m_ACR_AUTO (1 << 0)
671 #define v_ACR_AUTO(n) (((n)&0x01) << 0)
672 #define FC_RDRB0 0x10b8
673 #define FC_RDRB1 0x10b9
674 #define FC_RDRB2 0x10ba
675 #define FC_RDRB3 0x10bb
676 #define FC_RDRB4 0x10bc
677 #define FC_RDRB5 0x10bd
678 #define FC_RDRB6 0x10be
679 #define FC_RDRB7 0x10bf
680 #define m_AVI_PACKETS_PER_FRAME (0xf << 4)
681 #define m_AVI_PACKERS_LINE_SPACING (0xf)
682 #define v_AVI_PACKETS_PER_FRAME(n) (((n) & 0x0f) << 4)
683 #define v_AVI_PACKERS_LINE_SPACING(n) (((n) & 0x0f) << 0)
684 #define FC_MASK0 0x10d2
685 #define FC_MASK1 0x10d6
686 #define FC_MASK2 0x10da
688 #define FC_PRCONF 0x10e0
689 #define m_FC_PR_FACTOR (0x0f << 4)
690 #define v_FC_PR_FACTOR(n) (((n)&0x0f) << 4)
692 #define FC_SCRAMBLER_CTRL 0x10e1
693 #define m_FC_SCRAMBLE_UCP (1 << 4)
694 #define v_FC_SCRAMBLE_UCP(n) (((n)&0x01) << 4)
695 #define m_FC_SCRAMBLE_EN (1 << 0)
696 #define v_FC_SCRAMBLE_EN(n) (((n)&0x01) << 0)
698 #define FC_GMD_STAT 0x1100
699 #define FC_GMD_EN 0x1101
700 #define FC_GMD_UP 0x1102
701 #define FC_GMD_CONF 0x1103
702 #define FC_GMD_HB 0x1104
703 #define FC_GMD_PB0 0x1105 /*0~27*/
705 #define FC_DBGFORCE 0x1200
706 #define m_FC_FORCEAUDIO (1 << 4)
707 #define v_FC_FORCEAUDIO(n) (((n)&0x01) << 4)
708 #define m_FC_FORCEVIDEO (1 << 0)
709 #define v_FC_FORCEVIDEO(n) (((n)&0x01) << 0)
711 #define FC_DBGAUD0CH0 0x1201 /* aud0~aud2 ch0 */
712 #define FC_DBGAUD0CH1 0x1204 /* aud0~aud2 ch1 */
713 #define FC_DBGAUD0CH2 0x1207 /* aud0~aud2 ch2 */
714 #define FC_DBGAUD0CH3 0x120a /* aud0~aud2 ch3 */
715 #define FC_DBGAUD0CH4 0x120d /* aud0~aud2 ch4 */
716 #define FC_DBGAUD0CH5 0x1210 /* aud0~aud2 ch5 */
717 #define FC_DBGAUD0CH6 0x1213 /* aud0~aud2 ch6 */
718 #define FC_DBGAUD0CH7 0x1216 /* aud0~aud2 ch7 */
719 #define FC_DBGTMDS0 0x1219
720 #define FC_DBGTMDS1 0x121a
721 #define FC_DBGTMDS2 0x121b
723 /* HDMI Source PHY Registers */
724 #define HDMI_SOURCE_PHY_BASE 0x3000
726 #define PHY_CONF0 0x3000
727 #define m_POWER_DOWN_EN (1 << 7)/* no use */
728 #define v_POWER_DOWN_EN(n) (((n)&0x01) << 7)
729 #define m_TMDS_EN (1 << 6)/* no use */
730 #define v_TMDS_EN(n) (((n)&0x01) << 6)
731 #define m_SVSRET_SIG (1 << 5)/* depend on PHY_MHL_COMB0=1 */
732 #define v_SVSRET_SIG(n) (((n)&0x01) << 5)
733 #define m_PDDQ_SIG (1 << 4)
734 /*1: power down phy; 0: power on phy */
735 #define v_PDDQ_SIG(n) (((n)&0x01) << 4)
736 #define m_TXPWRON_SIG (1 << 3)
737 /*1: power on transmitter; 0: power down transmitter */
738 #define v_TXPWRON_SIG(n) (((n)&0x01) << 3)
739 #define m_ENHPD_RXSENSE_SIG (1 << 2)
740 /*1: enable detect hdp & rx sense */
741 #define v_ENHPD_RXSENSE_SIG(n) (((n)&0x01) << 2)
742 #define m_SEL_DATAEN_POL (1 << 1)
743 #define v_SEL_DATAEN_POL(n) (((n)&0x01) << 1)
744 #define m_SEL_INTERFACE (1 << 0)
745 #define v_SEL_INTERFACE(n) (((n)&0x01) << 0)
747 #define PHY_TST0 0x3001
748 #define m_TEST_CLR_SIG (1 << 5)
749 #define m_TEST_EN_SIG (1 << 4)
750 #define m_TEST_CLK_SIG (1 << 0)
752 #define PHY_TST1 0x3002
753 #define PHY_TST2 0x3003
754 #define PHY_STAT0 0x3004
755 #define PHY_INI0 0x3005
756 #define PHY_MASK 0x3006
757 #define PHY_POL0 0x3007
758 #define m_PHY_RX_SENSE3 (1 << 7)
759 #define v_PHY_TX_SENSE3(n) (((n)&0x01) << 7)
760 #define m_PHY_RX_SENSE2 (1 << 6)
761 #define v_PHY_TX_SENSE2(n) (((n)&0x01) << 6)
762 #define m_PHY_RX_SENSE1 (1 << 5)
763 #define v_PHY_TX_SENSE1(n) (((n)&0x01) << 5)
764 #define m_PHY_RX_SENSE0 (1 << 4)
765 #define v_PHY_TX_SENSE0(n) (((n)&0x01) << 4)
766 #define m_PHY_HPD (1 << 1)
767 #define v_PHY_HPD (((n)&0x01) << 1)
768 #define m_PHY_LOCK (1 << 0)
769 #define v_PHY_LOCK(n) (((n)&0x01) << 0)
771 #define PHY_PCLFREQ0 0x3008
772 #define PHY_PCLFREQ1 0x3009
773 #define PHY_PLLCFGFREQ0 0x300a
774 #define PHY_PLLCFGFREQ1 0x300b
775 #define PHY_PLLCFGFREQ2 0x300c
777 /* I2C Master PHY Registers */
778 #define I2C_MASTER_PHY_BASE 0x3020
780 #define PHY_I2CM_SLAVE 0x3020
781 #define PHY_GEN2_ADDR 0x69
782 #define PHY_HEAC_ADDR 0x49
783 #define PHY_I2C_SLAVE_ADDR 0x54
785 #define PHY_I2CM_ADDRESS 0x3021
786 #define PHY_I2CM_DATAO_1 0x3022
787 #define PHY_I2CM_DATAO_0 0x3023
788 #define PHY_I2CM_DATAI_1 0x3024
789 #define PHY_I2CM_DATAI_0 0x3025
791 #define PHY_I2CM_OPERATION 0x3026
792 #define m_PHY_I2CM_WRITE (1 << 4)
793 #define m_PHY_I2CM_READ (1 << 0)
795 #define PHY_I2CM_INT 0x3027
796 #define m_PHY_I2CM_DONE_INT_POL (1 << 3)
797 #define v_PHY_I2CM_DONE_INT_POL(n) (((n)&0x01) << 3)
798 #define m_PHY_I2CM_DONE_MASK (1 << 2)
799 #define v_PHY_I2CM_DONE_MASK(n) (((n)&0x01) << 2)
800 #define m_PHY_I2CM_DONE_INT (1 << 1)
801 #define m_PHY_I2CM_DONE_STATUS (1 << 0)
803 #define PHY_I2CM_CTLINT 0x3028
804 #define m_PHY_I2CM_NACK_POL (1 << 7)
805 #define v_PHY_I2CM_NACK_POL(n) (((n)&0x01) << 7)
806 #define m_PHY_I2CM_NACK_MASK (1 << 6)
807 #define v_PHY_I2CM_NACK_MASK(n) (((n)&0x01) << 6)
808 #define m_PHY_I2CM_NACK_INT (1 << 5)
809 #define m_PHY_I2CM_NACK_STATUS (1 << 4)
810 #define m_PHY_I2CM_ARB_POL (1 << 3)
811 #define v_PHY_I2CM_ARB_POL(n) (((n)&0x01) << 3)
812 #define m_PHY_I2CM_ARB_MASK (1 << 2)
813 #define v_PHY_I2CM_ARB_MASK(n) (((n)&0x01) << 2)
814 #define m_PHY_I2CM_ARB_INT (1 << 1)
815 #define m_PHY_I2CM_ARB_STATUS (1 << 0)
817 #define PHY_I2CM_DIV 0x3029
818 #define m_PHY_I2CM_FAST_STD (1 << 3)
819 #define v_PHY_I2CM_FAST_STD(n) (((n)&0x01) << 3)
821 #define PHY_I2CM_SOFTRSTZ 0x302a
822 #define m_PHY_I2CM_SOFTRST (1 << 0)
823 #define v_PHY_I2CM_SOFTRST(n) (((n)&0x01) << 0)
825 #define PHY_I2CM_SS_SCL_HCNT_1_ADDR 0x302b
826 #define PHY_I2CM_SS_SCL_HCNT_0_ADDR 0x302c
827 #define PHY_I2CM_SS_SCL_LCNT_1_ADDR 0x302d
828 #define PHY_I2CM_SS_SCL_LCNT_0_ADDR 0x302e
829 #define PHY_I2CM_FS_SCL_HCNT_1_ADDR 0x302f
830 #define PHY_I2CM_FS_SCL_HCNT_0_ADDR 0x3030
831 #define PHY_I2CM_FS_SCL_LCNT_1_ADDR 0x3031
832 #define PHY_I2CM_FS_SCL_LCNT_0_ADDR 0x3032
833 #define PHY_I2CM_SDA_HOLD 0x3033
835 /* Audio Sampler Registers */
836 #define AUDIO_SAMPLER_BASE 0x3100
838 #define AUD_CONF0 0x3100
839 #define m_SW_AUD_FIFO_RST (1 << 7)
840 #define v_SW_AUD_FIFO_RST(n) (((n)&0x01) << 7)
845 #define m_I2S_SEL (1 << 5)
846 #define v_I2S_SEL(n) (((n)&0x01) << 5)
851 I2S_CHANNEL_7_8 = 0xf
853 #define m_I2S_IN_EN (0x0f << 0)
854 #define v_I2S_IN_EN(n) (((n)&0x0f) << 0)
856 #define AUD_CONF1 0x3101
858 I2S_STANDARD_MODE = 0,
859 I2S_RIGHT_JUSTIFIED_MODE,
860 I2S_LEFT_JUSTIFIED_MODE,
864 #define m_I2S_MODE (0x07 << 5)
865 #define v_I2S_MODE(n) (((n)&0x07) << 5)
867 I2S_16BIT_SAMPLE = 16,
877 #define m_I2S_WIDTH (0x1f << 0)
878 #define v_I2S_WIDTH(n) (((n)&0x1f) << 0)
880 #define AUD_INT 0x3102
881 #define AUD_SPDIFINT 0x3302
882 #define m_FIFO_EMPTY_MASK (1 << 3)
883 #define v_FIFO_EMPTY_MASK(n) (((n)&0x01) << 3)
884 #define m_FIFO_FULL_MASK (1 << 2)
885 #define v_FIFO_FULL_MASK(n) (((n)&0x01) << 2)
887 #define AUD_CONF2 0x3103
888 #define m_NLPCM_EN (1 << 1)
889 #define v_NLPCM_EN(n) (((n)&0x01) << 1)
890 #define m_HBR_EN (1 << 0)
891 #define v_HBR_EN(n) (((n)&0x01) << 0)
893 #define AUD_INT1 0x3104
894 #define AUD_SPDIFINT1 0x3303
895 #define m_FIFO_OVERRUN_MASK (1 << 4)
896 #define v_FIFO_OVERRUN_MASK(n) (((n)&0x01) << 4)
898 /***************N-CTS Table**************/
899 /* TMDS LOWCLK: <=148.5M */
900 /* TMDS MIDCLK: 297M */
901 /* TMDS HIGHCLK: 594M */
902 #define N_32K_LOWCLK 0x1000
903 #define N_32K_MIDCLK 0x0c00
904 #define N_32K_HIGHCLK 0x0c00
905 #define N_441K_LOWCLK 0x1880
906 #define N_441K_MIDCLK 0x1260
907 #define N_441K_HIGHCLK 0x24c0
908 #define N_48K_LOWCLK 0x1800
909 #define N_48K_MIDCLK 0x1400
910 #define N_48K_HIGHCLK 0x1800
911 #define N_882K_LOWCLK 0x3100
912 #define N_882K_MIDCLK 0x24c0
913 #define N_882K_HIGHCLK 0x4980
914 #define N_96K_LOWCLK 0x3000
915 #define N_96K_MIDCLK 0x2800
916 #define N_96K_HIGHCLK 0x3000
917 #define N_1764K_LOWCLK 0x6200
918 #define N_1764K_MIDCLK 0x4980
919 #define N_1764K_HIGHCLK 0x9300
920 #define N_192K_LOWCLK 0x6000
921 #define N_192K_MIDCLK 0x5000
922 #define N_192K_HIGHCLK 0x6000
924 #define CALC_CTS(N, TMDSCLK, FS) (((N) / 32) * (TMDSCLK) / ((FS) * 4))
925 /****************************************/
927 #define AUD_N1 0x3200
928 #define AUD_N2 0x3201
930 #define AUD_N3 0x3202
931 #define m_NCTS_ATOMIC_WR (1 << 7)
932 #define v_NCTS_ATOMIC_WR(n) (((n)&0x01) << 7)
933 #define m_AUD_N3 (0x0f << 0)
934 #define v_AUD_N3(n) (((n)&0x0f) << 0)
936 #define AUD_CTS1 0x3203
937 #define AUD_CTS2 0x3204
939 #define AUD_CTS3 0x3205
949 #define m_N_SHIFT (0x07 << 5)
950 #define v_N_SHIFT(n) (((n)&0x07) << 5)
951 #define m_CTS_MANUAL (1 << 4)
952 #define v_CTS_MANUAL(n) (((n)&0x01) << 4)
953 #define m_AUD_CTS3 (0x0f << 0)
954 #define v_AUD_CTS3(n) (((n)&0x0f) << 0)
956 #define AUD_INPUTCLKFS 0x3206
964 #define m_LFS_FACTOR (0x07 << 0)
965 #define v_LFS_FACTOR(n) (((n)&0x07) << 0)
967 #define AUD_SPDIF0 0x3300
968 #define m_SW_SAUD_FIFO_RST (1 << 7)
969 #define v_SW_SAUD_FIFO_RST(n) (((n)&0x01) << 7)
971 #define AUD_SPDIF1 0x3301
976 #define m_SET_NLPCM (1 << 7)
977 #define v_SET_NLPCM(n) (((n)&0x01) << 7)
978 #define m_SPDIF_HBR_MODE (1 << 6)
979 #define v_SPDIF_HBR_MODE(n) (((n)&0x01) << 6)
980 #define m_SPDIF_WIDTH (0x1f << 0)
981 #define v_SPDIF_WIDTH(n) (((n)&0x1f) << 0)
983 /* Generic Parallel Audio Interface Registers */
984 #define GP_AUDIO_INTERFACE_BASE 0x3500
986 #define GP_CONF0 0x3500
987 #define GP_CONF1 0x3501
988 #define GP_CONF2 0x3502
989 #define GP_MASK 0x3506
991 /* Audio DMA Registers */
992 #define AUDIO_DMA_BASE 0x3600
994 #define AHB_DMA_CONF0 0x3600
995 #define AHB_DMA_START 0x3601
996 #define AHB_DMA_STOP 0x3602
997 #define AHB_DMA_THRSLD 0x3603
998 #define AHB_DMA_STRADDR_SET0_0 0x3604 /* 0~3 */
999 #define AHB_DMA_STPADDR_SET0_0 0x3608 /* 0~3 */
1000 #define AHB_DMA_BSTADDR0 0x360c /* 0~3 */
1001 #define AHB_DMA_MBLENGTH0 0x3610 /* 0~3 */
1002 #define AHB_DMA_MASK 0x3614
1003 #define AHB_DMA_CONF1 0x3616
1004 #define AHB_DMA_BUFFMASK 0x3619
1005 #define AHB_DMA_MASK1 0x361b
1006 #define AHB_DMA_STATUS 0x361c
1007 #define AHB_DMA_CONF2 0x361d
1008 #define AHB_DMA_STRADDR_SET1_0 0x3620 /* 0~3 */
1009 #define AHB_DMA_STPADDR_SET1_0 0x3624 /* 0~3 */
1011 /* Main Controller Registers */
1012 #define MAIN_CONTROLLER_BASE 0x4000
1014 #define MC_CLKDIS 0x4001
1015 #define m_HDCPCLK_DISABLE (1 << 6)
1016 #define v_HDCPCLK_DISABLE(n) (((n)&0x01) << 6)
1017 #define m_CECCLK_DISABLE (1 << 5)
1018 #define v_CECCLK_DISABLE(n) (((n)&0x01) << 5)
1019 #define m_CSCCLK_DISABLE (1 << 4)
1020 #define v_CSCCLK_DISABLE(n) (((n)&0x01) << 4)
1021 #define m_AUDCLK_DISABLE (1 << 3)
1022 #define v_AUDCLK_DISABLE(n) (((n)&0x01) << 3)
1023 #define m_PREPCLK_DISABLE (1 << 2)
1024 #define v_PREPCLK_DISABLE(n) (((n)&0x01) << 2)
1025 #define m_TMDSCLK_DISABLE (1 << 1)
1026 #define v_TMDSCLK_DISABLE(n) (((n)&0x01) << 1)
1027 #define m_PIXELCLK_DISABLE (1 << 0)
1028 #define v_PIXELCLK_DISABLE(n) (((n)&0x01) << 0)
1030 #define MC_SWRSTZREQ 0x4002
1031 #define m_IGPA_SWRST (1 << 7)
1032 #define v_IGPA_SWRST(n) (((n)&0x01) << 7)
1033 #define m_CEC_SWRST (1 << 6)
1034 #define v_CEC_SWRST(n) (((n)&0x01) << 6)
1035 #define m_ISPDIF_SWRST (1 << 4)
1036 #define v_ISPDIF_SWRST(n) (((n)&0x01) << 4)
1037 #define m_II2S_SWRST (1 << 3)
1038 #define v_II2S_SWRST(n) (((n)&0x01) << 3)
1039 #define m_PREP_SWRST (1 << 2)
1040 #define v_PREP_SWRST(n) (((n)&0x01) << 2)
1041 #define m_TMDS_SWRST (1 << 1)
1042 #define v_TMDS_SWRST(n) (((n)&0x01) << 1)
1043 #define m_PIXEL_SWRST (1 << 0)
1044 #define v_PIXEL_SWRST(n) (((n)&0x01) << 0)
1046 #define MC_OPCTRL 0x4003
1047 #define m_HDCP_BLOCK_BYP (1 << 0)
1048 #define v_HDCP_BLOCK_BYP(n) (((n)&0x01) << 0)
1050 #define MC_FLOWCTRL 0x4004
1051 #define m_FEED_THROUGH_OFF (1 << 0)
1052 #define v_FEED_THROUGH_OFF(n) (((n)&0x01) << 0)
1054 #define MC_PHYRSTZ 0x4005
1055 #define m_PHY_RSTZ (1 << 0)
1056 #define v_PHY_RSTZ(n) (((n)&0x01) << 0)
1058 #define MC_LOCKONCLOCK 0x4006
1059 #define m_IGPACLK_ON (1 << 7)
1060 #define v_IGPACLK_ON(n) (((n)&0x01) << 7)
1061 #define m_PCLK_ON (1 << 6)
1062 #define v_PCLK_ON(n) (((n)&0x01) << 6)
1063 #define m_TMDSCLK_ON (1 << 5)
1064 #define v_TMDSCLK_ON(n) (((n)&0x01) << 5)
1065 #define m_PREPCLK_ON (1 << 4)
1066 #define v_PREPCLK_ON(n) (((n)&0x01) << 4)
1067 #define m_I2SCLK_ON (1 << 3)
1068 #define v_I2SCLK_ON(n) (((n)&0x01) << 3)
1069 #define m_SPDIFCLK_ON (1 << 2)
1070 #define v_SPDIFCLK_ON(n) (((n)&0x01) << 2)
1071 #define m_CECCLK_ON (1 << 0)
1072 #define v_CECCLK_ON(n) (((n)&0x01) << 0)
1074 #define MC_HEACPHY_RST 0x4007
1075 #define m_HEAC_PHY_RST (1 << 0)
1076 #define v_HEAC_PHY_RST(n) (((n)&0x01) << 0)
1078 #define MC_LOCKONCLOCK_2 0x4009
1079 #define m_AHB_AUD_DMA_CLK (1 << 0)
1080 #define v_AHB_AUD_DMA_CLK(n) (((n)&0x01) << 0)
1082 #define MC_SWRSTZREQ_2 0x400a
1083 #define m_AHB_AUD_DMA_RST (1 << 7)
1084 #define v_AHB_AUD_DMA_RST(n) (((n)&0x01) << 7)
1086 /* Color Space Converter Registers */
1087 #define COLOR_SPACE_CONVERTER_BASE 0x4100
1089 #define CSC_CFG 0x4100
1090 #define m_CSC_INTPMODE (0x03 << 4)
1091 #define v_CSC_INTPMODE(n) (((n)&0x03) << 4)
1092 #define m_CSC_DECIMODE (0x03 << 0)
1093 #define v_CSC_DECIMODE(n) (((n)&0x03) << 0)
1095 #define CSC_SCALE 0x4101
1096 #define m_CSC_COLOR_DEPTH (0x0f << 4)
1097 #define v_CSC_COLOR_DEPTH(n) (((n)&0x0f) << 4)
1098 #define m_CSC_SCALE (0x03 << 0)
1099 #define v_CSC_SCALE(n) (((n)&0x03) << 0)
1101 #define CSC_COEF_A1_MSB 0x4102
1102 #define CSC_COEF_A1_LSB 0x4103
1103 #define CSC_COEF_A2_MSB 0x4104
1104 #define CSC_COEF_A2_LSB 0x4105
1105 #define CSC_COEF_A3_MSB 0x4106
1106 #define CSC_COEF_A3_LSB 0x4107
1107 #define CSC_COEF_A4_MSB 0x4108
1108 #define CSC_COEF_A4_LSB 0x4109
1109 #define CSC_COEF_B1_MSB 0x410a
1110 #define CSC_COEF_B1_LSB 0x410b
1111 #define CSC_COEF_B2_MSB 0x410c
1112 #define CSC_COEF_B2_LSB 0x410d
1113 #define CSC_COEF_B3_MSB 0x410e
1114 #define CSC_COEF_B3_LSB 0x410f
1115 #define CSC_COEF_B4_MSB 0x4110
1116 #define CSC_COEF_B4_LSB 0x4111
1117 #define CSC_COEF_C1_MSB 0x4112
1118 #define CSC_COEF_C1_LSB 0x4113
1119 #define CSC_COEF_C2_MSB 0x4114
1120 #define CSC_COEF_C2_LSB 0x4115
1121 #define CSC_COEF_C3_MSB 0x4116
1122 #define CSC_COEF_C3_LSB 0x4117
1123 #define CSC_COEF_C4_MSB 0x4118
1124 #define CSC_COEF_C4_LSB 0x4119
1125 #define CSC_SPARE_1 0x411a
1126 #define CSC_SPARE_2 0x411b
1128 /* HDCP Encryption Engine Registers */
1129 #define HDCP_ENCRYPTION_ENGINE_BASE 0x5000
1131 #define A_HDCPCFG0 0x5000
1132 #define m_HDCP_ENHANCE_LIKE (1 << 7)
1133 #define v_HDCP_ENHANCE_LIKE(n) (((n)&0x01) << 7)
1134 #define m_I2C_FAST_MODE (1 << 6)
1135 #define v_I2C_FAST_MODE(n) (((n)&0x01) << 6)
1136 #define m_ENCRYPT_BYPASS (1 << 5)
1137 #define v_ENCRYPT_BYPASS(n) (((n)&0x01) << 5)
1138 #define m_SYNC_RI_CHECK (1 << 4)
1139 #define v_SYNC_RI_CHECK(n) (((n)&0x01) << 4)
1140 #define m_AVMUTE (1 << 3)
1141 #define m_RX_DETECT (1 << 2)
1142 #define v_RX_DETECT(n) (((n)&0x01) << 2)
1143 #define m_FEATURE11_EN (1 << 1)
1144 #define v_FEATURE11_EN(n) (((n)&0x01) << 1)
1145 #define m_HDMI_DVI (1 << 0)
1146 #define v_HDMI_DVI(n) (((n)&0x01) << 0)
1148 #define A_HDCPCFG1 0x5001
1149 #define m_HDCP_LOCK (1 << 4)
1150 #define v_HDCP_LOCK(n) (((n)&0x01) << 4)
1151 #define m_SHA1_CHECK_DISABLE (1 << 3)
1152 #define v_SHA1_CHECK_DISBALE(n) (((n)&0x01) << 3)
1153 #define m_PH2UPSHFTENC (1 << 2)
1154 #define v_PH2UPSHFTENC(n) (((n)&0x01) << 2)
1155 #define m_ENCRYPT_DISBALE (1 << 1)
1156 #define v_ENCRYPT_DISBALE(n) (((n)&0x01) << 1)
1157 #define m_HDCP_SW_RST (1 << 0)
1158 #define v_HDCP_SW_RST(n) (((n)&0x01) << 0)
1160 #define A_HDCPOBS0 0x5002
1161 #define m_STATE_AUTH (0x0f << 4)
1162 #define m_SUB_STATE_AUTH (0x07 << 1)
1163 #define m_STATE_HDCP_ENGAGED (1 << 0)
1165 #define A_HDCPOBS1 0x5003
1166 #define m_STATE_OESS (0x07 << 3)
1167 #define m_STATE_REVO (0x07 << 0)
1169 #define A_HDCPOBS2 0x5004
1170 #define m_STATE_CIPHER (0x07 << 3)
1171 #define m_STATE_EESS (0x07 << 0)
1173 #define A_HDCPOBS3 0x5005
1174 #define m_BCAP_REPEATER (1 << 6)
1175 #define m_BCAP_KSVFIFO_READY (1 << 5)
1176 #define m_BCAP_FAST_I2C (1 << 4)
1177 #define m_BCAP_HDMI_MODE (1 << 2)
1178 #define m_BCAP_FEATURES11 (1 << 1)
1179 #define m_BCAP_FAST_REAUTH (1 << 0)
1181 #define A_APIINTCLR 0x5006
1182 #define A_APIINTSTAT 0x5007
1183 #define A_APIINTMSK 0x5008
1184 #define m_HDCP_ENGAGED (1 << 7)
1185 #define m_HDCP_FAILED (1 << 6)
1186 #define m_HDCP_I2C_NOACK (1 << 4)
1187 #define m_HDCP_LOST_ARBI (1 << 3)
1188 #define m_KEEP_ERR_INT (1 << 2)
1189 #define m_KSVSHA1_CALC_INT (1 << 1)
1190 #define m_KSV_ACCESS_INT (1 << 0)
1191 #define v_HDCP_ENGAGED(n) (((n)&0x01) << 7)
1192 #define v_HDCP_FAILED(n) (((n)&0x01) << 6)
1193 #define v_HDCP_I2C_NOACK(n) (((n)&0x01) << 4)
1194 #define v_HDCP_LOST_ARBI(n) (((n)&0x01) << 3)
1195 #define v_KEEP_ERR_INT(n) (((n)&0x01) << 1)
1196 #define v_KSVSHA1_CALC_INT(n) (((n)&0x01) << 1)
1197 #define v_KSV_ACCESS_INT(n) (((n)&0x01) << 0)
1199 #define A_VIDPOLCFG 0x5009
1200 #define m_UNENCRYT_CONF (0x03 << 5)
1201 #define v_UNENCRYT_CONF(n) (((n)&0x03) << 5)
1202 #define m_DATAEN_POL (1 << 4)
1203 #define v_DATAEN_POL(n) (((n)&0x01) << 4)
1204 #define m_VSYNC_POL (1 << 3)
1205 #define v_VSYNC_POL(n) (((n)&0x01) << 3)
1206 #define m_HSYNC_POL (1 << 1)
1207 #define v_HSYNC_POL(n) (((n)&0x01) << 1)
1209 #define A_OESSWCFG 0x500a
1210 #define A_COREVERLSB 0x5014
1211 #define A_COREVERMSB 0x5015
1213 #define A_KSVMEMCTRL 0x5016
1214 #define m_SHA1_FAIL (1 << 3)
1215 #define v_SHA1_FAIL(n) (((n)&0x01) << 3)
1216 #define m_KSV_UPDATE (1 << 2)
1217 #define v_KSV_UPDATE(n) (((n)&0x01) << 2)
1218 #define m_KSV_MEM_ACCESS (1 << 1)
1219 #define m_KSV_MEM_REQ (1 << 0)
1220 #define v_KSV_MEM_REQ(n) (((n)&0x01) << 0)
1222 #define HDCP_BSTATUS_0 0x5020
1223 #define m_MAX_DEVS_EXCEEDED (1 << 7)
1224 #define m_DEVICE_COUNT (0x7f << 0)
1226 #define HDCP_BSTATUS_1 0x5021
1227 #define HDCP_M0_0 0x5022
1228 #define HDCP_M0_1 0x5023
1229 #define HDCP_M0_2 0x5024
1230 #define HDCP_M0_3 0x5025
1231 #define HDCP_M0_4 0x5026
1232 #define HDCP_M0_5 0x5027
1233 #define HDCP_M0_6 0x5028
1234 #define HDCP_M0_7 0x5029
1235 #define HDCP_KSV 0x502a /* 0~634 */
1236 #define HDCP_VH 0x52a5 /* 0~19 */
1237 #define HDCP_REVOC_SIZE_0 0x52b9
1238 #define HDCP_REVOC_SIZE_1 0x52ba
1239 #define HDCP_REVOC_LIST 0x52bb /* 0~5059 */
1241 /* HDCP BKSV Registers */
1242 #define HDCP_BKSV_BASE 0x7800
1244 #define HDCPREG_BKSV0 0x7800
1245 #define HDCPREG_BKSV1 0x7801
1246 #define HDCPREG_BKSV2 0x7802
1247 #define HDCPREG_BKSV3 0x7803
1248 #define HDCPREG_BKSV4 0x7804
1250 /* HDCP AN Registers */
1251 #define HDCP_AN_BASE 0x7805
1253 #define HDCPREG_ANCONF 0x7805
1254 #define m_OAN_BYPASS (1 << 0)
1255 #define v_OAN_BYPASS(n) (((n)&0x01) << 0)
1257 #define HDCPREG_AN0 0x7806
1258 #define HDCPREG_AN1 0x7807
1259 #define HDCPREG_AN2 0x7808
1260 #define HDCPREG_AN3 0x7809
1261 #define HDCPREG_AN4 0x780a
1262 #define HDCPREG_AN5 0x780b
1263 #define HDCPREG_AN6 0x780c
1264 #define HDCPREG_AN7 0x780d
1266 /* Encrypted DPK Embedded Storage Registers */
1267 #define ENCRYPTED_DPK_EMBEDDED_BASE 0x780e
1269 #define HDCPREG_RMCTL 0x780e
1270 #define m_DPK_DECRYPT_EN (1 << 0)
1271 #define v_DPK_DECRYPT_EN(n) (((n)&0x01) << 0)
1273 #define HDCPREG_RMSTS 0x780f
1274 #define m_DPK_WR_OK_STS (1 << 6)
1275 #define m_DPK_DATA_INDEX (0x3f << 6)
1277 #define HDCPREG_SEED0 0x7810
1278 #define HDCPREG_SEED1 0x7811
1279 #define HDCPREG_DPK0 0x7812
1280 #define HDCPREG_DPK1 0x7813
1281 #define HDCPREG_DPK2 0x7814
1282 #define HDCPREG_DPK3 0x7815
1283 #define HDCPREG_DPK4 0x7816
1284 #define HDCPREG_DPK5 0x7817
1285 #define HDCPREG_DPK6 0x7818
1287 #define HDCP2REG_BASE 0x7900
1288 #define HDCP2REG_ID 0x7900
1289 #define HDCP2REG_CTRL 0x7904
1290 #define m_HDCP2_HDP_OVR_VAL (1 << 5)
1291 #define m_HDCP2_HDP_OVR_EN (1 << 4)
1292 #define m_HDCP2_FORCE (1 << 2)
1293 #define m_HDCP2_OVR_EN (1 << 1)
1294 #define m_HDCP2_SWITCH_EN (1 << 0)
1296 #define v_HDCP2_HDP_OVR_VAL(n) (((n)&0x01) << 5)
1297 #define v_HDCP2_HDP_OVR_EN(n) (((n)&0x01) << 4)
1298 #define v_HDCP2_FORCE(n) (((n)&0x01) << 2)
1299 #define v_HDCP2_OVR_EN(n) (((n)&0x01) << 1)
1300 #define v_HDCP2_SWITCH_EN(n) (((n)&0x01) << 0)
1301 #define HDCP2REG_CTRL1 0x7905
1302 #define m_HDCP2_CD_VAL (0xf << 4)
1303 #define m_HDCP2_CD_EN (1 << 3)
1304 #define m_HDCP2_AVMUTE_OVR_VAL (1 << 1)
1305 #define m_HDCP2_AVMUTE_OVR_EN (1 << 0)
1307 #define v_HDCP2_CD_VAL(n) (((n)&0x0f) << 4)
1308 #define v_HDCP2_CD_EN(n) (((n)&0x01) << 3)
1309 #define v_HDCP2_AVMUTE_OVR_VAL(n) (((n)&0x01) << 1)
1310 #define v_HDCP2_AVMUTE_OVR_EN(n) (((n)&0x01) << 0)
1311 #define HDCP2REG_STAS 0x7908
1312 #define HDCP2REG_MASK 0x790c
1313 #define HDCP2REG_STAT 0x790d
1314 #define HDCP2REG_MUTE 0x790e
1315 #define m_HDCP2_CAPABLE (1 << 0)
1316 #define m_HDCP2_NOTCAPABLE (1 << 1)
1317 #define m_HDCP2_AUTH_LOST (1 << 2)
1318 #define m_HDCP2_AUTH_OK (1 << 3)
1319 #define m_HDCP2_AUTH_FAIL (1 << 4)
1320 #define m_HDCP2_DECRYPTED_CHG (1 << 5)
1322 /* CEC Engine Registers */
1323 #define CEC_ENGINE_BASE 0x7d00
1325 #define CEC_CTRL 0x7d00
1326 #define m_CEC_STANBY (1 << 4)
1327 #define m_CEC_BC_NCK (1 << 3)
1328 #define m_CEC_FRAME_TYPE (3 << 1)
1329 #define m_CEC_SEND (1 << 0)
1330 #define v_CEC_STANBY(n) ((n & 0x1) << 4)
1331 #define v_CEC_BC_NCK(n) ((n & 0x1) << 3)
1332 #define v_CEC_FRAME_TYPE(n) ((n & 0x3) << 1)
1333 #define v_CEC_SEND(n) (n & 0x1)
1334 #define CEC_MASK 0x7d02
1335 #define CEC_ADDR_L 0x7d05
1336 #define CEC_ADDR_H 0x7d06
1337 #define CEC_TX_CNT 0x7d07
1338 #define CEC_RX_CNT 0x7d08
1339 #define CEC_TX_DATA0 0x7d10 /* txdata0~txdata15 */
1340 #define CEC_RX_DATA0 0x7d20 /* rxdata0~rxdata15 */
1341 #define CEC_LOCK 0x7d30
1342 #define CEC_WKUPCTRL 0x7d31
1344 /* I2C Master Registers */
1345 #define I2C_MASTER_BASE 0x7e00
1347 #define I2CM_SLAVE 0x7e00
1348 #define I2CM_ADDRESS 0x7e01
1349 #define I2CM_DATAO 0x7e02
1350 #define I2CM_DATAI 0x7e03
1352 #define I2CM_OPERATION 0x7e04
1353 #define m_I2CM_WR (1 << 4)
1354 #define v_I2CM_WR(n) (((n)&0x01) << 4)
1355 #define m_I2CM_RD8_EXT (1 << 3)
1356 #define v_I2CM_RD8_EXT(n) (((n)&0x01) << 3)
1357 #define m_I2CM_RD8 (1 << 2)
1358 #define v_I2CM_RD8(n) (((n)&0x01) << 2)
1359 #define m_I2CM_RD_EXT (1 << 1)
1360 #define v_I2CM_RD_EXT(n) (((n)&0x01) << 1)
1361 #define m_I2CM_RD (1 << 0)
1362 #define v_I2CM_RD(n) (((n)&0x01) << 0)
1364 #define I2CM_INT 0x7e05
1365 #define m_I2CM_RD_REQ_MASK (1 << 6)
1366 #define v_I2CM_RD_REQ_MASK(n) (((n)&0x01) << 6)
1367 #define m_I2CM_DONE_MASK (1 << 2)
1368 #define v_I2CM_DONE_MASK(n) (((n)&0x01) << 2)
1370 #define I2CM_CTLINT 0x7e06
1371 #define m_I2CM_NACK_MASK (1 << 6)
1372 #define v_I2CM_NACK_MASK(n) (((n)&0x01) << 6)
1373 #define m_I2CM_ARB_MASK (1 << 2)
1374 #define v_I2CM_ARB_MASK(n) (((n)&0x01) << 2)
1376 #define I2CM_DIV 0x7e07
1381 #define m_I2CM_FAST_STD_MODE (1 << 3)
1382 #define v_I2CM_FAST_STD_MODE(n) (((n)&0x01) << 3)
1384 #define I2CM_SEGADDR 0x7e08
1385 #define m_I2CM_SEG_ADDR (0x7f << 0)
1386 #define v_I2CM_SEG_ADDR(n) (((n)&0x7f) << 0)
1388 #define I2CM_SOFTRSTZ 0x7e09
1389 #define m_I2CM_SOFTRST (1 << 0)
1390 #define v_I2CM_SOFTRST(n) (((n)&0x01) << 0)
1392 #define I2CM_SEGPTR 0x7e0a
1393 #define I2CM_SS_SCL_HCNT_1_ADDR 0x7e0b
1394 #define I2CM_SS_SCL_HCNT_0_ADDR 0x7e0c
1395 #define I2CM_SS_SCL_LCNT_1_ADDR 0x7e0d
1396 #define I2CM_SS_SCL_LCNT_0_ADDR 0x7e0e
1397 #define I2CM_FS_SCL_HCNT_1_ADDR 0x7e0f
1398 #define I2CM_FS_SCL_HCNT_0_ADDR 0x7e10
1399 #define I2CM_FS_SCL_LCNT_1_ADDR 0x7e11
1400 #define I2CM_FS_SCL_LCNT_0_ADDR 0x7e12
1401 #define I2CM_SDA_HOLD 0x7e13
1403 #define I2CM_SCDC_READ_UPDATE 0x7e14
1404 #define m_I2CM_UPRD_VSYNC_EN (1 << 5)
1405 #define v_I2CM_UPRD_VSYNC_EN(n) (((n)&0x01) << 5)
1406 #define m_I2CM_READ_REQ_EN (1 << 4)
1407 #define v_I2CM_READ_REQ_EN(n) (((n)&0x01) << 4)
1408 #define m_I2CM_READ_UPDATE (1 << 0)
1409 #define v_I2CM_READ_UPDATE(n) (((n)&0x01) << 0)
1411 #define I2CM_READ_BUFF0 0x7e20 /* buff0~buff7 */
1412 #define I2CM_SCDC_UPDATE0 0x7e30
1413 #define I2CM_SCDC_UPDATE1 0x7e31
1416 * HDMI TX PHY Define Start
1418 #define PHYTX_OPMODE_PLLCFG 0x06
1420 PREP_DIV_BY_2 = 0, /* 16 bits */
1421 PREP_DIV_BY_15, /* 12 bits */
1422 PREP_DIV_BY_125, /* 10 bits */
1423 PREP_DIV_BY_1, /* 8 bits */
1425 #define m_PREP_DIV (0x03 << 13)
1426 #define v_PREP_DIV(n) (((n)&0x03) << 13)
1433 #define m_TMDS_CNTRL (0x03 << 11)
1434 #define v_TMDS_CNTRL(n) (((n)&0x03) << 11)
1439 #define m_OPMODE (0x03 << 9)
1440 #define v_OPMODE(n) (((n)&0x03) << 9)
1449 #define m_FBDIV2_CNTRL (0x07 << 6)
1450 #define v_FBDIV2_CNTRL(n) (((n)&0x07) << 6)
1457 #define m_FBDIV1_CNTRL (0x03 << 4)
1458 #define v_FBDIV1_CNTRL(n) (((n)&0x03) << 4)
1465 #define m_REF_CNTRL (0x03 << 2)
1466 #define v_REF_CNTRL(n) (((n)&0x03) << 2)
1467 #define m_MPLL_N_CNTRL (0x03 << 0)
1468 #define v_MPLL_N_CNTRL(n) (((n)&0x03) << 0)
1470 #define PHYTX_CLKSYMCTRL 0x09
1471 #define v_OVERRIDE(n) (0x01 << 15)
1472 #define m_SLOPEBOOST (0x03 << 4)
1473 #define v_SLOPEBOOST(n) (((n)&0x03) << 4)
1474 #define m_TX_SYMON (0x01 << 3)
1475 #define v_TX_SYMON(n) (((n)&0x01) << 3)
1476 #define m_PREEMPHASIS (0x03 << 1)
1477 #define v_PREEMPHASIS(n) (((n)&0x03) << 1)
1478 #define m_CLK_SYMON (0x01 << 0)
1479 #define v_CLK_SYMON(n) (((n)&0x01) << 0)
1481 #define PHYTX_VLEVCTRL 0x0e
1482 #define m_SUP_TXLVL (0x1f << 5)
1483 #define v_SUP_TXLVL(n) (((n)&0x1f) << 5)
1484 #define m_SUP_CLKLVL (0x1f << 0)
1485 #define v_SUP_CLKLVL(n) (((n)&0x1f) << 0)
1487 #define PHYTX_PLLCURRCTRL 0x10
1488 #define m_MPLL_PROP_CNTRL (0x07 << 3)
1489 #define v_MPLL_PROP_CNTRL(n) (((n)&0x07) << 3)
1490 #define m_MPLL_INT_CNTRL (0x07 << 0)
1491 #define v_MPLL_INT_CNTRL(n) (((n)&0x07) << 0)
1493 #define PHYTX_PLLGMPCTRL 0x15
1494 #define m_MPLL_GMP_CNTRL (0x03 << 0)
1495 #define v_MPLL_GMP_CNTRL(n) (((n)&0x03) << 0)
1507 #define PHYTX_TERM_RESIS 0x19
1508 #define m_TX_TERM (0x07 << 0)
1509 #define v_TX_TERM(n) (((n)&0x07) << 0)
1512 struct phy_mpll_config_tab {
1530 * HDMI TX PHY Define End
1533 struct rockchip_hdmiv2_reg_table {
1538 static inline u32 hdmi_readl(struct hdmi_dev *hdmi_dev, u16 offset)
1540 return readl_relaxed(hdmi_dev->regbase + (offset) * 0x04);
1543 static inline int hdmi_writel(struct hdmi_dev *hdmi_dev, u16 offset, u32 val)
1547 writel_relaxed(val, hdmi_dev->regbase + (offset) * 0x04);
1551 static inline int hdmi_msk_reg(struct hdmi_dev *hdmi_dev,
1552 u16 offset, u32 msk, u32 val)
1557 temp = readl_relaxed(hdmi_dev->regbase +
1558 (offset) * 0x04) & (0xFF - (msk));
1559 writel_relaxed(temp | ((val) & (msk)),
1560 hdmi_dev->regbase + (offset) * 0x04);
1563 irqreturn_t rockchip_hdmiv2_dev_irq(int irq, void *priv);
1564 void rockchip_hdmiv2_dev_init_ops(struct hdmi_ops *ops);
1565 void rockchip_hdmiv2_dev_initial(struct hdmi_dev *hdmi_dev);
1566 void rockchip_hdmiv2_cec_init(struct hdmi *hdmi);
1567 void rockchip_hdmiv2_cec_isr(struct hdmi_dev *hdmi_dev, char cec_int);
1568 void rockchip_hdmiv2_hdcp_init(struct hdmi *hdmi);
1569 void rockchip_hdmiv2_hdcp2_enable(int enable);
1570 void rockchip_hdmiv2_hdcp_isr(struct hdmi_dev *hdmi_dev, int hdcp_int);
1571 int rockchip_hdmiv2_write_phy(struct hdmi_dev *hdmi_dev,
1572 int reg_addr, int val);
1573 int rockchip_hdmiv2_read_phy(struct hdmi_dev *hdmi_dev,