158 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			158 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
/**
 | 
						|
    @file       dispcomn.h
 | 
						|
    @ingroup    mISYSDisp
 | 
						|
 | 
						|
    @brief      Header file for Display control General Common Definitions
 | 
						|
				This file is the header file that define the API and data type
 | 
						|
				for Display control object
 | 
						|
    @note       Nothing.
 | 
						|
 | 
						|
    Copyright   Novatek Microelectronics Corp. 2011.  All rights reserved.
 | 
						|
*/
 | 
						|
 | 
						|
/** \addtogroup  mISYSDisp*/
 | 
						|
//@{
 | 
						|
 | 
						|
#ifndef _DISPCOMN_H
 | 
						|
#define _DISPCOMN_H
 | 
						|
 | 
						|
#if defined __KERNEL__
 | 
						|
#include "kwrap/type.h"
 | 
						|
#elif defined __FREERTOS
 | 
						|
#include "kwrap/type.h"
 | 
						|
#else
 | 
						|
#include "Type.h"
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
    Display Object ID
 | 
						|
 | 
						|
    The Display Object ID used in disp_get_display_object() to get the specified display object.
 | 
						|
*/
 | 
						|
typedef enum {
 | 
						|
	DISP_1,     ///< Display ID 1. In the NT98520, this is used to specify IDE1.
 | 
						|
	DISP_2,     ///< This is no use in NT98520.
 | 
						|
 | 
						|
	DISP_MAX = DISP_2,
 | 
						|
	ENUM_DUMMY4WORD(DISP_ID)
 | 
						|
} DISP_ID;
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
    Display Layer Selection ID
 | 
						|
 | 
						|
    This definition is used as the first operand in the disp_lyr_ctrl API to specify which of the display layer would be controlled.
 | 
						|
*/
 | 
						|
typedef enum {
 | 
						|
	DISPLAYER_OSD1 = 0x02,                  ///< select display layer osd 1
 | 
						|
	DISPLAYER_OSD2 = 0x04,                  ///< not support
 | 
						|
	DISPLAYER_VDO1 = 0x08,                  ///< select display layer video 1
 | 
						|
	DISPLAYER_VDO2 = 0x10,                  ///< select display layer video 2
 | 
						|
	DISPLAYER_FD   = 0x20,                  ///< select display layer FD
 | 
						|
	DISPLAYER_MASK = 0x3A,                  ///< Valid display layer selection mask
 | 
						|
 | 
						|
	ENUM_DUMMY4WORD(DISPLAYER)
 | 
						|
} DISPLAYER;
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
    @name Display/Layer Ability Definition Group
 | 
						|
 | 
						|
    These definitions are used in the function get_disp_cap of the display object to get the display object capabilities.
 | 
						|
*/
 | 
						|
//@{
 | 
						|
 | 
						|
/**
 | 
						|
    Display Object Ability Definition
 | 
						|
 | 
						|
    These bit fields are used in DISP_CAP to specified the general abilities of each display object.
 | 
						|
    Such as whether the display supporting CSB/SubPixel/Dithering/ICST/TV_OUT/HDMI_OUT ... or not.
 | 
						|
*/
 | 
						|
typedef enum {
 | 
						|
	//DISPABI_DRAM_DIRECT     = 0x40000000,   ///< The display engine supports direct DRAM input and output to panel interface bus.
 | 
						|
 | 
						|
	DISPABI_SUBPIXEL        = 0x00000001,   ///< The display engine supports SubPixel functionality.
 | 
						|
	DISPABI_CSB             = 0x00000002,   ///< The display engine supports Contrast/Saturation/Brightness adjustment.
 | 
						|
	DISPABI_GAMMA           = 0x00000004,   ///< The display engine supports Y Gamma adjustment.
 | 
						|
	DISPABI_HLPF            = 0x00000008,   ///< The display engine supports Horizontal Low Pass filtering.
 | 
						|
	DISPABI_DITHER          = 0x00000010,   ///< The display engine supports Dithering functionality.
 | 
						|
	DISPABI_ICST            = 0x00000020,   ///< The display engine supports Inverse color Space Transform from YUV to RGB.
 | 
						|
	DISPABI_CC              = 0x00000040,   ///< The display engine supports color control.
 | 
						|
	DISPABI_RGBGAMMA        = 0x00000080,   ///< The display engine supports  RGB Gamma adjustment.
 | 
						|
	DISPABI_FD              = 0x00000100,   ///< The display engine supports FD rect.
 | 
						|
 | 
						|
	DISPABI_TVOUT           = 0x00010000,   ///< The display engine supports interface TV NTSC/PAL out.
 | 
						|
	DISPABI_MIOUT           = 0x00020000,   ///< The display engine supports interface Memory Interface out.
 | 
						|
	DISPABI_HDMIOUT         = 0x00040000,   ///< The display engine supports interface HDMI output.
 | 
						|
	DISPABI_RGBSEROUT8      = 0x00080000,   ///< The display engine supports interface RGB Serial 8bits out.
 | 
						|
	DISPABI_RGBPARALLEL     = 0x00100000,   ///< The display engine supports interface RGB Parallel out.
 | 
						|
	DISPABI_YUVSEROUT8      = 0x00200000,   ///< The display engine supports interface YUV Serial 8bits out.
 | 
						|
	DISPABI_CCIR601OUT8     = 0x00400000,   ///< The display engine supports interface CCIR601 8bits out.
 | 
						|
	DISPABI_CCIR656OUT8     = 0x00800000,   ///< The display engine supports interface CCIR656 8bits out.
 | 
						|
	DISPABI_CCIR601OUT16    = 0x01000000,   ///< The display engine supports interface CCIR601 16bits out.
 | 
						|
	DISPABI_CCIR656OUT16    = 0x02000000,   ///< The display engine supports interface CCIR656 16bits out.
 | 
						|
	DISPABI_MIPIDSI         = 0x04000000,   ///< The display engine supports interface MIPI DSI out.
 | 
						|
	DISPABI_RGBDELTA16      = 0x08000000,   ///< The display engine supports interface RGB Delta 16bits out.
 | 
						|
 | 
						|
	ENUM_DUMMY4WORD(DISP_ABI)
 | 
						|
} DISP_ABI;
 | 
						|
 | 
						|
/**
 | 
						|
    Display Layer Ability Definition
 | 
						|
 | 
						|
    These bit fields are used in DISP_CAP to specified the abilities of each display layer.
 | 
						|
    Such as whether the display layer supporting YUV444/YUV422/YUV420/Palette8/ARGB8565 ... formats.
 | 
						|
*/
 | 
						|
typedef enum {
 | 
						|
	DISPLYR_EXIST       = 0x40000000,   ///< This display layer is existed.
 | 
						|
 | 
						|
	DISPLYR_YUV444      = 0x00000001,   ///< This display layer suppors Buffer format YUV444.
 | 
						|
	DISPLYR_YUV422      = 0x00000002,   ///< This display layer suppors Buffer format YUV422.
 | 
						|
	DISPLYR_YUV420      = 0x00000004,   ///< This display layer suppors Buffer format YUV420.
 | 
						|
 | 
						|
	DISPLYR_ARGB8565    = 0x00000010,   ///< This display layer suppors Buffer format ARGB8565.
 | 
						|
	DISPLYR_ARGB4565    = 0x00000020,   ///< This display layer suppors Buffer format ARGB4565.
 | 
						|
	DISPLYR_RGB888PACK  = 0x00000040,   ///< This display layer suppors Buffer format RGB888 Packed.
 | 
						|
 | 
						|
	DISPLYR_PALE1       = 0x00000100,   ///< This display layer suppors Buffer format 1bit Palette.
 | 
						|
	DISPLYR_PALE2       = 0x00000200,   ///< This display layer suppors Buffer format 2bit Palette.
 | 
						|
	DISPLYR_PALE4       = 0x00000400,   ///< This display layer suppors Buffer format 4bit Palette.
 | 
						|
	DISPLYR_PALE8       = 0x00000800,   ///< This display layer suppors Buffer format 8bit Palette.
 | 
						|
 | 
						|
	DISPLYR_YUV422PACK  = 0x00001000,   ///< This display layer suppors Buffer format YUV422 UVPACK.
 | 
						|
	DISPLYR_YUV420PACK  = 0x00002000,   ///< This display layer suppors Buffer format YUV420 UVPACK.
 | 
						|
 | 
						|
	ENUM_DUMMY4WORD(DISP_LAYER_ABI)
 | 
						|
} DISP_LAYER_ABI;
 | 
						|
 | 
						|
/**
 | 
						|
    Display Capability Structure
 | 
						|
 | 
						|
    This structure is used to describe the display capabilities such as display engine abilities
 | 
						|
    and the abilities for each of the display layer.
 | 
						|
*/
 | 
						|
typedef struct {
 | 
						|
	DISP_ABI        display_abi;         ///< This field describes the general abilities of display engine. Please refer to the enumeration type of DISP_ABI.
 | 
						|
 | 
						|
	DISP_LAYER_ABI  video1_abi;          ///< This field describes the abilities of VIDEO-1 layer. Please refer to the enumeration type of DISP_LAYER_ABI.
 | 
						|
	DISP_LAYER_ABI  video2_abi;          ///< This field describes the abilities of VIDEO-2 layer. Please refer to the enumeration type of DISP_LAYER_ABI.
 | 
						|
	DISP_LAYER_ABI  osd1_abi;            ///< This field describes the abilities of OSD-1 layer. Please refer to the enumeration type of DISP_LAYER_ABI.
 | 
						|
	DISP_LAYER_ABI  osd2_abi;            ///< This field describes the abilities of OSD-2 layer. Please refer to the enumeration type of DISP_LAYER_ABI.
 | 
						|
 | 
						|
} DISP_CAP, *PDISP_CAP;
 | 
						|
//@}
 | 
						|
 | 
						|
 | 
						|
#define DISPCMDBASE_DISPCTRL    0x01000000
 | 
						|
#define DISPCMDBASE_DISPLYR     0x02000000
 | 
						|
#define DISPCMDBASE_DISPDEV     0x04000000
 | 
						|
#define DISPCMDBASE_IOCTRL      0x08000000
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#endif
 | 
						|
//@}
 |