1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (c) 2021 Rockchip Electronics Co. Ltd. 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Author: Chen Shunqing <csq@rock-chips.com> 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun #ifndef HDMIRX_H 9*4882a593Smuzhiyun #define HDMIRX_H 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #include "rk628.h" 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #define HDMIRX_REG(x) ((x) + 0x30000) 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun /* --------- EDID and HDCP KEY ------- */ 16*4882a593Smuzhiyun #define EDID_BASE 0x000a0000 17*4882a593Smuzhiyun #define HDCP_KEY_BASE 0x000a8000 18*4882a593Smuzhiyun #define KEY_MAX_REGISTER 0x000a8490 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun #define HDMI_RX_HDMI_SETUP_CTRL HDMIRX_REG(0x0000) 21*4882a593Smuzhiyun #define HOT_PLUG_DETECT_MASK BIT(0) 22*4882a593Smuzhiyun #define HOT_PLUG_DETECT(x) UPDATE(x, 0, 0) 23*4882a593Smuzhiyun #define HDMI_RX_HDMI_OVR_CTRL HDMIRX_REG(0x0004) 24*4882a593Smuzhiyun #define HDMI_RX_HDMI_TIMER_CTRL HDMIRX_REG(0x0008) 25*4882a593Smuzhiyun #define HDMI_RX_HDMI_RES_OVR HDMIRX_REG(0x0010) 26*4882a593Smuzhiyun #define HDMI_RX_HDMI_RES_STS HDMIRX_REG(0x0014) 27*4882a593Smuzhiyun #define HDMI_RX_HDMI_PLL_CTRL HDMIRX_REG(0x0018) 28*4882a593Smuzhiyun #define HDMI_RX_HDMI_PLL_FRQSET1 HDMIRX_REG(0x001c) 29*4882a593Smuzhiyun #define HDMI_RX_HDMI_PLL_FRQSET2 HDMIRX_REG(0x0020) 30*4882a593Smuzhiyun #define HDMI_RX_HDMI_PLL_PAR1 HDMIRX_REG(0x0024) 31*4882a593Smuzhiyun #define HDMI_RX_HDMI_PLL_PAR2 HDMIRX_REG(0x0028) 32*4882a593Smuzhiyun #define HDMI_RX_HDMI_PLL_PAR3 HDMIRX_REG(0x002c) 33*4882a593Smuzhiyun #define HDMI_RX_HDMI_PLL_LCK_STS HDMIRX_REG(0x0030) 34*4882a593Smuzhiyun #define HDMI_RX_HDMI_CLK_CTRL HDMIRX_REG(0x0034) 35*4882a593Smuzhiyun #define HDMI_RX_HDMI_PCB_CTRL HDMIRX_REG(0x0038) 36*4882a593Smuzhiyun #define SEL_PIXCLKSRC_MASK GENMASK(19, 18) 37*4882a593Smuzhiyun #define SEL_PIXCLKSRC(x) UPDATE(x, 19, 18) 38*4882a593Smuzhiyun #define HDMI_RX_HDMI_PHS_CTR HDMIRX_REG(0x0040) 39*4882a593Smuzhiyun #define HDMI_RX_HDMI_PHS_USED HDMIRX_REG(0x0044) 40*4882a593Smuzhiyun #define HDMI_RX_HDMI_MISC_CTRL HDMIRX_REG(0x0048) 41*4882a593Smuzhiyun #define HDMI_RX_HDMI_EQOFF_CTRL HDMIRX_REG(0x004c) 42*4882a593Smuzhiyun #define HDMI_RX_HDMI_EQGAIN_CTRL HDMIRX_REG(0x0050) 43*4882a593Smuzhiyun #define HDMI_RX_HDMI_EQCAL_STS HDMIRX_REG(0x0054) 44*4882a593Smuzhiyun #define HDMI_RX_HDMI_EQRESULT HDMIRX_REG(0x0058) 45*4882a593Smuzhiyun #define HDMI_RX_HDMI_EQ_MEAS_CTRL HDMIRX_REG(0x005c) 46*4882a593Smuzhiyun #define HDMI_RX_HDMI_WR_CFG HDMIRX_REG(0x0060) 47*4882a593Smuzhiyun #define HDMI_RX_HDMI_CTRL HDMIRX_REG(0x0064) 48*4882a593Smuzhiyun #define HDMI_RX_HDMI_MODE_RECOVER HDMIRX_REG(0x0080) 49*4882a593Smuzhiyun #define PREAMBLE_CNT_LIMIT_MASK GENMASK(31, 27) 50*4882a593Smuzhiyun #define PREAMBLE_CNT_LIMIT(x) UPDATE(x, 31, 27) 51*4882a593Smuzhiyun #define OESSCTL3_THR_MASK GENMASK(20, 19) 52*4882a593Smuzhiyun #define OESSCTL3_THR(x) UPDATE(x, 20, 19) 53*4882a593Smuzhiyun #define SPIKE_FILTER_EN_MASK BIT(18) 54*4882a593Smuzhiyun #define SPIKE_FILTER_EN(x) UPDATE(x, 18, 18) 55*4882a593Smuzhiyun #define DVI_MODE_HYST_MASK GENMASK(17, 13) 56*4882a593Smuzhiyun #define DVI_MODE_HYST(x) UPDATE(x, 17, 13) 57*4882a593Smuzhiyun #define HDMI_MODE_HYST_MASK GENMASK(12, 8) 58*4882a593Smuzhiyun #define HDMI_MODE_HYST(x) UPDATE(x, 12, 8) 59*4882a593Smuzhiyun #define HDMI_MODE_MASK GENMASK(7, 6) 60*4882a593Smuzhiyun #define HDMI_MODE(x) UPDATE(x, 7, 6) 61*4882a593Smuzhiyun #define GB_DET_MASK GENMASK(5, 4) 62*4882a593Smuzhiyun #define GB_DET(x) UPDATE(x, 5, 4) 63*4882a593Smuzhiyun #define EESS_OESS_MASK GENMASK(3, 2) 64*4882a593Smuzhiyun #define EESS_OESS(x) UPDATE(x, 3, 2) 65*4882a593Smuzhiyun #define SEL_CTL01_MASK GENMASK(1, 0) 66*4882a593Smuzhiyun #define SEL_CTL01(x) UPDATE(x, 1, 0) 67*4882a593Smuzhiyun #define HDMI_RX_HDMI_ERROR_PROTECT HDMIRX_REG(0x0084) 68*4882a593Smuzhiyun #define RG_BLOCK_OFF_MASK BIT(20) 69*4882a593Smuzhiyun #define RG_BLOCK_OFF(x) UPDATE(x, 20, 20) 70*4882a593Smuzhiyun #define BLOCK_OFF_MASK BIT(19) 71*4882a593Smuzhiyun #define BLOCK_OFF(x) UPDATE(x, 19, 19) 72*4882a593Smuzhiyun #define VALID_MODE_MASK GENMASK(18, 16) 73*4882a593Smuzhiyun #define VALID_MODE(x) UPDATE(x, 18, 16) 74*4882a593Smuzhiyun #define CTRL_FILT_SEN_MASK GENMASK(13, 12) 75*4882a593Smuzhiyun #define CTRL_FILT_SEN(x) UPDATE(x, 13, 12) 76*4882a593Smuzhiyun #define VS_FILT_SENS_MASK GENMASK(11, 10) 77*4882a593Smuzhiyun #define VS_FILT_SENS(x) UPDATE(x, 11, 10) 78*4882a593Smuzhiyun #define HS_FILT_SENS_MASK GENMASK(9, 8) 79*4882a593Smuzhiyun #define HS_FILT_SENS(x) UPDATE(x, 9, 8) 80*4882a593Smuzhiyun #define DE_MEASURE_MODE_MASK GENMASK(7, 6) 81*4882a593Smuzhiyun #define DE_MEASURE_MODE(x) UPDATE(x, 7, 6) 82*4882a593Smuzhiyun #define DE_REGEN_MASK BIT(5) 83*4882a593Smuzhiyun #define DE_REGEN(x) UPDATE(x, 5, 5) 84*4882a593Smuzhiyun #define DE_FILTER_SENS_MASK GENMASK(4, 3) 85*4882a593Smuzhiyun #define DE_FILTER_SENS(x) UPDATE(x, 4, 3) 86*4882a593Smuzhiyun #define HDMI_RX_HDMI_ERD_STS HDMIRX_REG(0x0088) 87*4882a593Smuzhiyun #define HDMI_RX_HDMI_SYNC_CTRL HDMIRX_REG(0x0090) 88*4882a593Smuzhiyun #define VS_POL_ADJ_MODE_MASK GENMASK(4, 3) 89*4882a593Smuzhiyun #define VS_POL_ADJ_MODE(x) UPDATE(x, 4, 3) 90*4882a593Smuzhiyun #define HS_POL_ADJ_MODE_MASK GENMASK(2, 1) 91*4882a593Smuzhiyun #define HS_POL_ADJ_MODE(x) UPDATE(x, 2, 1) 92*4882a593Smuzhiyun #define HDMI_RX_HDMI_CKM_EVLTM HDMIRX_REG(0x0094) 93*4882a593Smuzhiyun #define LOCK_HYST_MASK GENMASK(21, 20) 94*4882a593Smuzhiyun #define LOCK_HYST(x) UPDATE(x, 21, 20) 95*4882a593Smuzhiyun #define CLK_HYST_MASK GENMASK(18, 16) 96*4882a593Smuzhiyun #define CLK_HYST(x) UPDATE(x, 18, 16) 97*4882a593Smuzhiyun #define EVAL_TIME_MASK GENMASK(15, 4) 98*4882a593Smuzhiyun #define EVAL_TIME(x) UPDATE(x, 15, 4) 99*4882a593Smuzhiyun #define HDMI_RX_HDMI_CKM_F HDMIRX_REG(0x0098) 100*4882a593Smuzhiyun #define HDMIRX_MAXFREQ_MASK GENMASK(31, 16) 101*4882a593Smuzhiyun #define HDMIRX_MAXFREQ(x) UPDATE(x, 31, 16) 102*4882a593Smuzhiyun #define MINFREQ_MASK GENMASK(15, 0) 103*4882a593Smuzhiyun #define MINFREQ(x) UPDATE(x, 15, 0) 104*4882a593Smuzhiyun #define HDMI_RX_HDMI_CKM_RESULT HDMIRX_REG(0x009c) 105*4882a593Smuzhiyun #define HDMI_RX_HDMI_PVO_CONFIG HDMIRX_REG(0x00a0) 106*4882a593Smuzhiyun #define HDMI_RX_HDMI_RESMPL_CTRL HDMIRX_REG(0x00a4) 107*4882a593Smuzhiyun #define MAN_VID_DEREPEAT_MASK GENMASK(4, 1) 108*4882a593Smuzhiyun #define MAN_VID_DEREPEAT(x) UPDATE(x, 4, 1) 109*4882a593Smuzhiyun #define AUTO_DEREPEAT_MASK BIT(0) 110*4882a593Smuzhiyun #define AUTO_DEREPEAT(x) UPDATE(x, 0, 0) 111*4882a593Smuzhiyun #define HDMI_RX_HDMI_DCM_CTRL HDMIRX_REG(0x00a8) 112*4882a593Smuzhiyun #define DCM_DEFAULT_PHASE_MASK BIT(18) 113*4882a593Smuzhiyun #define DCM_DEFAULT_PHASE(x) UPDATE(x, 18, 18) 114*4882a593Smuzhiyun #define DCM_COLOUR_DEPTH_SEL_MASK BIT(12) 115*4882a593Smuzhiyun #define DCM_COLOUR_DEPTH_SEL(x) UPDATE(x, 12, 12) 116*4882a593Smuzhiyun #define DCM_COLOUR_DEPTH_MASK GENMASK(11, 8) 117*4882a593Smuzhiyun #define DCM_COLOUR_DEPTH(x) UPDATE(x, 11, 8) 118*4882a593Smuzhiyun #define DCM_GCP_ZERO_FIELDS_MASK GENMASK(5, 2) 119*4882a593Smuzhiyun #define DCM_GCP_ZERO_FIELDS(x) UPDATE(x, 5, 2) 120*4882a593Smuzhiyun #define HDMI_RX_HDMI_VM_CFG_CH_0_1 HDMIRX_REG(0x00b0) 121*4882a593Smuzhiyun #define HDMI_RX_HDMI_VM_CFG_CH2 HDMIRX_REG(0x00b4) 122*4882a593Smuzhiyun #define HDMI_RX_HDMI_SPARE HDMIRX_REG(0x00b8) 123*4882a593Smuzhiyun #define HDMI_RX_HDMI_STS HDMIRX_REG(0x00bc) 124*4882a593Smuzhiyun #define HDMI_RX_HDCP_CTRL HDMIRX_REG(0x00c0) 125*4882a593Smuzhiyun #define HDCP_ENABLE_MASK BIT(24) 126*4882a593Smuzhiyun #define HDCP_ENABLE(x) UPDATE(x, 24, 24) 127*4882a593Smuzhiyun #define FREEZE_HDCP_FSM_MASK BIT(21) 128*4882a593Smuzhiyun #define FREEZE_HDCP_FSM(x) UPDATE(x, 21, 21) 129*4882a593Smuzhiyun #define FREEZE_HDCP_STATE_MASK GENMASK(20, 15) 130*4882a593Smuzhiyun #define FREEZE_HDCP_STATE(x) UPDATE(x, 20, 15) 131*4882a593Smuzhiyun #define HDCP_CTL_MASK GENMASK(9, 8) 132*4882a593Smuzhiyun #define HDCP_CTL(x) UPDATE(x, 9, 8) 133*4882a593Smuzhiyun #define HDCP_RI_RATE_MASK GENMASK(7, 6) 134*4882a593Smuzhiyun #define HDCP_RI_RATE(x) UPDATE(x, 7, 6) 135*4882a593Smuzhiyun #define KEY_DECRYPT_ENABLE_MASK BIT(1) 136*4882a593Smuzhiyun #define KEY_DECRYPT_ENABLE(x) UPDATE(x, 1, 1) 137*4882a593Smuzhiyun #define HDCP_ENC_EN_MASK BIT(0) 138*4882a593Smuzhiyun #define HDCP_ENC_EN(x) UPDATE(x, 0, 0) 139*4882a593Smuzhiyun #define HDMI_RX_HDCP_SETTINGS HDMIRX_REG(0x00c4) 140*4882a593Smuzhiyun #define HDMI_RESERVED(x) UPDATE(x, 13, 13) 141*4882a593Smuzhiyun #define HDMI_RESERVED_MASK BIT(13) 142*4882a593Smuzhiyun #define FAST_I2C(x) UPDATE(x, 12, 12) 143*4882a593Smuzhiyun #define FAST_I2C_MASK BIT(12) 144*4882a593Smuzhiyun #define ONE_DOT_ONE(x) UPDATE(x, 9, 9) 145*4882a593Smuzhiyun #define ONE_DOT_ONE_MASK BIT(9) 146*4882a593Smuzhiyun #define FAST_REAUTH(x) UPDATE(x, 8, 8) 147*4882a593Smuzhiyun #define FAST_REAUTH_MASK BIT(8) 148*4882a593Smuzhiyun #define HDMI_RX_HDCP_SEED HDMIRX_REG(0x00c8) 149*4882a593Smuzhiyun #define HDMI_RX_HDCP_BKSV1 HDMIRX_REG(0x00cc) 150*4882a593Smuzhiyun #define HDMI_RX_HDCP_BKSV0 HDMIRX_REG(0x00d0) 151*4882a593Smuzhiyun #define HDMI_RX_HDCP_KIDX HDMIRX_REG(0x00d4) 152*4882a593Smuzhiyun #define HDMI_RX_HDCP_KEY1 HDMIRX_REG(0x00d8) 153*4882a593Smuzhiyun #define HDMI_RX_HDCP_KEY0 HDMIRX_REG(0x00dc) 154*4882a593Smuzhiyun #define HDMI_RX_HDCP_DBG HDMIRX_REG(0x00e0) 155*4882a593Smuzhiyun #define HDMI_RX_HDCP_AKSV1 HDMIRX_REG(0x00e4) 156*4882a593Smuzhiyun #define HDMI_RX_HDCP_AKSV0 HDMIRX_REG(0x00e8) 157*4882a593Smuzhiyun #define HDMI_RX_HDCP_AN1 HDMIRX_REG(0x00ec) 158*4882a593Smuzhiyun #define HDMI_RX_HDCP_AN0 HDMIRX_REG(0x00f0) 159*4882a593Smuzhiyun #define HDMI_RX_HDCP_EESS_WOO HDMIRX_REG(0x00f4) 160*4882a593Smuzhiyun #define HDMI_RX_HDCP_I2C_TIMEOUT HDMIRX_REG(0x00f8) 161*4882a593Smuzhiyun #define HDMI_RX_HDCP_STS HDMIRX_REG(0x00fc) 162*4882a593Smuzhiyun #define HDMI_RX_MD_HCTRL1 HDMIRX_REG(0x0140) 163*4882a593Smuzhiyun #define HACT_PIX_ITH_MASK GENMASK(10, 8) 164*4882a593Smuzhiyun #define HACT_PIX_ITH(x) UPDATE(x, 10, 8) 165*4882a593Smuzhiyun #define HACT_PIX_SRC_MASK BIT(5) 166*4882a593Smuzhiyun #define HACT_PIX_SRC(x) UPDATE(x, 5, 5) 167*4882a593Smuzhiyun #define HTOT_PIX_SRC_MASK BIT(4) 168*4882a593Smuzhiyun #define HTOT_PIX_SRC(x) UPDATE(x, 4, 4) 169*4882a593Smuzhiyun #define HDMI_RX_MD_HCTRL2 HDMIRX_REG(0x0144) 170*4882a593Smuzhiyun #define HS_CLK_ITH_MASK GENMASK(14, 12) 171*4882a593Smuzhiyun #define HS_CLK_ITH(x) UPDATE(x, 14, 12) 172*4882a593Smuzhiyun #define HTOT32_CLK_ITH_MASK GENMASK(9, 8) 173*4882a593Smuzhiyun #define HTOT32_CLK_ITH(x) UPDATE(x, 9, 8) 174*4882a593Smuzhiyun #define VS_ACT_TIME_MASK BIT(5) 175*4882a593Smuzhiyun #define VS_ACT_TIME(x) UPDATE(x, 5, 5) 176*4882a593Smuzhiyun #define HS_ACT_TIME_MASK GENMASK(4, 3) 177*4882a593Smuzhiyun #define HS_ACT_TIME(x) UPDATE(x, 4, 3) 178*4882a593Smuzhiyun #define H_START_POS_MASK GENMASK(1, 0) 179*4882a593Smuzhiyun #define H_START_POS(x) UPDATE(x, 1, 0) 180*4882a593Smuzhiyun #define HDMI_RX_MD_HT0 HDMIRX_REG(0x0148) 181*4882a593Smuzhiyun #define HDMI_RX_MD_HT1 HDMIRX_REG(0x014c) 182*4882a593Smuzhiyun #define HDMI_RX_MD_HACT_PX HDMIRX_REG(0x0150) 183*4882a593Smuzhiyun #define HDMI_RX_MD_HACT_RSV HDMIRX_REG(0x0154) 184*4882a593Smuzhiyun #define HDMI_RX_MD_VCTRL HDMIRX_REG(0x0158) 185*4882a593Smuzhiyun #define V_OFFS_LIN_MODE_MASK BIT(4) 186*4882a593Smuzhiyun #define V_OFFS_LIN_MODE(x) UPDATE(x, 4, 4) 187*4882a593Smuzhiyun #define V_EDGE_MASK BIT(1) 188*4882a593Smuzhiyun #define V_EDGE(x) UPDATE(x, 1, 1) 189*4882a593Smuzhiyun #define V_MODE_MASK BIT(0) 190*4882a593Smuzhiyun #define V_MODE(x) UPDATE(x, 0, 0) 191*4882a593Smuzhiyun #define HDMI_RX_MD_VSC HDMIRX_REG(0x015c) 192*4882a593Smuzhiyun #define HDMI_RX_MD_VTC HDMIRX_REG(0x0160) 193*4882a593Smuzhiyun #define HDMI_RX_MD_VOL HDMIRX_REG(0x0164) 194*4882a593Smuzhiyun #define HDMI_RX_MD_VAL HDMIRX_REG(0x0168) 195*4882a593Smuzhiyun #define HDMI_RX_MD_VTH HDMIRX_REG(0x016c) 196*4882a593Smuzhiyun #define VOFS_LIN_ITH_MASK GENMASK(11, 10) 197*4882a593Smuzhiyun #define VOFS_LIN_ITH(x) UPDATE(x, 11, 10) 198*4882a593Smuzhiyun #define VACT_LIN_ITH_MASK GENMASK(9, 8) 199*4882a593Smuzhiyun #define VACT_LIN_ITH(x) UPDATE(x, 9, 8) 200*4882a593Smuzhiyun #define VTOT_LIN_ITH_MASK GENMASK(7, 6) 201*4882a593Smuzhiyun #define VTOT_LIN_ITH(x) UPDATE(x, 7, 6) 202*4882a593Smuzhiyun #define VS_CLK_ITH_MASK GENMASK(5, 3) 203*4882a593Smuzhiyun #define VS_CLK_ITH(x) UPDATE(x, 5, 3) 204*4882a593Smuzhiyun #define VTOT_CLK_ITH_MASK GENMASK(2, 0) 205*4882a593Smuzhiyun #define VTOT_CLK_ITH(x) UPDATE(x, 2, 0) 206*4882a593Smuzhiyun #define HDMI_RX_MD_VTL HDMIRX_REG(0x0170) 207*4882a593Smuzhiyun #define HDMI_RX_MD_IL_CTRL HDMIRX_REG(0x0174) 208*4882a593Smuzhiyun #define HDMI_RX_MD_IL_SKEW HDMIRX_REG(0x0178) 209*4882a593Smuzhiyun #define HDMI_RX_MD_IL_POL HDMIRX_REG(0x017c) 210*4882a593Smuzhiyun #define FAFIELDDET_EN_MASK BIT(2) 211*4882a593Smuzhiyun #define FAFIELDDET_EN(x) UPDATE(x, 2, 2) 212*4882a593Smuzhiyun #define FIELD_POL_MODE_MASK GENMASK(1, 0) 213*4882a593Smuzhiyun #define FIELD_POL_MODE(x) UPDATE(x, 1, 0) 214*4882a593Smuzhiyun #define HDMI_RX_MD_STS HDMIRX_REG(0x0180) 215*4882a593Smuzhiyun #define ILACE_STS BIT(3) 216*4882a593Smuzhiyun #define HDMI_RX_AUD_CTRL HDMIRX_REG(0x0200) 217*4882a593Smuzhiyun #define HDMI_RX_AUD_PLL_CTRL HDMIRX_REG(0x0208) 218*4882a593Smuzhiyun #define PLL_LOCK_TOGGLE_DIV_MASK GENMASK(27, 24) 219*4882a593Smuzhiyun #define PLL_LOCK_TOGGLE_DIV(x) UPDATE(x, 27, 24) 220*4882a593Smuzhiyun #define HDMI_RX_AUD_CLK_CTRL HDMIRX_REG(0x0214) 221*4882a593Smuzhiyun #define CTS_N_REF_MASK BIT(4) 222*4882a593Smuzhiyun #define CTS_N_REF(x) UPDATE(x, 4, 4) 223*4882a593Smuzhiyun #define HDMI_RX_AUD_CLK_STS HDMIRX_REG(0x023c) 224*4882a593Smuzhiyun #define HDMI_RX_AUD_FIFO_CTRL HDMIRX_REG(0x0240) 225*4882a593Smuzhiyun #define AFIF_SUBPACKET_DESEL_MASK GENMASK(27, 24) 226*4882a593Smuzhiyun #define AFIF_SUBPACKET_DESEL(x) UPDATE(x, 27, 24) 227*4882a593Smuzhiyun #define AFIF_SUBPACKETS_MASK BIT(16) 228*4882a593Smuzhiyun #define AFIF_SUBPACKETS(x) UPDATE(x, 16, 16) 229*4882a593Smuzhiyun #define MSA_CHANNEL_DESELECT BIT(24) 230*4882a593Smuzhiyun #define HDMI_RX_AUD_FIFO_TH HDMIRX_REG(0x0244) 231*4882a593Smuzhiyun #define AFIF_TH_START_MASK GENMASK(26, 18) 232*4882a593Smuzhiyun #define AFIF_TH_START(x) UPDATE(x, 26, 18) 233*4882a593Smuzhiyun #define AFIF_TH_MAX_MASK GENMASK(17, 9) 234*4882a593Smuzhiyun #define AFIF_TH_MAX(x) UPDATE(x, 17, 9) 235*4882a593Smuzhiyun #define AFIF_TH_MIN_MASK GENMASK(8, 0) 236*4882a593Smuzhiyun #define AFIF_TH_MIN(x) UPDATE(x, 8, 0) 237*4882a593Smuzhiyun #define HDMI_RX_AUD_FIFO_FILL_S HDMIRX_REG(0x0248) 238*4882a593Smuzhiyun #define HDMI_RX_AUD_FIFO_CLR_MM HDMIRX_REG(0x024c) 239*4882a593Smuzhiyun #define HDMI_RX_AUD_FIFO_FILLSTS HDMIRX_REG(0x0250) 240*4882a593Smuzhiyun #define HDMI_RX_AUD_CHEXTR_CTRL HDMIRX_REG(0x0254) 241*4882a593Smuzhiyun #define AUD_LAYOUT_CTRL(x) UPDATE(x, 1, 0) 242*4882a593Smuzhiyun #define HDMI_RX_AUD_MUTE_CTRL HDMIRX_REG(0x0258) 243*4882a593Smuzhiyun #define APPLY_INT_MUTE_MASK BIT(31) 244*4882a593Smuzhiyun #define APPLY_INT_MUTE(x) UPDATE(x, 31, 31) 245*4882a593Smuzhiyun #define APORT_SHDW_CTRL_MASK GENMASK(22, 21) 246*4882a593Smuzhiyun #define APORT_SHDW_CTRL(x) UPDATE(x, 22, 21) 247*4882a593Smuzhiyun #define AUTO_ACLK_MUTE_MASK GENMASK(20, 19) 248*4882a593Smuzhiyun #define AUTO_ACLK_MUTE(x) UPDATE(x, 20, 19) 249*4882a593Smuzhiyun #define AUD_MUTE_SPEED_MASK GENMASK(16, 10) 250*4882a593Smuzhiyun #define AUD_MUTE_SPEED(x) UPDATE(x, 16, 10) 251*4882a593Smuzhiyun #define AUD_AVMUTE_EN_MASK BIT(7) 252*4882a593Smuzhiyun #define AUD_AVMUTE_EN(x) UPDATE(x, 7, 7) 253*4882a593Smuzhiyun #define AUD_MUTE_SEL_MASK GENMASK(6, 5) 254*4882a593Smuzhiyun #define AUD_MUTE_SEL(x) UPDATE(x, 6, 5) 255*4882a593Smuzhiyun #define AUD_MUTE_MODE_MASK GENMASK(4, 3) 256*4882a593Smuzhiyun #define AUD_MUTE_MODE(x) UPDATE(x, 4, 3) 257*4882a593Smuzhiyun #define HDMI_RX_AUD_FIFO_FILLSTS1 HDMIRX_REG(0x025c) 258*4882a593Smuzhiyun #define HDMI_RX_AUD_SAO_CTRL HDMIRX_REG(0x0260) 259*4882a593Smuzhiyun #define I2S_LPCM_BPCUV_MASK BIT(11) 260*4882a593Smuzhiyun #define I2S_LPCM_BPCUV(x) UPDATE(x, 11, 11) 261*4882a593Smuzhiyun #define I2S_32_16_MASK BIT(0) 262*4882a593Smuzhiyun #define I2S_32_16(x) UPDATE(x, 0, 0) 263*4882a593Smuzhiyun #define HDMI_RX_AUD_PAO_CTRL HDMIRX_REG(0x0264) 264*4882a593Smuzhiyun #define PAO_RATE_MASK GENMASK(17, 16) 265*4882a593Smuzhiyun #define PAO_RATE(x) UPDATE(x, 17, 16) 266*4882a593Smuzhiyun #define HDMI_RX_AUD_SPARE HDMIRX_REG(0x0268) 267*4882a593Smuzhiyun #define HDMI_RX_AUD_FIFO_STS HDMIRX_REG(0x027c) 268*4882a593Smuzhiyun #define HDMI_RX_AUDPLL_GEN_CTS HDMIRX_REG(0x0280) 269*4882a593Smuzhiyun #define AUDPLL_CTS_MANUAL(x) UPDATE(x, 19, 0) 270*4882a593Smuzhiyun #define HDMI_RX_AUDPLL_GEN_N HDMIRX_REG(0x0284) 271*4882a593Smuzhiyun #define AUDPLL_N_MANUAL(x) UPDATE(x, 19, 0) 272*4882a593Smuzhiyun #define HDMI_RX_AUDPLL_GEN_CTRL_RW1 HDMIRX_REG(0x0288) 273*4882a593Smuzhiyun #define HDMI_RX_AUDPLL_GEN_CTRL_RW2 HDMIRX_REG(0x028c) 274*4882a593Smuzhiyun #define HDMI_RX_AUDPLL_GEN_CTRL_W1 HDMIRX_REG(0x0298) 275*4882a593Smuzhiyun #define HDMI_RX_AUDPLL_GEN_STS_RO1 HDMIRX_REG(0x02a0) 276*4882a593Smuzhiyun #define HDMI_RX_AUDPLL_GEN_STS_RO2 HDMIRX_REG(0x02a4) 277*4882a593Smuzhiyun #define HDMI_RX_AUDPLL_SC_NDIVCTSTH HDMIRX_REG(0x02a8) 278*4882a593Smuzhiyun #define HDMI_RX_AUDPLL_SC_CTS HDMIRX_REG(0x02ac) 279*4882a593Smuzhiyun #define HDMI_RX_AUDPLL_SC_N HDMIRX_REG(0x02b0) 280*4882a593Smuzhiyun #define HDMI_RX_AUDPLL_SC_CTRL HDMIRX_REG(0x02b4) 281*4882a593Smuzhiyun #define HDMI_RX_AUDPLL_SC_STS1 HDMIRX_REG(0x02b8) 282*4882a593Smuzhiyun #define HDMI_RX_AUDPLL_SC_STS2 HDMIRX_REG(0x02bc) 283*4882a593Smuzhiyun #define HDMI_RX_SNPS_PHYG3_CTRL HDMIRX_REG(0x02c0) 284*4882a593Smuzhiyun #define PORTSELECT_MASK GENMASK(3, 2) 285*4882a593Smuzhiyun #define PORTSELECT(x) UPDATE(x, 3, 2) 286*4882a593Smuzhiyun #define HDMI_RX_I2CM_PHYG3_SLAVE HDMIRX_REG(0x02c4) 287*4882a593Smuzhiyun #define HDMI_RX_I2CM_PHYG3_ADDRESS HDMIRX_REG(0x02c8) 288*4882a593Smuzhiyun #define HDMI_RX_I2CM_PHYG3_DATAO HDMIRX_REG(0x02cc) 289*4882a593Smuzhiyun #define HDMI_RX_I2CM_PHYG3_DATAI HDMIRX_REG(0x02d0) 290*4882a593Smuzhiyun #define HDMI_RX_I2CM_PHYG3_OPERATION HDMIRX_REG(0x02d4) 291*4882a593Smuzhiyun #define HDMI_RX_I2CM_PHYG3_MODE HDMIRX_REG(0x02d8) 292*4882a593Smuzhiyun #define HDMI_RX_I2CM_PHYG3_SOFTRST HDMIRX_REG(0x02dc) 293*4882a593Smuzhiyun #define HDMI_RX_I2CM_PHYG3_SS_CNTS HDMIRX_REG(0x02e0) 294*4882a593Smuzhiyun #define HDMI_RX_I2CM_PHYG3_FS_HCNT HDMIRX_REG(0x02e4) 295*4882a593Smuzhiyun #define HDMI_RX_JTAG_CONF HDMIRX_REG(0x02ec) 296*4882a593Smuzhiyun #define HDMI_RX_JTAG_TAP_TCLK HDMIRX_REG(0x02f0) 297*4882a593Smuzhiyun #define HDMI_RX_JTAG_TAP_IN HDMIRX_REG(0x02f4) 298*4882a593Smuzhiyun #define HDMI_RX_JTAG_TAP_OUT HDMIRX_REG(0x02f8) 299*4882a593Smuzhiyun #define HDMI_RX_JTAG_ADDR HDMIRX_REG(0x02fc) 300*4882a593Smuzhiyun #define HDMI_RX_PDEC_CTRL HDMIRX_REG(0x0300) 301*4882a593Smuzhiyun #define PFIFO_SCORE_FILTER_EN BIT(31) 302*4882a593Smuzhiyun #define PFIFO_SCORE_HDP_IF BIT(29) 303*4882a593Smuzhiyun #define PFIFO_SCORE_AMP_IF BIT(28) 304*4882a593Smuzhiyun #define PFIFO_SCORE_NTSCVBI_IF BIT(27) 305*4882a593Smuzhiyun #define PFIFO_SCORE_MPEGS_IF BIT(26) 306*4882a593Smuzhiyun #define PFIFO_SCORE_AUD_IF BIT(25) 307*4882a593Smuzhiyun #define PFIFO_SCORE_SPD_IF BIT(24) 308*4882a593Smuzhiyun #define PFIFO_SCORE_AVI_IF BIT(23) 309*4882a593Smuzhiyun #define PFIFO_SCORE_VS_IF BIT(22) 310*4882a593Smuzhiyun #define PFIFO_SCORE_GMTP BIT(21) 311*4882a593Smuzhiyun #define PFIFO_SCORE_ISRC2 BIT(20) 312*4882a593Smuzhiyun #define PFIFO_SCORE_ISRC1 BIT(19) 313*4882a593Smuzhiyun #define PFIFO_SCORE_ACP BIT(18) 314*4882a593Smuzhiyun #define PFIFO_SCORE_GCP BIT(17) 315*4882a593Smuzhiyun #define PFIFO_SCORE_ACR BIT(16) 316*4882a593Smuzhiyun #define GCP_GLOBAVMUTE BIT(15) 317*4882a593Smuzhiyun #define PD_FIFO_WE BIT(4) 318*4882a593Smuzhiyun #define PDEC_BCH_EN BIT(0) 319*4882a593Smuzhiyun #define HDMI_RX_PDEC_FIFO_CFG HDMIRX_REG(0x0304) 320*4882a593Smuzhiyun #define PD_FIFO_TH_START_MASK GENMASK(29, 20) 321*4882a593Smuzhiyun #define PD_FIFO_TH_START(x) UPDATE(x, 29, 20) 322*4882a593Smuzhiyun #define PD_FIFO_TH_MAX_MASK GENMASK(19, 10) 323*4882a593Smuzhiyun #define PD_FIFO_TH_MAX(x) UPDATE(x, 19, 10) 324*4882a593Smuzhiyun #define PD_FIFO_TH_MIN_MASK GENMASK(9, 0) 325*4882a593Smuzhiyun #define PD_FIFO_TH_MIN(x) UPDATE(x, 9, 0) 326*4882a593Smuzhiyun #define HDMI_RX_PDEC_FIFO_STS HDMIRX_REG(0x0308) 327*4882a593Smuzhiyun #define HDMI_RX_PDEC_FIFO_DATA HDMIRX_REG(0x030c) 328*4882a593Smuzhiyun #define HDMI_RX_PDEC_AUDIODET_CTRL HDMIRX_REG(0x0310) 329*4882a593Smuzhiyun #define AUDIODET_THRESHOLD_MASK GENMASK(13, 9) 330*4882a593Smuzhiyun #define AUDIODET_THRESHOLD(x) UPDATE(x, 13, 9) 331*4882a593Smuzhiyun #define HDMI_RX_PDEC_DBG_ACP HDMIRX_REG(0x031c) 332*4882a593Smuzhiyun #define HDMI_RX_PDEC_DBG_ERR_CORR HDMIRX_REG(0x0320) 333*4882a593Smuzhiyun #define HDMI_RX_PDEC_FIFO_STS1 HDMIRX_REG(0x0324) 334*4882a593Smuzhiyun #define HDMI_RX_PDEC_ACRM_CTRL HDMIRX_REG(0x0330) 335*4882a593Smuzhiyun #define DELTACTS_IRQTRIG_MASK GENMASK(4, 2) 336*4882a593Smuzhiyun #define DELTACTS_IRQTRIG(x) UPDATE(x, 4, 2) 337*4882a593Smuzhiyun #define HDMI_RX_PDEC_ACRM_MAX HDMIRX_REG(0x0334) 338*4882a593Smuzhiyun #define HDMI_RX_PDEC_ACRM_MIN HDMIRX_REG(0x0338) 339*4882a593Smuzhiyun #define HDMI_RX_PDEC_ERR_FILTER HDMIRX_REG(0x033c) 340*4882a593Smuzhiyun #define HDMI_RX_PDEC_ASP_CTRL HDMIRX_REG(0x0340) 341*4882a593Smuzhiyun #define HDMI_RX_PDEC_ASP_ERR HDMIRX_REG(0x0344) 342*4882a593Smuzhiyun #define HDMI_RX_PDEC_STS HDMIRX_REG(0x0360) 343*4882a593Smuzhiyun #define HDMI_RX_PDEC_AUD_STS HDMIRX_REG(0x0364) 344*4882a593Smuzhiyun #define HDMI_RX_PDEC_VSI_PAYLOAD0 HDMIRX_REG(0x0368) 345*4882a593Smuzhiyun #define HDMI_RX_PDEC_VSI_PAYLOAD1 HDMIRX_REG(0x036c) 346*4882a593Smuzhiyun #define HDMI_RX_PDEC_VSI_PAYLOAD2 HDMIRX_REG(0x0370) 347*4882a593Smuzhiyun #define HDMI_RX_PDEC_VSI_PAYLOAD3 HDMIRX_REG(0x0374) 348*4882a593Smuzhiyun #define HDMI_RX_PDEC_VSI_PAYLOAD4 HDMIRX_REG(0x0378) 349*4882a593Smuzhiyun #define HDMI_RX_PDEC_VSI_PAYLOAD5 HDMIRX_REG(0x037c) 350*4882a593Smuzhiyun #define HDMI_RX_PDEC_GCP_AVMUTE HDMIRX_REG(0x0380) 351*4882a593Smuzhiyun #define PKTDEC_GCP_CD_MASK GENMASK(7, 4) 352*4882a593Smuzhiyun #define HDMI_RX_PDEC_ACR_CTS HDMIRX_REG(0x0390) 353*4882a593Smuzhiyun #define HDMI_RX_PDEC_ACR_N HDMIRX_REG(0x0394) 354*4882a593Smuzhiyun #define HDMI_RX_PDEC_AVI_HB HDMIRX_REG(0x03a0) 355*4882a593Smuzhiyun #define HDMI_RX_PDEC_AVI_PB HDMIRX_REG(0x03a4) 356*4882a593Smuzhiyun #define VID_IDENT_CODE_VIC7 BIT(31) 357*4882a593Smuzhiyun #define VID_IDENT_CODE GENMASK(30, 24) 358*4882a593Smuzhiyun #define VIDEO_FORMAT GENMASK(6, 5) 359*4882a593Smuzhiyun #define HDMI_RX_PDEC_AVI_TBB HDMIRX_REG(0x03a8) 360*4882a593Smuzhiyun #define HDMI_RX_PDEC_AVI_LRB HDMIRX_REG(0x03ac) 361*4882a593Smuzhiyun #define HDMI_RX_PDEC_AIF_CTRL HDMIRX_REG(0x03c0) 362*4882a593Smuzhiyun #define FC_LFE_EXCHG BIT(18) 363*4882a593Smuzhiyun #define HDMI_RX_PDEC_AIF_HB HDMIRX_REG(0x03c4) 364*4882a593Smuzhiyun #define HDMI_RX_PDEC_AIF_PB0 HDMIRX_REG(0x03c8) 365*4882a593Smuzhiyun #define HDMI_RX_PDEC_AIF_PB1 HDMIRX_REG(0x03cc) 366*4882a593Smuzhiyun #define HDMI_RX_PDEC_GMD_HB HDMIRX_REG(0x03d0) 367*4882a593Smuzhiyun #define HDMI_RX_PDEC_GMD_PB HDMIRX_REG(0x03d4) 368*4882a593Smuzhiyun #define HDMI_RX_PDEC_VSI_ST0 HDMIRX_REG(0x03e0) 369*4882a593Smuzhiyun #define HDMI_RX_PDEC_VSI_ST1 HDMIRX_REG(0x03e4) 370*4882a593Smuzhiyun #define HDMI_RX_PDEC_VSI_PB0 HDMIRX_REG(0x03e8) 371*4882a593Smuzhiyun #define HDMI_RX_PDEC_VSI_PB1 HDMIRX_REG(0x03ec) 372*4882a593Smuzhiyun #define HDMI_RX_PDEC_VSI_PB2 HDMIRX_REG(0x03f0) 373*4882a593Smuzhiyun #define HDMI_RX_PDEC_VSI_PB3 HDMIRX_REG(0x03f4) 374*4882a593Smuzhiyun #define HDMI_RX_PDEC_VSI_PB4 HDMIRX_REG(0x03f8) 375*4882a593Smuzhiyun #define HDMI_RX_PDEC_VSI_PB5 HDMIRX_REG(0x03fc) 376*4882a593Smuzhiyun #define HDMI_RX_CEAVID_CONFIG HDMIRX_REG(0x0400) 377*4882a593Smuzhiyun #define HDMI_RX_CEAVID_3DCONFIG HDMIRX_REG(0x0404) 378*4882a593Smuzhiyun #define HDMI_RX_CEAVID_HCONFIG_LO HDMIRX_REG(0x0408) 379*4882a593Smuzhiyun #define HDMI_RX_CEAVID_HCONFIG_HI HDMIRX_REG(0x040c) 380*4882a593Smuzhiyun #define HDMI_RX_CEAVID_VCONFIG_LO HDMIRX_REG(0x0410) 381*4882a593Smuzhiyun #define HDMI_RX_CEAVID_VCONFIG_HI HDMIRX_REG(0x0414) 382*4882a593Smuzhiyun #define HDMI_RX_CEAVID_STATUS HDMIRX_REG(0x0418) 383*4882a593Smuzhiyun #define HDMI_RX_PDEC_AMP_HB HDMIRX_REG(0x0480) 384*4882a593Smuzhiyun #define HDMI_RX_PDEC_AMP_PAYLOAD0 HDMIRX_REG(0x0484) 385*4882a593Smuzhiyun #define HDMI_RX_PDEC_AMP_PAYLOAD1 HDMIRX_REG(0x0488) 386*4882a593Smuzhiyun #define HDMI_RX_PDEC_AMP_PAYLOAD2 HDMIRX_REG(0x048c) 387*4882a593Smuzhiyun #define HDMI_RX_PDEC_AMP_PAYLOAD3 HDMIRX_REG(0x0490) 388*4882a593Smuzhiyun #define HDMI_RX_PDEC_AMP_PAYLOAD4 HDMIRX_REG(0x0494) 389*4882a593Smuzhiyun #define HDMI_RX_PDEC_AMP_PAYLOAD5 HDMIRX_REG(0x0498) 390*4882a593Smuzhiyun #define HDMI_RX_PDEC_AMP_PAYLOAD6 HDMIRX_REG(0x049c) 391*4882a593Smuzhiyun #define HDMI_RX_PDEC_NTSCVBI_HB HDMIRX_REG(0x04a0) 392*4882a593Smuzhiyun #define HDMI_RX_PDEC_NTSCVBI_PAYLOAD0 HDMIRX_REG(0x04a4) 393*4882a593Smuzhiyun #define HDMI_RX_PDEC_NTSCVBI_PAYLOAD1 HDMIRX_REG(0x04a8) 394*4882a593Smuzhiyun #define HDMI_RX_PDEC_NTSCVBI_PAYLOAD2 HDMIRX_REG(0x04ac) 395*4882a593Smuzhiyun #define HDMI_RX_PDEC_NTSCVBI_PAYLOAD3 HDMIRX_REG(0x04b0) 396*4882a593Smuzhiyun #define HDMI_RX_PDEC_NTSCVBI_PAYLOAD4 HDMIRX_REG(0x04b4) 397*4882a593Smuzhiyun #define HDMI_RX_PDEC_NTSCVBI_PAYLOAD5 HDMIRX_REG(0x04b8) 398*4882a593Smuzhiyun #define HDMI_RX_PDEC_NTSCVBI_PAYLOAD6 HDMIRX_REG(0x04bc) 399*4882a593Smuzhiyun #define HDMI_RX_PDEC_DRM_HB HDMIRX_REG(0x04c0) 400*4882a593Smuzhiyun #define HDMI_RX_PDEC_DRM_PAYLOAD0 HDMIRX_REG(0x04c4) 401*4882a593Smuzhiyun #define HDMI_RX_PDEC_DRM_PAYLOAD1 HDMIRX_REG(0x04c8) 402*4882a593Smuzhiyun #define HDMI_RX_PDEC_DRM_PAYLOAD2 HDMIRX_REG(0x04cc) 403*4882a593Smuzhiyun #define HDMI_RX_PDEC_DRM_PAYLOAD3 HDMIRX_REG(0x04d0) 404*4882a593Smuzhiyun #define HDMI_RX_PDEC_DRM_PAYLOAD4 HDMIRX_REG(0x04d4) 405*4882a593Smuzhiyun #define HDMI_RX_PDEC_DRM_PAYLOAD5 HDMIRX_REG(0x04d8) 406*4882a593Smuzhiyun #define HDMI_RX_PDEC_DRM_PAYLOAD6 HDMIRX_REG(0x04dc) 407*4882a593Smuzhiyun #define HDMI_RX_MHLMODE_CTRL HDMIRX_REG(0x0500) 408*4882a593Smuzhiyun #define HDMI_RX_CDSENSE_STATUS HDMIRX_REG(0x0504) 409*4882a593Smuzhiyun #define HDMI_RX_DESERFIFO_CTRL HDMIRX_REG(0x0508) 410*4882a593Smuzhiyun #define HDMI_RX_DESER_INTTRSHCTRL HDMIRX_REG(0x050c) 411*4882a593Smuzhiyun #define HDMI_RX_DESER_INTCNTCTRL HDMIRX_REG(0x0510) 412*4882a593Smuzhiyun #define HDMI_RX_DESER_INTCNT HDMIRX_REG(0x0514) 413*4882a593Smuzhiyun #define HDMI_RX_HDCP_RPT_CTRL HDMIRX_REG(0x0600) 414*4882a593Smuzhiyun #define HDMI_RX_HDCP_RPT_BSTATUS HDMIRX_REG(0x0604) 415*4882a593Smuzhiyun #define HDMI_RX_HDCP_RPT_KSVFIFO_CTRL HDMIRX_REG(0x0608) 416*4882a593Smuzhiyun #define HDMI_RX_HDCP_RPT_KSVFIFO1 HDMIRX_REG(0x060c) 417*4882a593Smuzhiyun #define HDMI_RX_HDCP_RPT_KSVFIFO0 HDMIRX_REG(0x0610) 418*4882a593Smuzhiyun #define HDMI_RX_HDMI20_CONTROL HDMIRX_REG(0x0800) 419*4882a593Smuzhiyun #define HDMI_RX_SCDC_I2CCONFIG HDMIRX_REG(0x0804) 420*4882a593Smuzhiyun #define I2CSPIKESUPPR_MASK GENMASK(25, 24) 421*4882a593Smuzhiyun #define I2CSPIKESUPPR(x) UPDATE(x, 25, 24) 422*4882a593Smuzhiyun #define HDMI_RX_SCDC_CONFIG HDMIRX_REG(0x0808) 423*4882a593Smuzhiyun #define HDMI_RX_CHLOCK_CONFIG HDMIRX_REG(0x080c) 424*4882a593Smuzhiyun #define CHLOCKMAXER_MASK GENMASK(29, 20) 425*4882a593Smuzhiyun #define CHLOCKMAXER(x) UPDATE(x, 29, 20) 426*4882a593Smuzhiyun #define MILISECTIMERLIMIT_MASK GENMASK(15, 0) 427*4882a593Smuzhiyun #define MILISECTIMERLIMIT(x) UPDATE(x, 15, 0) 428*4882a593Smuzhiyun #define HDMI_RX_HDCP22_CONTROL HDMIRX_REG(0x081c) 429*4882a593Smuzhiyun #define HDMI_RX_SCDC_REGS0 HDMIRX_REG(0x0820) 430*4882a593Smuzhiyun #define HDMI_RX_SCDC_REGS1 HDMIRX_REG(0x0824) 431*4882a593Smuzhiyun #define HDMI_RX_SCDC_REGS2 HDMIRX_REG(0x0828) 432*4882a593Smuzhiyun #define HDMI_RX_SCDC_REGS3 HDMIRX_REG(0x082c) 433*4882a593Smuzhiyun #define HDMI_RX_SCDC_MANSPEC0 HDMIRX_REG(0x0840) 434*4882a593Smuzhiyun #define HDMI_RX_SCDC_MANSPEC1 HDMIRX_REG(0x0844) 435*4882a593Smuzhiyun #define HDMI_RX_SCDC_MANSPEC2 HDMIRX_REG(0x0848) 436*4882a593Smuzhiyun #define HDMI_RX_SCDC_MANSPEC3 HDMIRX_REG(0x084c) 437*4882a593Smuzhiyun #define HDMI_RX_SCDC_MANSPEC4 HDMIRX_REG(0x0850) 438*4882a593Smuzhiyun #define HDMI_RX_SCDC_WRDATA0 HDMIRX_REG(0x0860) 439*4882a593Smuzhiyun #define MANUFACTUREROUI_MASK GENMASK(31, 8) 440*4882a593Smuzhiyun #define MANUFACTUREROUI(x) UPDATE(x, 31, 8) 441*4882a593Smuzhiyun #define SINKVERSION_MASK GENMASK(7, 0) 442*4882a593Smuzhiyun #define SINKVERSION(x) UPDATE(x, 7, 0) 443*4882a593Smuzhiyun #define HDMI_RX_SCDC_WRDATA1 HDMIRX_REG(0x0864) 444*4882a593Smuzhiyun #define HDMI_RX_SCDC_WRDATA2 HDMIRX_REG(0x0868) 445*4882a593Smuzhiyun #define HDMI_RX_SCDC_WRDATA3 HDMIRX_REG(0x086c) 446*4882a593Smuzhiyun #define HDMI_RX_SCDC_WRDATA4 HDMIRX_REG(0x0870) 447*4882a593Smuzhiyun #define HDMI_RX_SCDC_WRDATA5 HDMIRX_REG(0x0874) 448*4882a593Smuzhiyun #define HDMI_RX_SCDC_WRDATA6 HDMIRX_REG(0x0878) 449*4882a593Smuzhiyun #define HDMI_RX_SCDC_WRDATA7 HDMIRX_REG(0x087c) 450*4882a593Smuzhiyun #define HDMI_RX_HDMI20_STATUS HDMIRX_REG(0x08e0) 451*4882a593Smuzhiyun #define HDMI_RX_HDCP2_ESM_GLOBAL_GPIO_IN HDMIRX_REG(0x08e8) 452*4882a593Smuzhiyun #define HDMI_RX_HDCP2_ESM_GLOBAL_GPIO_OUT HDMIRX_REG(0x08ec) 453*4882a593Smuzhiyun #define HDMI_RX_HDCP2_ESM_P0_GPIO_IN HDMIRX_REG(0x08f0) 454*4882a593Smuzhiyun #define HDMI_RX_HDCP2_ESM_P0_GPIO_OUT HDMIRX_REG(0x08f4) 455*4882a593Smuzhiyun #define HDMI_RX_HDCP22_STATUS HDMIRX_REG(0x08fc) 456*4882a593Smuzhiyun #define HDMI_RX_HDMI2_IEN_CLR HDMIRX_REG(0x0f60) 457*4882a593Smuzhiyun #define HDMI_RX_HDMI2_IEN_SET HDMIRX_REG(0x0f64) 458*4882a593Smuzhiyun #define HDMI_RX_HDMI2_ISTS HDMIRX_REG(0x0f68) 459*4882a593Smuzhiyun #define HDMI_RX_HDMI2_IEN HDMIRX_REG(0x0f6c) 460*4882a593Smuzhiyun #define HDMI_RX_HDMI2_ICLR HDMIRX_REG(0x0f70) 461*4882a593Smuzhiyun #define HDMI_RX_HDMI2_ISET HDMIRX_REG(0x0f74) 462*4882a593Smuzhiyun #define HDMI_RX_PDEC_IEN_CLR HDMIRX_REG(0x0f78) 463*4882a593Smuzhiyun #define HDMI_RX_PDEC_IEN_SET HDMIRX_REG(0x0f7c) 464*4882a593Smuzhiyun #define ACR_N_CHG_IEN BIT(23) 465*4882a593Smuzhiyun #define ACR_CTS_CHG_IEN BIT(22) 466*4882a593Smuzhiyun #define GCP_AV_MUTE_CHG_ENSET BIT(21) 467*4882a593Smuzhiyun #define AIF_RCV_ENSET BIT(19) 468*4882a593Smuzhiyun #define AVI_RCV_ENSET BIT(18) 469*4882a593Smuzhiyun #define GCP_RCV_ENSET BIT(16) 470*4882a593Smuzhiyun #define AMP_RCV_ENSET BIT(14) 471*4882a593Smuzhiyun #define HDMI_RX_PDEC_ISTS HDMIRX_REG(0x0f80) 472*4882a593Smuzhiyun #define AVI_RCV_ISTS BIT(18) 473*4882a593Smuzhiyun #define HDMI_RX_PDEC_IEN HDMIRX_REG(0x0f84) 474*4882a593Smuzhiyun #define HDMI_RX_PDEC_ICLR HDMIRX_REG(0x0f88) 475*4882a593Smuzhiyun #define AVI_RCV_ICLR BIT(18) 476*4882a593Smuzhiyun #define HDMI_RX_PDEC_ISET HDMIRX_REG(0x0f8c) 477*4882a593Smuzhiyun #define HDMI_RX_AUD_CEC_IEN_CLR HDMIRX_REG(0x0f90) 478*4882a593Smuzhiyun #define HDMI_RX_AUD_CEC_IEN_SET HDMIRX_REG(0x0f94) 479*4882a593Smuzhiyun #define HDMI_RX_AUD_CEC_ISTS HDMIRX_REG(0x0f98) 480*4882a593Smuzhiyun #define HDMI_RX_AUD_CEC_IEN HDMIRX_REG(0x0f9c) 481*4882a593Smuzhiyun #define HDMI_RX_AUD_CEC_ICLR HDMIRX_REG(0x0fa0) 482*4882a593Smuzhiyun #define HDMI_RX_AUD_CEC_ISET HDMIRX_REG(0x0fa4) 483*4882a593Smuzhiyun #define HDMI_RX_AUD_FIFO_IEN_CLR HDMIRX_REG(0x0fa8) 484*4882a593Smuzhiyun #define HDMI_RX_AUD_FIFO_IEN_SET HDMIRX_REG(0x0fac) 485*4882a593Smuzhiyun #define HDMI_RX_AUD_FIFO_ISTS HDMIRX_REG(0x0fb0) 486*4882a593Smuzhiyun #define HDMI_RX_AUD_FIFO_IEN HDMIRX_REG(0x0fb4) 487*4882a593Smuzhiyun #define HDMI_RX_AUD_FIFO_ICLR HDMIRX_REG(0x0fb8) 488*4882a593Smuzhiyun #define HDMI_RX_AUD_FIFO_ISET HDMIRX_REG(0x0fbc) 489*4882a593Smuzhiyun #define HDMI_RX_MD_IEN_CLR HDMIRX_REG(0x0fc0) 490*4882a593Smuzhiyun #define HDMI_RX_MD_IEN_SET HDMIRX_REG(0x0fc4) 491*4882a593Smuzhiyun #define VACT_LIN_ENSET BIT(9) 492*4882a593Smuzhiyun #define HACT_PIX_ENSET BIT(6) 493*4882a593Smuzhiyun #define HS_CLK_ENSET BIT(5) 494*4882a593Smuzhiyun #define DE_ACTIVITY_ENSET BIT(2) 495*4882a593Smuzhiyun #define VS_ACT_ENSET BIT(1) 496*4882a593Smuzhiyun #define HS_ACT_ENSET BIT(0) 497*4882a593Smuzhiyun #define HDMI_RX_MD_ISTS HDMIRX_REG(0x0fc8) 498*4882a593Smuzhiyun #define HDMI_RX_MD_IEN HDMIRX_REG(0x0fcc) 499*4882a593Smuzhiyun #define HDMI_RX_MD_ICLR HDMIRX_REG(0x0fd0) 500*4882a593Smuzhiyun #define HDMI_RX_MD_ISET HDMIRX_REG(0x0fd4) 501*4882a593Smuzhiyun #define HDMI_RX_HDMI_IEN_CLR HDMIRX_REG(0x0fd8) 502*4882a593Smuzhiyun #define HDMI_RX_HDMI_IEN_SET HDMIRX_REG(0x0fdc) 503*4882a593Smuzhiyun #define HDCP_DKSET_DONE_ENCLR_MASK BIT(31) 504*4882a593Smuzhiyun #define HDCP_DKSET_DONE_ENCLR(x) UPDATE(x, 31, 31) 505*4882a593Smuzhiyun #define HDMI_RX_HDMI_ISTS HDMIRX_REG(0x0fe0) 506*4882a593Smuzhiyun #define HDMI_RX_HDMI_IEN HDMIRX_REG(0x0fe4) 507*4882a593Smuzhiyun #define HDMI_RX_HDMI_ICLR HDMIRX_REG(0x0fe8) 508*4882a593Smuzhiyun #define HDMI_RX_HDMI_ISET HDMIRX_REG(0x0fec) 509*4882a593Smuzhiyun #define HDMI_RX_DMI_SW_RST HDMIRX_REG(0x0ff0) 510*4882a593Smuzhiyun #define HDMI_RX_DMI_DISABLE_IF HDMIRX_REG(0x0ff4) 511*4882a593Smuzhiyun #define MAIN_ENABLE BIT(0) 512*4882a593Smuzhiyun #define MODET_ENABLE BIT(1) 513*4882a593Smuzhiyun #define HDMI_ENABLE BIT(2) 514*4882a593Smuzhiyun #define BUS_ENABLE BIT(3) 515*4882a593Smuzhiyun #define AUD_ENABLE BIT(4) 516*4882a593Smuzhiyun #define CEC_ENABLE BIT(5) 517*4882a593Smuzhiyun #define PIXEL_ENABLE BIT(6) 518*4882a593Smuzhiyun #define VID_ENABLE_MASK BIT(7) 519*4882a593Smuzhiyun #define VID_ENABLE(x) UPDATE(x, 7, 7) 520*4882a593Smuzhiyun #define TMDS_ENABLE_MASK BIT(16) 521*4882a593Smuzhiyun #define TMDS_ENABLE(x) UPDATE(x, 16, 16) 522*4882a593Smuzhiyun #define HDMI_RX_DMI_MODULE_ID_EXT HDMIRX_REG(0x0ff8) 523*4882a593Smuzhiyun #define HDMI_RX_DMI_MODULE_ID HDMIRX_REG(0x0ffc) 524*4882a593Smuzhiyun #define HDMI_RX_CEC_CTRL HDMIRX_REG(0x1f00) 525*4882a593Smuzhiyun #define HDMI_RX_CEC_MASK HDMIRX_REG(0x1f08) 526*4882a593Smuzhiyun #define HDMI_RX_CEC_ADDR_L HDMIRX_REG(0x1f14) 527*4882a593Smuzhiyun #define HDMI_RX_CEC_ADDR_H HDMIRX_REG(0x1f18) 528*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_CNT HDMIRX_REG(0x1f1c) 529*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_CNT HDMIRX_REG(0x1f20) 530*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_DATA_0 HDMIRX_REG(0x1f40) 531*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_DATA_1 HDMIRX_REG(0x1f44) 532*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_DATA_2 HDMIRX_REG(0x1f48) 533*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_DATA_3 HDMIRX_REG(0x1f4c) 534*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_DATA_4 HDMIRX_REG(0x1f50) 535*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_DATA_5 HDMIRX_REG(0x1f54) 536*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_DATA_6 HDMIRX_REG(0x1f58) 537*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_DATA_7 HDMIRX_REG(0x1f5c) 538*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_DATA_8 HDMIRX_REG(0x1f60) 539*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_DATA_9 HDMIRX_REG(0x1f64) 540*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_DATA_10 HDMIRX_REG(0x1f68) 541*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_DATA_11 HDMIRX_REG(0x1f6c) 542*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_DATA_12 HDMIRX_REG(0x1f70) 543*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_DATA_13 HDMIRX_REG(0x1f74) 544*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_DATA_14 HDMIRX_REG(0x1f78) 545*4882a593Smuzhiyun #define HDMI_RX_CEC_TX_DATA_15 HDMIRX_REG(0x1f7c) 546*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_DATA_0 HDMIRX_REG(0x1f80) 547*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_DATA_1 HDMIRX_REG(0x1f84) 548*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_DATA_2 HDMIRX_REG(0x1f88) 549*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_DATA_3 HDMIRX_REG(0x1f8c) 550*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_DATA_4 HDMIRX_REG(0x1f90) 551*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_DATA_5 HDMIRX_REG(0x1f94) 552*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_DATA_6 HDMIRX_REG(0x1f98) 553*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_DATA_7 HDMIRX_REG(0x1f9c) 554*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_DATA_8 HDMIRX_REG(0x1fa0) 555*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_DATA_9 HDMIRX_REG(0x1fa4) 556*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_DATA_10 HDMIRX_REG(0x1fa8) 557*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_DATA_11 HDMIRX_REG(0x1fac) 558*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_DATA_12 HDMIRX_REG(0x1fb0) 559*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_DATA_13 HDMIRX_REG(0x1fb4) 560*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_DATA_14 HDMIRX_REG(0x1fb8) 561*4882a593Smuzhiyun #define HDMI_RX_CEC_RX_DATA_15 HDMIRX_REG(0x1fbc) 562*4882a593Smuzhiyun #define HDMI_RX_CEC_LOCK HDMIRX_REG(0x1fc0) 563*4882a593Smuzhiyun #define HDMI_RX_CEC_WAKEUPCTRL HDMIRX_REG(0x1fc4) 564*4882a593Smuzhiyun #define HDMI_RX_CBUSSWRESETREQ HDMIRX_REG(0x3000) 565*4882a593Smuzhiyun #define HDMI_RX_CBUSENABLEIF HDMIRX_REG(0x3004) 566*4882a593Smuzhiyun #define HDMI_RX_CB_LOCKONCLOCK_STS HDMIRX_REG(0x3010) 567*4882a593Smuzhiyun #define HDMI_RX_CB_LOCKONCLOCKCLR HDMIRX_REG(0x3014) 568*4882a593Smuzhiyun #define HDMI_RX_CBUSIOCTRL HDMIRX_REG(0x3020) 569*4882a593Smuzhiyun #define HDMI_RX_DD_CTRL HDMIRX_REG(0x3040) 570*4882a593Smuzhiyun #define HDMI_RX_DD_OP_CTRL HDMIRX_REG(0x3044) 571*4882a593Smuzhiyun #define HDMI_RX_DD_STS HDMIRX_REG(0x3048) 572*4882a593Smuzhiyun #define HDMI_RX_DD_BYPASS_EN HDMIRX_REG(0x304c) 573*4882a593Smuzhiyun #define HDMI_RX_DD_BYPASS_CTRL HDMIRX_REG(0x3050) 574*4882a593Smuzhiyun #define HDMI_RX_DD_BYPASS_CBUS HDMIRX_REG(0x3054) 575*4882a593Smuzhiyun #define HDMI_RX_LL_TXPCKFIFO HDMIRX_REG(0x3080) 576*4882a593Smuzhiyun #define HDMI_RX_LL_RXPCKFIFO_RD_CLR HDMIRX_REG(0x3084) 577*4882a593Smuzhiyun #define HDMI_RX_LL_RXPCKFIFO_A HDMIRX_REG(0x3088) 578*4882a593Smuzhiyun #define HDMI_RX_LL_RXPCKFIFO_B HDMIRX_REG(0x308c) 579*4882a593Smuzhiyun #define HDMI_RX_LL_TXPCKCTRL_0 HDMIRX_REG(0x3090) 580*4882a593Smuzhiyun #define HDMI_RX_LL_TXPCKCTRL_1 HDMIRX_REG(0x3094) 581*4882a593Smuzhiyun #define HDMI_RX_LL_PCKFIFO_STS HDMIRX_REG(0x309c) 582*4882a593Smuzhiyun #define HDMI_RX_LL_RXPCKCTRL_0 HDMIRX_REG(0x30a0) 583*4882a593Smuzhiyun #define HDMI_RX_LL_RXPCKCTRL_1 HDMIRX_REG(0x30a4) 584*4882a593Smuzhiyun #define HDMI_RX_LL_INTTRSHLDCTRL HDMIRX_REG(0x30b0) 585*4882a593Smuzhiyun #define HDMI_RX_LL_INTCNTCTRL HDMIRX_REG(0x30b4) 586*4882a593Smuzhiyun #define HDMI_RX_LL_INTCNT_0 HDMIRX_REG(0x30b8) 587*4882a593Smuzhiyun #define HDMI_RX_LL_INTCNT_1 HDMIRX_REG(0x30bc) 588*4882a593Smuzhiyun #define HDMI_RX_CBHDCP_OPCTRL HDMIRX_REG(0x3100) 589*4882a593Smuzhiyun #define HDMI_RX_CBHDCP_WDATA_0 HDMIRX_REG(0x3104) 590*4882a593Smuzhiyun #define HDMI_RX_CBHDCP_WDATA_1 HDMIRX_REG(0x3108) 591*4882a593Smuzhiyun #define HDMI_RX_CBHDCP_RDATA_0 HDMIRX_REG(0x310c) 592*4882a593Smuzhiyun #define HDMI_RX_CBHDCP_RDATA_1 HDMIRX_REG(0x3110) 593*4882a593Smuzhiyun #define HDMI_RX_CBHDCP_STATUS HDMIRX_REG(0x3114) 594*4882a593Smuzhiyun #define HDMI_RX_CBHDCP_DDC_REPORT HDMIRX_REG(0x3118) 595*4882a593Smuzhiyun #define HDMI_RX_ISTAT_CB_DD HDMIRX_REG(0x3200) 596*4882a593Smuzhiyun #define HDMI_RX_IMASK_CB_DD HDMIRX_REG(0x3204) 597*4882a593Smuzhiyun #define HDMI_RX_IFORCE_CB_DD HDMIRX_REG(0x3208) 598*4882a593Smuzhiyun #define HDMI_RX_ICLEAR_CB_DD HDMIRX_REG(0x320c) 599*4882a593Smuzhiyun #define HDMI_RX_IMUTE_CB_DD HDMIRX_REG(0x3210) 600*4882a593Smuzhiyun #define HDMI_RX_ISTAT_CB_LL HDMIRX_REG(0x3220) 601*4882a593Smuzhiyun #define HDMI_RX_IMASK_CB_LL HDMIRX_REG(0x3224) 602*4882a593Smuzhiyun #define HDMI_RX_IFORCE_CB_LL HDMIRX_REG(0x3228) 603*4882a593Smuzhiyun #define HDMI_RX_ICLEAR_CB_LL HDMIRX_REG(0x322c) 604*4882a593Smuzhiyun #define HDMI_RX_IMUTE_CB_LL HDMIRX_REG(0x3230) 605*4882a593Smuzhiyun #define HDMI_RX_ISTAT_CB_HDCP HDMIRX_REG(0x3240) 606*4882a593Smuzhiyun #define HDMI_RX_IMASK_CB_HDCP HDMIRX_REG(0x3244) 607*4882a593Smuzhiyun #define HDMI_RX_IFORCE_CB_HDCP HDMIRX_REG(0x3248) 608*4882a593Smuzhiyun #define HDMI_RX_ICLEAR_CB_HDCP HDMIRX_REG(0x324c) 609*4882a593Smuzhiyun #define HDMI_RX_IMUTE_CB_HDCP HDMIRX_REG(0x3250) 610*4882a593Smuzhiyun #define HDMI_RX_ISTAT_CB_MCTRL HDMIRX_REG(0x3260) 611*4882a593Smuzhiyun #define HDMI_RX_IMASK_CB_MCTRL HDMIRX_REG(0x3264) 612*4882a593Smuzhiyun #define HDMI_RX_IFORCE_CB_MCTRL HDMIRX_REG(0x3268) 613*4882a593Smuzhiyun #define HDMI_RX_ICLEAR_CB_MCTRL HDMIRX_REG(0x326c) 614*4882a593Smuzhiyun #define HDMI_RX_IMUTE_CB_MCTRL HDMIRX_REG(0x3270) 615*4882a593Smuzhiyun #define HDMI_RX_IMASTER_MUTE_CB HDMIRX_REG(0x32e0) 616*4882a593Smuzhiyun #define HDMI_RX_IVECTOR_INDEX_CB HDMIRX_REG(0x32e4) 617*4882a593Smuzhiyun #define HDMI_RX_MAX_REGISTER HDMI_RX_IVECTOR_INDEX_CB 618*4882a593Smuzhiyun 619*4882a593Smuzhiyun #define EDID_NUM_BLOCKS_MAX 2 620*4882a593Smuzhiyun #define EDID_BLOCK_SIZE 128 621*4882a593Smuzhiyun 622*4882a593Smuzhiyun #define HDMIRX_PLUGIN BIT(0) 623*4882a593Smuzhiyun #define HDMIRX_PLUGOUT BIT(1) 624*4882a593Smuzhiyun #define HDMIRX_CHANGED BIT(2) 625*4882a593Smuzhiyun #define HDMIRX_NOSIGNAL BIT(3) 626*4882a593Smuzhiyun #define HDMIRX_NOLOCK BIT(4) 627*4882a593Smuzhiyun 628*4882a593Smuzhiyun void rk628_hdmirx_enable_interrupts(struct rk628 *rk628, bool en); 629*4882a593Smuzhiyun int rk628_hdmirx_enable(struct rk628 *rk628); 630*4882a593Smuzhiyun void rk628_hdmirx_disable(struct rk628 *rk628); 631*4882a593Smuzhiyun int rk628_hdmirx_detect(struct rk628 *rk628); 632*4882a593Smuzhiyun 633*4882a593Smuzhiyun #endif 634