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