blob: 53850ef950d142b8603176188f7c679e525cbad2 [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef __SOC_MEDIATEK_MT8183_MMSYS_H
#define __SOC_MEDIATEK_MT8183_MMSYS_H
#define MT8183_DISP_OVL0_MOUT_EN 0xf00
#define MT8183_DISP_OVL0_2L_MOUT_EN 0xf04
#define MT8183_DISP_OVL1_2L_MOUT_EN 0xf08
#define MT8183_DISP_DITHER0_MOUT_EN 0xf0c
#define MT8183_DISP_PATH0_SEL_IN 0xf24
#define MT8183_DISP_DSI0_SEL_IN 0xf2c
#define MT8183_DISP_DPI0_SEL_IN 0xf30
#define MT8183_DISP_RDMA0_SOUT_SEL_IN 0xf50
#define MT8183_DISP_RDMA1_SOUT_SEL_IN 0xf54
#define MT8183_MDP_ISP_MOUT_EN 0xf80
#define MT8183_MDP_RDMA0_MOUT_EN 0xf84
#define MT8183_MDP_PRZ0_MOUT_EN 0xf8c
#define MT8183_MDP_PRZ1_MOUT_EN 0xf90
#define MT8183_MDP_COLOR_MOUT_EN 0xf94
#define MT8183_MDP_IPU_MOUT_EN 0xf98
#define MT8183_MDP_PATH0_SOUT_SEL 0xfa8
#define MT8183_MDP_PATH1_SOUT_SEL 0xfac
#define MT8183_MDP_PRZ0_SEL_IN 0xfc0
#define MT8183_MDP_PRZ1_SEL_IN 0xfc4
#define MT8183_MDP_TDSHP_SEL_IN 0xfc8
#define MT8183_MDP_WROT0_SEL_IN 0xfd0
#define MT8183_MDP_WDMA_SEL_IN 0xfd4
#define MT8183_MDP_PATH0_SEL_IN 0xfe0
#define MT8183_MDP_PATH1_SEL_IN 0xfe4
#define MT8183_MDP_AAL_MOUT_EN 0xfe8
#define MT8183_MDP_AAL_SEL_IN 0xfec
#define MT8183_MDP_CCORR_SEL_IN 0xff0
#define MT8183_MDP_CCORR_SOUT_SEL 0xff4
#define MT8183_ISP_REG_MMSYS_SW0_RST_B 0x140
#define MT8183_ISP_REG_MMSYS_SW1_RST_B 0x144
#define MT8183_ISP_REG_MDP_ASYNC_CFG_WD 0x934
#define MT8183_ISP_REG_MDP_ASYNC_IPU_CFG_WD 0x93C
#define MT8183_ISP_REG_ISP_RELAY_CFG_WD 0x994
#define MT8183_ISP_REG_IPU_RELAY_CFG_WD 0x9a0
#define MT8183_ISP_BIT_MDP_DL_ASYNC_TX BIT(3)
#define MT8183_ISP_BIT_MDP_DL_ASYNC_TX2 BIT(4)
#define MT8183_ISP_BIT_MDP_DL_ASYNC_RX BIT(10)
#define MT8183_ISP_BIT_MDP_DL_ASYNC_RX2 BIT(11)
#define MT8183_ISP_BIT_NO_SOF_MODE BIT(31)
#define MT8183_OVL0_MOUT_EN_OVL0_2L BIT(4)
#define MT8183_OVL0_2L_MOUT_EN_DISP_PATH0 BIT(0)
#define MT8183_OVL1_2L_MOUT_EN_RDMA1 BIT(4)
#define MT8183_DITHER0_MOUT_IN_DSI0 BIT(0)
#define MT8183_DISP_PATH0_SEL_IN_OVL0_2L 0x1
#define MT8183_DSI0_SEL_IN_RDMA0 0x1
#define MT8183_DSI0_SEL_IN_RDMA1 0x3
#define MT8183_DPI0_SEL_IN_RDMA0 0x1
#define MT8183_DPI0_SEL_IN_RDMA1 0x2
#define MT8183_RDMA0_SOUT_COLOR0 0x1
#define MT8183_RDMA1_SOUT_DSI0 0x1
#define MT8183_MDP_ISP_MOUT_EN_CCORR0 BIT(0)
#define MT8183_MDP_ISP_MOUT_EN_RSZ1 BIT(1)
#define MT8183_MDP_ISP_MOUT_EN_AAL0 BIT(2)
#define MT8183_MDP_IPU_MOUT_EN_CCORR0 BIT(0)
#define MT8183_MDP_IPU_MOUT_EN_RSZ1 BIT(1)
#define MT8183_MDP_IPU_MOUT_EN_AAL0 BIT(2)
#define MT8183_MDP_RDMA0_MOUT_EN_CCORR0 BIT(0)
#define MT8183_MDP_RDMA0_MOUT_EN_RSZ1 BIT(1)
#define MT8183_MDP_RDMA0_MOUT_EN_PATH0_OUT BIT(2)
#define MT8183_MDP_RDMA0_MOUT_EN_AAL0 BIT(3)
#define MT8183_MDP_AAL_MOUT_EN_CCORR0 BIT(0)
#define MT8183_MDP_AAL_MOUT_EN_RSZ1 BIT(1)
#define MT8183_MDP_AAL_MOUT_EN_RSZ0 BIT(2)
#define MT8183_MDP_PRZ0_MOUT_EN_PATH0_OUT BIT(0)
#define MT8183_MDP_PRZ0_MOUT_EN_TDSHP0 BIT(1)
#define MT8183_MDP_PRZ1_MOUT_EN_PATH0_OUT BIT(0)
#define MT8183_MDP_PRZ1_MOUT_EN_TDSHP0 BIT(1)
#define MT8183_MDP_PRZ1_MOUT_EN_PATH1_OUT BIT(2)
#define MT8183_MDP_PRZ1_MOUT_EN_COLOR0 BIT(4)
#define MT8183_MDP_COLOR_MOUT_EN_PATH0_OUT BIT(0)
#define MT8183_MDP_COLOR_MOUT_EN_PATH1_OUT BIT(1)
#define MT8183_MDP_AAL_SEL_IN_CAMIN 0
#define MT8183_MDP_AAL_SEL_IN_RDMA0 1
#define MT8183_MDP_AAL_SEL_IN_CAMIN2 2
#define MT8183_MDP_AAL_SEL_IN_CCORR0 3
#define MT8183_MDP_CCORR_SEL_IN_CAMIN 0
#define MT8183_MDP_CCORR_SEL_IN_RDMA0 1
#define MT8183_MDP_CCORR_SEL_IN_CAMIN2 3
#define MT8183_MDP_CCORR_SEL_IN_AAL0 4
#define MT8183_MDP_PRZ0_SEL_IN_AAL0 0
#define MT8183_MDP_PRZ0_SEL_IN_CCORR0 1
#define MT8183_MDP_PRZ1_SEL_IN_CAMIN 0
#define MT8183_MDP_PRZ1_SEL_IN_RDMA0 1
#define MT8183_MDP_PRZ1_SEL_IN_CAMIN2 4
#define MT8183_MDP_PRZ1_SEL_IN_AAL0 5
#define MT8183_MDP_TDSHP_SEL_IN_RSZ0 0
#define MT8183_MDP_TDSHP_SEL_IN_RSZ1 1
#define MT8183_MDP_PATH0_SEL_IN_RSZ0 0
#define MT8183_MDP_PATH0_SEL_IN_RSZ1 1
#define MT8183_MDP_PATH0_SEL_IN_COLOR0 2
#define MT8183_MDP_PATH0_SEL_IN_RDMA0 3
#define MT8183_MDP_PATH1_SEL_IN_RSZ1 0
#define MT8183_MDP_PATH1_SEL_IN_COLOR0 1
#define MT8183_MDP_WROT0_SEL_IN_PATH0_OUT 0
#define MT8183_MDP_WDMA_SEL_IN_PATH1_OUT 0
#define MT8183_MDP_CCORR_SOUT_SEL_AAL0 0
#define MT8183_MDP_CCORR_SOUT_SEL_RSZ0 1
#define MT8183_MDP_PATH0_SOUT_SEL_WROT0 0
#define MT8183_MDP_PATH1_SOUT_SEL_WDMA 0
static const struct mtk_mmsys_routes mmsys_mt8183_routing_table[] = {
{
DDP_COMPONENT_OVL0, DDP_COMPONENT_OVL_2L0,
MT8183_DISP_OVL0_MOUT_EN, MT8183_OVL0_MOUT_EN_OVL0_2L,
MT8183_OVL0_MOUT_EN_OVL0_2L
}, {
DDP_COMPONENT_OVL_2L0, DDP_COMPONENT_RDMA0,
MT8183_DISP_OVL0_2L_MOUT_EN, MT8183_OVL0_2L_MOUT_EN_DISP_PATH0,
MT8183_OVL0_2L_MOUT_EN_DISP_PATH0
}, {
DDP_COMPONENT_OVL_2L1, DDP_COMPONENT_RDMA1,
MT8183_DISP_OVL1_2L_MOUT_EN, MT8183_OVL1_2L_MOUT_EN_RDMA1,
MT8183_OVL1_2L_MOUT_EN_RDMA1
}, {
DDP_COMPONENT_DITHER, DDP_COMPONENT_DSI0,
MT8183_DISP_DITHER0_MOUT_EN, MT8183_DITHER0_MOUT_IN_DSI0,
MT8183_DITHER0_MOUT_IN_DSI0
}, {
DDP_COMPONENT_OVL_2L0, DDP_COMPONENT_RDMA0,
MT8183_DISP_PATH0_SEL_IN, MT8183_DISP_PATH0_SEL_IN_OVL0_2L,
MT8183_DISP_PATH0_SEL_IN_OVL0_2L
}, {
DDP_COMPONENT_RDMA1, DDP_COMPONENT_DPI0,
MT8183_DISP_DPI0_SEL_IN, MT8183_DPI0_SEL_IN_RDMA1,
MT8183_DPI0_SEL_IN_RDMA1
}, {
DDP_COMPONENT_RDMA0, DDP_COMPONENT_COLOR0,
MT8183_DISP_RDMA0_SOUT_SEL_IN, MT8183_RDMA0_SOUT_COLOR0,
MT8183_RDMA0_SOUT_COLOR0
}
};
static const unsigned int mmsys_mt8183_mdp_isp_ctrl_table[ISP_CTRL_MAX] = {
[ISP_REG_MMSYS_SW0_RST_B] = MT8183_ISP_REG_MMSYS_SW0_RST_B,
[ISP_REG_MMSYS_SW1_RST_B] = MT8183_ISP_REG_MMSYS_SW1_RST_B,
[ISP_REG_MDP_ASYNC_CFG_WD] = MT8183_ISP_REG_MDP_ASYNC_CFG_WD,
[ISP_REG_MDP_ASYNC_IPU_CFG_WD] = MT8183_ISP_REG_MDP_ASYNC_IPU_CFG_WD,
[ISP_REG_ISP_RELAY_CFG_WD] = MT8183_ISP_REG_ISP_RELAY_CFG_WD,
[ISP_REG_IPU_RELAY_CFG_WD] = MT8183_ISP_REG_IPU_RELAY_CFG_WD,
[ISP_BIT_MDP_DL_ASYNC_TX] = MT8183_ISP_BIT_MDP_DL_ASYNC_TX,
[ISP_BIT_MDP_DL_ASYNC_TX2] = MT8183_ISP_BIT_MDP_DL_ASYNC_TX2,
[ISP_BIT_MDP_DL_ASYNC_RX] = MT8183_ISP_BIT_MDP_DL_ASYNC_RX,
[ISP_BIT_MDP_DL_ASYNC_RX2] = MT8183_ISP_BIT_MDP_DL_ASYNC_RX2,
[ISP_BIT_NO_SOF_MODE] = MT8183_ISP_BIT_NO_SOF_MODE,
};
#endif /* __SOC_MEDIATEK_MT8183_MMSYS_H */