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#define MT8188_VDO0_OVL_MOUT_EN 0xf14 7#define MT8188_MOUT_DISP_OVL0_TO_DISP_RDMA0 BIT(0) 8#define MT8188_MOUT_DISP_OVL0_TO_DISP_WDMA0 BIT(1) 9#define MT8188_MOUT_DISP_OVL0_TO_DISP_OVL1 BIT(2) 10#define MT8188_MOUT_DISP_OVL1_TO_DISP_RDMA1 BIT(4) 11#define MT8188_MOUT_DISP_OVL1_TO_DISP_WDMA1 BIT(5) 12#define MT8188_MOUT_DISP_OVL1_TO_DISP_OVL0 BIT(6) 13 14#define MT8188_VDO0_SEL_IN 0xf34 15#define MT8188_VDO0_SEL_OUT 0xf38 16 17#define MT8188_VDO0_DISP_RDMA_SEL 0xf40 18#define MT8188_SOUT_DISP_RDMA0_TO_MASK GENMASK(2, 0) 19#define MT8188_SOUT_DISP_RDMA0_TO_DISP_COLOR0 (0 << 0) 20#define MT8188_SOUT_DISP_RDMA0_TO_DISP_DSI0 (1 << 0) 21#define MT8188_SOUT_DISP_RDMA0_TO_DISP_DP_INTF0 (5 << 0) 22#define MT8188_SEL_IN_DISP_RDMA0_FROM_MASK GENMASK(8, 8) 23#define MT8188_SEL_IN_DISP_RDMA0_FROM_DISP_OVL0 (0 << 8) 24#define MT8188_SEL_IN_DISP_RDMA0_FROM_DISP_RSZ0 (1 << 8) 25 26 27#define MT8188_VDO0_DSI0_SEL_IN 0xf44 28#define MT8188_SEL_IN_DSI0_FROM_MASK BIT(0) 29#define MT8188_SEL_IN_DSI0_FROM_DSC_WRAP0_OUT (0 << 0) 30#define MT8188_SEL_IN_DSI0_FROM_DISP_DITHER0 (1 << 0) 31 32#define MT8188_VDO0_DP_INTF0_SEL_IN 0xf4C 33#define MT8188_SEL_IN_DP_INTF0_FROM_MASK GENMASK(2, 0) 34#define MT8188_SEL_IN_DP_INTF0_FROM_DSC_WRAP0C1_OUT (0 << 0) 35#define MT8188_SEL_IN_DP_INTF0_FROM_VPP_MERGE (1 << 0) 36#define MT8188_SEL_IN_DP_INTF0_FROM_DISP_DITHER0 (3 << 0) 37 38#define MT8188_VDO0_DISP_DITHER0_SEL_OUT 0xf58 39#define MT8188_SOUT_DISP_DITHER0_TO_MASK GENMASK(2, 0) 40#define MT8188_SOUT_DISP_DITHER0_TO_DSC_WRAP0_IN (0 << 0) 41#define MT8188_SOUT_DISP_DITHER0_TO_DSI0 (1 << 0) 42#define MT8188_SOUT_DISP_DITHER0_TO_VPP_MERGE0 (6 << 0) 43#define MT8188_SOUT_DISP_DITHER0_TO_DP_INTF0 (7 << 0) 44 45#define MT8188_VDO0_VPP_MERGE_SEL 0xf60 46#define MT8188_SEL_IN_VPP_MERGE_FROM_MASK GENMASK(1, 0) 47#define MT8188_SEL_IN_VPP_MERGE_FROM_DSC_WRAP0_OUT (0 << 0) 48#define MT8188_SEL_IN_VPP_MERGE_FROM_DITHER0_OUT (3 << 0) 49 50#define MT8188_SOUT_VPP_MERGE_TO_MASK GENMASK(6, 4) 51#define MT8188_SOUT_VPP_MERGE_TO_DSI1 (0 << 4) 52#define MT8188_SOUT_VPP_MERGE_TO_DP_INTF0 (1 << 4) 53#define MT8188_SOUT_VPP_MERGE_TO_SINA_VIRTUAL0 (2 << 4) 54#define MT8188_SOUT_VPP_MERGE_TO_DISP_WDMA1 (3 << 4) 55#define MT8188_SOUT_VPP_MERGE_TO_DSC_WRAP0_IN (4 << 4) 56#define MT8188_SOUT_VPP_MERGE_TO_DISP_WDMA0 (5 << 4) 57#define MT8188_SOUT_VPP_MERGE_TO_DSC_WRAP1_IN_MASK GENMASK(11, 11) 58#define MT8188_SOUT_VPP_MERGE_TO_DSC_WRAP1_IN (0 << 11) 59 60#define MT8188_VDO0_DSC_WARP_SEL 0xf64 61#define MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_MASK GENMASK(0, 0) 62#define MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_DISP_DITHER0 (0 << 0) 63#define MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_VPP_MERGE (1 << 0) 64#define MT8188_SOUT_DSC_WRAP0_OUT_TO_MASK GENMASK(19, 16) 65#define MT8188_SOUT_DSC_WRAP0_OUT_TO_DSI0 BIT(16) 66#define MT8188_SOUT_DSC_WRAP0_OUT_TO_SINB_VIRTUAL0 BIT(17) 67#define MT8188_SOUT_DSC_WRAP0_OUT_TO_VPP_MERGE BIT(18) 68#define MT8188_SOUT_DSC_WRAP0_OUT_TO_DISP_WDMA0 BIT(19) 69 70static const struct mtk_mmsys_routes mmsys_mt8188_routing_table[] = { 71 { 72 DDP_COMPONENT_OVL0, DDP_COMPONENT_RDMA0, 73 MT8188_VDO0_OVL_MOUT_EN, MT8188_MOUT_DISP_OVL0_TO_DISP_RDMA0, 74 MT8188_MOUT_DISP_OVL0_TO_DISP_RDMA0 75 }, { 76 DDP_COMPONENT_OVL0, DDP_COMPONENT_WDMA0, 77 MT8188_VDO0_OVL_MOUT_EN, MT8188_MOUT_DISP_OVL0_TO_DISP_WDMA0, 78 MT8188_MOUT_DISP_OVL0_TO_DISP_WDMA0 79 }, { 80 DDP_COMPONENT_OVL0, DDP_COMPONENT_RDMA0, 81 MT8188_VDO0_DISP_RDMA_SEL, MT8188_SEL_IN_DISP_RDMA0_FROM_MASK, 82 MT8188_SEL_IN_DISP_RDMA0_FROM_DISP_OVL0 83 }, { 84 DDP_COMPONENT_DITHER0, DDP_COMPONENT_DSI0, 85 MT8188_VDO0_DSI0_SEL_IN, MT8188_SEL_IN_DSI0_FROM_MASK, 86 MT8188_SEL_IN_DSI0_FROM_DISP_DITHER0 87 }, { 88 DDP_COMPONENT_DITHER0, DDP_COMPONENT_MERGE0, 89 MT8188_VDO0_VPP_MERGE_SEL, MT8188_SEL_IN_VPP_MERGE_FROM_MASK, 90 MT8188_SEL_IN_VPP_MERGE_FROM_DITHER0_OUT 91 }, { 92 DDP_COMPONENT_DITHER0, DDP_COMPONENT_DSC0, 93 MT8188_VDO0_DSC_WARP_SEL, 94 MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_MASK, 95 MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_DISP_DITHER0 96 }, { 97 DDP_COMPONENT_DITHER0, DDP_COMPONENT_DP_INTF0, 98 MT8188_VDO0_DP_INTF0_SEL_IN, MT8188_SEL_IN_DP_INTF0_FROM_MASK, 99 MT8188_SEL_IN_DP_INTF0_FROM_DISP_DITHER0 100 }, { 101 DDP_COMPONENT_DSC0, DDP_COMPONENT_MERGE0, 102 MT8188_VDO0_VPP_MERGE_SEL, MT8188_SEL_IN_VPP_MERGE_FROM_MASK, 103 MT8188_SEL_IN_VPP_MERGE_FROM_DSC_WRAP0_OUT 104 }, { 105 DDP_COMPONENT_DSC0, DDP_COMPONENT_DSI0, 106 MT8188_VDO0_DSI0_SEL_IN, MT8188_SEL_IN_DSI0_FROM_MASK, 107 MT8188_SEL_IN_DSI0_FROM_DSC_WRAP0_OUT 108 }, { 109 DDP_COMPONENT_RDMA0, DDP_COMPONENT_COLOR0, 110 MT8188_VDO0_DISP_RDMA_SEL, MT8188_SOUT_DISP_RDMA0_TO_MASK, 111 MT8188_SOUT_DISP_RDMA0_TO_DISP_COLOR0 112 }, { 113 DDP_COMPONENT_DITHER0, DDP_COMPONENT_DSI0, 114 MT8188_VDO0_DISP_DITHER0_SEL_OUT, 115 MT8188_SOUT_DISP_DITHER0_TO_MASK, 116 MT8188_SOUT_DISP_DITHER0_TO_DSI0 117 }, { 118 DDP_COMPONENT_DITHER0, DDP_COMPONENT_DP_INTF0, 119 MT8188_VDO0_DISP_DITHER0_SEL_OUT, 120 MT8188_SOUT_DISP_DITHER0_TO_MASK, 121 MT8188_SOUT_DISP_DITHER0_TO_DP_INTF0 122 }, { 123 DDP_COMPONENT_MERGE0, DDP_COMPONENT_DP_INTF0, 124 MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK, 125 MT8188_SOUT_VPP_MERGE_TO_DP_INTF0 126 }, { 127 DDP_COMPONENT_MERGE0, DDP_COMPONENT_DPI0, 128 MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK, 129 MT8188_SOUT_VPP_MERGE_TO_SINA_VIRTUAL0 130 }, { 131 DDP_COMPONENT_MERGE0, DDP_COMPONENT_WDMA0, 132 MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK, 133 MT8188_SOUT_VPP_MERGE_TO_DISP_WDMA0 134 }, { 135 DDP_COMPONENT_MERGE0, DDP_COMPONENT_DSC0, 136 MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK, 137 MT8188_SOUT_VPP_MERGE_TO_DSC_WRAP0_IN 138 }, { 139 DDP_COMPONENT_DSC0, DDP_COMPONENT_DSI0, 140 MT8188_VDO0_DSC_WARP_SEL, MT8188_SOUT_DSC_WRAP0_OUT_TO_MASK, 141 MT8188_SOUT_DSC_WRAP0_OUT_TO_DSI0 142 }, { 143 DDP_COMPONENT_DSC0, DDP_COMPONENT_MERGE0, 144 MT8188_VDO0_DSC_WARP_SEL, MT8188_SOUT_DSC_WRAP0_OUT_TO_MASK, 145 MT8188_SOUT_DSC_WRAP0_OUT_TO_VPP_MERGE 146 }, 147}; 148 149#endif /* __SOC_MEDIATEK_MT8188_MMSYS_H */ 150