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