/******************************************************************************/ /** * * @file drv_dpy.h * * @brief This file specifies the APIs provided to control DPY(Display) * * @note Copyright (c) 2013 S2 Technology Co., Ltd. \n * All rights reserved. * * @author * ******************************************************************************/ #ifndef __DRV_DPY_H__ #define __DRV_DPY_H__ /******************************************************************************* * Header include ******************************************************************************/ #include "drv_types.h" typedef enum _DRV_DPY_RESET_TYPE { eDPY_RESET_TYPE_FIFO = 0, eDPY_RESET_TYPE_STATUS, eDPY_RESET_TYPE_PANEL_TIMING, } DRV_DPY_RESET_TYPE; typedef enum _DRV_DPY_WINDOW_DIRECTION { eDPY_WINDOW_DIRECTION_HORIZONTAL = 0, eDPY_WINDOW_DIRECTION_VERTICAL, } DRV_DPY_WINDOW_DIRECTION; typedef enum _DRV_DPY_DITHER { eDPY_DITHER_12_BITS_TO_12_BITS = 0, eDPY_DITHER_12_BITS_TO_10_BITS = 1, eDPY_DITHER_12_BITS_TO_9_BITS = 2, eDPY_DITHER_12_BITS_TO_8_BITS = 3, } DRV_DPY_DITHER; typedef enum _DRV_DPY_FRAME_LOCK_WITH_NEXT_FRAME_METHOD { eDPY_FRAME_LOCK_WITH_NEXT_FRAME_METHOD_ANY_TIME = 0, eDPY_FRAME_LOCK_WITH_NEXT_FRAME_METHOD_END_OF_LINE = 1, } DRV_DPY_FRAME_LOCK_WITH_NEXT_FRAME_METHOD; typedef enum _DRV_DPY_FRAME_LOCK_MODE { eDPY_FRAME_LOCK_MODE_OFF = 0, eDPY_FRAME_LOCK_MODE_60HZ, eDPY_FRAME_LOCK_MODE_50HZ, eDPY_FRAME_LOCK_MODE_48HZ, } DRV_DPY_FRAME_LOCK_MODE; typedef enum _DRV_DPY_LVDS_CHANNEL_MODE { eDPY_LVDS_CHANNEL_MODE_SINGLE = 0, eDPY_LVDS_CHANNEL_MODE_DUAL = 1, } DRV_DPY_LVDS_CHANNEL_MODE; typedef enum _DRV_DPY_COLOR_LOOK_UP_TABLE_POSITION { eDPY_COLOR_LOOK_UP_TABLE_POSITION_BEFORE_CONTRAST = 0, eDPY_COLOR_LOOK_UP_TABLE_POSITION_AFTER_CONTRAST = 1, } DRV_DPY_COLOR_LOOK_UP_TABLE_POSITION; typedef enum _DRV_DPY_PATTERN_COLOR_SPACE { eDPY_PATTERN_COLOR_SPACE_RGB = 0, eDPY_PATTERN_COLOR_SPACE_YCC_R609 = 1, eDPY_PATTERN_COLOR_SPACE_YPP_R701 = 2, } DRV_DPY_PATTERN_COLOR_SPACE; typedef struct _DRV_DPY_OUTPUT_PANEL_WINDOW { UINT32 HTotal; UINT32 VTotal; UINT32 HStart; UINT32 HEnd; UINT32 VStart; UINT32 VEnd; UINT8 HSyncStart; UINT8 HSyncEnd; UINT8 VSyncStart; UINT8 VSyncEnd; } DRV_DPY_OUTPUT_PANEL_WINDOW; typedef enum{ DISPLAY_WINDOW, //only transfer color format from RGB to YUV for display window DISPLAY_AND_PANEL, //transfer color format from RGB to YUV for display and panel window }DRV_DPY_MATRIX_TYPE; void DRV_DPY_Reset(DRV_DPY_RESET_TYPE eType, BOOL fEnable); void DRV_DPY_EnableOutput(BOOL fEnable); void DRV_DPY_Enable(BOOL fEnable); #if (CONFIG_CHIPID == 0x330) void DRV_DPY_SetDisplayWindow(DRV_DPY_WINDOW_DIRECTION eDirection, UINT16 Start, UINT16 End); void DRV_DPY_GetDisplayWindow(DRV_DPY_WINDOW_DIRECTION eDirection, UINT16 *pStart, UINT16 *pEnd); #else void DRV_DPY_SetDisplayWindow(UINT16 HStart, UINT16 HEnd, UINT16 VStart, UINT16 VEnd); #endif void DRV_DPY_SetDither(DRV_DPY_DITHER eSelect); void DRV_DPY_EnableHistory(BOOL fEnable); void DRV_DPY_SetHistoryWindow(DRV_DPY_WINDOW_DIRECTION eDirection, UINT16 Start, UINT16 End); void DRV_DPY_GetHistoryWindow(DRV_DPY_WINDOW_DIRECTION eDirection, UINT16 *pStart, UINT16 *pEnd); void DRV_DPY_EnableFrameLockMode(BOOL fEnable); BOOL DRV_DPY_IsFrameLockModeEnabled(void); void DRV_DPY_SetFrameLockWithNextFrameMethod(DRV_DPY_FRAME_LOCK_WITH_NEXT_FRAME_METHOD eMethod); void DRV_DPY_SetFrameLockMode(DRV_DPY_FRAME_LOCK_MODE eFrameLockMode, UINT16 InputFrameRate, BOOL fDoubleOutputFrameRate); void DRV_DPY_SetFrameLockRate(UINT8 Value); UINT8 DRV_DPY_GetFrameLockRate(void); void DRV_DPY_SetPanelWindow(DRV_DPY_OUTPUT_PANEL_WINDOW *pWindow); void DRV_DPY_GetPanelWindow(DRV_DPY_OUTPUT_PANEL_WINDOW *pWindow); void DRV_DPY_SetOutputPanelHVTotal(DRV_DPY_WINDOW_DIRECTION eDirection, UINT32 Value); void DRV_DPY_SetLVDSChannelMode(DRV_DPY_LVDS_CHANNEL_MODE eMode); DRV_DPY_LVDS_CHANNEL_MODE DRV_DPY_GetLVDSChannelMode(void); void DRV_DPY_SetColorLookUpTablePosition(DRV_DPY_COLOR_LOOK_UP_TABLE_POSITION ePosition); void DRV_DPY_SetDataPipeDelay(UINT8 PixelClockCycleTime); UINT8 DRV_DPY_GetDataPipeDelay(void); void DRV_DPY_SetInterruptLineCount(UINT16 Value); void DRV_DPY_EnablePipPattern(BOOL fEnable); void DRV_DPY_SetPipPatternColorSpace(DRV_DPY_PATTERN_COLOR_SPACE eColorSpace); void DRV_DPY_SetPanelWindowColor(UINT8 Red, UINT8 Green, UINT8 Blue); void DRV_DPY_SetPanelWindowColor_Bypass(UINT8 Red, UINT8 Green, UINT8 Blue); void DRV_DPY_GetPanelWindowColor(UINT8 *Red, UINT8 *Green, UINT8 *Blue); void DRV_DPY_SetPipYppPattern(UINT8 Y, UINT8 Pb, UINT8 Pr); void DRV_DPY_EnableMatrixPattern(UINT8 wG, UINT8 wB, UINT8 wR); void DRV_DPY_DisableMatrixPattern(BOOL fBypassYUV2RGB); void DRV_DPY_SetPatternColorYCbCr(UINT8 Y, UINT8 Cb, UINT8 Cr); void DRV_DPY_EnableBorder(UINT8 InWidth, UINT8 Red, UINT8 Green, UINT8 Blue); void DRV_DPY_DisableBorder(void); void DRV_DPY_EnableDigestBorder(BOOL fEn); BOOL DRV_DPY_IsDigestBorderEnabled(void); #ifdef CONFIG_ENABLE_MIR void DRV_DPY_SelectDPYMatrixWindow(DRV_DPY_MATRIX_TYPE eMatrixType); void DRV_DPY_SetPanelWindowColorIsYUV(UINT8 Red, UINT8 Green, UINT8 Blue, BOOL fConvertToYUV); #endif #ifdef CONFIG_SUPPORT_3D_EN void DRV_DPY_Set2Dto3DWindow(UINT16 HStart, UINT16 VStart); #endif #endif