1f70ac097SMarkus Schneider-Pargmann /* SPDX-License-Identifier: GPL-2.0 */ 2f70ac097SMarkus Schneider-Pargmann /* 3f70ac097SMarkus Schneider-Pargmann * Copyright (c) 2019-2022 MediaTek Inc. 4f70ac097SMarkus Schneider-Pargmann * Copyright (c) 2022 BayLibre 5f70ac097SMarkus Schneider-Pargmann */ 6f70ac097SMarkus Schneider-Pargmann #ifndef _MTK_DP_REG_H_ 7f70ac097SMarkus Schneider-Pargmann #define _MTK_DP_REG_H_ 8f70ac097SMarkus Schneider-Pargmann 9f70ac097SMarkus Schneider-Pargmann #define SEC_OFFSET 0x4000 10f70ac097SMarkus Schneider-Pargmann 11f70ac097SMarkus Schneider-Pargmann #define MTK_DP_HPD_DISCONNECT BIT(1) 12f70ac097SMarkus Schneider-Pargmann #define MTK_DP_HPD_CONNECT BIT(2) 13f70ac097SMarkus Schneider-Pargmann #define MTK_DP_HPD_INTERRUPT BIT(3) 14f70ac097SMarkus Schneider-Pargmann 15f70ac097SMarkus Schneider-Pargmann /* offset: 0x0 */ 16f70ac097SMarkus Schneider-Pargmann #define DP_PHY_GLB_BIAS_GEN_00 0x0 17f70ac097SMarkus Schneider-Pargmann #define RG_XTP_GLB_BIAS_INTR_CTRL GENMASK(20, 16) 18f70ac097SMarkus Schneider-Pargmann #define DP_PHY_GLB_DPAUX_TX 0x8 19f70ac097SMarkus Schneider-Pargmann #define RG_CKM_PT0_CKTX_IMPSEL GENMASK(23, 20) 20f70ac097SMarkus Schneider-Pargmann #define MTK_DP_0034 0x34 21f70ac097SMarkus Schneider-Pargmann #define DA_XTP_GLB_CKDET_EN_FORCE_VAL BIT(15) 22f70ac097SMarkus Schneider-Pargmann #define DA_XTP_GLB_CKDET_EN_FORCE_EN BIT(14) 23f70ac097SMarkus Schneider-Pargmann #define DA_CKM_INTCKTX_EN_FORCE_VAL BIT(13) 24f70ac097SMarkus Schneider-Pargmann #define DA_CKM_INTCKTX_EN_FORCE_EN BIT(12) 25f70ac097SMarkus Schneider-Pargmann #define DA_CKM_CKTX0_EN_FORCE_VAL BIT(11) 26f70ac097SMarkus Schneider-Pargmann #define DA_CKM_CKTX0_EN_FORCE_EN BIT(10) 27f70ac097SMarkus Schneider-Pargmann #define DA_CKM_XTAL_CK_FORCE_VAL BIT(9) 28f70ac097SMarkus Schneider-Pargmann #define DA_CKM_XTAL_CK_FORCE_EN BIT(8) 29f70ac097SMarkus Schneider-Pargmann #define DA_CKM_BIAS_LPF_EN_FORCE_VAL BIT(7) 30f70ac097SMarkus Schneider-Pargmann #define DA_CKM_BIAS_LPF_EN_FORCE_EN BIT(6) 31f70ac097SMarkus Schneider-Pargmann #define DA_CKM_BIAS_EN_FORCE_VAL BIT(5) 32f70ac097SMarkus Schneider-Pargmann #define DA_CKM_BIAS_EN_FORCE_EN BIT(4) 33f70ac097SMarkus Schneider-Pargmann #define DA_XTP_GLB_AVD10_ON_FORCE_VAL BIT(3) 34f70ac097SMarkus Schneider-Pargmann #define DA_XTP_GLB_AVD10_ON_FORCE BIT(2) 35f70ac097SMarkus Schneider-Pargmann #define DA_XTP_GLB_LDO_EN_FORCE_VAL BIT(1) 36f70ac097SMarkus Schneider-Pargmann #define DA_XTP_GLB_LDO_EN_FORCE_EN BIT(0) 37f70ac097SMarkus Schneider-Pargmann #define DP_PHY_LANE_TX_0 0x104 38f70ac097SMarkus Schneider-Pargmann #define RG_XTP_LN0_TX_IMPSEL_PMOS GENMASK(15, 12) 39f70ac097SMarkus Schneider-Pargmann #define RG_XTP_LN0_TX_IMPSEL_NMOS GENMASK(19, 16) 40f70ac097SMarkus Schneider-Pargmann #define DP_PHY_LANE_TX_1 0x204 41f70ac097SMarkus Schneider-Pargmann #define RG_XTP_LN1_TX_IMPSEL_PMOS GENMASK(15, 12) 42f70ac097SMarkus Schneider-Pargmann #define RG_XTP_LN1_TX_IMPSEL_NMOS GENMASK(19, 16) 43f70ac097SMarkus Schneider-Pargmann #define DP_PHY_LANE_TX_2 0x304 44f70ac097SMarkus Schneider-Pargmann #define RG_XTP_LN2_TX_IMPSEL_PMOS GENMASK(15, 12) 45f70ac097SMarkus Schneider-Pargmann #define RG_XTP_LN2_TX_IMPSEL_NMOS GENMASK(19, 16) 46f70ac097SMarkus Schneider-Pargmann #define DP_PHY_LANE_TX_3 0x404 47f70ac097SMarkus Schneider-Pargmann #define RG_XTP_LN3_TX_IMPSEL_PMOS GENMASK(15, 12) 48f70ac097SMarkus Schneider-Pargmann #define RG_XTP_LN3_TX_IMPSEL_NMOS GENMASK(19, 16) 49f70ac097SMarkus Schneider-Pargmann #define MTK_DP_1040 0x1040 50f70ac097SMarkus Schneider-Pargmann #define RG_DPAUX_RX_VALID_DEGLITCH_EN BIT(2) 51f70ac097SMarkus Schneider-Pargmann #define RG_XTP_GLB_CKDET_EN BIT(1) 52f70ac097SMarkus Schneider-Pargmann #define RG_DPAUX_RX_EN BIT(0) 53f70ac097SMarkus Schneider-Pargmann 54f70ac097SMarkus Schneider-Pargmann /* offset: TOP_OFFSET (0x2000) */ 55f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TOP_PWR_STATE 0x2000 56f70ac097SMarkus Schneider-Pargmann #define DP_PWR_STATE_MASK GENMASK(1, 0) 57f70ac097SMarkus Schneider-Pargmann #define DP_PWR_STATE_BANDGAP BIT(0) 58f70ac097SMarkus Schneider-Pargmann #define DP_PWR_STATE_BANDGAP_TPLL BIT(1) 59f70ac097SMarkus Schneider-Pargmann #define DP_PWR_STATE_BANDGAP_TPLL_LANE GENMASK(1, 0) 60f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TOP_SWING_EMP 0x2004 61f70ac097SMarkus Schneider-Pargmann #define DP_TX0_VOLT_SWING_MASK GENMASK(1, 0) 62f70ac097SMarkus Schneider-Pargmann #define DP_TX0_VOLT_SWING_SHIFT 0 63f70ac097SMarkus Schneider-Pargmann #define DP_TX0_PRE_EMPH_MASK GENMASK(3, 2) 64f70ac097SMarkus Schneider-Pargmann #define DP_TX0_PRE_EMPH_SHIFT 2 65f70ac097SMarkus Schneider-Pargmann #define DP_TX1_VOLT_SWING_MASK GENMASK(9, 8) 66f70ac097SMarkus Schneider-Pargmann #define DP_TX1_VOLT_SWING_SHIFT 8 67f70ac097SMarkus Schneider-Pargmann #define DP_TX1_PRE_EMPH_MASK GENMASK(11, 10) 68f70ac097SMarkus Schneider-Pargmann #define DP_TX2_VOLT_SWING_MASK GENMASK(17, 16) 69f70ac097SMarkus Schneider-Pargmann #define DP_TX2_PRE_EMPH_MASK GENMASK(19, 18) 70f70ac097SMarkus Schneider-Pargmann #define DP_TX3_VOLT_SWING_MASK GENMASK(25, 24) 71f70ac097SMarkus Schneider-Pargmann #define DP_TX3_PRE_EMPH_MASK GENMASK(27, 26) 72f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TOP_RESET_AND_PROBE 0x2020 73f70ac097SMarkus Schneider-Pargmann #define SW_RST_B_PHYD BIT(4) 74f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TOP_IRQ_MASK 0x202c 75f70ac097SMarkus Schneider-Pargmann #define IRQ_MASK_AUX_TOP_IRQ BIT(2) 76f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TOP_MEM_PD 0x2038 77f70ac097SMarkus Schneider-Pargmann #define MEM_ISO_EN BIT(0) 78f70ac097SMarkus Schneider-Pargmann #define FUSE_SEL BIT(2) 79f70ac097SMarkus Schneider-Pargmann 80f70ac097SMarkus Schneider-Pargmann /* offset: ENC0_OFFSET (0x3000) */ 81f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3000 0x3000 82f70ac097SMarkus Schneider-Pargmann #define LANE_NUM_DP_ENC0_P0_MASK GENMASK(1, 0) 83f70ac097SMarkus Schneider-Pargmann #define VIDEO_MUTE_SW_DP_ENC0_P0 BIT(2) 84f70ac097SMarkus Schneider-Pargmann #define VIDEO_MUTE_SEL_DP_ENC0_P0 BIT(3) 85f70ac097SMarkus Schneider-Pargmann #define ENHANCED_FRAME_EN_DP_ENC0_P0 BIT(4) 86f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3004 0x3004 87f70ac097SMarkus Schneider-Pargmann #define VIDEO_M_CODE_SEL_DP_ENC0_P0_MASK BIT(8) 88f70ac097SMarkus Schneider-Pargmann #define DP_TX_ENCODER_4P_RESET_SW_DP_ENC0_P0 BIT(9) 89f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3010 0x3010 90f70ac097SMarkus Schneider-Pargmann #define HTOTAL_SW_DP_ENC0_P0_MASK GENMASK(15, 0) 91f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3014 0x3014 92f70ac097SMarkus Schneider-Pargmann #define VTOTAL_SW_DP_ENC0_P0_MASK GENMASK(15, 0) 93f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3018 0x3018 94f70ac097SMarkus Schneider-Pargmann #define HSTART_SW_DP_ENC0_P0_MASK GENMASK(15, 0) 95f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_301C 0x301c 96f70ac097SMarkus Schneider-Pargmann #define VSTART_SW_DP_ENC0_P0_MASK GENMASK(15, 0) 97f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3020 0x3020 98f70ac097SMarkus Schneider-Pargmann #define HWIDTH_SW_DP_ENC0_P0_MASK GENMASK(15, 0) 99f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3024 0x3024 100f70ac097SMarkus Schneider-Pargmann #define VHEIGHT_SW_DP_ENC0_P0_MASK GENMASK(15, 0) 101f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3028 0x3028 102f70ac097SMarkus Schneider-Pargmann #define HSW_SW_DP_ENC0_P0_MASK GENMASK(14, 0) 103f70ac097SMarkus Schneider-Pargmann #define HSP_SW_DP_ENC0_P0_MASK BIT(15) 104f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_302C 0x302c 105f70ac097SMarkus Schneider-Pargmann #define VSW_SW_DP_ENC0_P0_MASK GENMASK(14, 0) 106f70ac097SMarkus Schneider-Pargmann #define VSP_SW_DP_ENC0_P0_MASK BIT(15) 107f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3030 0x3030 108f70ac097SMarkus Schneider-Pargmann #define HTOTAL_SEL_DP_ENC0_P0 BIT(0) 109f70ac097SMarkus Schneider-Pargmann #define VTOTAL_SEL_DP_ENC0_P0 BIT(1) 110f70ac097SMarkus Schneider-Pargmann #define HSTART_SEL_DP_ENC0_P0 BIT(2) 111f70ac097SMarkus Schneider-Pargmann #define VSTART_SEL_DP_ENC0_P0 BIT(3) 112f70ac097SMarkus Schneider-Pargmann #define HWIDTH_SEL_DP_ENC0_P0 BIT(4) 113f70ac097SMarkus Schneider-Pargmann #define VHEIGHT_SEL_DP_ENC0_P0 BIT(5) 114f70ac097SMarkus Schneider-Pargmann #define HSP_SEL_DP_ENC0_P0 BIT(6) 115f70ac097SMarkus Schneider-Pargmann #define HSW_SEL_DP_ENC0_P0 BIT(7) 116f70ac097SMarkus Schneider-Pargmann #define VSP_SEL_DP_ENC0_P0 BIT(8) 117f70ac097SMarkus Schneider-Pargmann #define VSW_SEL_DP_ENC0_P0 BIT(9) 118e71a8ebbSGuillaume Ranquet #define VBID_AUDIO_MUTE_FLAG_SW_DP_ENC0_P0 BIT(11) 119e71a8ebbSGuillaume Ranquet #define VBID_AUDIO_MUTE_FLAG_SEL_DP_ENC0_P0 BIT(12) 120f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3034 0x3034 121f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3038 0x3038 122f70ac097SMarkus Schneider-Pargmann #define VIDEO_SOURCE_SEL_DP_ENC0_P0_MASK BIT(11) 123f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_303C 0x303c 124f70ac097SMarkus Schneider-Pargmann #define SRAM_START_READ_THRD_DP_ENC0_P0_MASK GENMASK(5, 0) 125f70ac097SMarkus Schneider-Pargmann #define VIDEO_COLOR_DEPTH_DP_ENC0_P0_MASK GENMASK(10, 8) 126f70ac097SMarkus Schneider-Pargmann #define VIDEO_COLOR_DEPTH_DP_ENC0_P0_16BIT (0 << 8) 127f70ac097SMarkus Schneider-Pargmann #define VIDEO_COLOR_DEPTH_DP_ENC0_P0_12BIT (1 << 8) 128f70ac097SMarkus Schneider-Pargmann #define VIDEO_COLOR_DEPTH_DP_ENC0_P0_10BIT (2 << 8) 129f70ac097SMarkus Schneider-Pargmann #define VIDEO_COLOR_DEPTH_DP_ENC0_P0_8BIT (3 << 8) 130f70ac097SMarkus Schneider-Pargmann #define VIDEO_COLOR_DEPTH_DP_ENC0_P0_6BIT (4 << 8) 131f70ac097SMarkus Schneider-Pargmann #define PIXEL_ENCODE_FORMAT_DP_ENC0_P0_MASK GENMASK(14, 12) 132f70ac097SMarkus Schneider-Pargmann #define PIXEL_ENCODE_FORMAT_DP_ENC0_P0_RGB (0 << 12) 133f70ac097SMarkus Schneider-Pargmann #define PIXEL_ENCODE_FORMAT_DP_ENC0_P0_YCBCR422 (1 << 12) 134f70ac097SMarkus Schneider-Pargmann #define PIXEL_ENCODE_FORMAT_DP_ENC0_P0_YCBCR420 (2 << 12) 135f70ac097SMarkus Schneider-Pargmann #define VIDEO_MN_GEN_EN_DP_ENC0_P0 BIT(15) 136f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3040 0x3040 137f70ac097SMarkus Schneider-Pargmann #define SDP_DOWN_CNT_DP_ENC0_P0_VAL 0x20 138f70ac097SMarkus Schneider-Pargmann #define SDP_DOWN_CNT_INIT_DP_ENC0_P0_MASK GENMASK(11, 0) 139f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_304C 0x304c 140f70ac097SMarkus Schneider-Pargmann #define VBID_VIDEO_MUTE_DP_ENC0_P0_MASK BIT(2) 141f70ac097SMarkus Schneider-Pargmann #define SDP_VSYNC_RISING_MASK_DP_ENC0_P0_MASK BIT(8) 142f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3064 0x3064 143f70ac097SMarkus Schneider-Pargmann #define HDE_NUM_LAST_DP_ENC0_P0_MASK GENMASK(15, 0) 144e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_3088 0x3088 145e71a8ebbSGuillaume Ranquet #define AU_EN_DP_ENC0_P0 BIT(6) 146e71a8ebbSGuillaume Ranquet #define AUDIO_8CH_EN_DP_ENC0_P0_MASK BIT(7) 147e71a8ebbSGuillaume Ranquet #define AUDIO_8CH_SEL_DP_ENC0_P0_MASK BIT(8) 148e71a8ebbSGuillaume Ranquet #define AUDIO_2CH_EN_DP_ENC0_P0_MASK BIT(14) 149e71a8ebbSGuillaume Ranquet #define AUDIO_2CH_SEL_DP_ENC0_P0_MASK BIT(15) 150e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_308C 0x308c 151e71a8ebbSGuillaume Ranquet #define CH_STATUS_0_DP_ENC0_P0_MASK GENMASK(15, 0) 152e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_3090 0x3090 153e71a8ebbSGuillaume Ranquet #define CH_STATUS_1_DP_ENC0_P0_MASK GENMASK(15, 0) 154e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_3094 0x3094 155e71a8ebbSGuillaume Ranquet #define CH_STATUS_2_DP_ENC0_P0_MASK GENMASK(7, 0) 156e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_30A4 0x30a4 157e71a8ebbSGuillaume Ranquet #define AU_TS_CFG_DP_ENC0_P0_MASK GENMASK(7, 0) 158e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_30A8 0x30a8 159e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_30BC 0x30bc 160e71a8ebbSGuillaume Ranquet #define ISRC_CONT_DP_ENC0_P0 BIT(0) 161e71a8ebbSGuillaume Ranquet #define AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_MASK GENMASK(10, 8) 162d2f7f1baSShuijing Li #define MT8195_AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_MUL_2 (1 << 8) 163d2f7f1baSShuijing Li #define MT8195_AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_MUL_4 (2 << 8) 164d2f7f1baSShuijing Li #define MT8195_AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_MUL_8 (3 << 8) 165d2f7f1baSShuijing Li #define MT8195_AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_DIV_2 (5 << 8) 166d2f7f1baSShuijing Li #define MT8195_AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_DIV_4 (6 << 8) 167d2f7f1baSShuijing Li #define MT8195_AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_DIV_8 (7 << 8) 168*350c3fe9SShuijing Li #define MT8188_AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_MUL_2 (1 << 8) 169*350c3fe9SShuijing Li #define MT8188_AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_MUL_4 (2 << 8) 170*350c3fe9SShuijing Li #define MT8188_AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_MUL_8 (3 << 8) 171*350c3fe9SShuijing Li #define MT8188_AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_DIV_2 (4 << 8) 172*350c3fe9SShuijing Li #define MT8188_AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_DIV_4 (5 << 8) 173*350c3fe9SShuijing Li #define MT8188_AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_DIV_8 (7 << 8) 174e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_30D8 0x30d8 175e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_312C 0x312c 176e71a8ebbSGuillaume Ranquet #define ASP_HB2_DP_ENC0_P0_MASK GENMASK(7, 0) 177e71a8ebbSGuillaume Ranquet #define ASP_HB3_DP_ENC0_P0_MASK GENMASK(15, 8) 178f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3154 0x3154 179f70ac097SMarkus Schneider-Pargmann #define PGEN_HTOTAL_DP_ENC0_P0_MASK GENMASK(13, 0) 180f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3158 0x3158 181f70ac097SMarkus Schneider-Pargmann #define PGEN_HSYNC_RISING_DP_ENC0_P0_MASK GENMASK(13, 0) 182f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_315C 0x315c 183f70ac097SMarkus Schneider-Pargmann #define PGEN_HSYNC_PULSE_WIDTH_DP_ENC0_P0_MASK GENMASK(13, 0) 184f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3160 0x3160 185f70ac097SMarkus Schneider-Pargmann #define PGEN_HFDE_START_DP_ENC0_P0_MASK GENMASK(13, 0) 186f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3164 0x3164 187f70ac097SMarkus Schneider-Pargmann #define PGEN_HFDE_ACTIVE_WIDTH_DP_ENC0_P0_MASK GENMASK(13, 0) 188f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3168 0x3168 189f70ac097SMarkus Schneider-Pargmann #define PGEN_VTOTAL_DP_ENC0_P0_MASK GENMASK(12, 0) 190f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_316C 0x316c 191f70ac097SMarkus Schneider-Pargmann #define PGEN_VSYNC_RISING_DP_ENC0_P0_MASK GENMASK(12, 0) 192f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3170 0x3170 193f70ac097SMarkus Schneider-Pargmann #define PGEN_VSYNC_PULSE_WIDTH_DP_ENC0_P0_MASK GENMASK(12, 0) 194f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3174 0x3174 195f70ac097SMarkus Schneider-Pargmann #define PGEN_VFDE_START_DP_ENC0_P0_MASK GENMASK(12, 0) 196f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3178 0x3178 197f70ac097SMarkus Schneider-Pargmann #define PGEN_VFDE_ACTIVE_WIDTH_DP_ENC0_P0_MASK GENMASK(12, 0) 198f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_31B0 0x31b0 199f70ac097SMarkus Schneider-Pargmann #define PGEN_PATTERN_SEL_VAL 4 200f70ac097SMarkus Schneider-Pargmann #define PGEN_PATTERN_SEL_MASK GENMASK(6, 4) 201f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_31EC 0x31ec 202f70ac097SMarkus Schneider-Pargmann #define AUDIO_CH_SRC_SEL_DP_ENC0_P0 BIT(4) 203f70ac097SMarkus Schneider-Pargmann #define ISRC1_HB3_DP_ENC0_P0_MASK GENMASK(15, 8) 204f70ac097SMarkus Schneider-Pargmann 205f70ac097SMarkus Schneider-Pargmann /* offset: ENC1_OFFSET (0x3200) */ 206e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC1_P0_3200 0x3200 207e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC1_P0_3280 0x3280 208e71a8ebbSGuillaume Ranquet #define SDP_PACKET_TYPE_DP_ENC1_P0_MASK GENMASK(4, 0) 209e71a8ebbSGuillaume Ranquet #define SDP_PACKET_W_DP_ENC1_P0 BIT(5) 210e71a8ebbSGuillaume Ranquet #define SDP_PACKET_W_DP_ENC1_P0_MASK BIT(5) 211f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC1_P0_3300 0x3300 212f70ac097SMarkus Schneider-Pargmann #define VIDEO_AFIFO_RDY_SEL_DP_ENC1_P0_VAL 2 213f70ac097SMarkus Schneider-Pargmann #define VIDEO_AFIFO_RDY_SEL_DP_ENC1_P0_MASK GENMASK(9, 8) 214e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC1_P0_3304 0x3304 215e71a8ebbSGuillaume Ranquet #define AU_PRTY_REGEN_DP_ENC1_P0_MASK BIT(8) 216e71a8ebbSGuillaume Ranquet #define AU_CH_STS_REGEN_DP_ENC1_P0_MASK BIT(9) 217e71a8ebbSGuillaume Ranquet #define AUDIO_SAMPLE_PRSENT_REGEN_DP_ENC1_P0_MASK BIT(12) 218e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC1_P0_3324 0x3324 219e71a8ebbSGuillaume Ranquet #define AUDIO_SOURCE_MUX_DP_ENC1_P0_MASK GENMASK(9, 8) 220e71a8ebbSGuillaume Ranquet #define AUDIO_SOURCE_MUX_DP_ENC1_P0_DPRX 0 221f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC1_P0_3364 0x3364 222f70ac097SMarkus Schneider-Pargmann #define SDP_DOWN_CNT_IN_HBLANK_DP_ENC1_P0_VAL 0x20 223f70ac097SMarkus Schneider-Pargmann #define SDP_DOWN_CNT_INIT_IN_HBLANK_DP_ENC1_P0_MASK GENMASK(11, 0) 224f70ac097SMarkus Schneider-Pargmann #define FIFO_READ_START_POINT_DP_ENC1_P0_VAL 4 225f70ac097SMarkus Schneider-Pargmann #define FIFO_READ_START_POINT_DP_ENC1_P0_MASK GENMASK(15, 12) 226f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC1_P0_3368 0x3368 227f70ac097SMarkus Schneider-Pargmann #define VIDEO_SRAM_FIFO_CNT_RESET_SEL_DP_ENC1_P0 BIT(0) 228f70ac097SMarkus Schneider-Pargmann #define VIDEO_STABLE_CNT_THRD_DP_ENC1_P0 BIT(4) 229f70ac097SMarkus Schneider-Pargmann #define SDP_DP13_EN_DP_ENC1_P0 BIT(8) 230f70ac097SMarkus Schneider-Pargmann #define BS2BS_MODE_DP_ENC1_P0 BIT(12) 231f70ac097SMarkus Schneider-Pargmann #define BS2BS_MODE_DP_ENC1_P0_MASK GENMASK(13, 12) 232f70ac097SMarkus Schneider-Pargmann #define BS2BS_MODE_DP_ENC1_P0_VAL 1 233f70ac097SMarkus Schneider-Pargmann #define DP_ENC1_P0_3368_VAL (VIDEO_SRAM_FIFO_CNT_RESET_SEL_DP_ENC1_P0 | \ 234f70ac097SMarkus Schneider-Pargmann VIDEO_STABLE_CNT_THRD_DP_ENC1_P0 | \ 235f70ac097SMarkus Schneider-Pargmann SDP_DP13_EN_DP_ENC1_P0 | \ 236f70ac097SMarkus Schneider-Pargmann BS2BS_MODE_DP_ENC1_P0) 2372d503773SShuijing Li 2382d503773SShuijing Li #define MTK_DP_ENC1_P0_3374 0x3374 2392d503773SShuijing Li #define SDP_ASP_INSERT_IN_HBLANK_DP_ENC1_P0_MASK BIT(12) 2402d503773SShuijing Li #define SDP_DOWN_ASP_CNT_INIT_DP_ENC1_P0_MASK GENMASK(11, 0) 2412d503773SShuijing Li 242e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC1_P0_33F4 0x33f4 243e71a8ebbSGuillaume Ranquet #define DP_ENC_DUMMY_RW_1_AUDIO_RST_EN BIT(0) 244e71a8ebbSGuillaume Ranquet #define DP_ENC_DUMMY_RW_1 BIT(9) 245f70ac097SMarkus Schneider-Pargmann 246f70ac097SMarkus Schneider-Pargmann /* offset: TRANS_OFFSET (0x3400) */ 247f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_3400 0x3400 248f70ac097SMarkus Schneider-Pargmann #define PATTERN1_EN_DP_TRANS_P0_MASK BIT(12) 249f70ac097SMarkus Schneider-Pargmann #define PATTERN2_EN_DP_TRANS_P0_MASK BIT(13) 250f70ac097SMarkus Schneider-Pargmann #define PATTERN3_EN_DP_TRANS_P0_MASK BIT(14) 251f70ac097SMarkus Schneider-Pargmann #define PATTERN4_EN_DP_TRANS_P0_MASK BIT(15) 252f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_3404 0x3404 253f70ac097SMarkus Schneider-Pargmann #define DP_SCR_EN_DP_TRANS_P0_MASK BIT(0) 254f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_340C 0x340c 255f70ac097SMarkus Schneider-Pargmann #define DP_TX_TRANSMITTER_4P_RESET_SW_DP_TRANS_P0 BIT(13) 256f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_3410 0x3410 257f70ac097SMarkus Schneider-Pargmann #define HPD_DEB_THD_DP_TRANS_P0_MASK GENMASK(3, 0) 258f70ac097SMarkus Schneider-Pargmann #define HPD_INT_THD_DP_TRANS_P0_MASK GENMASK(7, 4) 259f70ac097SMarkus Schneider-Pargmann #define HPD_INT_THD_DP_TRANS_P0_LOWER_500US (2 << 4) 260f70ac097SMarkus Schneider-Pargmann #define HPD_INT_THD_DP_TRANS_P0_UPPER_1100US (2 << 6) 261f70ac097SMarkus Schneider-Pargmann #define HPD_DISC_THD_DP_TRANS_P0_MASK GENMASK(11, 8) 262f70ac097SMarkus Schneider-Pargmann #define HPD_CONN_THD_DP_TRANS_P0_MASK GENMASK(15, 12) 263f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_3414 0x3414 264f70ac097SMarkus Schneider-Pargmann #define HPD_DB_DP_TRANS_P0_MASK BIT(2) 265f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_3418 0x3418 266f70ac097SMarkus Schneider-Pargmann #define IRQ_CLR_DP_TRANS_P0_MASK GENMASK(3, 0) 267f70ac097SMarkus Schneider-Pargmann #define IRQ_MASK_DP_TRANS_P0_MASK GENMASK(7, 4) 268f70ac097SMarkus Schneider-Pargmann #define IRQ_MASK_DP_TRANS_P0_DISC_IRQ (BIT(1) << 4) 269f70ac097SMarkus Schneider-Pargmann #define IRQ_MASK_DP_TRANS_P0_CONN_IRQ (BIT(2) << 4) 270f70ac097SMarkus Schneider-Pargmann #define IRQ_MASK_DP_TRANS_P0_INT_IRQ (BIT(3) << 4) 271f70ac097SMarkus Schneider-Pargmann #define IRQ_STATUS_DP_TRANS_P0_MASK GENMASK(15, 12) 272f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_342C 0x342c 273f70ac097SMarkus Schneider-Pargmann #define XTAL_FREQ_DP_TRANS_P0_DEFAULT (BIT(0) | BIT(3) | BIT(5) | BIT(6)) 274f70ac097SMarkus Schneider-Pargmann #define XTAL_FREQ_DP_TRANS_P0_MASK GENMASK(7, 0) 275f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_3430 0x3430 276f70ac097SMarkus Schneider-Pargmann #define HPD_INT_THD_ECO_DP_TRANS_P0_MASK GENMASK(1, 0) 277f70ac097SMarkus Schneider-Pargmann #define HPD_INT_THD_ECO_DP_TRANS_P0_HIGH_BOUND_EXT BIT(1) 278f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_34A4 0x34a4 279f70ac097SMarkus Schneider-Pargmann #define LANE_NUM_DP_TRANS_P0_MASK GENMASK(3, 2) 280f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_3540 0x3540 281f70ac097SMarkus Schneider-Pargmann #define FEC_EN_DP_TRANS_P0_MASK BIT(0) 282f70ac097SMarkus Schneider-Pargmann #define FEC_CLOCK_EN_MODE_DP_TRANS_P0 BIT(3) 283f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_3580 0x3580 284f70ac097SMarkus Schneider-Pargmann #define POST_MISC_DATA_LANE0_OV_DP_TRANS_P0_MASK BIT(8) 285f70ac097SMarkus Schneider-Pargmann #define POST_MISC_DATA_LANE1_OV_DP_TRANS_P0_MASK BIT(9) 286f70ac097SMarkus Schneider-Pargmann #define POST_MISC_DATA_LANE2_OV_DP_TRANS_P0_MASK BIT(10) 287f70ac097SMarkus Schneider-Pargmann #define POST_MISC_DATA_LANE3_OV_DP_TRANS_P0_MASK BIT(11) 288f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_35C8 0x35c8 289f70ac097SMarkus Schneider-Pargmann #define SW_IRQ_CLR_DP_TRANS_P0_MASK GENMASK(15, 0) 290f70ac097SMarkus Schneider-Pargmann #define SW_IRQ_STATUS_DP_TRANS_P0_MASK GENMASK(15, 0) 291f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_35D0 0x35d0 292f70ac097SMarkus Schneider-Pargmann #define SW_IRQ_FINAL_STATUS_DP_TRANS_P0_MASK GENMASK(15, 0) 293f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_35F0 0x35f0 294f70ac097SMarkus Schneider-Pargmann #define DP_TRANS_DUMMY_RW_0 BIT(3) 295f70ac097SMarkus Schneider-Pargmann #define DP_TRANS_DUMMY_RW_0_MASK GENMASK(3, 2) 296f70ac097SMarkus Schneider-Pargmann 297f70ac097SMarkus Schneider-Pargmann /* offset: AUX_OFFSET (0x3600) */ 298f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_360C 0x360c 299f70ac097SMarkus Schneider-Pargmann #define AUX_TIMEOUT_THR_AUX_TX_P0_MASK GENMASK(12, 0) 300f70ac097SMarkus Schneider-Pargmann #define AUX_TIMEOUT_THR_AUX_TX_P0_VAL 0x1595 301f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3614 0x3614 302f70ac097SMarkus Schneider-Pargmann #define AUX_RX_UI_CNT_THR_AUX_TX_P0_MASK GENMASK(6, 0) 303f70ac097SMarkus Schneider-Pargmann #define AUX_RX_UI_CNT_THR_AUX_FOR_26M 13 304f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3618 0x3618 305f70ac097SMarkus Schneider-Pargmann #define AUX_RX_FIFO_FULL_AUX_TX_P0_MASK BIT(9) 306f70ac097SMarkus Schneider-Pargmann #define AUX_RX_FIFO_WRITE_POINTER_AUX_TX_P0_MASK GENMASK(3, 0) 307f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3620 0x3620 308f70ac097SMarkus Schneider-Pargmann #define AUX_RD_MODE_AUX_TX_P0_MASK BIT(9) 309f70ac097SMarkus Schneider-Pargmann #define AUX_RX_FIFO_READ_PULSE_TX_P0 BIT(8) 310f70ac097SMarkus Schneider-Pargmann #define AUX_RX_FIFO_READ_DATA_AUX_TX_P0_MASK GENMASK(7, 0) 311f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3624 0x3624 312f70ac097SMarkus Schneider-Pargmann #define AUX_RX_REPLY_COMMAND_AUX_TX_P0_MASK GENMASK(3, 0) 313f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3628 0x3628 314f70ac097SMarkus Schneider-Pargmann #define AUX_RX_PHY_STATE_AUX_TX_P0_MASK GENMASK(9, 0) 315f70ac097SMarkus Schneider-Pargmann #define AUX_RX_PHY_STATE_AUX_TX_P0_RX_IDLE BIT(0) 316f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_362C 0x362c 317f70ac097SMarkus Schneider-Pargmann #define AUX_NO_LENGTH_AUX_TX_P0 BIT(0) 318f70ac097SMarkus Schneider-Pargmann #define AUX_TX_AUXTX_OV_EN_AUX_TX_P0_MASK BIT(1) 319f70ac097SMarkus Schneider-Pargmann #define AUX_RESERVED_RW_0_AUX_TX_P0_MASK GENMASK(15, 2) 320f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3630 0x3630 321f70ac097SMarkus Schneider-Pargmann #define AUX_TX_REQUEST_READY_AUX_TX_P0 BIT(3) 322f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3634 0x3634 323f70ac097SMarkus Schneider-Pargmann #define AUX_TX_OVER_SAMPLE_RATE_AUX_TX_P0_MASK GENMASK(15, 8) 324f70ac097SMarkus Schneider-Pargmann #define AUX_TX_OVER_SAMPLE_RATE_FOR_26M 25 325f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3640 0x3640 326f70ac097SMarkus Schneider-Pargmann #define AUX_RX_AUX_RECV_COMPLETE_IRQ_AUX_TX_P0 BIT(6) 327f70ac097SMarkus Schneider-Pargmann #define AUX_RX_EDID_RECV_COMPLETE_IRQ_AUX_TX_P0 BIT(5) 328f70ac097SMarkus Schneider-Pargmann #define AUX_RX_MCCS_RECV_COMPLETE_IRQ_AUX_TX_P0 BIT(4) 329f70ac097SMarkus Schneider-Pargmann #define AUX_RX_CMD_RECV_IRQ_AUX_TX_P0 BIT(3) 330f70ac097SMarkus Schneider-Pargmann #define AUX_RX_ADDR_RECV_IRQ_AUX_TX_P0 BIT(2) 331f70ac097SMarkus Schneider-Pargmann #define AUX_RX_DATA_RECV_IRQ_AUX_TX_P0 BIT(1) 332f70ac097SMarkus Schneider-Pargmann #define AUX_400US_TIMEOUT_IRQ_AUX_TX_P0 BIT(0) 333f70ac097SMarkus Schneider-Pargmann #define DP_AUX_P0_3640_VAL (AUX_400US_TIMEOUT_IRQ_AUX_TX_P0 | \ 334f70ac097SMarkus Schneider-Pargmann AUX_RX_DATA_RECV_IRQ_AUX_TX_P0 | \ 335f70ac097SMarkus Schneider-Pargmann AUX_RX_ADDR_RECV_IRQ_AUX_TX_P0 | \ 336f70ac097SMarkus Schneider-Pargmann AUX_RX_CMD_RECV_IRQ_AUX_TX_P0 | \ 337f70ac097SMarkus Schneider-Pargmann AUX_RX_MCCS_RECV_COMPLETE_IRQ_AUX_TX_P0 | \ 338f70ac097SMarkus Schneider-Pargmann AUX_RX_EDID_RECV_COMPLETE_IRQ_AUX_TX_P0 | \ 339f70ac097SMarkus Schneider-Pargmann AUX_RX_AUX_RECV_COMPLETE_IRQ_AUX_TX_P0) 340f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3644 0x3644 341f70ac097SMarkus Schneider-Pargmann #define MCU_REQUEST_COMMAND_AUX_TX_P0_MASK GENMASK(3, 0) 342f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3648 0x3648 343f70ac097SMarkus Schneider-Pargmann #define MCU_REQUEST_ADDRESS_LSB_AUX_TX_P0_MASK GENMASK(15, 0) 344f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_364C 0x364c 345f70ac097SMarkus Schneider-Pargmann #define MCU_REQUEST_ADDRESS_MSB_AUX_TX_P0_MASK GENMASK(3, 0) 346f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3650 0x3650 347f70ac097SMarkus Schneider-Pargmann #define MCU_REQ_DATA_NUM_AUX_TX_P0_MASK GENMASK(15, 12) 348f70ac097SMarkus Schneider-Pargmann #define PHY_FIFO_RST_AUX_TX_P0_MASK BIT(9) 349f70ac097SMarkus Schneider-Pargmann #define MCU_ACK_TRAN_COMPLETE_AUX_TX_P0 BIT(8) 350f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3658 0x3658 351f70ac097SMarkus Schneider-Pargmann #define AUX_TX_OV_EN_AUX_TX_P0_MASK BIT(0) 352f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3690 0x3690 353f70ac097SMarkus Schneider-Pargmann #define RX_REPLY_COMPLETE_MODE_AUX_TX_P0 BIT(8) 354f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3704 0x3704 355f70ac097SMarkus Schneider-Pargmann #define AUX_TX_FIFO_WDATA_NEW_MODE_T_AUX_TX_P0_MASK BIT(1) 356f70ac097SMarkus Schneider-Pargmann #define AUX_TX_FIFO_NEW_MODE_EN_AUX_TX_P0 BIT(2) 357f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3708 0x3708 358f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_37C8 0x37c8 359f70ac097SMarkus Schneider-Pargmann #define MTK_ATOP_EN_AUX_TX_P0 BIT(0) 360f70ac097SMarkus Schneider-Pargmann 361f70ac097SMarkus Schneider-Pargmann #endif /*_MTK_DP_REG_H_*/ 362