xref: /linux/drivers/media/platform/synopsys/hdmirx/snps_hdmirx.h (revision bbfd5594756011167b8f8de9a00e0c946afda1e6)
1*7b59b132SShreeya Patel /* SPDX-License-Identifier: GPL-2.0 */
2*7b59b132SShreeya Patel /*
3*7b59b132SShreeya Patel  * Copyright (c) 2021 Rockchip Electronics Co. Ltd.
4*7b59b132SShreeya Patel  *
5*7b59b132SShreeya Patel  * Author: Dingxian Wen <shawn.wen@rock-chips.com>
6*7b59b132SShreeya Patel  */
7*7b59b132SShreeya Patel 
8*7b59b132SShreeya Patel #ifndef DW_HDMIRX_H
9*7b59b132SShreeya Patel #define DW_HDMIRX_H
10*7b59b132SShreeya Patel 
11*7b59b132SShreeya Patel #include <linux/bitops.h>
12*7b59b132SShreeya Patel 
13*7b59b132SShreeya Patel #define UPDATE(x, h, l)		(((x) << (l)) & GENMASK((h), (l)))
14*7b59b132SShreeya Patel #define HIWORD_UPDATE(v, h, l)	(((v) << (l)) | (GENMASK((h), (l)) << 16))
15*7b59b132SShreeya Patel 
16*7b59b132SShreeya Patel /* SYS_GRF */
17*7b59b132SShreeya Patel #define SYS_GRF_SOC_CON1			0x0304
18*7b59b132SShreeya Patel #define HDMIRXPHY_SRAM_EXT_LD_DONE		BIT(1)
19*7b59b132SShreeya Patel #define HDMIRXPHY_SRAM_BYPASS			BIT(0)
20*7b59b132SShreeya Patel #define SYS_GRF_SOC_STATUS1			0x0384
21*7b59b132SShreeya Patel #define HDMIRXPHY_SRAM_INIT_DONE		BIT(10)
22*7b59b132SShreeya Patel #define SYS_GRF_CHIP_ID				0x0600
23*7b59b132SShreeya Patel 
24*7b59b132SShreeya Patel /* VO1_GRF */
25*7b59b132SShreeya Patel #define VO1_GRF_VO1_CON2			0x0008
26*7b59b132SShreeya Patel #define HDMIRX_SDAIN_MSK			BIT(2)
27*7b59b132SShreeya Patel #define HDMIRX_SCLIN_MSK			BIT(1)
28*7b59b132SShreeya Patel 
29*7b59b132SShreeya Patel /* HDMIRX PHY */
30*7b59b132SShreeya Patel #define SUP_DIG_ANA_CREGS_SUP_ANA_NC			0x004f
31*7b59b132SShreeya Patel 
32*7b59b132SShreeya Patel #define	LANE0_DIG_ASIC_RX_OVRD_OUT_0			0x100f
33*7b59b132SShreeya Patel #define	LANE1_DIG_ASIC_RX_OVRD_OUT_0			0x110f
34*7b59b132SShreeya Patel #define	LANE2_DIG_ASIC_RX_OVRD_OUT_0			0x120f
35*7b59b132SShreeya Patel #define	LANE3_DIG_ASIC_RX_OVRD_OUT_0			0x130f
36*7b59b132SShreeya Patel #define ASIC_ACK_OVRD_EN				BIT(1)
37*7b59b132SShreeya Patel #define ASIC_ACK					BIT(0)
38*7b59b132SShreeya Patel 
39*7b59b132SShreeya Patel #define	LANE0_DIG_RX_VCOCAL_RX_VCO_CAL_CTRL_2		0x104a
40*7b59b132SShreeya Patel #define	LANE1_DIG_RX_VCOCAL_RX_VCO_CAL_CTRL_2		0x114a
41*7b59b132SShreeya Patel #define	LANE2_DIG_RX_VCOCAL_RX_VCO_CAL_CTRL_2		0x124a
42*7b59b132SShreeya Patel #define	LANE3_DIG_RX_VCOCAL_RX_VCO_CAL_CTRL_2		0x134a
43*7b59b132SShreeya Patel #define FREQ_TUNE_START_VAL_MASK			GENMASK(9, 0)
44*7b59b132SShreeya Patel #define FREQ_TUNE_START_VAL(x)				UPDATE(x, 9, 0)
45*7b59b132SShreeya Patel 
46*7b59b132SShreeya Patel #define	HDMIPCS_DIG_CTRL_PATH_MAIN_FSM_FSM_CONFIG	0x20c4
47*7b59b132SShreeya Patel #define	HDMIPCS_DIG_CTRL_PATH_MAIN_FSM_ADAPT_REF_FOM	0x20c7
48*7b59b132SShreeya Patel #define HDMIPCS_DIG_CTRL_PATH_MAIN_FSM_RATE_CALC_HDMI14_CDR_SETTING_3_REG	0x20e9
49*7b59b132SShreeya Patel #define CDR_SETTING_BOUNDARY_3_DEFAULT			0x52da
50*7b59b132SShreeya Patel #define HDMIPCS_DIG_CTRL_PATH_MAIN_FSM_RATE_CALC_HDMI14_CDR_SETTING_4_REG	0x20ea
51*7b59b132SShreeya Patel #define CDR_SETTING_BOUNDARY_4_DEFAULT			0x43cd
52*7b59b132SShreeya Patel #define HDMIPCS_DIG_CTRL_PATH_MAIN_FSM_RATE_CALC_HDMI14_CDR_SETTING_5_REG	0x20eb
53*7b59b132SShreeya Patel #define CDR_SETTING_BOUNDARY_5_DEFAULT			0x35b3
54*7b59b132SShreeya Patel #define HDMIPCS_DIG_CTRL_PATH_MAIN_FSM_RATE_CALC_HDMI14_CDR_SETTING_6_REG	0x20fb
55*7b59b132SShreeya Patel #define	CDR_SETTING_BOUNDARY_6_DEFAULT			0x2799
56*7b59b132SShreeya Patel #define HDMIPCS_DIG_CTRL_PATH_MAIN_FSM_RATE_CALC_HDMI14_CDR_SETTING_7_REG	0x20fc
57*7b59b132SShreeya Patel #define CDR_SETTING_BOUNDARY_7_DEFAULT			0x1b65
58*7b59b132SShreeya Patel 
59*7b59b132SShreeya Patel #define	RAWLANE0_DIG_PCS_XF_RX_OVRD_OUT			0x300e
60*7b59b132SShreeya Patel #define	RAWLANE1_DIG_PCS_XF_RX_OVRD_OUT			0x310e
61*7b59b132SShreeya Patel #define	RAWLANE2_DIG_PCS_XF_RX_OVRD_OUT			0x320e
62*7b59b132SShreeya Patel #define	RAWLANE3_DIG_PCS_XF_RX_OVRD_OUT			0x330e
63*7b59b132SShreeya Patel #define PCS_ACK_WRITE_SELECT				BIT(14)
64*7b59b132SShreeya Patel #define PCS_EN_CTL					BIT(1)
65*7b59b132SShreeya Patel #define PCS_ACK						BIT(0)
66*7b59b132SShreeya Patel 
67*7b59b132SShreeya Patel #define	RAWLANE0_DIG_AON_FAST_FLAGS			0x305c
68*7b59b132SShreeya Patel #define	RAWLANE1_DIG_AON_FAST_FLAGS			0x315c
69*7b59b132SShreeya Patel #define	RAWLANE2_DIG_AON_FAST_FLAGS			0x325c
70*7b59b132SShreeya Patel #define	RAWLANE3_DIG_AON_FAST_FLAGS			0x335c
71*7b59b132SShreeya Patel 
72*7b59b132SShreeya Patel /* HDMIRX Ctrler */
73*7b59b132SShreeya Patel #define GLOBAL_SWRESET_REQUEST			0x0020
74*7b59b132SShreeya Patel #define DATAPATH_SWRESETREQ			BIT(12)
75*7b59b132SShreeya Patel #define GLOBAL_SWENABLE				0x0024
76*7b59b132SShreeya Patel #define PHYCTRL_ENABLE				BIT(21)
77*7b59b132SShreeya Patel #define CEC_ENABLE				BIT(16)
78*7b59b132SShreeya Patel #define TMDS_ENABLE				BIT(13)
79*7b59b132SShreeya Patel #define DATAPATH_ENABLE				BIT(12)
80*7b59b132SShreeya Patel #define PKTFIFO_ENABLE				BIT(11)
81*7b59b132SShreeya Patel #define AVPUNIT_ENABLE				BIT(8)
82*7b59b132SShreeya Patel #define MAIN_ENABLE				BIT(0)
83*7b59b132SShreeya Patel #define GLOBAL_TIMER_REF_BASE			0x0028
84*7b59b132SShreeya Patel #define CORE_CONFIG				0x0050
85*7b59b132SShreeya Patel #define CMU_CONFIG0				0x0060
86*7b59b132SShreeya Patel #define TMDSQPCLK_STABLE_FREQ_MARGIN_MASK	GENMASK(30, 16)
87*7b59b132SShreeya Patel #define TMDSQPCLK_STABLE_FREQ_MARGIN(x)		UPDATE(x, 30, 16)
88*7b59b132SShreeya Patel #define AUDCLK_STABLE_FREQ_MARGIN_MASK		GENMASK(11, 9)
89*7b59b132SShreeya Patel #define AUDCLK_STABLE_FREQ_MARGIN(x)		UPDATE(x, 11, 9)
90*7b59b132SShreeya Patel #define CMU_STATUS				0x007c
91*7b59b132SShreeya Patel #define TMDSQPCLK_LOCKED_ST			BIT(4)
92*7b59b132SShreeya Patel #define CMU_TMDSQPCLK_FREQ			0x0084
93*7b59b132SShreeya Patel #define PHY_CONFIG				0x00c0
94*7b59b132SShreeya Patel #define LDO_AFE_PROG_MASK			GENMASK(24, 23)
95*7b59b132SShreeya Patel #define LDO_AFE_PROG(x)				UPDATE(x, 24, 23)
96*7b59b132SShreeya Patel #define LDO_PWRDN				BIT(21)
97*7b59b132SShreeya Patel #define TMDS_CLOCK_RATIO			BIT(16)
98*7b59b132SShreeya Patel #define RXDATA_WIDTH				BIT(15)
99*7b59b132SShreeya Patel #define REFFREQ_SEL_MASK			GENMASK(11, 9)
100*7b59b132SShreeya Patel #define REFFREQ_SEL(x)				UPDATE(x, 11, 9)
101*7b59b132SShreeya Patel #define HDMI_DISABLE				BIT(8)
102*7b59b132SShreeya Patel #define PHY_PDDQ				BIT(1)
103*7b59b132SShreeya Patel #define PHY_RESET				BIT(0)
104*7b59b132SShreeya Patel #define PHY_STATUS				0x00c8
105*7b59b132SShreeya Patel #define HDMI_DISABLE_ACK			BIT(1)
106*7b59b132SShreeya Patel #define PDDQ_ACK				BIT(0)
107*7b59b132SShreeya Patel #define PHYCREG_CONFIG0				0x00e0
108*7b59b132SShreeya Patel #define PHYCREG_CR_PARA_SELECTION_MODE_MASK	GENMASK(1, 0)
109*7b59b132SShreeya Patel #define PHYCREG_CR_PARA_SELECTION_MODE(x)	UPDATE(x, 1, 0)
110*7b59b132SShreeya Patel #define PHYCREG_CONFIG1				0x00e4
111*7b59b132SShreeya Patel #define PHYCREG_CONFIG2				0x00e8
112*7b59b132SShreeya Patel #define PHYCREG_CONFIG3				0x00ec
113*7b59b132SShreeya Patel #define PHYCREG_CONTROL				0x00f0
114*7b59b132SShreeya Patel #define PHYCREG_CR_PARA_WRITE_P			BIT(1)
115*7b59b132SShreeya Patel #define PHYCREG_CR_PARA_READ_P			BIT(0)
116*7b59b132SShreeya Patel #define PHYCREG_STATUS				0x00f4
117*7b59b132SShreeya Patel 
118*7b59b132SShreeya Patel #define MAINUNIT_STATUS				0x0150
119*7b59b132SShreeya Patel #define TMDSVALID_STABLE_ST			BIT(1)
120*7b59b132SShreeya Patel #define DESCRAND_EN_CONTROL			0x0210
121*7b59b132SShreeya Patel #define SCRAMB_EN_SEL_QST_MASK			GENMASK(1, 0)
122*7b59b132SShreeya Patel #define SCRAMB_EN_SEL_QST(x)			UPDATE(x, 1, 0)
123*7b59b132SShreeya Patel #define DESCRAND_SYNC_CONTROL			0x0214
124*7b59b132SShreeya Patel #define RECOVER_UNSYNC_STREAM_QST		BIT(0)
125*7b59b132SShreeya Patel #define DESCRAND_SYNC_SEQ_CONFIG		0x022c
126*7b59b132SShreeya Patel #define DESCRAND_SYNC_SEQ_ERR_CNT_EN		BIT(0)
127*7b59b132SShreeya Patel #define DESCRAND_SYNC_SEQ_STATUS		0x0234
128*7b59b132SShreeya Patel #define DEFRAMER_CONFIG0			0x0270
129*7b59b132SShreeya Patel #define VS_CNT_THR_QST_MASK			GENMASK(27, 20)
130*7b59b132SShreeya Patel #define VS_CNT_THR_QST(x)			UPDATE(x, 27, 20)
131*7b59b132SShreeya Patel #define HS_POL_QST_MASK				GENMASK(19, 18)
132*7b59b132SShreeya Patel #define HS_POL_QST(x)				UPDATE(x, 19, 18)
133*7b59b132SShreeya Patel #define VS_POL_QST_MASK				GENMASK(17, 16)
134*7b59b132SShreeya Patel #define VS_POL_QST(x)				UPDATE(x, 17, 16)
135*7b59b132SShreeya Patel #define VS_REMAPFILTER_EN_QST			BIT(8)
136*7b59b132SShreeya Patel #define VS_FILTER_ORDER_QST_MASK		GENMASK(1, 0)
137*7b59b132SShreeya Patel #define VS_FILTER_ORDER_QST(x)			UPDATE(x, 1, 0)
138*7b59b132SShreeya Patel #define DEFRAMER_VSYNC_CNT_CLEAR		0x0278
139*7b59b132SShreeya Patel #define VSYNC_CNT_CLR_P				BIT(0)
140*7b59b132SShreeya Patel #define DEFRAMER_STATUS				0x027c
141*7b59b132SShreeya Patel #define OPMODE_STS_MASK				GENMASK(6, 4)
142*7b59b132SShreeya Patel #define I2C_SLAVE_CONFIG1			0x0164
143*7b59b132SShreeya Patel #define I2C_SDA_OUT_HOLD_VALUE_QST_MASK		GENMASK(15, 8)
144*7b59b132SShreeya Patel #define I2C_SDA_OUT_HOLD_VALUE_QST(x)		UPDATE(x, 15, 8)
145*7b59b132SShreeya Patel #define I2C_SDA_IN_HOLD_VALUE_QST_MASK		GENMASK(7, 0)
146*7b59b132SShreeya Patel #define I2C_SDA_IN_HOLD_VALUE_QST(x)		UPDATE(x, 7, 0)
147*7b59b132SShreeya Patel #define OPMODE_STS_MASK				GENMASK(6, 4)
148*7b59b132SShreeya Patel #define REPEATER_QST				BIT(28)
149*7b59b132SShreeya Patel #define FASTREAUTH_QST				BIT(27)
150*7b59b132SShreeya Patel #define FEATURES_1DOT1_QST			BIT(26)
151*7b59b132SShreeya Patel #define FASTI2C_QST				BIT(25)
152*7b59b132SShreeya Patel #define EESS_CTL_THR_QST_MASK			GENMASK(19, 16)
153*7b59b132SShreeya Patel #define EESS_CTL_THR_QST(x)			UPDATE(x, 19, 16)
154*7b59b132SShreeya Patel #define OESS_CTL3_THR_QST_MASK			GENMASK(11, 8)
155*7b59b132SShreeya Patel #define OESS_CTL3_THR_QST(x)			UPDATE(x, 11, 8)
156*7b59b132SShreeya Patel #define EESS_OESS_SEL_QST_MASK			GENMASK(5, 4)
157*7b59b132SShreeya Patel #define EESS_OESS_SEL_QST(x)			UPDATE(x, 5, 4)
158*7b59b132SShreeya Patel #define KEY_DECRYPT_EN_QST			BIT(0)
159*7b59b132SShreeya Patel #define KEY_DECRYPT_SEED_QST_MASK		GENMASK(15, 0)
160*7b59b132SShreeya Patel #define KEY_DECRYPT_SEED_QST(x)			UPDATE(x, 15, 0)
161*7b59b132SShreeya Patel #define HDCP_INT_CLEAR				0x50d8
162*7b59b132SShreeya Patel #define HDCP_1_INT_CLEAR			0x50e8
163*7b59b132SShreeya Patel #define HDCP2_CONFIG				0x02f0
164*7b59b132SShreeya Patel #define HDCP2_SWITCH_OVR_VALUE			BIT(2)
165*7b59b132SShreeya Patel #define HDCP2_SWITCH_OVR_EN			BIT(1)
166*7b59b132SShreeya Patel 
167*7b59b132SShreeya Patel #define VIDEO_CONFIG2				0x042c
168*7b59b132SShreeya Patel #define VPROC_VSYNC_POL_OVR_VALUE		BIT(19)
169*7b59b132SShreeya Patel #define VPROC_VSYNC_POL_OVR_EN			BIT(18)
170*7b59b132SShreeya Patel #define VPROC_HSYNC_POL_OVR_VALUE		BIT(17)
171*7b59b132SShreeya Patel #define VPROC_HSYNC_POL_OVR_EN			BIT(16)
172*7b59b132SShreeya Patel #define VPROC_FMT_OVR_VALUE_MASK		GENMASK(6, 4)
173*7b59b132SShreeya Patel #define VPROC_FMT_OVR_VALUE(x)			UPDATE(x, 6, 4)
174*7b59b132SShreeya Patel #define VPROC_FMT_OVR_EN			BIT(0)
175*7b59b132SShreeya Patel 
176*7b59b132SShreeya Patel #define AFIFO_FILL_RESTART			BIT(0)
177*7b59b132SShreeya Patel #define AFIFO_INIT_P				BIT(0)
178*7b59b132SShreeya Patel #define AFIFO_THR_LOW_QST_MASK			GENMASK(25, 16)
179*7b59b132SShreeya Patel #define AFIFO_THR_LOW_QST(x)			UPDATE(x, 25, 16)
180*7b59b132SShreeya Patel #define AFIFO_THR_HIGH_QST_MASK			GENMASK(9, 0)
181*7b59b132SShreeya Patel #define AFIFO_THR_HIGH_QST(x)			UPDATE(x, 9, 0)
182*7b59b132SShreeya Patel #define AFIFO_THR_MUTE_LOW_QST_MASK		GENMASK(25, 16)
183*7b59b132SShreeya Patel #define AFIFO_THR_MUTE_LOW_QST(x)		UPDATE(x, 25, 16)
184*7b59b132SShreeya Patel #define AFIFO_THR_MUTE_HIGH_QST_MASK		GENMASK(9, 0)
185*7b59b132SShreeya Patel #define AFIFO_THR_MUTE_HIGH_QST(x)		UPDATE(x, 9, 0)
186*7b59b132SShreeya Patel 
187*7b59b132SShreeya Patel #define AFIFO_UNDERFLOW_ST			BIT(25)
188*7b59b132SShreeya Patel #define AFIFO_OVERFLOW_ST			BIT(24)
189*7b59b132SShreeya Patel 
190*7b59b132SShreeya Patel #define SPEAKER_ALLOC_OVR_EN			BIT(16)
191*7b59b132SShreeya Patel #define I2S_BPCUV_EN				BIT(4)
192*7b59b132SShreeya Patel #define SPDIF_EN				BIT(2)
193*7b59b132SShreeya Patel #define I2S_EN					BIT(1)
194*7b59b132SShreeya Patel #define AFIFO_THR_PASS_DEMUTEMASK_N		BIT(24)
195*7b59b132SShreeya Patel #define AVMUTE_DEMUTEMASK_N			BIT(16)
196*7b59b132SShreeya Patel #define AFIFO_THR_MUTE_LOW_MUTEMASK_N		BIT(9)
197*7b59b132SShreeya Patel #define AFIFO_THR_MUTE_HIGH_MUTEMASK_N		BIT(8)
198*7b59b132SShreeya Patel #define AVMUTE_MUTEMASK_N			BIT(0)
199*7b59b132SShreeya Patel #define SCDC_CONFIG				0x0580
200*7b59b132SShreeya Patel #define HPDLOW					BIT(1)
201*7b59b132SShreeya Patel #define POWERPROVIDED				BIT(0)
202*7b59b132SShreeya Patel #define SCDC_REGBANK_STATUS1			0x058c
203*7b59b132SShreeya Patel #define SCDC_TMDSBITCLKRATIO			BIT(1)
204*7b59b132SShreeya Patel #define SCDC_REGBANK_STATUS3			0x0594
205*7b59b132SShreeya Patel #define SCDC_REGBANK_CONFIG0			0x05c0
206*7b59b132SShreeya Patel #define SCDC_SINKVERSION_QST_MASK		GENMASK(7, 0)
207*7b59b132SShreeya Patel #define SCDC_SINKVERSION_QST(x)			UPDATE(x, 7, 0)
208*7b59b132SShreeya Patel #define AGEN_LAYOUT				BIT(4)
209*7b59b132SShreeya Patel #define AGEN_SPEAKER_ALLOC			GENMASK(15, 8)
210*7b59b132SShreeya Patel 
211*7b59b132SShreeya Patel #define CED_CONFIG				0x0760
212*7b59b132SShreeya Patel #define CED_VIDDATACHECKEN_QST			BIT(27)
213*7b59b132SShreeya Patel #define CED_DATAISCHECKEN_QST			BIT(26)
214*7b59b132SShreeya Patel #define CED_GBCHECKEN_QST			BIT(25)
215*7b59b132SShreeya Patel #define CED_CTRLCHECKEN_QST			BIT(24)
216*7b59b132SShreeya Patel #define CED_CHLOCKMAXER_QST_MASK		GENMASK(14, 0)
217*7b59b132SShreeya Patel #define CED_CHLOCKMAXER_QST(x)			UPDATE(x, 14, 0)
218*7b59b132SShreeya Patel #define CED_DYN_CONFIG				0x0768
219*7b59b132SShreeya Patel #define CED_DYN_CONTROL				0x076c
220*7b59b132SShreeya Patel #define PKTEX_BCH_ERRFILT_CONFIG		0x07c4
221*7b59b132SShreeya Patel #define PKTEX_CHKSUM_ERRFILT_CONFIG		0x07c8
222*7b59b132SShreeya Patel 
223*7b59b132SShreeya Patel #define PKTDEC_ACR_PH2_1			0x1100
224*7b59b132SShreeya Patel #define PKTDEC_ACR_PB3_0			0x1104
225*7b59b132SShreeya Patel #define PKTDEC_ACR_PB7_4			0x1108
226*7b59b132SShreeya Patel #define PKTDEC_AVIIF_PH2_1			0x1200
227*7b59b132SShreeya Patel #define PKTDEC_AVIIF_PB3_0			0x1204
228*7b59b132SShreeya Patel #define PKTDEC_AVIIF_PB7_4			0x1208
229*7b59b132SShreeya Patel #define VIC_VAL_MASK				GENMASK(6, 0)
230*7b59b132SShreeya Patel #define PKTDEC_AVIIF_PB11_8			0x120c
231*7b59b132SShreeya Patel #define PKTDEC_AVIIF_PB15_12			0x1210
232*7b59b132SShreeya Patel #define PKTDEC_AVIIF_PB19_16			0x1214
233*7b59b132SShreeya Patel #define PKTDEC_AVIIF_PB23_20			0x1218
234*7b59b132SShreeya Patel #define PKTDEC_AVIIF_PB27_24			0x121c
235*7b59b132SShreeya Patel 
236*7b59b132SShreeya Patel #define PKTFIFO_CONFIG				0x1500
237*7b59b132SShreeya Patel #define PKTFIFO_STORE_FILT_CONFIG		0x1504
238*7b59b132SShreeya Patel #define PKTFIFO_THR_CONFIG0			0x1508
239*7b59b132SShreeya Patel #define PKTFIFO_THR_CONFIG1			0x150c
240*7b59b132SShreeya Patel #define PKTFIFO_CONTROL				0x1510
241*7b59b132SShreeya Patel 
242*7b59b132SShreeya Patel #define VMON_STATUS1				0x1580
243*7b59b132SShreeya Patel #define VMON_STATUS2				0x1584
244*7b59b132SShreeya Patel #define VMON_STATUS3				0x1588
245*7b59b132SShreeya Patel #define VMON_STATUS4				0x158c
246*7b59b132SShreeya Patel #define VMON_STATUS5				0x1590
247*7b59b132SShreeya Patel #define VMON_STATUS6				0x1594
248*7b59b132SShreeya Patel #define VMON_STATUS7				0x1598
249*7b59b132SShreeya Patel #define VMON_ILACE_DETECT			BIT(4)
250*7b59b132SShreeya Patel 
251*7b59b132SShreeya Patel #define CEC_TX_CONTROL				0x2000
252*7b59b132SShreeya Patel #define CEC_STATUS				0x2004
253*7b59b132SShreeya Patel #define CEC_CONFIG				0x2008
254*7b59b132SShreeya Patel #define RX_AUTO_DRIVE_ACKNOWLEDGE		BIT(9)
255*7b59b132SShreeya Patel #define CEC_ADDR				0x200c
256*7b59b132SShreeya Patel #define CEC_TX_COUNT				0x2020
257*7b59b132SShreeya Patel #define CEC_TX_DATA3_0				0x2024
258*7b59b132SShreeya Patel #define CEC_RX_COUNT_STATUS			0x2040
259*7b59b132SShreeya Patel #define CEC_RX_DATA3_0				0x2044
260*7b59b132SShreeya Patel #define CEC_LOCK_CONTROL			0x2054
261*7b59b132SShreeya Patel #define CEC_RXQUAL_BITTIME_CONFIG		0x2060
262*7b59b132SShreeya Patel #define CEC_RX_BITTIME_CONFIG			0x2064
263*7b59b132SShreeya Patel #define CEC_TX_BITTIME_CONFIG			0x2068
264*7b59b132SShreeya Patel 
265*7b59b132SShreeya Patel #define DMA_CONFIG1				0x4400
266*7b59b132SShreeya Patel #define UV_WID_MASK				GENMASK(31, 28)
267*7b59b132SShreeya Patel #define UV_WID(x)				UPDATE(x, 31, 28)
268*7b59b132SShreeya Patel #define Y_WID_MASK				GENMASK(27, 24)
269*7b59b132SShreeya Patel #define Y_WID(x)				UPDATE(x, 27, 24)
270*7b59b132SShreeya Patel #define DDR_STORE_FORMAT_MASK			GENMASK(15, 12)
271*7b59b132SShreeya Patel #define DDR_STORE_FORMAT(x)			UPDATE(x, 15, 12)
272*7b59b132SShreeya Patel #define ABANDON_EN				BIT(0)
273*7b59b132SShreeya Patel #define DMA_CONFIG2				0x4404
274*7b59b132SShreeya Patel #define DMA_CONFIG3				0x4408
275*7b59b132SShreeya Patel #define DMA_CONFIG4				0x440c // dma irq en
276*7b59b132SShreeya Patel #define DMA_CONFIG5				0x4410 // dma irq clear status
277*7b59b132SShreeya Patel #define LINE_FLAG_INT_EN			BIT(8)
278*7b59b132SShreeya Patel #define HDMIRX_DMA_IDLE_INT			BIT(7)
279*7b59b132SShreeya Patel #define HDMIRX_LOCK_DISABLE_INT			BIT(6)
280*7b59b132SShreeya Patel #define LAST_FRAME_AXI_UNFINISH_INT_EN		BIT(5)
281*7b59b132SShreeya Patel #define FIFO_OVERFLOW_INT_EN			BIT(2)
282*7b59b132SShreeya Patel #define FIFO_UNDERFLOW_INT_EN			BIT(1)
283*7b59b132SShreeya Patel #define HDMIRX_AXI_ERROR_INT_EN			BIT(0)
284*7b59b132SShreeya Patel #define DMA_CONFIG6				0x4414
285*7b59b132SShreeya Patel #define RB_SWAP_EN				BIT(9)
286*7b59b132SShreeya Patel #define HSYNC_TOGGLE_EN				BIT(5)
287*7b59b132SShreeya Patel #define VSYNC_TOGGLE_EN				BIT(4)
288*7b59b132SShreeya Patel #define HDMIRX_DMA_EN				BIT(1)
289*7b59b132SShreeya Patel #define DMA_CONFIG7				0x4418
290*7b59b132SShreeya Patel #define LINE_FLAG_NUM_MASK			GENMASK(31, 16)
291*7b59b132SShreeya Patel #define LINE_FLAG_NUM(x)			UPDATE(x, 31, 16)
292*7b59b132SShreeya Patel #define LOCK_FRAME_NUM_MASK			GENMASK(11, 0)
293*7b59b132SShreeya Patel #define LOCK_FRAME_NUM(x)			UPDATE(x, 11, 0)
294*7b59b132SShreeya Patel #define DMA_CONFIG8				0x441c
295*7b59b132SShreeya Patel #define REG_MIRROR_EN				BIT(0)
296*7b59b132SShreeya Patel #define DMA_CONFIG9				0x4420
297*7b59b132SShreeya Patel #define DMA_CONFIG10				0x4424
298*7b59b132SShreeya Patel #define DMA_CONFIG11				0x4428
299*7b59b132SShreeya Patel #define EDID_READ_EN_MASK			BIT(8)
300*7b59b132SShreeya Patel #define EDID_READ_EN(x)				UPDATE(x, 8, 8)
301*7b59b132SShreeya Patel #define EDID_WRITE_EN_MASK			BIT(7)
302*7b59b132SShreeya Patel #define EDID_WRITE_EN(x)			UPDATE(x, 7, 7)
303*7b59b132SShreeya Patel #define EDID_SLAVE_ADDR_MASK			GENMASK(6, 0)
304*7b59b132SShreeya Patel #define EDID_SLAVE_ADDR(x)			UPDATE(x, 6, 0)
305*7b59b132SShreeya Patel #define DMA_STATUS1				0x4430 // dma irq status
306*7b59b132SShreeya Patel #define DMA_STATUS2				0x4434
307*7b59b132SShreeya Patel #define DMA_STATUS3				0x4438
308*7b59b132SShreeya Patel #define DMA_STATUS4				0x443c
309*7b59b132SShreeya Patel #define DMA_STATUS5				0x4440
310*7b59b132SShreeya Patel #define DMA_STATUS6				0x4444
311*7b59b132SShreeya Patel #define DMA_STATUS7				0x4448
312*7b59b132SShreeya Patel #define DMA_STATUS8				0x444c
313*7b59b132SShreeya Patel #define DMA_STATUS9				0x4450
314*7b59b132SShreeya Patel #define DMA_STATUS10				0x4454
315*7b59b132SShreeya Patel #define HDMIRX_LOCK				BIT(3)
316*7b59b132SShreeya Patel #define DMA_STATUS11				0x4458
317*7b59b132SShreeya Patel #define HDMIRX_TYPE_MASK			GENMASK(8, 7)
318*7b59b132SShreeya Patel #define HDMIRX_COLOR_DEPTH_MASK			GENMASK(6, 3)
319*7b59b132SShreeya Patel #define HDMIRX_FORMAT_MASK			GENMASK(2, 0)
320*7b59b132SShreeya Patel #define DMA_STATUS12				0x445c
321*7b59b132SShreeya Patel #define DMA_STATUS13				0x4460
322*7b59b132SShreeya Patel #define DMA_STATUS14				0x4464
323*7b59b132SShreeya Patel 
324*7b59b132SShreeya Patel #define MAINUNIT_INTVEC_INDEX			0x5000
325*7b59b132SShreeya Patel #define MAINUNIT_0_INT_STATUS			0x5010
326*7b59b132SShreeya Patel #define CECRX_NOTIFY_ERR			BIT(12)
327*7b59b132SShreeya Patel #define CECRX_EOM				BIT(11)
328*7b59b132SShreeya Patel #define CECTX_DRIVE_ERR				BIT(10)
329*7b59b132SShreeya Patel #define CECRX_BUSY				BIT(9)
330*7b59b132SShreeya Patel #define CECTX_BUSY				BIT(8)
331*7b59b132SShreeya Patel #define CECTX_FRAME_DISCARDED			BIT(5)
332*7b59b132SShreeya Patel #define CECTX_NRETRANSMIT_FAIL			BIT(4)
333*7b59b132SShreeya Patel #define CECTX_LINE_ERR				BIT(3)
334*7b59b132SShreeya Patel #define CECTX_ARBLOST				BIT(2)
335*7b59b132SShreeya Patel #define CECTX_NACK				BIT(1)
336*7b59b132SShreeya Patel #define CECTX_DONE				BIT(0)
337*7b59b132SShreeya Patel #define MAINUNIT_0_INT_MASK_N			0x5014
338*7b59b132SShreeya Patel #define MAINUNIT_0_INT_CLEAR			0x5018
339*7b59b132SShreeya Patel #define MAINUNIT_0_INT_FORCE			0x501c
340*7b59b132SShreeya Patel #define TIMER_BASE_LOCKED_IRQ			BIT(26)
341*7b59b132SShreeya Patel #define TMDSQPCLK_OFF_CHG			BIT(5)
342*7b59b132SShreeya Patel #define TMDSQPCLK_LOCKED_CHG			BIT(4)
343*7b59b132SShreeya Patel #define MAINUNIT_1_INT_STATUS			0x5020
344*7b59b132SShreeya Patel #define MAINUNIT_1_INT_MASK_N			0x5024
345*7b59b132SShreeya Patel #define MAINUNIT_1_INT_CLEAR			0x5028
346*7b59b132SShreeya Patel #define MAINUNIT_1_INT_FORCE			0x502c
347*7b59b132SShreeya Patel #define MAINUNIT_2_INT_STATUS			0x5030
348*7b59b132SShreeya Patel #define MAINUNIT_2_INT_MASK_N			0x5034
349*7b59b132SShreeya Patel #define MAINUNIT_2_INT_CLEAR			0x5038
350*7b59b132SShreeya Patel #define MAINUNIT_2_INT_FORCE			0x503c
351*7b59b132SShreeya Patel #define PHYCREG_CR_READ_DONE			BIT(11)
352*7b59b132SShreeya Patel #define PHYCREG_CR_WRITE_DONE			BIT(10)
353*7b59b132SShreeya Patel #define TMDSVALID_STABLE_CHG			BIT(1)
354*7b59b132SShreeya Patel 
355*7b59b132SShreeya Patel #define AVPUNIT_0_INT_STATUS			0x5040
356*7b59b132SShreeya Patel #define AVPUNIT_0_INT_MASK_N			0x5044
357*7b59b132SShreeya Patel #define AVPUNIT_0_INT_CLEAR			0x5048
358*7b59b132SShreeya Patel #define AVPUNIT_0_INT_FORCE			0x504c
359*7b59b132SShreeya Patel #define CED_DYN_CNT_CH2_IRQ			BIT(22)
360*7b59b132SShreeya Patel #define CED_DYN_CNT_CH1_IRQ			BIT(21)
361*7b59b132SShreeya Patel #define CED_DYN_CNT_CH0_IRQ			BIT(20)
362*7b59b132SShreeya Patel #define AVPUNIT_1_INT_STATUS			0x5050
363*7b59b132SShreeya Patel #define DEFRAMER_VSYNC_THR_REACHED_IRQ		BIT(1)
364*7b59b132SShreeya Patel #define AVPUNIT_1_INT_MASK_N			0x5054
365*7b59b132SShreeya Patel #define DEFRAMER_VSYNC_THR_REACHED_MASK_N	BIT(1)
366*7b59b132SShreeya Patel #define DEFRAMER_VSYNC_MASK_N			BIT(0)
367*7b59b132SShreeya Patel #define AVPUNIT_1_INT_CLEAR			0x5058
368*7b59b132SShreeya Patel #define DEFRAMER_VSYNC_THR_REACHED_CLEAR	BIT(1)
369*7b59b132SShreeya Patel #define PKT_0_INT_STATUS			0x5080
370*7b59b132SShreeya Patel #define PKTDEC_ACR_CHG_IRQ			BIT(3)
371*7b59b132SShreeya Patel #define PKT_0_INT_MASK_N			0x5084
372*7b59b132SShreeya Patel #define PKTDEC_ACR_CHG_MASK_N			BIT(3)
373*7b59b132SShreeya Patel #define PKT_0_INT_CLEAR				0x5088
374*7b59b132SShreeya Patel #define PKT_1_INT_STATUS			0x5090
375*7b59b132SShreeya Patel #define PKT_1_INT_MASK_N			0x5094
376*7b59b132SShreeya Patel #define PKT_1_INT_CLEAR				0x5098
377*7b59b132SShreeya Patel #define PKT_2_INT_STATUS			0x50a0
378*7b59b132SShreeya Patel #define PKTDEC_ACR_RCV_IRQ			BIT(3)
379*7b59b132SShreeya Patel #define PKT_2_INT_MASK_N			0x50a4
380*7b59b132SShreeya Patel #define PKTDEC_AVIIF_RCV_IRQ			BIT(11)
381*7b59b132SShreeya Patel #define PKTDEC_ACR_RCV_MASK_N			BIT(3)
382*7b59b132SShreeya Patel #define PKT_2_INT_CLEAR				0x50a8
383*7b59b132SShreeya Patel #define PKTDEC_AVIIF_RCV_CLEAR			BIT(11)
384*7b59b132SShreeya Patel #define PKTDEC_ACR_RCV_CLEAR			BIT(3)
385*7b59b132SShreeya Patel #define SCDC_INT_STATUS				0x50c0
386*7b59b132SShreeya Patel #define SCDC_INT_MASK_N				0x50c4
387*7b59b132SShreeya Patel #define SCDC_INT_CLEAR				0x50c8
388*7b59b132SShreeya Patel #define SCDCTMDSCCFG_CHG			BIT(2)
389*7b59b132SShreeya Patel 
390*7b59b132SShreeya Patel #define CEC_INT_STATUS				0x5100
391*7b59b132SShreeya Patel #define CEC_INT_MASK_N				0x5104
392*7b59b132SShreeya Patel #define CEC_INT_CLEAR				0x5108
393*7b59b132SShreeya Patel 
394*7b59b132SShreeya Patel #endif
395