xref: /linux/drivers/soc/mediatek/mt8188-mmsys.h (revision a9fc2304972b1db28b88af8203dffef23e1e92ba)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef __SOC_MEDIATEK_MT8188_MMSYS_H
4 #define __SOC_MEDIATEK_MT8188_MMSYS_H
5 
6 #include <linux/soc/mediatek/mtk-mmsys.h>
7 #include <dt-bindings/reset/mt8188-resets.h>
8 
9 #define MT8188_VDO0_SW0_RST_B				0x190
10 #define MT8188_VDO0_OVL_MOUT_EN				0xf14
11 #define MT8188_MOUT_DISP_OVL0_TO_DISP_RDMA0		BIT(0)
12 #define MT8188_MOUT_DISP_OVL0_TO_DISP_WDMA0		BIT(1)
13 #define MT8188_MOUT_DISP_OVL0_TO_DISP_OVL1		BIT(2)
14 #define MT8188_MOUT_DISP_OVL1_TO_DISP_RDMA1		BIT(4)
15 #define MT8188_MOUT_DISP_OVL1_TO_DISP_WDMA1		BIT(5)
16 #define MT8188_MOUT_DISP_OVL1_TO_DISP_OVL0		BIT(6)
17 
18 #define MT8188_VDO0_SEL_IN				0xf34
19 #define MT8188_VDO0_SEL_OUT				0xf38
20 
21 #define MT8188_VDO0_DISP_RDMA_SEL			0xf40
22 #define MT8188_SOUT_DISP_RDMA0_TO_MASK			GENMASK(2, 0)
23 #define MT8188_SOUT_DISP_RDMA0_TO_DISP_COLOR0		(0 << 0)
24 #define MT8188_SOUT_DISP_RDMA0_TO_DISP_DSI0		(1 << 0)
25 #define MT8188_SOUT_DISP_RDMA0_TO_DISP_DP_INTF0		(5 << 0)
26 #define MT8188_SEL_IN_DISP_RDMA0_FROM_MASK		GENMASK(8, 8)
27 #define MT8188_SEL_IN_DISP_RDMA0_FROM_DISP_OVL0		(0 << 8)
28 #define MT8188_SEL_IN_DISP_RDMA0_FROM_DISP_RSZ0		(1 << 8)
29 
30 
31 #define MT8188_VDO0_DSI0_SEL_IN				0xf44
32 #define MT8188_SEL_IN_DSI0_FROM_MASK			BIT(0)
33 #define MT8188_SEL_IN_DSI0_FROM_DSC_WRAP0_OUT		(0 << 0)
34 #define MT8188_SEL_IN_DSI0_FROM_DISP_DITHER0		(1 << 0)
35 
36 #define MT8188_VDO0_DP_INTF0_SEL_IN			0xf4C
37 #define MT8188_SEL_IN_DP_INTF0_FROM_MASK		GENMASK(2, 0)
38 #define MT8188_SEL_IN_DP_INTF0_FROM_DSC_WRAP0C1_OUT	(0 << 0)
39 #define MT8188_SEL_IN_DP_INTF0_FROM_VPP_MERGE		(1 << 0)
40 #define MT8188_SEL_IN_DP_INTF0_FROM_DISP_DITHER0	(3 << 0)
41 
42 #define MT8188_VDO0_DISP_DITHER0_SEL_OUT		0xf58
43 #define MT8188_SOUT_DISP_DITHER0_TO_MASK		GENMASK(2, 0)
44 #define MT8188_SOUT_DISP_DITHER0_TO_DSC_WRAP0_IN	(0 << 0)
45 #define MT8188_SOUT_DISP_DITHER0_TO_DSI0		(1 << 0)
46 #define MT8188_SOUT_DISP_DITHER0_TO_VPP_MERGE0		(6 << 0)
47 #define MT8188_SOUT_DISP_DITHER0_TO_DP_INTF0		(7 << 0)
48 
49 #define MT8188_VDO0_VPP_MERGE_SEL			0xf60
50 #define MT8188_SEL_IN_VPP_MERGE_FROM_MASK		GENMASK(1, 0)
51 #define MT8188_SEL_IN_VPP_MERGE_FROM_DSC_WRAP0_OUT	(0 << 0)
52 #define MT8188_SEL_IN_VPP_MERGE_FROM_DITHER0_OUT	(3 << 0)
53 
54 #define MT8188_SOUT_VPP_MERGE_TO_MASK			GENMASK(6, 4)
55 #define MT8188_SOUT_VPP_MERGE_TO_DSI1			(0 << 4)
56 #define MT8188_SOUT_VPP_MERGE_TO_DP_INTF0		(1 << 4)
57 #define MT8188_SOUT_VPP_MERGE_TO_SINA_VIRTUAL0		(2 << 4)
58 #define MT8188_SOUT_VPP_MERGE_TO_DISP_WDMA1		(3 << 4)
59 #define MT8188_SOUT_VPP_MERGE_TO_DSC_WRAP0_IN		(4 << 4)
60 #define MT8188_SOUT_VPP_MERGE_TO_DISP_WDMA0		(5 << 4)
61 #define MT8188_SOUT_VPP_MERGE_TO_DSC_WRAP1_IN_MASK	GENMASK(11, 11)
62 #define MT8188_SOUT_VPP_MERGE_TO_DSC_WRAP1_IN		(0 << 11)
63 
64 #define MT8188_VDO0_DSC_WARP_SEL			0xf64
65 #define MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_MASK		GENMASK(0, 0)
66 #define MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_DISP_DITHER0	(0 << 0)
67 #define MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_VPP_MERGE	(1 << 0)
68 #define MT8188_SOUT_DSC_WRAP0_OUT_TO_MASK		GENMASK(19, 16)
69 #define MT8188_SOUT_DSC_WRAP0_OUT_TO_DSI0		BIT(16)
70 #define MT8188_SOUT_DSC_WRAP0_OUT_TO_SINB_VIRTUAL0	BIT(17)
71 #define MT8188_SOUT_DSC_WRAP0_OUT_TO_VPP_MERGE		BIT(18)
72 #define MT8188_SOUT_DSC_WRAP0_OUT_TO_DISP_WDMA0		BIT(19)
73 
74 #define MT8188_VDO1_SW0_RST_B					0x1d0
75 #define MT8188_VDO1_HDR_TOP_CFG					0xd00
76 #define MT8188_VDO1_MIXER_IN1_ALPHA				0xd30
77 #define MT8188_VDO1_MIXER_IN1_PAD				0xd40
78 #define MT8188_VDO1_MIXER_VSYNC_LEN				0xd5c
79 #define MT8188_VDO1_MERGE0_ASYNC_CFG_WD				0xe30
80 #define MT8188_VDO1_HDRBE_ASYNC_CFG_WD				0xe70
81 #define MT8188_VDO1_VPP_MERGE0_P0_SEL_IN			0xf04
82 #define MT8188_VPP_MERGE0_P0_SEL_IN_FROM_MDP_RDMA0		1
83 #define MT8188_VDO1_VPP_MERGE0_P1_SEL_IN			0xf08
84 #define MT8188_VPP_MERGE0_P1_SEL_IN_FROM_MDP_RDMA1		1
85 #define MT8188_VDO1_DISP_DPI1_SEL_IN				0xf10
86 #define MT8188_DISP_DPI1_SEL_IN_FROM_VPP_MERGE4_MOUT		0
87 #define MT8188_VDO1_DISP_DP_INTF0_SEL_IN			0xf14
88 #define MT8188_DISP_DP_INTF0_SEL_IN_FROM_VPP_MERGE4_MOUT	0
89 #define MT8188_VDO1_MERGE4_SOUT_SEL				0xf18
90 #define MT8188_MERGE4_SOUT_TO_DPI1_SEL				BIT(2)
91 #define MT8188_MERGE4_SOUT_TO_DP_INTF0_SEL			BIT(3)
92 #define MT8188_VDO1_MIXER_IN1_SEL_IN				0xf24
93 #define MT8188_MIXER_IN1_SEL_IN_FROM_MERGE0_ASYNC_SOUT		1
94 #define MT8188_VDO1_MIXER_IN2_SEL_IN				0xf28
95 #define MT8188_MIXER_IN2_SEL_IN_FROM_MERGE1_ASYNC_SOUT		1
96 #define MT8188_VDO1_MIXER_IN3_SEL_IN				0xf2c
97 #define MT8188_MIXER_IN3_SEL_IN_FROM_MERGE2_ASYNC_SOUT		1
98 #define MT8188_VDO1_MIXER_IN4_SEL_IN				0xf30
99 #define MT8188_MIXER_IN4_SEL_IN_FROM_MERGE3_ASYNC_SOUT		1
100 #define MT8188_VDO1_MIXER_OUT_SOUT_SEL				0xf34
101 #define MT8188_MIXER_SOUT_TO_MERGE4_ASYNC_SEL			1
102 #define MT8188_VDO1_VPP_MERGE1_P0_SEL_IN			0xf3c
103 #define MT8188_VPP_MERGE1_P0_SEL_IN_FROM_MDP_RDMA2		1
104 #define MT8188_VDO1_MERGE0_ASYNC_SOUT_SEL			0xf40
105 #define MT8188_SOUT_TO_MIXER_IN1_SEL				1
106 #define MT8188_VDO1_MERGE1_ASYNC_SOUT_SEL			0xf44
107 #define MT8188_SOUT_TO_MIXER_IN2_SEL				1
108 #define MT8188_VDO1_MERGE2_ASYNC_SOUT_SEL			0xf48
109 #define MT8188_SOUT_TO_MIXER_IN3_SEL				1
110 #define MT8188_VDO1_MERGE3_ASYNC_SOUT_SEL			0xf4c
111 #define MT8188_SOUT_TO_MIXER_IN4_SEL				1
112 #define MT8188_VDO1_MERGE4_ASYNC_SEL_IN				0xf50
113 #define MT8188_MERGE4_ASYNC_SEL_IN_FROM_MIXER_OUT_SOUT		1
114 #define MT8188_VDO1_MIXER_IN1_SOUT_SEL				0xf58
115 #define MT8188_MIXER_IN1_SOUT_TO_DISP_MIXER			0
116 #define MT8188_VDO1_MIXER_IN2_SOUT_SEL				0xf5c
117 #define MT8188_MIXER_IN2_SOUT_TO_DISP_MIXER			0
118 #define MT8188_VDO1_MIXER_IN3_SOUT_SEL				0xf60
119 #define MT8188_MIXER_IN3_SOUT_TO_DISP_MIXER			0
120 #define MT8188_VDO1_MIXER_IN4_SOUT_SEL				0xf64
121 #define MT8188_MIXER_IN4_SOUT_TO_DISP_MIXER			0
122 #define MT8188_VDO1_MIXER_SOUT_SEL_IN				0xf68
123 #define MT8188_MIXER_SOUT_SEL_IN_FROM_DISP_MIXER		0
124 
125 static const u8 mmsys_mt8188_vdo0_rst_tb[] = {
126 	[MT8188_VDO0_RST_DISP_OVL0]	= MMSYS_RST_NR(0, 0),
127 	[MT8188_VDO0_RST_FAKE_ENG0]	= MMSYS_RST_NR(0, 2),
128 	[MT8188_VDO0_RST_DISP_CCORR0]	= MMSYS_RST_NR(0, 4),
129 	[MT8188_VDO0_RST_DISP_MUTEX0]	= MMSYS_RST_NR(0, 6),
130 	[MT8188_VDO0_RST_DISP_GAMMA0]	= MMSYS_RST_NR(0, 8),
131 	[MT8188_VDO0_RST_DISP_DITHER0]	= MMSYS_RST_NR(0, 10),
132 	[MT8188_VDO0_RST_DISP_WDMA0]	= MMSYS_RST_NR(0, 17),
133 	[MT8188_VDO0_RST_DISP_RDMA0]	= MMSYS_RST_NR(0, 19),
134 	[MT8188_VDO0_RST_DSI0]		= MMSYS_RST_NR(0, 21),
135 	[MT8188_VDO0_RST_DSI1]		= MMSYS_RST_NR(0, 22),
136 	[MT8188_VDO0_RST_DSC_WRAP0]	= MMSYS_RST_NR(0, 23),
137 	[MT8188_VDO0_RST_VPP_MERGE0]	= MMSYS_RST_NR(0, 24),
138 	[MT8188_VDO0_RST_DP_INTF0]	= MMSYS_RST_NR(0, 25),
139 	[MT8188_VDO0_RST_DISP_AAL0]	= MMSYS_RST_NR(0, 26),
140 	[MT8188_VDO0_RST_INLINEROT0]	= MMSYS_RST_NR(0, 27),
141 	[MT8188_VDO0_RST_APB_BUS]	= MMSYS_RST_NR(0, 28),
142 	[MT8188_VDO0_RST_DISP_COLOR0]	= MMSYS_RST_NR(0, 29),
143 	[MT8188_VDO0_RST_MDP_WROT0]	= MMSYS_RST_NR(0, 30),
144 	[MT8188_VDO0_RST_DISP_RSZ0]	= MMSYS_RST_NR(0, 31),
145 };
146 
147 static const u8 mmsys_mt8188_vdo1_rst_tb[] = {
148 	[MT8188_VDO1_RST_SMI_LARB2]			= MMSYS_RST_NR(0, 0),
149 	[MT8188_VDO1_RST_SMI_LARB3]			= MMSYS_RST_NR(0, 1),
150 	[MT8188_VDO1_RST_GALS]				= MMSYS_RST_NR(0, 2),
151 	[MT8188_VDO1_RST_FAKE_ENG0]			= MMSYS_RST_NR(0, 3),
152 	[MT8188_VDO1_RST_FAKE_ENG1]			= MMSYS_RST_NR(0, 4),
153 	[MT8188_VDO1_RST_MDP_RDMA0]			= MMSYS_RST_NR(0, 5),
154 	[MT8188_VDO1_RST_MDP_RDMA1]			= MMSYS_RST_NR(0, 6),
155 	[MT8188_VDO1_RST_MDP_RDMA2]			= MMSYS_RST_NR(0, 7),
156 	[MT8188_VDO1_RST_MDP_RDMA3]			= MMSYS_RST_NR(0, 8),
157 	[MT8188_VDO1_RST_VPP_MERGE0]			= MMSYS_RST_NR(0, 9),
158 	[MT8188_VDO1_RST_VPP_MERGE1]			= MMSYS_RST_NR(0, 10),
159 	[MT8188_VDO1_RST_VPP_MERGE2]			= MMSYS_RST_NR(0, 11),
160 	[MT8188_VDO1_RST_VPP_MERGE3]			= MMSYS_RST_NR(1, 0),
161 	[MT8188_VDO1_RST_VPP_MERGE4]			= MMSYS_RST_NR(1, 1),
162 	[MT8188_VDO1_RST_VPP2_TO_VDO1_DL_ASYNC]		= MMSYS_RST_NR(1, 2),
163 	[MT8188_VDO1_RST_VPP3_TO_VDO1_DL_ASYNC]		= MMSYS_RST_NR(1, 3),
164 	[MT8188_VDO1_RST_DISP_MUTEX]			= MMSYS_RST_NR(1, 4),
165 	[MT8188_VDO1_RST_MDP_RDMA4]			= MMSYS_RST_NR(1, 5),
166 	[MT8188_VDO1_RST_MDP_RDMA5]			= MMSYS_RST_NR(1, 6),
167 	[MT8188_VDO1_RST_MDP_RDMA6]			= MMSYS_RST_NR(1, 7),
168 	[MT8188_VDO1_RST_MDP_RDMA7]			= MMSYS_RST_NR(1, 8),
169 	[MT8188_VDO1_RST_DP_INTF1_MMCK]			= MMSYS_RST_NR(1, 9),
170 	[MT8188_VDO1_RST_DPI0_MM_CK]			= MMSYS_RST_NR(1, 10),
171 	[MT8188_VDO1_RST_DPI1_MM_CK]			= MMSYS_RST_NR(1, 11),
172 	[MT8188_VDO1_RST_MERGE0_DL_ASYNC]		= MMSYS_RST_NR(1, 13),
173 	[MT8188_VDO1_RST_MERGE1_DL_ASYNC]		= MMSYS_RST_NR(1, 14),
174 	[MT8188_VDO1_RST_MERGE2_DL_ASYNC]		= MMSYS_RST_NR(1, 15),
175 	[MT8188_VDO1_RST_MERGE3_DL_ASYNC]		= MMSYS_RST_NR(1, 16),
176 	[MT8188_VDO1_RST_MERGE4_DL_ASYNC]		= MMSYS_RST_NR(1, 17),
177 	[MT8188_VDO1_RST_VDO0_DSC_TO_VDO1_DL_ASYNC]	= MMSYS_RST_NR(1, 18),
178 	[MT8188_VDO1_RST_VDO0_MERGE_TO_VDO1_DL_ASYNC]	= MMSYS_RST_NR(1, 19),
179 	[MT8188_VDO1_RST_PADDING0]			= MMSYS_RST_NR(1, 20),
180 	[MT8188_VDO1_RST_PADDING1]			= MMSYS_RST_NR(1, 21),
181 	[MT8188_VDO1_RST_PADDING2]			= MMSYS_RST_NR(1, 22),
182 	[MT8188_VDO1_RST_PADDING3]			= MMSYS_RST_NR(1, 23),
183 	[MT8188_VDO1_RST_PADDING4]			= MMSYS_RST_NR(1, 24),
184 	[MT8188_VDO1_RST_PADDING5]			= MMSYS_RST_NR(1, 25),
185 	[MT8188_VDO1_RST_PADDING6]			= MMSYS_RST_NR(1, 26),
186 	[MT8188_VDO1_RST_PADDING7]			= MMSYS_RST_NR(1, 27),
187 	[MT8188_VDO1_RST_DISP_RSZ0]			= MMSYS_RST_NR(1, 28),
188 	[MT8188_VDO1_RST_DISP_RSZ1]			= MMSYS_RST_NR(1, 29),
189 	[MT8188_VDO1_RST_DISP_RSZ2]			= MMSYS_RST_NR(1, 30),
190 	[MT8188_VDO1_RST_DISP_RSZ3]			= MMSYS_RST_NR(1, 31),
191 	[MT8188_VDO1_RST_HDR_VDO_FE0]			= MMSYS_RST_NR(2, 0),
192 	[MT8188_VDO1_RST_HDR_GFX_FE0]			= MMSYS_RST_NR(2, 1),
193 	[MT8188_VDO1_RST_HDR_VDO_BE]			= MMSYS_RST_NR(2, 2),
194 	[MT8188_VDO1_RST_HDR_VDO_FE1]			= MMSYS_RST_NR(2, 16),
195 	[MT8188_VDO1_RST_HDR_GFX_FE1]			= MMSYS_RST_NR(2, 17),
196 	[MT8188_VDO1_RST_DISP_MIXER]			= MMSYS_RST_NR(2, 18),
197 	[MT8188_VDO1_RST_HDR_VDO_FE0_DL_ASYNC]		= MMSYS_RST_NR(2, 19),
198 	[MT8188_VDO1_RST_HDR_VDO_FE1_DL_ASYNC]		= MMSYS_RST_NR(2, 20),
199 	[MT8188_VDO1_RST_HDR_GFX_FE0_DL_ASYNC]		= MMSYS_RST_NR(2, 21),
200 	[MT8188_VDO1_RST_HDR_GFX_FE1_DL_ASYNC]		= MMSYS_RST_NR(2, 22),
201 	[MT8188_VDO1_RST_HDR_VDO_BE_DL_ASYNC]		= MMSYS_RST_NR(2, 23),
202 };
203 
204 static const struct mtk_mmsys_routes mmsys_mt8188_routing_table[] = {
205 	MMSYS_ROUTE(OVL0, RDMA0,
206 		    MT8188_VDO0_OVL_MOUT_EN, MT8188_MOUT_DISP_OVL0_TO_DISP_RDMA0,
207 		    MT8188_MOUT_DISP_OVL0_TO_DISP_RDMA0),
208 	MMSYS_ROUTE(OVL0, WDMA0,
209 		    MT8188_VDO0_OVL_MOUT_EN, MT8188_MOUT_DISP_OVL0_TO_DISP_WDMA0,
210 		    MT8188_MOUT_DISP_OVL0_TO_DISP_WDMA0),
211 	MMSYS_ROUTE(OVL0, RDMA0,
212 		    MT8188_VDO0_DISP_RDMA_SEL, MT8188_SEL_IN_DISP_RDMA0_FROM_MASK,
213 		    MT8188_SEL_IN_DISP_RDMA0_FROM_DISP_OVL0),
214 	MMSYS_ROUTE(DITHER0, DSI0,
215 		    MT8188_VDO0_DSI0_SEL_IN, MT8188_SEL_IN_DSI0_FROM_MASK,
216 		    MT8188_SEL_IN_DSI0_FROM_DISP_DITHER0),
217 	MMSYS_ROUTE(DITHER0, MERGE0,
218 		    MT8188_VDO0_VPP_MERGE_SEL, MT8188_SEL_IN_VPP_MERGE_FROM_MASK,
219 		    MT8188_SEL_IN_DP_INTF0_FROM_DISP_DITHER0),
220 	MMSYS_ROUTE(DITHER0, DSC0,
221 		    MT8188_VDO0_DSC_WARP_SEL, MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_MASK,
222 		    MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_DISP_DITHER0),
223 	MMSYS_ROUTE(DITHER0, DP_INTF0,
224 		    MT8188_VDO0_DP_INTF0_SEL_IN, MT8188_SEL_IN_DP_INTF0_FROM_MASK,
225 		    MT8188_SEL_IN_DP_INTF0_FROM_DISP_DITHER0),
226 	MMSYS_ROUTE(DSC0, MERGE0,
227 		    MT8188_VDO0_VPP_MERGE_SEL, MT8188_SEL_IN_VPP_MERGE_FROM_MASK,
228 		    MT8188_SEL_IN_VPP_MERGE_FROM_DSC_WRAP0_OUT),
229 	MMSYS_ROUTE(MERGE0, DP_INTF0,
230 		    MT8188_VDO0_DP_INTF0_SEL_IN, MT8188_SEL_IN_DP_INTF0_FROM_MASK,
231 		    MT8188_SEL_IN_DP_INTF0_FROM_VPP_MERGE),
232 	MMSYS_ROUTE(DSC0, DSI0,
233 		    MT8188_VDO0_DSI0_SEL_IN, MT8188_SEL_IN_DSI0_FROM_MASK,
234 		    MT8188_SEL_IN_DSI0_FROM_DSC_WRAP0_OUT),
235 	MMSYS_ROUTE(RDMA0, COLOR0,
236 		    MT8188_VDO0_DISP_RDMA_SEL, GENMASK(1, 0),
237 		    MT8188_SOUT_DISP_RDMA0_TO_DISP_COLOR0),
238 	MMSYS_ROUTE(DITHER0, DSC0,
239 		    MT8188_VDO0_DISP_DITHER0_SEL_OUT, MT8188_SOUT_DISP_DITHER0_TO_MASK,
240 		    MT8188_SOUT_DISP_DITHER0_TO_DSC_WRAP0_IN),
241 	MMSYS_ROUTE(DITHER0, DSI0,
242 		    MT8188_VDO0_DISP_DITHER0_SEL_OUT, MT8188_SOUT_DISP_DITHER0_TO_MASK,
243 		    MT8188_SOUT_DISP_DITHER0_TO_DSI0),
244 	MMSYS_ROUTE(DITHER0, MERGE0,
245 		    MT8188_VDO0_DISP_DITHER0_SEL_OUT, MT8188_SOUT_DISP_DITHER0_TO_MASK,
246 		    MT8188_SOUT_DISP_DITHER0_TO_VPP_MERGE0),
247 	MMSYS_ROUTE(DITHER0, DP_INTF0,
248 		    MT8188_VDO0_DISP_DITHER0_SEL_OUT, MT8188_SOUT_DISP_DITHER0_TO_MASK,
249 		    MT8188_SOUT_DISP_DITHER0_TO_DP_INTF0),
250 	MMSYS_ROUTE(MERGE0, DP_INTF0,
251 		    MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK,
252 		    MT8188_SOUT_VPP_MERGE_TO_DP_INTF0),
253 	MMSYS_ROUTE(MERGE0, DPI0,
254 		    MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK,
255 		    MT8188_SOUT_VPP_MERGE_TO_SINA_VIRTUAL0),
256 	MMSYS_ROUTE(MERGE0, WDMA0,
257 		    MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK,
258 		    MT8188_SOUT_VPP_MERGE_TO_DISP_WDMA0),
259 	MMSYS_ROUTE(MERGE0, DSC0,
260 		    MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK,
261 		    MT8188_SOUT_VPP_MERGE_TO_DSC_WRAP0_IN),
262 	MMSYS_ROUTE(DSC0, DSI0,
263 		    MT8188_VDO0_DSC_WARP_SEL, MT8188_SOUT_DSC_WRAP0_OUT_TO_MASK,
264 		    MT8188_SOUT_DSC_WRAP0_OUT_TO_DSI0),
265 	MMSYS_ROUTE(DSC0, MERGE0,
266 		    MT8188_VDO0_DSC_WARP_SEL, MT8188_SOUT_DSC_WRAP0_OUT_TO_MASK,
267 		    MT8188_SOUT_DSC_WRAP0_OUT_TO_VPP_MERGE),
268 };
269 
270 static const struct mtk_mmsys_routes mmsys_mt8188_vdo1_routing_table[] = {
271 	MMSYS_ROUTE(MDP_RDMA0, MERGE1,
272 		    MT8188_VDO1_VPP_MERGE0_P0_SEL_IN, GENMASK(0, 0),
273 		    MT8188_VPP_MERGE0_P0_SEL_IN_FROM_MDP_RDMA0),
274 	MMSYS_ROUTE(MDP_RDMA1, MERGE1,
275 		    MT8188_VDO1_VPP_MERGE0_P1_SEL_IN, GENMASK(0, 0),
276 		    MT8188_VPP_MERGE0_P1_SEL_IN_FROM_MDP_RDMA1),
277 	MMSYS_ROUTE(MDP_RDMA2, MERGE2,
278 		    MT8188_VDO1_VPP_MERGE1_P0_SEL_IN, GENMASK(0, 0),
279 		    MT8188_VPP_MERGE1_P0_SEL_IN_FROM_MDP_RDMA2),
280 	MMSYS_ROUTE(MERGE1, ETHDR_MIXER,
281 		    MT8188_VDO1_MERGE0_ASYNC_SOUT_SEL, GENMASK(1, 0),
282 		    MT8188_SOUT_TO_MIXER_IN1_SEL),
283 	MMSYS_ROUTE(MERGE2, ETHDR_MIXER,
284 		    MT8188_VDO1_MERGE1_ASYNC_SOUT_SEL, GENMASK(1, 0),
285 		    MT8188_SOUT_TO_MIXER_IN2_SEL),
286 	MMSYS_ROUTE(MERGE3, ETHDR_MIXER,
287 		    MT8188_VDO1_MERGE2_ASYNC_SOUT_SEL, GENMASK(1, 0),
288 		    MT8188_SOUT_TO_MIXER_IN3_SEL),
289 	MMSYS_ROUTE(MERGE4, ETHDR_MIXER,
290 		    MT8188_VDO1_MERGE3_ASYNC_SOUT_SEL, GENMASK(1, 0),
291 		    MT8188_SOUT_TO_MIXER_IN4_SEL),
292 	MMSYS_ROUTE(ETHDR_MIXER, MERGE5,
293 		    MT8188_VDO1_MIXER_OUT_SOUT_SEL, GENMASK(0, 0),
294 		    MT8188_MIXER_SOUT_TO_MERGE4_ASYNC_SEL),
295 	MMSYS_ROUTE(MERGE1, ETHDR_MIXER,
296 		    MT8188_VDO1_MIXER_IN1_SEL_IN, GENMASK(0, 0),
297 		    MT8188_MIXER_IN1_SEL_IN_FROM_MERGE0_ASYNC_SOUT),
298 	MMSYS_ROUTE(MERGE2, ETHDR_MIXER,
299 		    MT8188_VDO1_MIXER_IN2_SEL_IN, GENMASK(0, 0),
300 		    MT8188_MIXER_IN2_SEL_IN_FROM_MERGE1_ASYNC_SOUT),
301 	MMSYS_ROUTE(MERGE3, ETHDR_MIXER,
302 		    MT8188_VDO1_MIXER_IN3_SEL_IN, GENMASK(0, 0),
303 		    MT8188_MIXER_IN3_SEL_IN_FROM_MERGE2_ASYNC_SOUT),
304 	MMSYS_ROUTE(MERGE4, ETHDR_MIXER,
305 		    MT8188_VDO1_MIXER_IN4_SEL_IN, GENMASK(0, 0),
306 		    MT8188_MIXER_IN4_SEL_IN_FROM_MERGE3_ASYNC_SOUT),
307 	MMSYS_ROUTE(ETHDR_MIXER, MERGE5,
308 		    MT8188_VDO1_MIXER_SOUT_SEL_IN, GENMASK(2, 0),
309 		    MT8188_MIXER_SOUT_SEL_IN_FROM_DISP_MIXER),
310 	MMSYS_ROUTE(ETHDR_MIXER, MERGE5,
311 		    MT8188_VDO1_MERGE4_ASYNC_SEL_IN, GENMASK(2, 0),
312 		    MT8188_MERGE4_ASYNC_SEL_IN_FROM_MIXER_OUT_SOUT),
313 	MMSYS_ROUTE(MERGE5, DPI1,
314 		    MT8188_VDO1_DISP_DPI1_SEL_IN, GENMASK(1, 0),
315 		    MT8188_DISP_DPI1_SEL_IN_FROM_VPP_MERGE4_MOUT),
316 	MMSYS_ROUTE(MERGE5, DPI1,
317 		    MT8188_VDO1_MERGE4_SOUT_SEL, GENMASK(3, 0),
318 		    MT8188_MERGE4_SOUT_TO_DPI1_SEL),
319 	MMSYS_ROUTE(MERGE5, DP_INTF1,
320 		    MT8188_VDO1_DISP_DP_INTF0_SEL_IN, GENMASK(1, 0),
321 		    MT8188_DISP_DP_INTF0_SEL_IN_FROM_VPP_MERGE4_MOUT),
322 	MMSYS_ROUTE(MERGE5, DP_INTF1,
323 		    MT8188_VDO1_MERGE4_SOUT_SEL, GENMASK(3, 0),
324 		    MT8188_MERGE4_SOUT_TO_DP_INTF0_SEL),
325 };
326 
327 #endif /* __SOC_MEDIATEK_MT8188_MMSYS_H */
328