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)
118*e71a8ebbSGuillaume Ranquet #define VBID_AUDIO_MUTE_FLAG_SW_DP_ENC0_P0		BIT(11)
119*e71a8ebbSGuillaume 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)
144*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_3088			0x3088
145*e71a8ebbSGuillaume Ranquet #define AU_EN_DP_ENC0_P0				BIT(6)
146*e71a8ebbSGuillaume Ranquet #define AUDIO_8CH_EN_DP_ENC0_P0_MASK			BIT(7)
147*e71a8ebbSGuillaume Ranquet #define AUDIO_8CH_SEL_DP_ENC0_P0_MASK			BIT(8)
148*e71a8ebbSGuillaume Ranquet #define AUDIO_2CH_EN_DP_ENC0_P0_MASK			BIT(14)
149*e71a8ebbSGuillaume Ranquet #define AUDIO_2CH_SEL_DP_ENC0_P0_MASK			BIT(15)
150*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_308C			0x308c
151*e71a8ebbSGuillaume Ranquet #define CH_STATUS_0_DP_ENC0_P0_MASK			GENMASK(15, 0)
152*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_3090			0x3090
153*e71a8ebbSGuillaume Ranquet #define CH_STATUS_1_DP_ENC0_P0_MASK			GENMASK(15, 0)
154*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_3094			0x3094
155*e71a8ebbSGuillaume Ranquet #define CH_STATUS_2_DP_ENC0_P0_MASK			GENMASK(7, 0)
156*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_30A0			0x30a0
157*e71a8ebbSGuillaume Ranquet #define DP_ENC0_30A0_MASK				(BIT(7) | BIT(8) | BIT(12))
158*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_30A4			0x30a4
159*e71a8ebbSGuillaume Ranquet #define AU_TS_CFG_DP_ENC0_P0_MASK			GENMASK(7, 0)
160*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_30A8			0x30a8
161*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_30BC			0x30bc
162*e71a8ebbSGuillaume Ranquet #define ISRC_CONT_DP_ENC0_P0				BIT(0)
163*e71a8ebbSGuillaume Ranquet #define AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_MASK	GENMASK(10, 8)
164*e71a8ebbSGuillaume Ranquet #define AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_MUL_2	(1 << 8)
165*e71a8ebbSGuillaume Ranquet #define AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_MUL_4	(2 << 8)
166*e71a8ebbSGuillaume Ranquet #define AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_MUL_8	(3 << 8)
167*e71a8ebbSGuillaume Ranquet #define AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_DIV_2	(5 << 8)
168*e71a8ebbSGuillaume Ranquet #define AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_DIV_4	(6 << 8)
169*e71a8ebbSGuillaume Ranquet #define AUDIO_M_CODE_MULT_DIV_SEL_DP_ENC0_P0_DIV_8	(7 << 8)
170*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_30D8			0x30d8
171*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_312C			0x312c
172*e71a8ebbSGuillaume Ranquet #define ASP_HB2_DP_ENC0_P0_MASK				GENMASK(7, 0)
173*e71a8ebbSGuillaume Ranquet #define ASP_HB3_DP_ENC0_P0_MASK				GENMASK(15, 8)
174*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_3130			0x3130
175*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC0_P0_3138			0x3138
176f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3154			0x3154
177f70ac097SMarkus Schneider-Pargmann #define PGEN_HTOTAL_DP_ENC0_P0_MASK			GENMASK(13, 0)
178f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3158			0x3158
179f70ac097SMarkus Schneider-Pargmann #define PGEN_HSYNC_RISING_DP_ENC0_P0_MASK		GENMASK(13, 0)
180f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_315C			0x315c
181f70ac097SMarkus Schneider-Pargmann #define PGEN_HSYNC_PULSE_WIDTH_DP_ENC0_P0_MASK		GENMASK(13, 0)
182f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3160			0x3160
183f70ac097SMarkus Schneider-Pargmann #define PGEN_HFDE_START_DP_ENC0_P0_MASK			GENMASK(13, 0)
184f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3164			0x3164
185f70ac097SMarkus Schneider-Pargmann #define PGEN_HFDE_ACTIVE_WIDTH_DP_ENC0_P0_MASK		GENMASK(13, 0)
186f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3168			0x3168
187f70ac097SMarkus Schneider-Pargmann #define PGEN_VTOTAL_DP_ENC0_P0_MASK			GENMASK(12, 0)
188f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_316C			0x316c
189f70ac097SMarkus Schneider-Pargmann #define PGEN_VSYNC_RISING_DP_ENC0_P0_MASK		GENMASK(12, 0)
190f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3170			0x3170
191f70ac097SMarkus Schneider-Pargmann #define PGEN_VSYNC_PULSE_WIDTH_DP_ENC0_P0_MASK		GENMASK(12, 0)
192f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3174			0x3174
193f70ac097SMarkus Schneider-Pargmann #define PGEN_VFDE_START_DP_ENC0_P0_MASK			GENMASK(12, 0)
194f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_3178			0x3178
195f70ac097SMarkus Schneider-Pargmann #define PGEN_VFDE_ACTIVE_WIDTH_DP_ENC0_P0_MASK		GENMASK(12, 0)
196f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_31B0			0x31b0
197f70ac097SMarkus Schneider-Pargmann #define PGEN_PATTERN_SEL_VAL				4
198f70ac097SMarkus Schneider-Pargmann #define PGEN_PATTERN_SEL_MASK				GENMASK(6, 4)
199f70ac097SMarkus Schneider-Pargmann #define MTK_DP_ENC0_P0_31EC			0x31ec
200f70ac097SMarkus Schneider-Pargmann #define AUDIO_CH_SRC_SEL_DP_ENC0_P0			BIT(4)
201f70ac097SMarkus Schneider-Pargmann #define ISRC1_HB3_DP_ENC0_P0_MASK			GENMASK(15, 8)
202f70ac097SMarkus Schneider-Pargmann 
203f70ac097SMarkus Schneider-Pargmann /* offset: ENC1_OFFSET (0x3200) */
204*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC1_P0_3200			0x3200
205*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC1_P0_3280			0x3280
206*e71a8ebbSGuillaume Ranquet #define SDP_PACKET_TYPE_DP_ENC1_P0_MASK			GENMASK(4, 0)
207*e71a8ebbSGuillaume Ranquet #define SDP_PACKET_W_DP_ENC1_P0				BIT(5)
208*e71a8ebbSGuillaume Ranquet #define SDP_PACKET_W_DP_ENC1_P0_MASK			BIT(5)
209*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC1_P0_328C			0x328c
210*e71a8ebbSGuillaume Ranquet #define VSC_DATA_RDY_VESA_DP_ENC1_P0_MASK		BIT(7)
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)
214*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC1_P0_3304			0x3304
215*e71a8ebbSGuillaume Ranquet #define AU_PRTY_REGEN_DP_ENC1_P0_MASK			BIT(8)
216*e71a8ebbSGuillaume Ranquet #define AU_CH_STS_REGEN_DP_ENC1_P0_MASK			BIT(9)
217*e71a8ebbSGuillaume Ranquet #define AUDIO_SAMPLE_PRSENT_REGEN_DP_ENC1_P0_MASK	BIT(12)
218*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC1_P0_3324			0x3324
219*e71a8ebbSGuillaume Ranquet #define AUDIO_SOURCE_MUX_DP_ENC1_P0_MASK		GENMASK(9, 8)
220*e71a8ebbSGuillaume 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)
237*e71a8ebbSGuillaume Ranquet #define MTK_DP_ENC1_P0_33F4			0x33f4
238*e71a8ebbSGuillaume Ranquet #define DP_ENC_DUMMY_RW_1_AUDIO_RST_EN			BIT(0)
239*e71a8ebbSGuillaume Ranquet #define DP_ENC_DUMMY_RW_1				BIT(9)
240f70ac097SMarkus Schneider-Pargmann 
241f70ac097SMarkus Schneider-Pargmann /* offset: TRANS_OFFSET (0x3400) */
242f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_3400				0x3400
243f70ac097SMarkus Schneider-Pargmann #define PATTERN1_EN_DP_TRANS_P0_MASK				BIT(12)
244f70ac097SMarkus Schneider-Pargmann #define PATTERN2_EN_DP_TRANS_P0_MASK				BIT(13)
245f70ac097SMarkus Schneider-Pargmann #define PATTERN3_EN_DP_TRANS_P0_MASK				BIT(14)
246f70ac097SMarkus Schneider-Pargmann #define PATTERN4_EN_DP_TRANS_P0_MASK				BIT(15)
247f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_3404				0x3404
248f70ac097SMarkus Schneider-Pargmann #define DP_SCR_EN_DP_TRANS_P0_MASK				BIT(0)
249f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_340C				0x340c
250f70ac097SMarkus Schneider-Pargmann #define DP_TX_TRANSMITTER_4P_RESET_SW_DP_TRANS_P0		BIT(13)
251f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_3410				0x3410
252f70ac097SMarkus Schneider-Pargmann #define HPD_DEB_THD_DP_TRANS_P0_MASK				GENMASK(3, 0)
253f70ac097SMarkus Schneider-Pargmann #define HPD_INT_THD_DP_TRANS_P0_MASK				GENMASK(7, 4)
254f70ac097SMarkus Schneider-Pargmann #define HPD_INT_THD_DP_TRANS_P0_LOWER_500US			(2 << 4)
255f70ac097SMarkus Schneider-Pargmann #define HPD_INT_THD_DP_TRANS_P0_UPPER_1100US			(2 << 6)
256f70ac097SMarkus Schneider-Pargmann #define HPD_DISC_THD_DP_TRANS_P0_MASK				GENMASK(11, 8)
257f70ac097SMarkus Schneider-Pargmann #define HPD_CONN_THD_DP_TRANS_P0_MASK				GENMASK(15, 12)
258f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_3414				0x3414
259f70ac097SMarkus Schneider-Pargmann #define HPD_DB_DP_TRANS_P0_MASK					BIT(2)
260f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_3418				0x3418
261f70ac097SMarkus Schneider-Pargmann #define IRQ_CLR_DP_TRANS_P0_MASK				GENMASK(3, 0)
262f70ac097SMarkus Schneider-Pargmann #define IRQ_MASK_DP_TRANS_P0_MASK				GENMASK(7, 4)
263f70ac097SMarkus Schneider-Pargmann #define IRQ_MASK_DP_TRANS_P0_DISC_IRQ				(BIT(1) << 4)
264f70ac097SMarkus Schneider-Pargmann #define IRQ_MASK_DP_TRANS_P0_CONN_IRQ				(BIT(2) << 4)
265f70ac097SMarkus Schneider-Pargmann #define IRQ_MASK_DP_TRANS_P0_INT_IRQ				(BIT(3) << 4)
266f70ac097SMarkus Schneider-Pargmann #define IRQ_STATUS_DP_TRANS_P0_MASK				GENMASK(15, 12)
267f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_342C				0x342c
268f70ac097SMarkus Schneider-Pargmann #define XTAL_FREQ_DP_TRANS_P0_DEFAULT				(BIT(0) | BIT(3) | BIT(5) | BIT(6))
269f70ac097SMarkus Schneider-Pargmann #define XTAL_FREQ_DP_TRANS_P0_MASK				GENMASK(7, 0)
270f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_3430				0x3430
271f70ac097SMarkus Schneider-Pargmann #define HPD_INT_THD_ECO_DP_TRANS_P0_MASK			GENMASK(1, 0)
272f70ac097SMarkus Schneider-Pargmann #define HPD_INT_THD_ECO_DP_TRANS_P0_HIGH_BOUND_EXT		BIT(1)
273f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_34A4				0x34a4
274f70ac097SMarkus Schneider-Pargmann #define LANE_NUM_DP_TRANS_P0_MASK				GENMASK(3, 2)
275f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_3540				0x3540
276f70ac097SMarkus Schneider-Pargmann #define FEC_EN_DP_TRANS_P0_MASK					BIT(0)
277f70ac097SMarkus Schneider-Pargmann #define FEC_CLOCK_EN_MODE_DP_TRANS_P0				BIT(3)
278f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_3580				0x3580
279f70ac097SMarkus Schneider-Pargmann #define POST_MISC_DATA_LANE0_OV_DP_TRANS_P0_MASK		BIT(8)
280f70ac097SMarkus Schneider-Pargmann #define POST_MISC_DATA_LANE1_OV_DP_TRANS_P0_MASK		BIT(9)
281f70ac097SMarkus Schneider-Pargmann #define POST_MISC_DATA_LANE2_OV_DP_TRANS_P0_MASK		BIT(10)
282f70ac097SMarkus Schneider-Pargmann #define POST_MISC_DATA_LANE3_OV_DP_TRANS_P0_MASK		BIT(11)
283f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_35C8				0x35c8
284f70ac097SMarkus Schneider-Pargmann #define SW_IRQ_CLR_DP_TRANS_P0_MASK				GENMASK(15, 0)
285f70ac097SMarkus Schneider-Pargmann #define SW_IRQ_STATUS_DP_TRANS_P0_MASK				GENMASK(15, 0)
286f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_35D0				0x35d0
287f70ac097SMarkus Schneider-Pargmann #define SW_IRQ_FINAL_STATUS_DP_TRANS_P0_MASK			GENMASK(15, 0)
288f70ac097SMarkus Schneider-Pargmann #define MTK_DP_TRANS_P0_35F0				0x35f0
289f70ac097SMarkus Schneider-Pargmann #define DP_TRANS_DUMMY_RW_0					BIT(3)
290f70ac097SMarkus Schneider-Pargmann #define DP_TRANS_DUMMY_RW_0_MASK				GENMASK(3, 2)
291f70ac097SMarkus Schneider-Pargmann 
292f70ac097SMarkus Schneider-Pargmann /* offset: AUX_OFFSET (0x3600) */
293f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_360C			0x360c
294f70ac097SMarkus Schneider-Pargmann #define AUX_TIMEOUT_THR_AUX_TX_P0_MASK			GENMASK(12, 0)
295f70ac097SMarkus Schneider-Pargmann #define AUX_TIMEOUT_THR_AUX_TX_P0_VAL			0x1595
296f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3614			0x3614
297f70ac097SMarkus Schneider-Pargmann #define AUX_RX_UI_CNT_THR_AUX_TX_P0_MASK		GENMASK(6, 0)
298f70ac097SMarkus Schneider-Pargmann #define AUX_RX_UI_CNT_THR_AUX_FOR_26M			13
299f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3618			0x3618
300f70ac097SMarkus Schneider-Pargmann #define AUX_RX_FIFO_FULL_AUX_TX_P0_MASK			BIT(9)
301f70ac097SMarkus Schneider-Pargmann #define AUX_RX_FIFO_WRITE_POINTER_AUX_TX_P0_MASK	GENMASK(3, 0)
302f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3620			0x3620
303f70ac097SMarkus Schneider-Pargmann #define AUX_RD_MODE_AUX_TX_P0_MASK			BIT(9)
304f70ac097SMarkus Schneider-Pargmann #define AUX_RX_FIFO_READ_PULSE_TX_P0			BIT(8)
305f70ac097SMarkus Schneider-Pargmann #define AUX_RX_FIFO_READ_DATA_AUX_TX_P0_MASK		GENMASK(7, 0)
306f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3624			0x3624
307f70ac097SMarkus Schneider-Pargmann #define AUX_RX_REPLY_COMMAND_AUX_TX_P0_MASK		GENMASK(3, 0)
308f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3628			0x3628
309f70ac097SMarkus Schneider-Pargmann #define AUX_RX_PHY_STATE_AUX_TX_P0_MASK			GENMASK(9, 0)
310f70ac097SMarkus Schneider-Pargmann #define AUX_RX_PHY_STATE_AUX_TX_P0_RX_IDLE		BIT(0)
311f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_362C			0x362c
312f70ac097SMarkus Schneider-Pargmann #define AUX_NO_LENGTH_AUX_TX_P0				BIT(0)
313f70ac097SMarkus Schneider-Pargmann #define AUX_TX_AUXTX_OV_EN_AUX_TX_P0_MASK		BIT(1)
314f70ac097SMarkus Schneider-Pargmann #define AUX_RESERVED_RW_0_AUX_TX_P0_MASK		GENMASK(15, 2)
315f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3630			0x3630
316f70ac097SMarkus Schneider-Pargmann #define AUX_TX_REQUEST_READY_AUX_TX_P0			BIT(3)
317f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3634			0x3634
318f70ac097SMarkus Schneider-Pargmann #define AUX_TX_OVER_SAMPLE_RATE_AUX_TX_P0_MASK		GENMASK(15, 8)
319f70ac097SMarkus Schneider-Pargmann #define AUX_TX_OVER_SAMPLE_RATE_FOR_26M			25
320f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3640			0x3640
321f70ac097SMarkus Schneider-Pargmann #define AUX_RX_AUX_RECV_COMPLETE_IRQ_AUX_TX_P0		BIT(6)
322f70ac097SMarkus Schneider-Pargmann #define AUX_RX_EDID_RECV_COMPLETE_IRQ_AUX_TX_P0		BIT(5)
323f70ac097SMarkus Schneider-Pargmann #define AUX_RX_MCCS_RECV_COMPLETE_IRQ_AUX_TX_P0		BIT(4)
324f70ac097SMarkus Schneider-Pargmann #define AUX_RX_CMD_RECV_IRQ_AUX_TX_P0			BIT(3)
325f70ac097SMarkus Schneider-Pargmann #define AUX_RX_ADDR_RECV_IRQ_AUX_TX_P0			BIT(2)
326f70ac097SMarkus Schneider-Pargmann #define AUX_RX_DATA_RECV_IRQ_AUX_TX_P0			BIT(1)
327f70ac097SMarkus Schneider-Pargmann #define AUX_400US_TIMEOUT_IRQ_AUX_TX_P0			BIT(0)
328f70ac097SMarkus Schneider-Pargmann #define DP_AUX_P0_3640_VAL				(AUX_400US_TIMEOUT_IRQ_AUX_TX_P0 | \
329f70ac097SMarkus Schneider-Pargmann 							 AUX_RX_DATA_RECV_IRQ_AUX_TX_P0 | \
330f70ac097SMarkus Schneider-Pargmann 							 AUX_RX_ADDR_RECV_IRQ_AUX_TX_P0 | \
331f70ac097SMarkus Schneider-Pargmann 							 AUX_RX_CMD_RECV_IRQ_AUX_TX_P0 | \
332f70ac097SMarkus Schneider-Pargmann 							 AUX_RX_MCCS_RECV_COMPLETE_IRQ_AUX_TX_P0 | \
333f70ac097SMarkus Schneider-Pargmann 							 AUX_RX_EDID_RECV_COMPLETE_IRQ_AUX_TX_P0 | \
334f70ac097SMarkus Schneider-Pargmann 							 AUX_RX_AUX_RECV_COMPLETE_IRQ_AUX_TX_P0)
335f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3644			0x3644
336f70ac097SMarkus Schneider-Pargmann #define MCU_REQUEST_COMMAND_AUX_TX_P0_MASK		GENMASK(3, 0)
337f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3648			0x3648
338f70ac097SMarkus Schneider-Pargmann #define MCU_REQUEST_ADDRESS_LSB_AUX_TX_P0_MASK		GENMASK(15, 0)
339f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_364C			0x364c
340f70ac097SMarkus Schneider-Pargmann #define MCU_REQUEST_ADDRESS_MSB_AUX_TX_P0_MASK		GENMASK(3, 0)
341f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3650			0x3650
342f70ac097SMarkus Schneider-Pargmann #define MCU_REQ_DATA_NUM_AUX_TX_P0_MASK			GENMASK(15, 12)
343f70ac097SMarkus Schneider-Pargmann #define PHY_FIFO_RST_AUX_TX_P0_MASK			BIT(9)
344f70ac097SMarkus Schneider-Pargmann #define MCU_ACK_TRAN_COMPLETE_AUX_TX_P0			BIT(8)
345f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3658			0x3658
346f70ac097SMarkus Schneider-Pargmann #define AUX_TX_OV_EN_AUX_TX_P0_MASK			BIT(0)
347f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3690			0x3690
348f70ac097SMarkus Schneider-Pargmann #define RX_REPLY_COMPLETE_MODE_AUX_TX_P0		BIT(8)
349f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3704			0x3704
350f70ac097SMarkus Schneider-Pargmann #define AUX_TX_FIFO_WDATA_NEW_MODE_T_AUX_TX_P0_MASK	BIT(1)
351f70ac097SMarkus Schneider-Pargmann #define AUX_TX_FIFO_NEW_MODE_EN_AUX_TX_P0		BIT(2)
352f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_3708			0x3708
353f70ac097SMarkus Schneider-Pargmann #define MTK_DP_AUX_P0_37C8			0x37c8
354f70ac097SMarkus Schneider-Pargmann #define MTK_ATOP_EN_AUX_TX_P0				BIT(0)
355f70ac097SMarkus Schneider-Pargmann 
356f70ac097SMarkus Schneider-Pargmann #endif /*_MTK_DP_REG_H_*/
357