/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (c) 2019 MediaTek Inc. */ #ifndef _H_DDP_HAL_ #define _H_DDP_HAL_ /* DISP Mutex */ #define DISP_MUTEX_TOTAL (10) #define DISP_MUTEX_DDP_FIRST (0) /* modify from 4 to 3, cause 4 is used for OVL0/OVL1 SW trigger */ #define DISP_MUTEX_DDP_LAST (3) #define DISP_MUTEX_DDP_COUNT (DISP_MUTEX_DDP_LAST - DISP_MUTEX_DDP_FIRST + 1) #define DISP_MUTEX_MDP_FIRST (DISP_MUTEX_DDP_LAST + 1) #define DISP_MUTEX_MDP_COUNT (3) #define __DISP_MUTEX_INT_MSK ((1 << (DISP_MUTEX_DDP_COUNT)) - 1) #define DISP_MUTEX_INT_MSK \ ((__DISP_MUTEX_INT_MSK << DISP_MUTEX_TOTAL) | __DISP_MUTEX_INT_MSK) /* DISP MODULE */ enum DISP_MODULE_ENUM { DISP_MODULE_OVL0 = 0, /* must start from 0 */ DISP_MODULE_OVL0_2L, DISP_MODULE_OVL1_2L, DISP_MODULE_RDMA0, DISP_MODULE_RDMA1, DISP_MODULE_WDMA0, DISP_MODULE_WDMA_VIRTUAL0, DISP_MODULE_WDMA_VIRTUAL1, DISP_MODULE_COLOR0, DISP_MODULE_CCORR0, DISP_MODULE_AAL0, /* 10 */ DISP_MODULE_GAMMA0, DISP_MODULE_DITHER0, DISP_MODULE_DSI0, DISP_MODULE_DSI1, DISP_MODULE_DSIDUAL, DISP_MODULE_PWM0, DISP_MODULE_CONFIG, DISP_MODULE_MUTEX, DISP_MODULE_SMI_COMMON, DISP_MODULE_SMI_LARB0, /* 20 */ DISP_MODULE_SMI_LARB1, DISP_MODULE_MIPI0, DISP_MODULE_MIPI1, DISP_MODULE_RSZ0, DISP_MODULE_RSZ0_VIRT0, DISP_MODULE_RSZ0_VIRT1, DISP_MODULE_DPI, DISP_MODULE_UNKNOWN, DISP_MODULE_NUM }; /* DISP MODULE */ enum DISP_MODULE_TYPE_ENUM { DISP_T_OVL = 0, /* must start from 0 */ DISP_T_RSZ, DISP_T_RDMA, DISP_T_WDMA, DISP_T_COLOR, DISP_T_CCORR, /* 5 */ DISP_T_AAL, DISP_T_GAMMA, DISP_T_DITHER, DISP_T_SPLIT, DISP_T_DSI, /* 10 */ DISP_T_PWM, DISP_T_DPI, DISP_T_UNKNOWN, DISP_T_NUM, }; enum dst_module_type { DST_MOD_REAL_TIME, DST_MOD_WDMA, }; enum DISP_SLOT_ENUM { DISP_SLOT_IS_DC, DISP_SLOT_OVL0_BW, DISP_SLOT_OVL0_2L_BW, DISP_SLOT_RDMA0_BW, DISP_SLOT_WDMA0_BW, DISP_SLOT_NUM, }; enum OVL_LAYER_SOURCE { OVL_LAYER_SOURCE_MEM = 0, OVL_LAYER_SOURCE_RESERVED = 1, OVL_LAYER_SOURCE_SCL = 2, OVL_LAYER_SOURCE_PQ = 3, }; enum OVL_LAYER_SECURE_MODE { OVL_LAYER_NORMAL_BUFFER = 0, OVL_LAYER_SECURE_BUFFER = 1, OVL_LAYER_PROTECTED_BUFFER = 2 }; enum CMDQ_SWITCH { CMDQ_DISABLE = 0, CMDQ_ENABLE }; enum CMDQ_STATE { CMDQ_WAIT_LCM_TE, CMDQ_BEFORE_STREAM_SOF, CMDQ_WAIT_STREAM_EOF_EVENT, CMDQ_CHECK_IDLE_AFTER_STREAM_EOF, CMDQ_AFTER_STREAM_EOF, CMDQ_ESD_CHECK_READ, CMDQ_ESD_CHECK_CMP, CMDQ_ESD_ALLC_SLOT, CMDQ_ESD_FREE_SLOT, CMDQ_STOP_VDO_MODE, CMDQ_START_VDO_MODE, CMDQ_DSI_RESET, CMDQ_AFTER_STREAM_SOF, CMDQ_DSI_LFR_MODE, CMDQ_RESET_AFTER_STREAM_EOF, }; enum DDP_IRQ_LEVEL { DDP_IRQ_LEVEL_ALL = 0, DDP_IRQ_LEVEL_NONE, DDP_IRQ_LEVEL_ERROR }; #endif