162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci#ifndef __SOC_MEDIATEK_MT8188_MMSYS_H
462306a36Sopenharmony_ci#define __SOC_MEDIATEK_MT8188_MMSYS_H
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#define MT8188_VDO0_OVL_MOUT_EN				0xf14
762306a36Sopenharmony_ci#define MT8188_MOUT_DISP_OVL0_TO_DISP_RDMA0		BIT(0)
862306a36Sopenharmony_ci#define MT8188_MOUT_DISP_OVL0_TO_DISP_WDMA0		BIT(1)
962306a36Sopenharmony_ci#define MT8188_MOUT_DISP_OVL0_TO_DISP_OVL1		BIT(2)
1062306a36Sopenharmony_ci#define MT8188_MOUT_DISP_OVL1_TO_DISP_RDMA1		BIT(4)
1162306a36Sopenharmony_ci#define MT8188_MOUT_DISP_OVL1_TO_DISP_WDMA1		BIT(5)
1262306a36Sopenharmony_ci#define MT8188_MOUT_DISP_OVL1_TO_DISP_OVL0		BIT(6)
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#define MT8188_VDO0_SEL_IN				0xf34
1562306a36Sopenharmony_ci#define MT8188_VDO0_SEL_OUT				0xf38
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci#define MT8188_VDO0_DISP_RDMA_SEL			0xf40
1862306a36Sopenharmony_ci#define MT8188_SOUT_DISP_RDMA0_TO_MASK			GENMASK(2, 0)
1962306a36Sopenharmony_ci#define MT8188_SOUT_DISP_RDMA0_TO_DISP_COLOR0		(0 << 0)
2062306a36Sopenharmony_ci#define MT8188_SOUT_DISP_RDMA0_TO_DISP_DSI0		(1 << 0)
2162306a36Sopenharmony_ci#define MT8188_SOUT_DISP_RDMA0_TO_DISP_DP_INTF0		(5 << 0)
2262306a36Sopenharmony_ci#define MT8188_SEL_IN_DISP_RDMA0_FROM_MASK		GENMASK(8, 8)
2362306a36Sopenharmony_ci#define MT8188_SEL_IN_DISP_RDMA0_FROM_DISP_OVL0		(0 << 8)
2462306a36Sopenharmony_ci#define MT8188_SEL_IN_DISP_RDMA0_FROM_DISP_RSZ0		(1 << 8)
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci#define MT8188_VDO0_DSI0_SEL_IN				0xf44
2862306a36Sopenharmony_ci#define MT8188_SEL_IN_DSI0_FROM_MASK			BIT(0)
2962306a36Sopenharmony_ci#define MT8188_SEL_IN_DSI0_FROM_DSC_WRAP0_OUT		(0 << 0)
3062306a36Sopenharmony_ci#define MT8188_SEL_IN_DSI0_FROM_DISP_DITHER0		(1 << 0)
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci#define MT8188_VDO0_DP_INTF0_SEL_IN			0xf4C
3362306a36Sopenharmony_ci#define MT8188_SEL_IN_DP_INTF0_FROM_MASK		GENMASK(2, 0)
3462306a36Sopenharmony_ci#define MT8188_SEL_IN_DP_INTF0_FROM_DSC_WRAP0C1_OUT	(0 << 0)
3562306a36Sopenharmony_ci#define MT8188_SEL_IN_DP_INTF0_FROM_VPP_MERGE		(1 << 0)
3662306a36Sopenharmony_ci#define MT8188_SEL_IN_DP_INTF0_FROM_DISP_DITHER0	(3 << 0)
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci#define MT8188_VDO0_DISP_DITHER0_SEL_OUT		0xf58
3962306a36Sopenharmony_ci#define MT8188_SOUT_DISP_DITHER0_TO_MASK		GENMASK(2, 0)
4062306a36Sopenharmony_ci#define MT8188_SOUT_DISP_DITHER0_TO_DSC_WRAP0_IN	(0 << 0)
4162306a36Sopenharmony_ci#define MT8188_SOUT_DISP_DITHER0_TO_DSI0		(1 << 0)
4262306a36Sopenharmony_ci#define MT8188_SOUT_DISP_DITHER0_TO_VPP_MERGE0		(6 << 0)
4362306a36Sopenharmony_ci#define MT8188_SOUT_DISP_DITHER0_TO_DP_INTF0		(7 << 0)
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci#define MT8188_VDO0_VPP_MERGE_SEL			0xf60
4662306a36Sopenharmony_ci#define MT8188_SEL_IN_VPP_MERGE_FROM_MASK		GENMASK(1, 0)
4762306a36Sopenharmony_ci#define MT8188_SEL_IN_VPP_MERGE_FROM_DSC_WRAP0_OUT	(0 << 0)
4862306a36Sopenharmony_ci#define MT8188_SEL_IN_VPP_MERGE_FROM_DITHER0_OUT	(3 << 0)
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci#define MT8188_SOUT_VPP_MERGE_TO_MASK			GENMASK(6, 4)
5162306a36Sopenharmony_ci#define MT8188_SOUT_VPP_MERGE_TO_DSI1			(0 << 4)
5262306a36Sopenharmony_ci#define MT8188_SOUT_VPP_MERGE_TO_DP_INTF0		(1 << 4)
5362306a36Sopenharmony_ci#define MT8188_SOUT_VPP_MERGE_TO_SINA_VIRTUAL0		(2 << 4)
5462306a36Sopenharmony_ci#define MT8188_SOUT_VPP_MERGE_TO_DISP_WDMA1		(3 << 4)
5562306a36Sopenharmony_ci#define MT8188_SOUT_VPP_MERGE_TO_DSC_WRAP0_IN		(4 << 4)
5662306a36Sopenharmony_ci#define MT8188_SOUT_VPP_MERGE_TO_DISP_WDMA0		(5 << 4)
5762306a36Sopenharmony_ci#define MT8188_SOUT_VPP_MERGE_TO_DSC_WRAP1_IN_MASK	GENMASK(11, 11)
5862306a36Sopenharmony_ci#define MT8188_SOUT_VPP_MERGE_TO_DSC_WRAP1_IN		(0 << 11)
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci#define MT8188_VDO0_DSC_WARP_SEL			0xf64
6162306a36Sopenharmony_ci#define MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_MASK		GENMASK(0, 0)
6262306a36Sopenharmony_ci#define MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_DISP_DITHER0	(0 << 0)
6362306a36Sopenharmony_ci#define MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_VPP_MERGE	(1 << 0)
6462306a36Sopenharmony_ci#define MT8188_SOUT_DSC_WRAP0_OUT_TO_MASK		GENMASK(19, 16)
6562306a36Sopenharmony_ci#define MT8188_SOUT_DSC_WRAP0_OUT_TO_DSI0		BIT(16)
6662306a36Sopenharmony_ci#define MT8188_SOUT_DSC_WRAP0_OUT_TO_SINB_VIRTUAL0	BIT(17)
6762306a36Sopenharmony_ci#define MT8188_SOUT_DSC_WRAP0_OUT_TO_VPP_MERGE		BIT(18)
6862306a36Sopenharmony_ci#define MT8188_SOUT_DSC_WRAP0_OUT_TO_DISP_WDMA0		BIT(19)
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_cistatic const struct mtk_mmsys_routes mmsys_mt8188_routing_table[] = {
7162306a36Sopenharmony_ci	{
7262306a36Sopenharmony_ci		DDP_COMPONENT_OVL0, DDP_COMPONENT_RDMA0,
7362306a36Sopenharmony_ci		MT8188_VDO0_OVL_MOUT_EN, MT8188_MOUT_DISP_OVL0_TO_DISP_RDMA0,
7462306a36Sopenharmony_ci		MT8188_MOUT_DISP_OVL0_TO_DISP_RDMA0
7562306a36Sopenharmony_ci	}, {
7662306a36Sopenharmony_ci		DDP_COMPONENT_OVL0, DDP_COMPONENT_WDMA0,
7762306a36Sopenharmony_ci		MT8188_VDO0_OVL_MOUT_EN, MT8188_MOUT_DISP_OVL0_TO_DISP_WDMA0,
7862306a36Sopenharmony_ci		MT8188_MOUT_DISP_OVL0_TO_DISP_WDMA0
7962306a36Sopenharmony_ci	}, {
8062306a36Sopenharmony_ci		DDP_COMPONENT_OVL0, DDP_COMPONENT_RDMA0,
8162306a36Sopenharmony_ci		MT8188_VDO0_DISP_RDMA_SEL, MT8188_SEL_IN_DISP_RDMA0_FROM_MASK,
8262306a36Sopenharmony_ci		MT8188_SEL_IN_DISP_RDMA0_FROM_DISP_OVL0
8362306a36Sopenharmony_ci	}, {
8462306a36Sopenharmony_ci		DDP_COMPONENT_DITHER0, DDP_COMPONENT_DSI0,
8562306a36Sopenharmony_ci		MT8188_VDO0_DSI0_SEL_IN, MT8188_SEL_IN_DSI0_FROM_MASK,
8662306a36Sopenharmony_ci		MT8188_SEL_IN_DSI0_FROM_DISP_DITHER0
8762306a36Sopenharmony_ci	}, {
8862306a36Sopenharmony_ci		DDP_COMPONENT_DITHER0, DDP_COMPONENT_MERGE0,
8962306a36Sopenharmony_ci		MT8188_VDO0_VPP_MERGE_SEL, MT8188_SEL_IN_VPP_MERGE_FROM_MASK,
9062306a36Sopenharmony_ci		MT8188_SEL_IN_VPP_MERGE_FROM_DITHER0_OUT
9162306a36Sopenharmony_ci	}, {
9262306a36Sopenharmony_ci		DDP_COMPONENT_DITHER0, DDP_COMPONENT_DSC0,
9362306a36Sopenharmony_ci		MT8188_VDO0_DSC_WARP_SEL,
9462306a36Sopenharmony_ci		MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_MASK,
9562306a36Sopenharmony_ci		MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_DISP_DITHER0
9662306a36Sopenharmony_ci	}, {
9762306a36Sopenharmony_ci		DDP_COMPONENT_DITHER0, DDP_COMPONENT_DP_INTF0,
9862306a36Sopenharmony_ci		MT8188_VDO0_DP_INTF0_SEL_IN, MT8188_SEL_IN_DP_INTF0_FROM_MASK,
9962306a36Sopenharmony_ci		MT8188_SEL_IN_DP_INTF0_FROM_DISP_DITHER0
10062306a36Sopenharmony_ci	}, {
10162306a36Sopenharmony_ci		DDP_COMPONENT_DSC0, DDP_COMPONENT_MERGE0,
10262306a36Sopenharmony_ci		MT8188_VDO0_VPP_MERGE_SEL, MT8188_SEL_IN_VPP_MERGE_FROM_MASK,
10362306a36Sopenharmony_ci		MT8188_SEL_IN_VPP_MERGE_FROM_DSC_WRAP0_OUT
10462306a36Sopenharmony_ci	}, {
10562306a36Sopenharmony_ci		DDP_COMPONENT_DSC0, DDP_COMPONENT_DSI0,
10662306a36Sopenharmony_ci		MT8188_VDO0_DSI0_SEL_IN, MT8188_SEL_IN_DSI0_FROM_MASK,
10762306a36Sopenharmony_ci		MT8188_SEL_IN_DSI0_FROM_DSC_WRAP0_OUT
10862306a36Sopenharmony_ci	}, {
10962306a36Sopenharmony_ci		DDP_COMPONENT_RDMA0, DDP_COMPONENT_COLOR0,
11062306a36Sopenharmony_ci		MT8188_VDO0_DISP_RDMA_SEL, MT8188_SOUT_DISP_RDMA0_TO_MASK,
11162306a36Sopenharmony_ci		MT8188_SOUT_DISP_RDMA0_TO_DISP_COLOR0
11262306a36Sopenharmony_ci	},  {
11362306a36Sopenharmony_ci		DDP_COMPONENT_DITHER0, DDP_COMPONENT_DSI0,
11462306a36Sopenharmony_ci		MT8188_VDO0_DISP_DITHER0_SEL_OUT,
11562306a36Sopenharmony_ci		MT8188_SOUT_DISP_DITHER0_TO_MASK,
11662306a36Sopenharmony_ci		MT8188_SOUT_DISP_DITHER0_TO_DSI0
11762306a36Sopenharmony_ci	},  {
11862306a36Sopenharmony_ci		DDP_COMPONENT_DITHER0, DDP_COMPONENT_DP_INTF0,
11962306a36Sopenharmony_ci		MT8188_VDO0_DISP_DITHER0_SEL_OUT,
12062306a36Sopenharmony_ci		MT8188_SOUT_DISP_DITHER0_TO_MASK,
12162306a36Sopenharmony_ci		MT8188_SOUT_DISP_DITHER0_TO_DP_INTF0
12262306a36Sopenharmony_ci	}, {
12362306a36Sopenharmony_ci		DDP_COMPONENT_MERGE0, DDP_COMPONENT_DP_INTF0,
12462306a36Sopenharmony_ci		MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK,
12562306a36Sopenharmony_ci		MT8188_SOUT_VPP_MERGE_TO_DP_INTF0
12662306a36Sopenharmony_ci	}, {
12762306a36Sopenharmony_ci		DDP_COMPONENT_MERGE0, DDP_COMPONENT_DPI0,
12862306a36Sopenharmony_ci		MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK,
12962306a36Sopenharmony_ci		MT8188_SOUT_VPP_MERGE_TO_SINA_VIRTUAL0
13062306a36Sopenharmony_ci	}, {
13162306a36Sopenharmony_ci		DDP_COMPONENT_MERGE0, DDP_COMPONENT_WDMA0,
13262306a36Sopenharmony_ci		MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK,
13362306a36Sopenharmony_ci		MT8188_SOUT_VPP_MERGE_TO_DISP_WDMA0
13462306a36Sopenharmony_ci	}, {
13562306a36Sopenharmony_ci		DDP_COMPONENT_MERGE0, DDP_COMPONENT_DSC0,
13662306a36Sopenharmony_ci		MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK,
13762306a36Sopenharmony_ci		MT8188_SOUT_VPP_MERGE_TO_DSC_WRAP0_IN
13862306a36Sopenharmony_ci	}, {
13962306a36Sopenharmony_ci		DDP_COMPONENT_DSC0, DDP_COMPONENT_DSI0,
14062306a36Sopenharmony_ci		MT8188_VDO0_DSC_WARP_SEL, MT8188_SOUT_DSC_WRAP0_OUT_TO_MASK,
14162306a36Sopenharmony_ci		MT8188_SOUT_DSC_WRAP0_OUT_TO_DSI0
14262306a36Sopenharmony_ci	}, {
14362306a36Sopenharmony_ci		DDP_COMPONENT_DSC0, DDP_COMPONENT_MERGE0,
14462306a36Sopenharmony_ci		MT8188_VDO0_DSC_WARP_SEL, MT8188_SOUT_DSC_WRAP0_OUT_TO_MASK,
14562306a36Sopenharmony_ci		MT8188_SOUT_DSC_WRAP0_OUT_TO_VPP_MERGE
14662306a36Sopenharmony_ci	},
14762306a36Sopenharmony_ci};
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci#endif /* __SOC_MEDIATEK_MT8188_MMSYS_H */
150