xref: /rk3399_rockchip-uboot/drivers/video/drm/dw_hdmi_qp.h (revision eec522089b244fa46e0d6318a5b6e6229d0eeb15)
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * (C) Copyright 2022 Fuzhou Rockchip Electronics Co., Ltd
4  */
5 #ifndef __DW_HDMI_QP_H__
6 #define __DW_HDMI_QP_H__
7 /* Main Unit Registers */
8 #define CORE_ID						0x0
9 #define VER_NUMBER					0x4
10 #define VER_TYPE					0x8
11 #define CONFIG_REG					0xc
12 #define CONFIG_CEC					BIT(28)
13 #define CONFIG_AUD_UD					BIT(23)
14 #define CORE_TIMESTAMP_HHMM				0x14
15 #define CORE_TIMESTAMP_MMDD				0x18
16 #define CORE_TIMESTAMP_YYYY				0x1c
17 /* Reset Manager Registers */
18 #define GLOBAL_SWRESET_REQUEST				0x40
19 #define EARCRX_CMDC_SWINIT_P				BIT(27)
20 #define AVP_DATAPATH_PACKET_AUDIO_SWINIT_P		BIT(10)
21 #define AVP_DATAPATH_SWINIT_P				BIT(6)
22 #define GLOBAL_SWDISABLE				0x44
23 #define CEC_SWDISABLE					BIT(17)
24 #define AVP_DATAPATH_PACKET_AUDIO_SWDISABLE		BIT(10)
25 #define AVP_DATAPATH_VIDEO_SWDISABLE			BIT(6)
26 #define RESET_MANAGER_CONFIG0				0x48
27 #define RESET_MANAGER_STATUS0				0x50
28 #define RESET_MANAGER_STATUS1				0x54
29 #define RESET_MANAGER_STATUS2				0x58
30 /* Timer Base Registers */
31 #define TIMER_BASE_CONFIG0				0x80
32 #define TIMER_BASE_STATUS0				0x84
33 /* CMU Registers */
34 #define CMU_CONFIG0					0xa0
35 #define CMU_CONFIG1					0xa4
36 #define CMU_CONFIG2					0xa8
37 #define CMU_CONFIG3					0xac
38 #define CMU_STATUS					0xb0
39 #define EARC_BPCLK_OFF					BIT(9)
40 #define AUDCLK_OFF					BIT(7)
41 #define LINKQPCLK_OFF					BIT(5)
42 #define VIDQPCLK_OFF					BIT(3)
43 #define IPI_CLK_OFF					BIT(1)
44 #define CMU_IPI_CLK_FREQ				0xb4
45 #define CMU_VIDQPCLK_FREQ				0xb8
46 #define CMU_LINKQPCLK_FREQ				0xbc
47 #define CMU_AUDQPCLK_FREQ				0xc0
48 #define CMU_EARC_BPCLK_FREQ				0xc4
49 /* I2CM Registers */
50 #define I2CM_SM_SCL_CONFIG0				0xe0
51 #define I2CM_FM_SCL_CONFIG0				0xe4
52 #define I2CM_CONFIG0					0xe8
53 #define I2CM_CONTROL0					0xec
54 #define I2CM_STATUS0					0xf0
55 #define I2CM_INTERFACE_CONTROL0				0xf4
56 #define I2CM_ADDR					0xff000
57 #define I2CM_SLVADDR					0xfe0
58 #define I2CM_WR_MASK					0x1e
59 #define I2CM_NBYTES_MASK				(0xf << 20)
60 #define I2CM_16BYTES					(0xf << 20)
61 #define I2CM_1BYTES					(0 << 20)
62 #define I2CM_EXT_READ					BIT(4)
63 #define I2CM_SHORT_READ					BIT(3)
64 #define I2CM_FM_READ					BIT(2)
65 #define I2CM_FM_WRITE					BIT(1)
66 #define I2CM_FM_EN					BIT(0)
67 #define I2CM_INTERFACE_CONTROL1				0xf8
68 #define I2CM_SEG_PTR					0x7f80
69 #define I2CM_SEG_ADDR					0x7f
70 #define I2CM_INTERFACE_WRDATA_0_3			0xfc
71 #define I2CM_INTERFACE_WRDATA_4_7			0x100
72 #define I2CM_INTERFACE_WRDATA_8_11			0x104
73 #define I2CM_INTERFACE_WRDATA_12_15			0x108
74 #define I2CM_INTERFACE_RDDATA_0_3			0x10c
75 #define I2CM_INTERFACE_RDDATA_4_7			0x110
76 #define I2CM_INTERFACE_RDDATA_8_11			0x114
77 #define I2CM_INTERFACE_RDDATA_12_15			0x118
78 /* SCDC Registers */
79 #define SCDC_CONFIG0					0x140
80 #define SCDC_I2C_FM_EN					BIT(12)
81 #define SCDC_UPD_FLAGS_AUTO_CLR				BIT(6)
82 #define SCDC_UPD_FLAGS_POLL_EN				BIT(4)
83 #define SCDC_CONTROL0					0x148
84 #define SCDC_STATUS0					0x150
85 #define STATUS_UPDATE					BIT(0)
86 #define FRL_START					BIT(4)
87 #define FLT_UPDATE					BIT(5)
88 /* FLT Registers */
89 #define FLT_CONFIG0					0x160
90 #define FLT_CONFIG1					0x164
91 #define FLT_CONFIG2					0x168
92 #define FLT_CONTROL0					0x170
93 /*  Main Unit 2 Registers */
94 #define MAINUNIT_STATUS0				0x180
95 /* Video Interface Registers */
96 #define VIDEO_INTERFACE_CONFIG0				0x800
97 #define VIDEO_INTERFACE_CONFIG1				0x804
98 #define VIDEO_INTERFACE_CONFIG2				0x808
99 #define VIDEO_INTERFACE_CONTROL0			0x80c
100 #define VIDEO_INTERFACE_STATUS0				0x814
101 /* Video Packing Registers */
102 #define VIDEO_PACKING_CONFIG0				0x81c
103 /* Audio Interface Registers */
104 #define AUDIO_INTERFACE_CONFIG0				0x820
105 #define AUD_IF_SEL_MSK					0x3
106 #define AUD_IF_SPDIF					0x2
107 #define AUD_IF_I2S					0x1
108 #define AUD_IF_PAI					0x0
109 #define AUD_FIFO_INIT_ON_OVF_MSK			BIT(2)
110 #define AUD_FIFO_INIT_ON_OVF_EN				BIT(2)
111 #define I2S_LINES_EN_MSK				GENMASK(7, 4)
112 #define I2S_LINES_EN(x)					BIT((x) + 4)
113 #define I2S_BPCUV_RCV_MSK				BIT(12)
114 #define I2S_BPCUV_RCV_EN				BIT(12)
115 #define I2S_BPCUV_RCV_DIS				0
116 #define SPDIF_LINES_EN					GENMASK(19, 16)
117 #define AUD_FORMAT_MSK					GENMASK(26, 24)
118 #define AUD_3DOBA					(0x7 << 24)
119 #define AUD_3DASP					(0x6 << 24)
120 #define AUD_MSOBA					(0x5 << 24)
121 #define AUD_MSASP					(0x4 << 24)
122 #define AUD_HBR						(0x3 << 24)
123 #define AUD_DST						(0x2 << 24)
124 #define AUD_OBA						(0x1 << 24)
125 #define AUD_ASP						(0x0 << 24)
126 #define AUDIO_INTERFACE_CONFIG1				0x824
127 #define AUDIO_INTERFACE_CONTROL0			0x82c
128 #define AUDIO_FIFO_CLR_P				BIT(0)
129 #define AUDIO_INTERFACE_STATUS0				0x834
130 /* Frame Composer Registers */
131 #define FRAME_COMPOSER_CONFIG0				0x840
132 #define FRAME_COMPOSER_CONFIG1				0x844
133 #define FRAME_COMPOSER_CONFIG2				0x848
134 #define FRAME_COMPOSER_CONFIG3				0x84c
135 #define FRAME_COMPOSER_CONFIG4				0x850
136 #define FRAME_COMPOSER_CONFIG5				0x854
137 #define FRAME_COMPOSER_CONFIG6				0x858
138 #define FRAME_COMPOSER_CONFIG7				0x85c
139 #define FRAME_COMPOSER_CONFIG8				0x860
140 #define FRAME_COMPOSER_CONFIG9				0x864
141 #define KEEPOUT_REKEY_CFG				GENMASK(9, 8)
142 #define KEEPOUT_REKEY_ALWAYS				(0x2 << 8)
143 #define FRAME_COMPOSER_CONTROL0				0x86c
144 /* Video Monitor Registers */
145 #define VIDEO_MONITOR_CONFIG0				0x880
146 #define VIDEO_MONITOR_STATUS0				0x884
147 #define VIDEO_MONITOR_STATUS1				0x888
148 #define VIDEO_MONITOR_STATUS2				0x88c
149 #define VIDEO_MONITOR_STATUS3				0x890
150 #define VIDEO_MONITOR_STATUS4				0x894
151 #define VIDEO_MONITOR_STATUS5				0x898
152 #define VIDEO_MONITOR_STATUS6				0x89c
153 /* HDCP2 Logic Registers */
154 #define HDCP2LOGIC_CONFIG0				0x8e0
155 #define HDCP2_BYPASS					BIT(0)
156 #define HDCP2LOGIC_ESM_GPIO_IN				0x8e4
157 #define HDCP2LOGIC_ESM_GPIO_OUT				0x8e8
158 /* HDCP14 Registers */
159 #define HDCP14_CONFIG0					0x900
160 #define HDCP14_CONFIG1					0x904
161 #define HDCP14_CONFIG2					0x908
162 #define HDCP14_CONFIG3					0x90c
163 #define HDCP14_KEY_SEED					0x914
164 #define HDCP14_KEY_H					0x918
165 #define HDCP14_KEY_L					0x91c
166 #define HDCP14_KEY_STATUS				0x920
167 #define HDCP14_AKSV_H					0x924
168 #define HDCP14_AKSV_L					0x928
169 #define HDCP14_AN_H					0x92c
170 #define HDCP14_AN_L					0x930
171 #define HDCP14_STATUS0					0x934
172 #define HDCP14_STATUS1					0x938
173 /* Scrambler Registers */
174 #define SCRAMB_CONFIG0					0x960
175 /* Video Configuration Registers */
176 #define LINK_CONFIG0					0x968
177 #define OPMODE_FRL_4LANES				BIT(8)
178 #define OPMODE_DVI					BIT(4)
179 #define OPMODE_FRL					BIT(0)
180 /* TMDS FIFO Registers */
181 #define TMDS_FIFO_CONFIG0				0x970
182 #define TMDS_FIFO_CONTROL0				0x974
183 /* FRL RSFEC Registers */
184 #define FRL_RSFEC_CONFIG0				0xa20
185 #define FRL_RSFEC_STATUS0				0xa30
186 /* FRL Packetizer Registers */
187 #define FRL_PKTZ_CONFIG0				0xa40
188 #define FRL_PKTZ_CONTROL0				0xa44
189 #define FRL_PKTZ_CONTROL1				0xa50
190 #define FRL_PKTZ_STATUS1				0xa54
191 /* Packet Scheduler Registers */
192 #define PKTSCHED_CONFIG0				0xa80
193 #define PKTSCHED_PRQUEUE0_CONFIG0			0xa84
194 #define PKTSCHED_PRQUEUE1_CONFIG0			0xa88
195 #define PKTSCHED_PRQUEUE2_CONFIG0			0xa8c
196 #define PKTSCHED_PRQUEUE2_CONFIG1			0xa90
197 #define PKTSCHED_PRQUEUE2_CONFIG2			0xa94
198 #define PKTSCHED_PKT_CONFIG0				0xa98
199 #define PKTSCHED_PKT_CONFIG1				0xa9c
200 #define PKTSCHED_VSI_FIELDRATE				BIT(14)
201 #define PKTSCHED_AVI_FIELDRATE				BIT(12)
202 #define PKTSCHED_PKT_CONFIG2				0xaa0
203 #define PKTSCHED_PKT_CONFIG3				0xaa4
204 #define PKTSCHED_PKT_EN					0xaa8
205 #define PKTSCHED_DRMI_TX_EN				BIT(17)
206 #define PKTSCHED_AUDI_TX_EN				BIT(15)
207 #define PKTSCHED_AVI_TX_EN				BIT(13)
208 #define PKTSCHED_VSI_TX_EN				BIT(12)
209 #define PKTSCHED_EMP_CVTEM_TX_EN			BIT(10)
210 #define PKTSCHED_AMD_TX_EN				BIT(8)
211 #define PKTSCHED_GCP_TX_EN				BIT(3)
212 #define PKTSCHED_AUDS_TX_EN				BIT(2)
213 #define PKTSCHED_ACR_TX_EN				BIT(1)
214 #define PKTSCHED_NULL_TX_EN				BIT(0)
215 #define PKTSCHED_PKT_CONTROL0				0xaac
216 #define PKTSCHED_PKT_SEND				0xab0
217 #define PKTSCHED_PKT_STATUS0				0xab4
218 #define PKTSCHED_PKT_STATUS1				0xab8
219 #define PKT_NULL_CONTENTS0				0xb00
220 #define PKT_NULL_CONTENTS1				0xb04
221 #define PKT_NULL_CONTENTS2				0xb08
222 #define PKT_NULL_CONTENTS3				0xb0c
223 #define PKT_NULL_CONTENTS4				0xb10
224 #define PKT_NULL_CONTENTS5				0xb14
225 #define PKT_NULL_CONTENTS6				0xb18
226 #define PKT_NULL_CONTENTS7				0xb1c
227 #define PKT_ACP_CONTENTS0				0xb20
228 #define PKT_ACP_CONTENTS1				0xb24
229 #define PKT_ACP_CONTENTS2				0xb28
230 #define PKT_ACP_CONTENTS3				0xb2c
231 #define PKT_ACP_CONTENTS4				0xb30
232 #define PKT_ACP_CONTENTS5				0xb34
233 #define PKT_ACP_CONTENTS6				0xb38
234 #define PKT_ACP_CONTENTS7				0xb3c
235 #define PKT_ISRC1_CONTENTS0				0xb40
236 #define PKT_ISRC1_CONTENTS1				0xb44
237 #define PKT_ISRC1_CONTENTS2				0xb48
238 #define PKT_ISRC1_CONTENTS3				0xb4c
239 #define PKT_ISRC1_CONTENTS4				0xb50
240 #define PKT_ISRC1_CONTENTS5				0xb54
241 #define PKT_ISRC1_CONTENTS6				0xb58
242 #define PKT_ISRC1_CONTENTS7				0xb5c
243 #define PKT_ISRC2_CONTENTS0				0xb60
244 #define PKT_ISRC2_CONTENTS1				0xb64
245 #define PKT_ISRC2_CONTENTS2				0xb68
246 #define PKT_ISRC2_CONTENTS3				0xb6c
247 #define PKT_ISRC2_CONTENTS4				0xb70
248 #define PKT_ISRC2_CONTENTS5				0xb74
249 #define PKT_ISRC2_CONTENTS6				0xb78
250 #define PKT_ISRC2_CONTENTS7				0xb7c
251 #define PKT_GMD_CONTENTS0				0xb80
252 #define PKT_GMD_CONTENTS1				0xb84
253 #define PKT_GMD_CONTENTS2				0xb88
254 #define PKT_GMD_CONTENTS3				0xb8c
255 #define PKT_GMD_CONTENTS4				0xb90
256 #define PKT_GMD_CONTENTS5				0xb94
257 #define PKT_GMD_CONTENTS6				0xb98
258 #define PKT_GMD_CONTENTS7				0xb9c
259 #define PKT_AMD_CONTENTS0				0xba0
260 #define PKT_AMD_CONTENTS1				0xba4
261 #define PKT_AMD_CONTENTS2				0xba8
262 #define PKT_AMD_CONTENTS3				0xbac
263 #define PKT_AMD_CONTENTS4				0xbb0
264 #define PKT_AMD_CONTENTS5				0xbb4
265 #define PKT_AMD_CONTENTS6				0xbb8
266 #define PKT_AMD_CONTENTS7				0xbbc
267 #define PKT_VSI_CONTENTS0				0xbc0
268 #define PKT_VSI_CONTENTS1				0xbc4
269 #define PKT_VSI_CONTENTS2				0xbc8
270 #define PKT_VSI_CONTENTS3				0xbcc
271 #define PKT_VSI_CONTENTS4				0xbd0
272 #define PKT_VSI_CONTENTS5				0xbd4
273 #define PKT_VSI_CONTENTS6				0xbd8
274 #define PKT_VSI_CONTENTS7				0xbdc
275 #define PKT_AVI_CONTENTS0				0xbe0
276 #define HDMI_FC_AVICONF0_ACTIVE_FMT_INFO_PRESENT	BIT(4)
277 #define HDMI_FC_AVICONF0_BAR_DATA_VERT_BAR		0x04
278 #define HDMI_FC_AVICONF0_BAR_DATA_HORIZ_BAR		0x08
279 #define HDMI_FC_AVICONF2_IT_CONTENT_VALID		0x80
280 #define PKT_AVI_CONTENTS1				0xbe4
281 #define PKT_AVI_CONTENTS2				0xbe8
282 #define PKT_AVI_CONTENTS3				0xbec
283 #define PKT_AVI_CONTENTS4				0xbf0
284 #define PKT_AVI_CONTENTS5				0xbf4
285 #define PKT_AVI_CONTENTS6				0xbf8
286 #define PKT_AVI_CONTENTS7				0xbfc
287 #define PKT_SPDI_CONTENTS0				0xc00
288 #define PKT_SPDI_CONTENTS1				0xc04
289 #define PKT_SPDI_CONTENTS2				0xc08
290 #define PKT_SPDI_CONTENTS3				0xc0c
291 #define PKT_SPDI_CONTENTS4				0xc10
292 #define PKT_SPDI_CONTENTS5				0xc14
293 #define PKT_SPDI_CONTENTS6				0xc18
294 #define PKT_SPDI_CONTENTS7				0xc1c
295 #define PKT_AUDI_CONTENTS0				0xc20
296 #define PKT_AUDI_CONTENTS1				0xc24
297 #define PKT_AUDI_CONTENTS2				0xc28
298 #define PKT_AUDI_CONTENTS3				0xc2c
299 #define PKT_AUDI_CONTENTS4				0xc30
300 #define PKT_AUDI_CONTENTS5				0xc34
301 #define PKT_AUDI_CONTENTS6				0xc38
302 #define PKT_AUDI_CONTENTS7				0xc3c
303 #define PKT_NVI_CONTENTS0				0xc40
304 #define PKT_NVI_CONTENTS1				0xc44
305 #define PKT_NVI_CONTENTS2				0xc48
306 #define PKT_NVI_CONTENTS3				0xc4c
307 #define PKT_NVI_CONTENTS4				0xc50
308 #define PKT_NVI_CONTENTS5				0xc54
309 #define PKT_NVI_CONTENTS6				0xc58
310 #define PKT_NVI_CONTENTS7				0xc5c
311 #define PKT_DRMI_CONTENTS0				0xc60
312 #define PKT_DRMI_CONTENTS1				0xc64
313 #define PKT_DRMI_CONTENTS2				0xc68
314 #define PKT_DRMI_CONTENTS3				0xc6c
315 #define PKT_DRMI_CONTENTS4				0xc70
316 #define PKT_DRMI_CONTENTS5				0xc74
317 #define PKT_DRMI_CONTENTS6				0xc78
318 #define PKT_DRMI_CONTENTS7				0xc7c
319 #define PKT_GHDMI1_CONTENTS0				0xc80
320 #define PKT_GHDMI1_CONTENTS1				0xc84
321 #define PKT_GHDMI1_CONTENTS2				0xc88
322 #define PKT_GHDMI1_CONTENTS3				0xc8c
323 #define PKT_GHDMI1_CONTENTS4				0xc90
324 #define PKT_GHDMI1_CONTENTS5				0xc94
325 #define PKT_GHDMI1_CONTENTS6				0xc98
326 #define PKT_GHDMI1_CONTENTS7				0xc9c
327 #define PKT_GHDMI2_CONTENTS0				0xca0
328 #define PKT_GHDMI2_CONTENTS1				0xca4
329 #define PKT_GHDMI2_CONTENTS2				0xca8
330 #define PKT_GHDMI2_CONTENTS3				0xcac
331 #define PKT_GHDMI2_CONTENTS4				0xcb0
332 #define PKT_GHDMI2_CONTENTS5				0xcb4
333 #define PKT_GHDMI2_CONTENTS6				0xcb8
334 #define PKT_GHDMI2_CONTENTS7				0xcbc
335 /* EMP Packetizer Registers */
336 #define PKT_EMP_CONFIG0					0xce0
337 #define PKT_EMP_CONTROL0				0xcec
338 #define PKT_EMP_CONTROL1				0xcf0
339 #define PKT_EMP_CONTROL2				0xcf4
340 #define PKT_EMP_VTEM_CONTENTS0				0xd00
341 #define PKT_EMP_VTEM_CONTENTS1				0xd04
342 #define PKT_EMP_VTEM_CONTENTS2				0xd08
343 #define PKT_EMP_VTEM_CONTENTS3				0xd0c
344 #define PKT_EMP_VTEM_CONTENTS4				0xd10
345 #define PKT_EMP_VTEM_CONTENTS5				0xd14
346 #define PKT_EMP_VTEM_CONTENTS6				0xd18
347 #define PKT_EMP_VTEM_CONTENTS7				0xd1c
348 #define PKT0_EMP_CVTEM_CONTENTS0			0xd20
349 #define PKT0_EMP_CVTEM_CONTENTS1			0xd24
350 #define PKT0_EMP_CVTEM_CONTENTS2			0xd28
351 #define PKT0_EMP_CVTEM_CONTENTS3			0xd2c
352 #define PKT0_EMP_CVTEM_CONTENTS4			0xd30
353 #define PKT0_EMP_CVTEM_CONTENTS5			0xd34
354 #define PKT0_EMP_CVTEM_CONTENTS6			0xd38
355 #define PKT0_EMP_CVTEM_CONTENTS7			0xd3c
356 #define PKT1_EMP_CVTEM_CONTENTS0			0xd40
357 #define PKT1_EMP_CVTEM_CONTENTS1			0xd44
358 #define PKT1_EMP_CVTEM_CONTENTS2			0xd48
359 #define PKT1_EMP_CVTEM_CONTENTS3			0xd4c
360 #define PKT1_EMP_CVTEM_CONTENTS4			0xd50
361 #define PKT1_EMP_CVTEM_CONTENTS5			0xd54
362 #define PKT1_EMP_CVTEM_CONTENTS6			0xd58
363 #define PKT1_EMP_CVTEM_CONTENTS7			0xd5c
364 #define PKT2_EMP_CVTEM_CONTENTS0			0xd60
365 #define PKT2_EMP_CVTEM_CONTENTS1			0xd64
366 #define PKT2_EMP_CVTEM_CONTENTS2			0xd68
367 #define PKT2_EMP_CVTEM_CONTENTS3			0xd6c
368 #define PKT2_EMP_CVTEM_CONTENTS4			0xd70
369 #define PKT2_EMP_CVTEM_CONTENTS5			0xd74
370 #define PKT2_EMP_CVTEM_CONTENTS6			0xd78
371 #define PKT2_EMP_CVTEM_CONTENTS7			0xd7c
372 #define PKT3_EMP_CVTEM_CONTENTS0			0xd80
373 #define PKT3_EMP_CVTEM_CONTENTS1			0xd84
374 #define PKT3_EMP_CVTEM_CONTENTS2			0xd88
375 #define PKT3_EMP_CVTEM_CONTENTS3			0xd8c
376 #define PKT3_EMP_CVTEM_CONTENTS4			0xd90
377 #define PKT3_EMP_CVTEM_CONTENTS5			0xd94
378 #define PKT3_EMP_CVTEM_CONTENTS6			0xd98
379 #define PKT3_EMP_CVTEM_CONTENTS7			0xd9c
380 #define PKT4_EMP_CVTEM_CONTENTS0			0xda0
381 #define PKT4_EMP_CVTEM_CONTENTS1			0xda4
382 #define PKT4_EMP_CVTEM_CONTENTS2			0xda8
383 #define PKT4_EMP_CVTEM_CONTENTS3			0xdac
384 #define PKT4_EMP_CVTEM_CONTENTS4			0xdb0
385 #define PKT4_EMP_CVTEM_CONTENTS5			0xdb4
386 #define PKT4_EMP_CVTEM_CONTENTS6			0xdb8
387 #define PKT4_EMP_CVTEM_CONTENTS7			0xdbc
388 #define PKT5_EMP_CVTEM_CONTENTS0			0xdc0
389 #define PKT5_EMP_CVTEM_CONTENTS1			0xdc4
390 #define PKT5_EMP_CVTEM_CONTENTS2			0xdc8
391 #define PKT5_EMP_CVTEM_CONTENTS3			0xdcc
392 #define PKT5_EMP_CVTEM_CONTENTS4			0xdd0
393 #define PKT5_EMP_CVTEM_CONTENTS5			0xdd4
394 #define PKT5_EMP_CVTEM_CONTENTS6			0xdd8
395 #define PKT5_EMP_CVTEM_CONTENTS7			0xddc
396 /* Audio Packetizer Registers */
397 #define AUDPKT_CONTROL0					0xe20
398 #define AUDPKT_CHSTATUS_OVR_EN_MASK			BIT(0)
399 #define AUDPKT_CHSTATUS_OVR_EN				BIT(0)
400 #define AUDPKT_CONTROL1					0xe24
401 #define AUDPKT_ACR_CONTROL0				0xe40
402 #define AUDPKT_ACR_N_VALUE				0xfffff
403 #define AUDPKT_ACR_CONTROL1				0xe44
404 #define AUDPKT_ACR_CTS_OVR_VAL_MSK			GENMASK(23, 4)
405 #define AUDPKT_ACR_CTS_OVR_VAL(x)			((x) << 4)
406 #define AUDPKT_ACR_CTS_OVR_EN_MSK			BIT(1)
407 #define AUDPKT_ACR_CTS_OVR_EN				BIT(1)
408 #define AUDPKT_ACR_STATUS0				0xe4c
409 #define AUDPKT_CHSTATUS_OVR0				0xe60
410 #define AUDPKT_CHSTATUS_OVR1				0xe64
411 /* IEC60958 Byte 3: Sampleing frenuency Bits 24 to 27 */
412 #define AUDPKT_CHSTATUS_SR_MASK				GENMASK(3, 0)
413 #define AUDPKT_CHSTATUS_SR_22050			0x4
414 #define AUDPKT_CHSTATUS_SR_24000			0x6
415 #define AUDPKT_CHSTATUS_SR_32000			0x3
416 #define AUDPKT_CHSTATUS_SR_44100			0x0
417 #define AUDPKT_CHSTATUS_SR_48000			0x2
418 #define AUDPKT_CHSTATUS_SR_88200			0x8
419 #define AUDPKT_CHSTATUS_SR_96000			0xa
420 #define AUDPKT_CHSTATUS_SR_176400			0xc
421 #define AUDPKT_CHSTATUS_SR_192000			0xe
422 #define AUDPKT_CHSTATUS_SR_768000			0x9
423 #define AUDPKT_CHSTATUS_SR_NOT_INDICATED		0x1
424 /* IEC60958 Byte 4: Original Sampleing frenuency Bits 36 to 39 */
425 #define AUDPKT_CHSTATUS_0SR_MASK			GENMASK(15, 12)
426 #define AUDPKT_CHSTATUS_OSR_8000			0x6
427 #define AUDPKT_CHSTATUS_OSR_11025			0xa
428 #define AUDPKT_CHSTATUS_OSR_12000			0x2
429 #define AUDPKT_CHSTATUS_OSR_16000			0x8
430 #define AUDPKT_CHSTATUS_OSR_22050			0xb
431 #define AUDPKT_CHSTATUS_OSR_24000			0x9
432 #define AUDPKT_CHSTATUS_OSR_32000			0xc
433 #define AUDPKT_CHSTATUS_OSR_44100			0xf
434 #define AUDPKT_CHSTATUS_OSR_48000			0xd
435 #define AUDPKT_CHSTATUS_OSR_88200			0x7
436 #define AUDPKT_CHSTATUS_OSR_96000			0x5
437 #define AUDPKT_CHSTATUS_OSR_176400			0x3
438 #define AUDPKT_CHSTATUS_OSR_192000			0x1
439 #define AUDPKT_CHSTATUS_OSR_NOT_INDICATED		0x0
440 #define AUDPKT_CHSTATUS_OVR2				0xe68
441 #define AUDPKT_CHSTATUS_OVR3				0xe6c
442 #define AUDPKT_CHSTATUS_OVR4				0xe70
443 #define AUDPKT_CHSTATUS_OVR5				0xe74
444 #define AUDPKT_CHSTATUS_OVR6				0xe78
445 #define AUDPKT_CHSTATUS_OVR7				0xe7c
446 #define AUDPKT_CHSTATUS_OVR8				0xe80
447 #define AUDPKT_CHSTATUS_OVR9				0xe84
448 #define AUDPKT_CHSTATUS_OVR10				0xe88
449 #define AUDPKT_CHSTATUS_OVR11				0xe8c
450 #define AUDPKT_CHSTATUS_OVR12				0xe90
451 #define AUDPKT_CHSTATUS_OVR13				0xe94
452 #define AUDPKT_CHSTATUS_OVR14				0xe98
453 #define AUDPKT_USRDATA_OVR_MSG_GENERIC0			0xea0
454 #define AUDPKT_USRDATA_OVR_MSG_GENERIC1			0xea4
455 #define AUDPKT_USRDATA_OVR_MSG_GENERIC2			0xea8
456 #define AUDPKT_USRDATA_OVR_MSG_GENERIC3			0xeac
457 #define AUDPKT_USRDATA_OVR_MSG_GENERIC4			0xeb0
458 #define AUDPKT_USRDATA_OVR_MSG_GENERIC5			0xeb4
459 #define AUDPKT_USRDATA_OVR_MSG_GENERIC6			0xeb8
460 #define AUDPKT_USRDATA_OVR_MSG_GENERIC7			0xebc
461 #define AUDPKT_USRDATA_OVR_MSG_GENERIC8			0xec0
462 #define AUDPKT_USRDATA_OVR_MSG_GENERIC9			0xec4
463 #define AUDPKT_USRDATA_OVR_MSG_GENERIC10		0xec8
464 #define AUDPKT_USRDATA_OVR_MSG_GENERIC11		0xecc
465 #define AUDPKT_USRDATA_OVR_MSG_GENERIC12		0xed0
466 #define AUDPKT_USRDATA_OVR_MSG_GENERIC13		0xed4
467 #define AUDPKT_USRDATA_OVR_MSG_GENERIC14		0xed8
468 #define AUDPKT_USRDATA_OVR_MSG_GENERIC15		0xedc
469 #define AUDPKT_USRDATA_OVR_MSG_GENERIC16		0xee0
470 #define AUDPKT_USRDATA_OVR_MSG_GENERIC17		0xee4
471 #define AUDPKT_USRDATA_OVR_MSG_GENERIC18		0xee8
472 #define AUDPKT_USRDATA_OVR_MSG_GENERIC19		0xeec
473 #define AUDPKT_USRDATA_OVR_MSG_GENERIC20		0xef0
474 #define AUDPKT_USRDATA_OVR_MSG_GENERIC21		0xef4
475 #define AUDPKT_USRDATA_OVR_MSG_GENERIC22		0xef8
476 #define AUDPKT_USRDATA_OVR_MSG_GENERIC23		0xefc
477 #define AUDPKT_USRDATA_OVR_MSG_GENERIC24		0xf00
478 #define AUDPKT_USRDATA_OVR_MSG_GENERIC25		0xf04
479 #define AUDPKT_USRDATA_OVR_MSG_GENERIC26		0xf08
480 #define AUDPKT_USRDATA_OVR_MSG_GENERIC27		0xf0c
481 #define AUDPKT_USRDATA_OVR_MSG_GENERIC28		0xf10
482 #define AUDPKT_USRDATA_OVR_MSG_GENERIC29		0xf14
483 #define AUDPKT_USRDATA_OVR_MSG_GENERIC30		0xf18
484 #define AUDPKT_USRDATA_OVR_MSG_GENERIC31		0xf1c
485 #define AUDPKT_USRDATA_OVR_MSG_GENERIC32		0xf20
486 #define AUDPKT_VBIT_OVR0				0xf24
487 /* CEC Registers */
488 #define CEC_TX_CONTROL					0x1000
489 #define CEC_STATUS					0x1004
490 #define CEC_CONFIG					0x1008
491 #define CEC_ADDR					0x100c
492 #define CEC_TX_COUNT					0x1020
493 #define CEC_TX_DATA3_0					0x1024
494 #define CEC_TX_DATA7_4					0x1028
495 #define CEC_TX_DATA11_8					0x102c
496 #define CEC_TX_DATA15_12				0x1030
497 #define CEC_RX_COUNT_STATUS				0x1040
498 #define CEC_RX_DATA3_0					0x1044
499 #define CEC_RX_DATA7_4					0x1048
500 #define CEC_RX_DATA11_8					0x104c
501 #define CEC_RX_DATA15_12				0x1050
502 #define CEC_LOCK_CONTROL				0x1054
503 #define CEC_RXQUAL_BITTIME_CONFIG			0x1060
504 #define CEC_RX_BITTIME_CONFIG				0x1064
505 #define CEC_TX_BITTIME_CONFIG				0x1068
506 /* eARC RX CMDC Registers */
507 #define EARCRX_CMDC_CONFIG0				0x1800
508 #define EARCRX_XACTREAD_STOP_CFG			BIT(26)
509 #define EARCRX_XACTREAD_RETRY_CFG			BIT(25)
510 #define EARCRX_CMDC_DSCVR_EARCVALID0_TO_DISC1		BIT(24)
511 #define EARCRX_CMDC_XACT_RESTART_EN			BIT(18)
512 #define EARCRX_CMDC_CONFIG1				0x1804
513 #define EARCRX_CMDC_CONTROL				0x1808
514 #define EARCRX_CMDC_HEARTBEAT_LOSS_EN			BIT(4)
515 #define EARCRX_CMDC_DISCOVERY_EN			BIT(3)
516 #define EARCRX_CONNECTOR_HPD				BIT(1)
517 #define EARCRX_CMDC_WHITELIST0_CONFIG			0x180c
518 #define EARCRX_CMDC_WHITELIST1_CONFIG			0x1810
519 #define EARCRX_CMDC_WHITELIST2_CONFIG			0x1814
520 #define EARCRX_CMDC_WHITELIST3_CONFIG			0x1818
521 #define EARCRX_CMDC_STATUS				0x181c
522 #define EARCRX_CMDC_XACT_INFO				0x1820
523 #define EARCRX_CMDC_XACT_ACTION				0x1824
524 #define EARCRX_CMDC_HEARTBEAT_RXSTAT_SE			0x1828
525 #define EARCRX_CMDC_HEARTBEAT_STATUS			0x182c
526 #define EARCRX_CMDC_XACT_WR0				0x1840
527 #define EARCRX_CMDC_XACT_WR1				0x1844
528 #define EARCRX_CMDC_XACT_WR2				0x1848
529 #define EARCRX_CMDC_XACT_WR3				0x184c
530 #define EARCRX_CMDC_XACT_WR4				0x1850
531 #define EARCRX_CMDC_XACT_WR5				0x1854
532 #define EARCRX_CMDC_XACT_WR6				0x1858
533 #define EARCRX_CMDC_XACT_WR7				0x185c
534 #define EARCRX_CMDC_XACT_WR8				0x1860
535 #define EARCRX_CMDC_XACT_WR9				0x1864
536 #define EARCRX_CMDC_XACT_WR10				0x1868
537 #define EARCRX_CMDC_XACT_WR11				0x186c
538 #define EARCRX_CMDC_XACT_WR12				0x1870
539 #define EARCRX_CMDC_XACT_WR13				0x1874
540 #define EARCRX_CMDC_XACT_WR14				0x1878
541 #define EARCRX_CMDC_XACT_WR15				0x187c
542 #define EARCRX_CMDC_XACT_WR16				0x1880
543 #define EARCRX_CMDC_XACT_WR17				0x1884
544 #define EARCRX_CMDC_XACT_WR18				0x1888
545 #define EARCRX_CMDC_XACT_WR19				0x188c
546 #define EARCRX_CMDC_XACT_WR20				0x1890
547 #define EARCRX_CMDC_XACT_WR21				0x1894
548 #define EARCRX_CMDC_XACT_WR22				0x1898
549 #define EARCRX_CMDC_XACT_WR23				0x189c
550 #define EARCRX_CMDC_XACT_WR24				0x18a0
551 #define EARCRX_CMDC_XACT_WR25				0x18a4
552 #define EARCRX_CMDC_XACT_WR26				0x18a8
553 #define EARCRX_CMDC_XACT_WR27				0x18ac
554 #define EARCRX_CMDC_XACT_WR28				0x18b0
555 #define EARCRX_CMDC_XACT_WR29				0x18b4
556 #define EARCRX_CMDC_XACT_WR30				0x18b8
557 #define EARCRX_CMDC_XACT_WR31				0x18bc
558 #define EARCRX_CMDC_XACT_WR32				0x18c0
559 #define EARCRX_CMDC_XACT_WR33				0x18c4
560 #define EARCRX_CMDC_XACT_WR34				0x18c8
561 #define EARCRX_CMDC_XACT_WR35				0x18cc
562 #define EARCRX_CMDC_XACT_WR36				0x18d0
563 #define EARCRX_CMDC_XACT_WR37				0x18d4
564 #define EARCRX_CMDC_XACT_WR38				0x18d8
565 #define EARCRX_CMDC_XACT_WR39				0x18dc
566 #define EARCRX_CMDC_XACT_WR40				0x18e0
567 #define EARCRX_CMDC_XACT_WR41				0x18e4
568 #define EARCRX_CMDC_XACT_WR42				0x18e8
569 #define EARCRX_CMDC_XACT_WR43				0x18ec
570 #define EARCRX_CMDC_XACT_WR44				0x18f0
571 #define EARCRX_CMDC_XACT_WR45				0x18f4
572 #define EARCRX_CMDC_XACT_WR46				0x18f8
573 #define EARCRX_CMDC_XACT_WR47				0x18fc
574 #define EARCRX_CMDC_XACT_WR48				0x1900
575 #define EARCRX_CMDC_XACT_WR49				0x1904
576 #define EARCRX_CMDC_XACT_WR50				0x1908
577 #define EARCRX_CMDC_XACT_WR51				0x190c
578 #define EARCRX_CMDC_XACT_WR52				0x1910
579 #define EARCRX_CMDC_XACT_WR53				0x1914
580 #define EARCRX_CMDC_XACT_WR54				0x1918
581 #define EARCRX_CMDC_XACT_WR55				0x191c
582 #define EARCRX_CMDC_XACT_WR56				0x1920
583 #define EARCRX_CMDC_XACT_WR57				0x1924
584 #define EARCRX_CMDC_XACT_WR58				0x1928
585 #define EARCRX_CMDC_XACT_WR59				0x192c
586 #define EARCRX_CMDC_XACT_WR60				0x1930
587 #define EARCRX_CMDC_XACT_WR61				0x1934
588 #define EARCRX_CMDC_XACT_WR62				0x1938
589 #define EARCRX_CMDC_XACT_WR63				0x193c
590 #define EARCRX_CMDC_XACT_WR64				0x1940
591 #define EARCRX_CMDC_XACT_RD0				0x1960
592 #define EARCRX_CMDC_XACT_RD1				0x1964
593 #define EARCRX_CMDC_XACT_RD2				0x1968
594 #define EARCRX_CMDC_XACT_RD3				0x196c
595 #define EARCRX_CMDC_XACT_RD4				0x1970
596 #define EARCRX_CMDC_XACT_RD5				0x1974
597 #define EARCRX_CMDC_XACT_RD6				0x1978
598 #define EARCRX_CMDC_XACT_RD7				0x197c
599 #define EARCRX_CMDC_XACT_RD8				0x1980
600 #define EARCRX_CMDC_XACT_RD9				0x1984
601 #define EARCRX_CMDC_XACT_RD10				0x1988
602 #define EARCRX_CMDC_XACT_RD11				0x198c
603 #define EARCRX_CMDC_XACT_RD12				0x1990
604 #define EARCRX_CMDC_XACT_RD13				0x1994
605 #define EARCRX_CMDC_XACT_RD14				0x1998
606 #define EARCRX_CMDC_XACT_RD15				0x199c
607 #define EARCRX_CMDC_XACT_RD16				0x19a0
608 #define EARCRX_CMDC_XACT_RD17				0x19a4
609 #define EARCRX_CMDC_XACT_RD18				0x19a8
610 #define EARCRX_CMDC_XACT_RD19				0x19ac
611 #define EARCRX_CMDC_XACT_RD20				0x19b0
612 #define EARCRX_CMDC_XACT_RD21				0x19b4
613 #define EARCRX_CMDC_XACT_RD22				0x19b8
614 #define EARCRX_CMDC_XACT_RD23				0x19bc
615 #define EARCRX_CMDC_XACT_RD24				0x19c0
616 #define EARCRX_CMDC_XACT_RD25				0x19c4
617 #define EARCRX_CMDC_XACT_RD26				0x19c8
618 #define EARCRX_CMDC_XACT_RD27				0x19cc
619 #define EARCRX_CMDC_XACT_RD28				0x19d0
620 #define EARCRX_CMDC_XACT_RD29				0x19d4
621 #define EARCRX_CMDC_XACT_RD30				0x19d8
622 #define EARCRX_CMDC_XACT_RD31				0x19dc
623 #define EARCRX_CMDC_XACT_RD32				0x19e0
624 #define EARCRX_CMDC_XACT_RD33				0x19e4
625 #define EARCRX_CMDC_XACT_RD34				0x19e8
626 #define EARCRX_CMDC_XACT_RD35				0x19ec
627 #define EARCRX_CMDC_XACT_RD36				0x19f0
628 #define EARCRX_CMDC_XACT_RD37				0x19f4
629 #define EARCRX_CMDC_XACT_RD38				0x19f8
630 #define EARCRX_CMDC_XACT_RD39				0x19fc
631 #define EARCRX_CMDC_XACT_RD40				0x1a00
632 #define EARCRX_CMDC_XACT_RD41				0x1a04
633 #define EARCRX_CMDC_XACT_RD42				0x1a08
634 #define EARCRX_CMDC_XACT_RD43				0x1a0c
635 #define EARCRX_CMDC_XACT_RD44				0x1a10
636 #define EARCRX_CMDC_XACT_RD45				0x1a14
637 #define EARCRX_CMDC_XACT_RD46				0x1a18
638 #define EARCRX_CMDC_XACT_RD47				0x1a1c
639 #define EARCRX_CMDC_XACT_RD48				0x1a20
640 #define EARCRX_CMDC_XACT_RD49				0x1a24
641 #define EARCRX_CMDC_XACT_RD50				0x1a28
642 #define EARCRX_CMDC_XACT_RD51				0x1a2c
643 #define EARCRX_CMDC_XACT_RD52				0x1a30
644 #define EARCRX_CMDC_XACT_RD53				0x1a34
645 #define EARCRX_CMDC_XACT_RD54				0x1a38
646 #define EARCRX_CMDC_XACT_RD55				0x1a3c
647 #define EARCRX_CMDC_XACT_RD56				0x1a40
648 #define EARCRX_CMDC_XACT_RD57				0x1a44
649 #define EARCRX_CMDC_XACT_RD58				0x1a48
650 #define EARCRX_CMDC_XACT_RD59				0x1a4c
651 #define EARCRX_CMDC_XACT_RD60				0x1a50
652 #define EARCRX_CMDC_XACT_RD61				0x1a54
653 #define EARCRX_CMDC_XACT_RD62				0x1a58
654 #define EARCRX_CMDC_XACT_RD63				0x1a5c
655 #define EARCRX_CMDC_XACT_RD64				0x1a60
656 #define EARCRX_CMDC_SYNC_CONFIG				0x1b00
657 /* eARC RX DMAC Registers */
658 #define EARCRX_DMAC_PHY_CONTROL				0x1c00
659 #define EARCRX_DMAC_CONFIG				0x1c08
660 #define EARCRX_DMAC_CONTROL0				0x1c0c
661 #define EARCRX_DMAC_AUDIO_EN				BIT(1)
662 #define EARCRX_DMAC_EN					BIT(0)
663 #define EARCRX_DMAC_CONTROL1				0x1c10
664 #define EARCRX_DMAC_STATUS				0x1c14
665 #define EARCRX_DMAC_CHSTATUS0				0x1c18
666 #define EARCRX_DMAC_CHSTATUS1				0x1c1c
667 #define EARCRX_DMAC_CHSTATUS2				0x1c20
668 #define EARCRX_DMAC_CHSTATUS3				0x1c24
669 #define EARCRX_DMAC_CHSTATUS4				0x1c28
670 #define EARCRX_DMAC_CHSTATUS5				0x1c2c
671 #define EARCRX_DMAC_USRDATA_MSG_HDMI_AC0		0x1c30
672 #define EARCRX_DMAC_USRDATA_MSG_HDMI_AC1		0x1c34
673 #define EARCRX_DMAC_USRDATA_MSG_HDMI_AC2		0x1c38
674 #define EARCRX_DMAC_USRDATA_MSG_HDMI_AC3		0x1c3c
675 #define EARCRX_DMAC_USRDATA_MSG_HDMI_AC4		0x1c40
676 #define EARCRX_DMAC_USRDATA_MSG_HDMI_AC5		0x1c44
677 #define EARCRX_DMAC_USRDATA_MSG_HDMI_AC6		0x1c48
678 #define EARCRX_DMAC_USRDATA_MSG_HDMI_AC7		0x1c4c
679 #define EARCRX_DMAC_USRDATA_MSG_HDMI_AC8		0x1c50
680 #define EARCRX_DMAC_USRDATA_MSG_HDMI_AC9		0x1c54
681 #define EARCRX_DMAC_USRDATA_MSG_HDMI_AC10		0x1c58
682 #define EARCRX_DMAC_USRDATA_MSG_HDMI_AC11		0x1c5c
683 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC1_PKT0		0x1c60
684 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC1_PKT1		0x1c64
685 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC1_PKT2		0x1c68
686 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC1_PKT3		0x1c6c
687 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC1_PKT4		0x1c70
688 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC1_PKT5		0x1c74
689 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC1_PKT6		0x1c78
690 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC1_PKT7		0x1c7c
691 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC1_PKT8		0x1c80
692 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC1_PKT9		0x1c84
693 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC1_PKT10	0x1c88
694 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC1_PKT11	0x1c8c
695 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC2_PKT0		0x1c90
696 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC2_PKT1		0x1c94
697 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC2_PKT2		0x1c98
698 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC2_PKT3		0x1c9c
699 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC2_PKT4		0x1ca0
700 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC2_PKT5		0x1ca4
701 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC2_PKT6		0x1ca8
702 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC2_PKT7		0x1cac
703 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC2_PKT8		0x1cb0
704 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC2_PKT9		0x1cb4
705 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC2_PKT10	0x1cb8
706 #define EARCRX_DMAC_USRDATA_MSG_HDMI_ISRC2_PKT11	0x1cbc
707 #define EARCRX_DMAC_USRDATA_MSG_GENERIC0		0x1cc0
708 #define EARCRX_DMAC_USRDATA_MSG_GENERIC1		0x1cc4
709 #define EARCRX_DMAC_USRDATA_MSG_GENERIC2		0x1cc8
710 #define EARCRX_DMAC_USRDATA_MSG_GENERIC3		0x1ccc
711 #define EARCRX_DMAC_USRDATA_MSG_GENERIC4		0x1cd0
712 #define EARCRX_DMAC_USRDATA_MSG_GENERIC5		0x1cd4
713 #define EARCRX_DMAC_USRDATA_MSG_GENERIC6		0x1cd8
714 #define EARCRX_DMAC_USRDATA_MSG_GENERIC7		0x1cdc
715 #define EARCRX_DMAC_USRDATA_MSG_GENERIC8		0x1ce0
716 #define EARCRX_DMAC_USRDATA_MSG_GENERIC9		0x1ce4
717 #define EARCRX_DMAC_USRDATA_MSG_GENERIC10		0x1ce8
718 #define EARCRX_DMAC_USRDATA_MSG_GENERIC11		0x1cec
719 #define EARCRX_DMAC_USRDATA_MSG_GENERIC12		0x1cf0
720 #define EARCRX_DMAC_USRDATA_MSG_GENERIC13		0x1cf4
721 #define EARCRX_DMAC_USRDATA_MSG_GENERIC14		0x1cf8
722 #define EARCRX_DMAC_USRDATA_MSG_GENERIC15		0x1cfc
723 #define EARCRX_DMAC_USRDATA_MSG_GENERIC16		0x1d00
724 #define EARCRX_DMAC_USRDATA_MSG_GENERIC17		0x1d04
725 #define EARCRX_DMAC_USRDATA_MSG_GENERIC18		0x1d08
726 #define EARCRX_DMAC_USRDATA_MSG_GENERIC19		0x1d0c
727 #define EARCRX_DMAC_USRDATA_MSG_GENERIC20		0x1d10
728 #define EARCRX_DMAC_USRDATA_MSG_GENERIC21		0x1d14
729 #define EARCRX_DMAC_USRDATA_MSG_GENERIC22		0x1d18
730 #define EARCRX_DMAC_USRDATA_MSG_GENERIC23		0x1d1c
731 #define EARCRX_DMAC_USRDATA_MSG_GENERIC24		0x1d20
732 #define EARCRX_DMAC_USRDATA_MSG_GENERIC25		0x1d24
733 #define EARCRX_DMAC_USRDATA_MSG_GENERIC26		0x1d28
734 #define EARCRX_DMAC_USRDATA_MSG_GENERIC27		0x1d2c
735 #define EARCRX_DMAC_USRDATA_MSG_GENERIC28		0x1d30
736 #define EARCRX_DMAC_USRDATA_MSG_GENERIC29		0x1d34
737 #define EARCRX_DMAC_USRDATA_MSG_GENERIC30		0x1d38
738 #define EARCRX_DMAC_USRDATA_MSG_GENERIC31		0x1d3c
739 #define EARCRX_DMAC_USRDATA_MSG_GENERIC32		0x1d40
740 #define EARCRX_DMAC_CHSTATUS_STREAMER0			0x1d44
741 #define EARCRX_DMAC_CHSTATUS_STREAMER1			0x1d48
742 #define EARCRX_DMAC_CHSTATUS_STREAMER2			0x1d4c
743 #define EARCRX_DMAC_CHSTATUS_STREAMER3			0x1d50
744 #define EARCRX_DMAC_CHSTATUS_STREAMER4			0x1d54
745 #define EARCRX_DMAC_CHSTATUS_STREAMER5			0x1d58
746 #define EARCRX_DMAC_CHSTATUS_STREAMER6			0x1d5c
747 #define EARCRX_DMAC_CHSTATUS_STREAMER7			0x1d60
748 #define EARCRX_DMAC_CHSTATUS_STREAMER8			0x1d64
749 #define EARCRX_DMAC_CHSTATUS_STREAMER9			0x1d68
750 #define EARCRX_DMAC_CHSTATUS_STREAMER10			0x1d6c
751 #define EARCRX_DMAC_CHSTATUS_STREAMER11			0x1d70
752 #define EARCRX_DMAC_CHSTATUS_STREAMER12			0x1d74
753 #define EARCRX_DMAC_CHSTATUS_STREAMER13			0x1d78
754 #define EARCRX_DMAC_CHSTATUS_STREAMER14			0x1d7c
755 #define EARCRX_DMAC_USRDATA_STREAMER0			0x1d80
756 /* Main Unit Interrupt Registers */
757 #define MAIN_INTVEC_INDEX				0x3000
758 #define MAINUNIT_0_INT_STATUS				0x3010
759 #define MAINUNIT_0_INT_MASK_N				0x3014
760 #define MAINUNIT_0_INT_CLEAR				0x3018
761 #define MAINUNIT_0_INT_FORCE				0x301c
762 #define MAINUNIT_1_INT_STATUS				0x3020
763 #define FLT_EXIT_TO_LTSL_IRQ				BIT(22)
764 #define FLT_EXIT_TO_LTS4_IRQ				BIT(21)
765 #define FLT_EXIT_TO_LTSP_IRQ				BIT(20)
766 #define SCDC_NACK_RCVD_IRQ				BIT(12)
767 #define SCDC_RR_REPLY_STOP_IRQ				BIT(11)
768 #define SCDC_UPD_FLAGS_CLR_IRQ				BIT(10)
769 #define SCDC_UPD_FLAGS_CHG_IRQ				BIT(9)
770 #define SCDC_UPD_FLAGS_RD_IRQ				BIT(8)
771 #define I2CM_NACK_RCVD_IRQ				BIT(2)
772 #define I2CM_READ_REQUEST_IRQ				BIT(1)
773 #define I2CM_OP_DONE_IRQ				BIT(0)
774 #define MAINUNIT_1_INT_MASK_N				0x3024
775 #define I2CM_NACK_RCVD_MASK_N				BIT(2)
776 #define I2CM_READ_REQUEST_MASK_N			BIT(1)
777 #define I2CM_OP_DONE_MASK_N				BIT(0)
778 #define MAINUNIT_1_INT_CLEAR				0x3028
779 #define I2CM_NACK_RCVD_CLEAR				BIT(2)
780 #define I2CM_READ_REQUEST_CLEAR				BIT(1)
781 #define I2CM_OP_DONE_CLEAR				BIT(0)
782 #define MAINUNIT_1_INT_FORCE				0x302c
783 /* AVPUNIT Interrupt Registers */
784 #define AVP_INTVEC_INDEX				0x3800
785 #define AVP_0_INT_STATUS				0x3810
786 #define AVP_0_INT_MASK_N				0x3814
787 #define AVP_0_INT_CLEAR					0x3818
788 #define AVP_0_INT_FORCE					0x381c
789 #define AVP_1_INT_STATUS				0x3820
790 #define AVP_1_INT_MASK_N				0x3824
791 #define HDCP14_AUTH_CHG_MASK_N				BIT(6)
792 #define AVP_1_INT_CLEAR					0x3828
793 #define AVP_1_INT_FORCE					0x382c
794 #define AVP_2_INT_STATUS				0x3830
795 #define AVP_2_INT_MASK_N				0x3834
796 #define AVP_2_INT_CLEAR					0x3838
797 #define AVP_2_INT_FORCE					0x383c
798 #define AVP_3_INT_STATUS				0x3840
799 #define AVP_3_INT_MASK_N				0x3844
800 #define AVP_3_INT_CLEAR					0x3848
801 #define AVP_3_INT_FORCE					0x384c
802 #define AVP_4_INT_STATUS				0x3850
803 #define AVP_4_INT_MASK_N				0x3854
804 #define AVP_4_INT_CLEAR					0x3858
805 #define AVP_4_INT_FORCE					0x385c
806 #define AVP_5_INT_STATUS				0x3860
807 #define AVP_5_INT_MASK_N				0x3864
808 #define AVP_5_INT_CLEAR					0x3868
809 #define AVP_5_INT_FORCE					0x386c
810 #define AVP_6_INT_STATUS				0x3870
811 #define AVP_6_INT_MASK_N				0x3874
812 #define AVP_6_INT_CLEAR					0x3878
813 #define AVP_6_INT_FORCE					0x387c
814 /* CEC Interrupt Registers */
815 #define CEC_INT_STATUS					0x4000
816 #define CEC_INT_MASK_N					0x4004
817 #define CEC_INT_CLEAR					0x4008
818 #define CEC_INT_FORCE					0x400c
819 /* eARC RX Interrupt Registers  */
820 #define EARCRX_INTVEC_INDEX				0x4800
821 #define EARCRX_0_INT_STATUS				0x4810
822 #define EARCRX_CMDC_DISCOVERY_TIMEOUT_IRQ		BIT(9)
823 #define EARCRX_CMDC_DISCOVERY_DONE_IRQ			BIT(8)
824 #define EARCRX_0_INT_MASK_N				0x4814
825 #define EARCRX_0_INT_CLEAR				0x4818
826 #define EARCRX_0_INT_FORCE				0x481c
827 #define EARCRX_1_INT_STATUS				0x4820
828 #define EARCRX_1_INT_MASK_N				0x4824
829 #define EARCRX_1_INT_CLEAR				0x4828
830 #define EARCRX_1_INT_FORCE				0x482c
831 
832 /* SCDC Registers */
833 #define SCDC_SINK_VERSION 0x01
834 #define SCDC_SOURCE_VERSION 0x02
835 
836 #define SCDC_UPDATE_0 0x10
837 #define SCDC_READ_REQUEST_TEST BIT(2)
838 #define SCDC_CED_UPDATE BIT(1)
839 #define SCDC_STATUS_UPDATE BIT(0)
840 #define SCDC_UPDATE_1 0x11
841 
842 #define SCDC_TMDS_CONFIG 0x20
843 #define SCDC_TMDS_BIT_CLOCK_RATIO_BY_40 BIT(1)
844 #define SCDC_TMDS_BIT_CLOCK_RATIO_BY_10 (0 << 1)
845 #define SCDC_SCRAMBLING_ENABLE BIT(0)
846 #define SCDC_SCRAMBLER_STATUS 0x21
847 #define SCDC_SCRAMBLING_STATUS BIT(0)
848 
849 #define SCDC_CONFIG_0 0x30
850 #define SCDC_READ_REQUEST_ENABLE BIT(0)
851 
852 #define SCDC_STATUS_FLAGS_0 0x40
853 #define SCDC_CH2_LOCK BIT(3)
854 #define SCDC_CH1_LOCK BIT(2)
855 #define SCDC_CH0_LOCK BIT(1)
856 #define SCDC_CH_LOCK_MASK (SCDC_CH2_LOCK | SCDC_CH1_LOCK | SCDC_CH0_LOCK)
857 #define SCDC_CLOCK_DETECT BIT(0)
858 #define SCDC_STATUS_FLAGS_1 0x41
859 
860 #define SCDC_ERR_DET_0_L 0x50
861 #define SCDC_ERR_DET_0_H 0x51
862 #define SCDC_ERR_DET_1_L 0x52
863 #define SCDC_ERR_DET_1_H 0x53
864 #define SCDC_ERR_DET_2_L 0x54
865 #define SCDC_ERR_DET_2_H 0x55
866 #define SCDC_CHANNEL_VALID BIT(7)
867 #define SCDC_ERR_DET_CHECKSUM 0x56
868 
869 #define SCDC_TEST_CONFIG_0 0xc0
870 #define SCDC_TEST_READ_REQUEST BIT(7)
871 #define SCDC_TEST_READ_REQUEST_DELAY(x) ((x) & 0x7f)
872 
873 #define SCDC_MANUFACTURER_IEEE_OUI 0xd0
874 #define SCDC_MANUFACTURER_IEEE_OUI_SIZE 3
875 #define SCDC_DEVICE_ID 0xd3
876 #define SCDC_DEVICE_ID_SIZE 8
877 #define SCDC_DEVICE_HARDWARE_REVISION 0xdb
878 #define SCDC_DEVICE_HARDWARE_REVISION_MAJOR(x) (((x) >> 4) & 0xf)
879 #define SCDC_DEVICE_HARDWARE_REVISION_MINOR(x) (((x) >> 0) & 0xf)
880 #define SCDC_DEVICE_SOFTWARE_MAJOR_REVISION 0xdc
881 #define SCDC_DEVICE_SOFTWARE_MINOR_REVISION 0xdd
882 
883 #define SCDC_MANUFACTURER_SPECIFIC 0xde
884 #define SCDC_MANUFACTURER_SPECIFIC_SIZE 34
885 
886 enum v4l2_ycbcr_encoding {
887 	/*
888 	 * Mapping of V4L2_YCBCR_ENC_DEFAULT to actual encodings for the
889 	 * various colorspaces:
890 	 *
891 	 * V4L2_COLORSPACE_SMPTE170M, V4L2_COLORSPACE_470_SYSTEM_M,
892 	 * V4L2_COLORSPACE_470_SYSTEM_BG, V4L2_COLORSPACE_ADOBERGB and
893 	 * V4L2_COLORSPACE_JPEG: V4L2_YCBCR_ENC_601
894 	 *
895 	 * V4L2_COLORSPACE_REC709 and V4L2_COLORSPACE_DCI_P3: V4L2_YCBCR_ENC_709
896 	 *
897 	 * V4L2_COLORSPACE_SRGB: V4L2_YCBCR_ENC_SYCC
898 	 *
899 	 * V4L2_COLORSPACE_BT2020: V4L2_YCBCR_ENC_BT2020
900 	 *
901 	 * V4L2_COLORSPACE_SMPTE240M: V4L2_YCBCR_ENC_SMPTE240M
902 	 */
903 	V4L2_YCBCR_ENC_DEFAULT        = 0,
904 
905 	/* ITU-R 601 -- SDTV */
906 	V4L2_YCBCR_ENC_601            = 1,
907 
908 	/* Rec. 709 -- HDTV */
909 	V4L2_YCBCR_ENC_709            = 2,
910 
911 	/* ITU-R 601/EN 61966-2-4 Extended Gamut -- SDTV */
912 	V4L2_YCBCR_ENC_XV601          = 3,
913 
914 	/* Rec. 709/EN 61966-2-4 Extended Gamut -- HDTV */
915 	V4L2_YCBCR_ENC_XV709          = 4,
916 
917 	/* sYCC (Y'CbCr encoding of sRGB) */
918 	V4L2_YCBCR_ENC_SYCC           = 5,
919 
920 	/* BT.2020 Non-constant Luminance Y'CbCr */
921 	V4L2_YCBCR_ENC_BT2020         = 6,
922 
923 	/* BT.2020 Constant Luminance Y'CbcCrc */
924 	V4L2_YCBCR_ENC_BT2020_CONST_LUM = 7,
925 
926 	/* SMPTE 240M -- Obsolete HDTV */
927 	V4L2_YCBCR_ENC_SMPTE240M      = 8,
928 };
929 
930 enum drm_connector_status {
931 	connector_status_disconnected = 0,
932 	connector_status_connected = 1,
933 };
934 
935 void dw_hdmi_qp_set_grf_cfg(void *data);
936 void dw_hdmi_qp_io_path_init(void *data);
937 struct dw_hdmi_link_config *dw_hdmi_rockchip_get_link_cfg(void *data);
938 void dw_hdmi_qp_select_output(struct hdmi_edid_data *edid_data,
939 			      struct rockchip_connector *conn,
940 			      unsigned int *bus_format,
941 			      struct overscan *overscan,
942 			      enum dw_hdmi_devtype dev_type,
943 			      bool output_bus_format_rgb,
944 			      void *data, struct display_state *state);
945 bool dw_hdmi_qp_check_enable_gpio(void *data);
946 
947 #endif /* __DW_HDMI_QP_H__ */
948