⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s3c6400_display_con.h

📁 Samsung公司S3C6400芯片的BSP源码包
💻 H
字号:
#ifndef __S3C6400_DISPLAY_CON_H__
#define __S3C6400_DISPLAY_CON_H__

#if __cplusplus
extern "C"
{
#endif

#define MINIMUM_VCLK_FOR_TV	6000000

typedef enum
{
	DISP_DEV_LTS222QV_RGB,	// QVGA 240x320 2.2"
	DISP_DEV_LTV350QV_RGB,	// QVGA 320x240 3.5"
	DISP_DEV_LTE480WV_RGB, 	// WVGA 800x480 4.8"
	DISP_DEV_LTP700WV_RGB,	// WVGA 800x480 7"
	DISP_DEV_DUMMY
} DISP_OUT_DEV_TYPE;

typedef enum
{
	DISP_VIDOUT_RGBIF,
	DISP_VIDOUT_TVENCODER,
	DISP_VIDOUT_RGBIF_TVENCODER,
	DISP_VIDOUT_I80IF_LDI0,
	DISP_VIDOUT_I80IF_LDI1,
	DISP_VIDOUT_I80IF_LDI0_TVENCODER,
	DISP_VIDOUT_I80IF_LDI1_TVENCODER
} DISP_VIDOUT_MODE;

typedef enum
{
    DISP_16BIT_RGB565_P = 0,
    DISP_16BIT_RGB565_S,
    DISP_18BIT_RGB666_P,
    DISP_18BIT_RGB666_S,
    DISP_24BIT_RGB888_P,
    DISP_24BIT_RGB888_S,
} DISP_RGBIFOUT_MODE;

typedef enum
{
    DISP_WIN0_DMA,
    DISP_WIN0_POST_RGB,
    DISP_WIN0_POST_YUV,
    DISP_WIN1_DMA,
    DISP_WIN1_TVSCALER_RGB,
    DISP_WIN1_TVSCALER_YUV,
    DISP_WIN1_CIPREVIEW_RGB,
    DISP_WIN1_CIPREVIEW_YUV,
    DISP_WIN2_DMA,
    DISP_WIN2_TVSCALER_RGB,
    DISP_WIN2_TVSCALER_YUV,
    DISP_WIN2_CICODEC_RGB,
    DISP_WIN2_CICODEC_YUV,
    DISP_WIN3_DMA,
    DISP_WIN4_DMA
} DISP_WINDOW_MODE;

typedef enum
{
    DISP_WIN0,
    DISP_WIN1,
    DISP_WIN2,
    DISP_WIN3,
    DISP_WIN4
} DISP_WINDOW;

typedef enum
{
	DISP_1BPP = 0,
	DISP_2BPP,
	DISP_4BPP,
	DISP_8BPP_PAL,
	DISP_8BPP_NOPAL,
	DISP_16BPP_565	,
	DISP_16BPP_A555,
	DISP_16BPP_I555,
	DISP_18BPP_666,
	DISP_18BPP_A665,
	DISP_19BPP_A666,
	DISP_24BPP_888,
	DISP_24BPP_A887,
	DISP_25BPP_A888
} DISP_BPP_MODE;

typedef enum
{
    DISP_ALPHA_PER_PLANE,
    DISP_ALPHA_PER_PIXEL
} DISP_ALPHA_BLEND_METHOD;

typedef enum
{
    DISP_FG_MATCH_BG_DISPLAY,
    DISP_BG_MATCH_FG_DISPLAY
} DISP_COLOR_KEY_DIRECTION;

typedef enum
{
    DISP_ENVID_OFF,
    DISP_ENVID_ON,
    DISP_ENVID_DIRECT_OFF
} DISP_ENVID_ONOFF;

typedef enum
{
    DISP_WINDOW_OFF,
    DISP_WINDOW_ON
} DISP_WINDOW_ONOFF;

typedef enum
{
    DISP_DITHER_OFF,
    DISP_DITHER_565,
    DISP_DITHER_666,
    DISP_DITHER_888
} DISP_DITHER_MODE;

typedef enum
{
    DISP_FRMINT_BACKPORCH = 0,
    DISP_FRMINT_VSYNC,
    DISP_FRMINT_ACTIVE,
    DISP_FRMINT_FRONTPORCH
} DISP_FRAME_INTERRUPT;

typedef enum
{
    DISP_FIFO_WIN0 = 1<<5,
    DISP_FIFO_WIN1 = 1<<6,
    DISP_FIFO_WIN2 = 1<<9,
    DISP_FIFO_WIN3 = 1<<10,
    DISP_FIFO_WIN4 = 1<<11
} DISP_FIFO_INTERRUPT_WINDOW;

typedef enum
{
    DISP_FIFO_0_25 = 0,
    DISP_FIFO_0_50,
    DISP_FIFO_0_75,
    DISP_FIFO_EMPTY,
    DISP_FIFO_FULL
} DISP_FIFO_INTERRUPT_LEVEL;

typedef enum
{
    DISP_INT_NONE = 0,
    DISP_INT_FRAME = 1<<0,
    DISP_INT_FIFO = 1<<1,
    DISP_INT_I80 = 1<<2
} DISP_INTERRUPT;

typedef enum
{
    DISP_V_VSYNC = 0,
    DISP_V_BACKPORCH,
    DISP_V_ACTIVE,
    DISP_V_FRONTPORCH
} DISP_VERTICAL_STATUS;

typedef enum
{
    DISP_H_HSYNC = 0,
    DISP_H_BACKPORCH,
    DISP_H_ACTIVE,
    DISP_H_FRONTPORCH
} DISP_HORIZONTAL_STATUS;

typedef enum
{
	DISP_SUCCESS,
	DISP_ERROR_NULL_PARAMETER,
	DISP_ERROR_ILLEGAL_PARAMETER,
	DISP_ERROR_NOT_INITIALIZED,
	DISP_ERROR_NOT_IMPLEMENTED,
	DISP_ERROR_XXX
} DISP_ERROR;

DISP_ERROR Disp_initialize_register_address(void *pDispConReg, void *pMSMIFReg, void *pGPIOReg);
DISP_ERROR Disp_set_output_device_information(DISP_OUT_DEV_TYPE DevType);
DISP_ERROR Disp_initialize_output_interface(DISP_VIDOUT_MODE VidoutMode);
DISP_ERROR Disp_set_window_mode(DISP_WINDOW_MODE Mode, DISP_BPP_MODE BPPMode, unsigned int uiWidth, unsigned int uiHeight, unsigned int uiOffsetX, unsigned int uiOffsetY);
DISP_ERROR Disp_set_window_position(DISP_WINDOW Win, unsigned int uiOffsetX, unsigned int uiOffsetY);
DISP_ERROR Disp_set_framebuffer(DISP_WINDOW Win, unsigned int uiFrameBufferAddress);
DISP_ERROR Disp_envid_onoff(DISP_ENVID_ONOFF EnvidOnOff);
DISP_ERROR Disp_window_onfoff(DISP_WINDOW Win, DISP_WINDOW_ONOFF WinOnOff);
DISP_WINDOW_ONOFF Disp_get_window_status(DISP_WINDOW Win);
DISP_ERROR Disp_set_dithering_mode(DISP_DITHER_MODE Mode);

DISP_ERROR Disp_set_window_color_map(DISP_WINDOW Win, BOOL bOnOff, unsigned int uiColorValue);
DISP_ERROR Disp_set_color_key(DISP_WINDOW Win, BOOL bOnOff, DISP_COLOR_KEY_DIRECTION Direction, unsigned int uiColorKey, unsigned int uiComparekey);
DISP_ERROR Disp_set_alpha_blending(DISP_WINDOW Win, DISP_ALPHA_BLEND_METHOD Method, unsigned int uiAlphaSet0, unsigned int uiAlphaSet1);


DISP_ERROR Disp_set_frame_interrupt(DISP_FRAME_INTERRUPT FrameInt);
DISP_ERROR Disp_enable_frame_interrupt(void);
DISP_ERROR Disp_disable_frame_interrupt(void);

DISP_ERROR Disp_set_fifo_interrupt(DISP_WINDOW Win, DISP_FIFO_INTERRUPT_LEVEL Level);
DISP_ERROR Disp_enable_fifo_interrupt(void);
DISP_ERROR Disp_disable_fifo_interrupt(void);

DISP_INTERRUPT Disp_clear_interrupt_pending(void);

unsigned int Disp_get_line_count(void);
DISP_VERTICAL_STATUS Disp_get_vertical_status(void);
DISP_HORIZONTAL_STATUS Disp_get_horizontal_status(void);

static DISP_ERROR Disp_initialize_port_RGBIF(DISP_RGBIFOUT_MODE RGBOutMode);
static DISP_ERROR Disp_initialize_RGBIF(void);
static DISP_ERROR Disp_initialize_RGBIF_withTVEnc(void);
static DISP_ERROR Disp_initialize_TVEnc(void);
static DISP_ERROR Disp_window0_initialize(DISP_WINDOW_MODE Mode, DISP_BPP_MODE BPPMode, unsigned int uiWidth, unsigned int uiHeight, unsigned int uiOffsetX, unsigned int uiOffsetY);
static DISP_ERROR Disp_window1_initialize(DISP_WINDOW_MODE Mode, DISP_BPP_MODE BPPMode, unsigned int uiWidth, unsigned int uiHeight, unsigned int uiOffsetX, unsigned int uiOffsetY);
static DISP_ERROR Disp_window2_initialize(DISP_WINDOW_MODE Mode, DISP_BPP_MODE BPPMode, unsigned int uiWidth, unsigned int uiHeight, unsigned int uiOffsetX, unsigned int uiOffsetY);
static DISP_ERROR Disp_window3_initialize(DISP_WINDOW_MODE Mode, DISP_BPP_MODE BPPMode, unsigned int uiWidth, unsigned int uiHeight, unsigned int uiOffsetX, unsigned int uiOffsetY);
static DISP_ERROR Disp_window4_initialize(DISP_WINDOW_MODE Mode, DISP_BPP_MODE BPPMode, unsigned int uiWidth, unsigned int uiHeight, unsigned int uiOffsetX, unsigned int uiOffsetY);
static BOOL Disp_get_vclk_direction_divider(unsigned int CLKSrc, unsigned int *ClkDir, unsigned int *ClkDiv);
static BOOL Disp_get_vclk_direction_divider_forTVEnc(unsigned int CLKSrc, unsigned int *ClkDir, unsigned int *ClkDiv);

#if __cplusplus
}
#endif

#endif	// __S3C6400_DISPLAY_CON_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -