765 lines
		
	
	
		
			33 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			765 lines
		
	
	
		
			33 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /**
 | |
|     @file       dispdevctrl.h
 | |
|     @ingroup    mISYSDisp
 | |
| 
 | |
|     @brief      Header file for Display Device control
 | |
| 				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 _DEVCTRL_H
 | |
| #define _DEVCTRL_H
 | |
| 
 | |
| #if defined __KERNEL__
 | |
| #include "comm/sif_api.h"
 | |
| #include "hdmitx.h"
 | |
| #elif defined __FREERTOS
 | |
| #include "comm/sif_api.h"
 | |
| #include "hdmitx.h"
 | |
| #else
 | |
| #include "sif.h"
 | |
| #include "hdmitx.h"
 | |
| #include "top.h"
 | |
| #endif
 | |
| #include "dispcomn.h"
 | |
| 
 | |
| /**
 | |
|     @name Display Device Control Group
 | |
| 
 | |
|     These definitions are used for display control API (DISP_OBJ.dev_ctrl) as the display device control portal.
 | |
|     The display device such as TV_PAL/TV_NTSC/HDMI/panel are controlled by this API.
 | |
| */
 | |
| //@{
 | |
| 
 | |
| /**
 | |
|     Display Device rotation ID definition
 | |
| 
 | |
|     This definition is used for the OP Code: "DISPDEV_SET_ROTATE" in the dev_ctrl API to specify
 | |
|     the display device rotation configuration.
 | |
| */
 | |
| typedef enum {
 | |
| 	DISPDEV_LCD_ROTATE_NONE,    ///< Config panel Register to Set LCD None of rotation.
 | |
| 	DISPDEV_LCD_ROTATE_180,     ///< Config panel Register to Set LCD rotation 180 degrees.
 | |
| 
 | |
| 	ENUM_DUMMY4WORD(DISPDEV_LCD_ROTATE)
 | |
| } DISPDEV_LCD_ROTATE;
 | |
| 
 | |
| /**
 | |
|     Project Releated display device specific control
 | |
| 
 | |
|     This stucture is used to store project Releated display device specific control,
 | |
|     such as display backlight / power control.
 | |
| */
 | |
| typedef struct {
 | |
| 	ER(*DISPDEVBLCTRL)(UINT32 ui_param);                           ///< The Callback prototype for the LCD backlight control
 | |
| 	ER(*DISPDEVPWRCTRL)(UINT32 ui_param);                          ///< The Callback prototype for the LCD Power control
 | |
| 	ER(*DISPDEVUSERCTRL)(UINT32 ui_param);                          ///< The Callback prototype for the LCD user control
 | |
| 
 | |
| } DISPDEV_SPECIFIC_CTRL, *PDISPDEV_SPECIFIC_CTRL;
 | |
| 
 | |
| /**
 | |
|     Display Device ID definition
 | |
| 
 | |
|     This definition is used for the OP Code: "DISPDEV_OPEN_DEVICE"/"HOOK_DEVICE_OBJECT" in the dev_ctrl API to specify
 | |
|     which of the display device would be controlled.
 | |
| */
 | |
| typedef enum {
 | |
| 	DISPDEV_ID_TVNTSC,      ///< select display device: TV NTSC
 | |
| 	DISPDEV_ID_TVPAL,       ///< select display device: TV PAL
 | |
| 	DISPDEV_ID_TVHDMI,      ///< select display device: TV HDMI
 | |
| 	DISPDEV_ID_PANEL,       ///< select display device: panel
 | |
| 	DISPDEV_ID_MIPIDSI,     ///< select display device: MIPI DSI
 | |
| 
 | |
| 	DISPDEV_ID_MAX,
 | |
| 	DISPDEV_ID_NULL,        // Default value is none of display device
 | |
| 	ENUM_DUMMY4WORD(DISPDEV_ID)
 | |
| } DISPDEV_ID;
 | |
| 
 | |
| 
 | |
| /**
 | |
|     Project Releated display device pre get size before open.
 | |
| 
 | |
|     This stucture is used to get display device pre get size before open.
 | |
| */
 | |
| typedef struct {
 | |
| 	DISPDEV_ID              ui_dev;
 | |
| 	UINT32                  ui_buf_width;
 | |
| 	UINT32                  ui_buf_height;
 | |
| 	UINT32                  ui_win_width;
 | |
| 	UINT32                  ui_win_height;
 | |
| } DISPDEV_GET_PRESIZE, *PDISPDEV_GET_PRESIZE;
 | |
| 
 | |
| 
 | |
| /**
 | |
|     Display Device Object Structure
 | |
| 
 | |
|     This field is the display device object structure which is used to open/close display device
 | |
|     and also provides the interface to access the display device registers.
 | |
|     This structure is used by the DISPLAY Object driver in the driver design. Normal user should not access the
 | |
|     display device by the device object directly.
 | |
| */
 | |
| typedef struct {
 | |
| 	ER(*open)(void);                                                ///< Open the display device
 | |
| 	ER(*close)(void);                                               ///< Close the display device
 | |
| 	ER(*rotate)(DISPDEV_LCD_ROTATE rot);                            ///< select rotation from the display device
 | |
| 
 | |
| 	void (*reg_write)(UINT32 ui_ofs, UINT32 ui_val);                   ///< Display Device register WRITE
 | |
| 	UINT32(*reg_read)(UINT32 ui_ofs);                                 ///< Display Device register READ
 | |
| 
 | |
| 	ER(*get_pre_size)(DISPDEV_GET_PRESIZE *ui_size);                       ///< Get the display buffer size before open
 | |
| 
 | |
| 	void (*set_dev_io_ctrl)(FP);                                       ///< Set Display Device IOCTRL API.
 | |
| 	DISPDEV_SPECIFIC_CTRL   specific_ctrl;                           ///< Device specific control, such as backlight/power pin control.
 | |
| } DISPDEV_OBJ, *PDISPDEV_OBJ;
 | |
| 
 | |
| 
 | |
| /**
 | |
|     Display Device control operation ID definition
 | |
| 
 | |
|     This field is used as the first operand in the dev_ctrl API of the display object to specify
 | |
|     which of the display device control operation would be performed.
 | |
| */
 | |
| typedef enum {
 | |
| 	/* SET control group */
 | |
| 	DISPDEV_OPEN_DEVICE = DISPCMDBASE_DISPDEV,  ///< Open spcified display device.
 | |
| 	DISPDEV_CLOSE_DEVICE,                       ///< Close current display active device.
 | |
| 	DISPDEV_HOOK_DEVICE_OBJECT,                 ///< Hook panel object to display control object.
 | |
| 	DISPDEV_HOOK_PANEL_ADJUST,                  ///< Hook panel adjustment callback when panel opened.
 | |
| 	DISPDEV_SET_TVADJUST,                       ///< Specify the TV parameter with matched external resistance value.
 | |
| 	DISPDEV_SET_REG_IF,                         ///< Set    display Device(panel) Register Access Interface.
 | |
| 	DISPDEV_REG_WRITE,                          ///< Write  display Device(panel) Register.
 | |
| 	DISPDEV_SET_HDMIMODE,                       ///< Change the HDMI Audio/Video mode.
 | |
| 	DISPDEV_SET_ROTATE,                         ///< Set display Device rotation.
 | |
| 	DISPDEV_SET_PANEL_BACKLIGHT,                ///< Set the panel's backlight level.
 | |
| 	DISPDEV_SET_PANEL_POWER,                    ///< Set the panel's power level.
 | |
| 	DISPDEV_SET_LCDMODE,                        ///< Change the panel's mode
 | |
| 	DISPDEV_SET_POWERDOWN,                      ///< Set Powerdown
 | |
| 	DISPDEV_SET_TVPAR,                          ///< Set TV's parameter
 | |
| 	DISPDEV_SET_OUTPUT_DRAM,                    ///< Set ide data output to dram(only available in IDE1 with VDO2 disable)
 | |
| 	DISPDEV_SET_TVFULL,                         ///< Set TV full screen
 | |
| 	DISPDEV_SET_LOGOMODE,                       ///< Set LOGO MODE
 | |
| 
 | |
| 	/* GET control group */
 | |
| 	DISPDEV_GET_ACT_DEVICE,                     ///< Get current active device. (panel/TV/HDMI)
 | |
| 	DISPDEV_GET_DISPSIZE,                       ///< Get display device optimal buffer/window size.
 | |
| 	DISPDEV_GET_PANEL_ADJUST,                   ///< Get the panel adjustment callback.
 | |
| 	DISPDEV_GET_TVADJUST,                       ///< Get the current TV adjustment configurations.
 | |
| 	DISPDEV_GET_REG_IF,                         ///< Get display Device(panel) Register Access Interface.
 | |
| 	DISPDEV_REG_READ,                           ///< Read display Device(panel) Register.
 | |
| 	DISPDEV_GET_HDMIMODE,                       ///< Get the HDMI Audio/Video mode
 | |
| 	DISPDEV_GET_PANEL_BACKLIGHT,                ///< Get the panel's backlight level.
 | |
| 	DISPDEV_GET_PANEL_POWER,                    ///< Get the panel's power level.
 | |
| 	DISPDEV_GET_PREDISPSIZE,                    ///< Pre Get display device optimal buffer/window size before open device.
 | |
| 	DISPDEV_GET_LCDMODE,
 | |
| 	DISPDEV_GET_POWERDOWN,                      ///< Get Powerdown
 | |
| 	DISPDEV_GET_TVPAR,                          ///< Get TV's parameter
 | |
| 	DISPDEV_GET_LOGOMODE,                       ///< Get LOGO MODE
 | |
| 
 | |
| 	ENUM_DUMMY4WORD(DISPDEV_OP)
 | |
| } DISPDEV_OP;
 | |
| 
 | |
| /**
 | |
|     TV NTSC/PAL adjustment resistor value
 | |
| 
 | |
|     This field specifies the external HW resistor value in the TV output path.
 | |
|     This would change the TV internal parameters. This field is used for the OP code "DISPDEV_SET_TVADJUST" of the dev_ctrl API.
 | |
| */
 | |
| typedef enum {
 | |
| 	DISPDEV_TVADJUST_3_6_K,     ///< TV use resistor 3.6K as loading
 | |
| 	DISPDEV_TVADJUST_3_3_K,     ///< TV use resistor 3.3K as loading
 | |
| 	DISPDEV_TVADJUST_3_0_K,     ///< TV use resistor 3.0K as loading
 | |
| 
 | |
| 	DISPDEV_TVADJUST_TOTAL,
 | |
| 	DISPDEV_TVADJUST_DEFAULT = DISPDEV_TVADJUST_3_3_K, ///< Default optimal resistor value
 | |
| 	ENUM_DUMMY4WORD(DISPDEV_TVADJUST)
 | |
| } DISPDEV_TVADJUST;
 | |
| 
 | |
| /**
 | |
|     LCD Control Interface Selection
 | |
| 
 | |
|     This field is used for the OP code "DISPDEV_SET_REG_IF" of the dev_ctrl API to specify the LCD(/panel) control interface.
 | |
|     If the control interface is GPIO, user must also assign the GPIO pins as sif_sen/sif_clk/sif_data according to external HW circuit layout.
 | |
| */
 | |
| typedef enum {
 | |
| 	DISPDEV_LCDCTRL_SIF,        ///< LCD Control Interface use SIF engine. User must assign SIF channel number "ui_sif_ch".
 | |
| 	DISPDEV_LCDCTRL_GPIO,       ///< LCD Control Interface use SW controlled GPIO pins. User must assign SIF pins: "ui_gpio_sen/ui_gpio_clk/ui_gpio_data".
 | |
| 	DISPDEV_LCDCTRL_MI,         ///< LCD control Interface use Embedded MI engine.
 | |
| 
 | |
| 	DISPDEV_LCDCTRL_NONE,       ///< Default value as None.
 | |
| 	ENUM_DUMMY4WORD(DISPDEV_LCDCTRL)
 | |
| } DISPDEV_LCDCTRL;
 | |
| 
 | |
| /**
 | |
|     DISPDEV LCD mode Selection
 | |
| 
 | |
|     This field is used for the OP code "DISPDEV_SET_LCDMODE" of the dev_ctrl API to specify the LCD mode.
 | |
| */
 | |
| typedef enum {
 | |
| 	DISPDEV_LCDMODE_RGB_SERIAL           =    0,     ///< LCD mode is RGB Serial or UPS051
 | |
| 	DISPDEV_LCDMODE_RGB_PARALL           =    1,     ///< LCD mode is RGB Parallel (888)
 | |
| 	DISPDEV_LCDMODE_YUV640               =    2,     ///< LCD mode is YUV640
 | |
| 	DISPDEV_LCDMODE_YUV720               =    3,     ///< LCD mode is YUV720
 | |
| 	DISPDEV_LCDMODE_RGBD360              =    4,     ///< LCD mode is RGB Dummy 360
 | |
| 	DISPDEV_LCDMODE_RGBD320              =    5,     ///< LCD mode is RGB Dummy 320
 | |
| 	DISPDEV_LCDMODE_RGB_THROUGH          =    6,     ///< LCD mode is RGB through mode
 | |
| 	DISPDEV_LCDMODE_CCIR601              =    7,     ///< LCD mode is CCIR601
 | |
| 	DISPDEV_LCDMODE_CCIR656              =    8,     ///< LCD mode is CCIR656
 | |
| 	DISPDEV_LCDMODE_RGB_PARALL666        =    9,     ///< LCD mode is RGB Parallel 666
 | |
| 	DISPDEV_LCDMODE_RGB_PARALL565        =   10,     ///< LCD mode is RGB Parallel 565
 | |
| 	DISPDEV_LCDMODE_RGB_PARALL_DELTA     =   11,     ///< LCD mode is RGB Parallel Delta
 | |
| 	DISPDEV_LCDMODE_MIPI                 =   12,     ///< LCD mode is MIPI Display
 | |
| 
 | |
| 	DISPDEV_LCDMODE_MI_OFFSET            = 32,       ///< Memory LCD mode offset
 | |
| 	DISPDEV_LCDMODE_MI_FMT0              = 32 + 0,   ///< LCD mode is Memory(Parallel Interface) 8bits
 | |
| 	DISPDEV_LCDMODE_MI_FMT1              = 32 + 1,   ///< LCD mode is Memory(Parallel Interface) 8bits
 | |
| 	DISPDEV_LCDMODE_MI_FMT2              = 32 + 2,   ///< LCD mode is Memory(Parallel Interface) 8bits
 | |
| 	DISPDEV_LCDMODE_MI_FMT3              = 32 + 3,   ///< LCD mode is Memory(Parallel Interface) 8bits
 | |
| 	DISPDEV_LCDMODE_MI_FMT4              = 32 + 4,   ///< LCD mode is Memory(Parallel Interface) 8bits
 | |
| 	DISPDEV_LCDMODE_MI_FMT5              = 32 + 5,   ///< LCD mode is Memory(Parallel Interface) 8bits
 | |
| 	DISPDEV_LCDMODE_MI_FMT6              = 32 + 6,   ///< LCD mode is Memory(Parallel Interface) 8bits
 | |
| 	DISPDEV_LCDMODE_MI_FMT7              = 32 + 7,   ///< LCD mode is Memory(Parallel Interface) 9bits
 | |
| 	DISPDEV_LCDMODE_MI_FMT8              = 32 + 8,   ///< LCD mode is Memory(Parallel Interface) 16bits
 | |
| 	DISPDEV_LCDMODE_MI_FMT9              = 32 + 9,   ///< LCD mode is Memory(Parallel Interface) 16bits
 | |
| 	DISPDEV_LCDMODE_MI_FMT10             = 32 + 10,  ///< LCD mode is Memory(Parallel Interface) 18bits
 | |
| 	DISPDEV_LCDMODE_MI_FMT11             = 32 + 11,  ///< LCD mode is Memory(Parallel Interface)  8bits
 | |
| 	DISPDEV_LCDMODE_MI_FMT12             = 32 + 12,  ///< LCD mode is Memory(Parallel Interface) 16bits
 | |
| 	DISPDEV_LCDMODE_MI_FMT13             = 32 + 13,  ///< LCD mode is Memory(Parallel Interface) 16bits
 | |
| 	DISPDEV_LCDMODE_MI_FMT14             = 32 + 14,  ///< LCD mode is Memory(Parallel Interface) 16bits
 | |
| 	DISPDEV_LCDMODE_MI_SERIAL_BI         = 32 + 20,  ///< LCD mode is Serial Interface bi-direction
 | |
| 	DISPDEV_LCDMODE_MI_SERIAL_SEP        = 32 + 21,  ///< LCD mode is Serial Interface separation
 | |
| 
 | |
| 	DISPDEV_LCDMODE_NO_CHANGE            = 0xFF,     ///< LCD mode use current setting
 | |
| 
 | |
| 	ENUM_DUMMY4WORD(DISPDEV_LCDMODE)
 | |
| } DISPDEV_LCDMODE;
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| /**
 | |
|     Display Device Control Parameter Definition
 | |
| 
 | |
|     This definition is used as the second operand in the dev_ctrl API to specify the display device control parameters
 | |
|     for each of the display device control opeation.
 | |
| */
 | |
| typedef struct {
 | |
| 	union {
 | |
| 		/* SET control group */
 | |
| 
 | |
| 		/**
 | |
| 		    Open Display Device as specified dev_id
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_OPEN_DEVICE"
 | |
| 		    to open display device. This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.OPEN_DEVICE.dev_id    = DISPDEV_ID_PANEL;
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_OPEN_DEVICE, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_OPEN_DEVICE
 | |
| 			DISPDEV_ID          dev_id;      ///< Open specified display device.
 | |
| 			BOOL				user_data_en;
 | |
| 			UINT32				user_data;
 | |
| 		} OPEN_DEVICE;
 | |
| 
 | |
| 
 | |
| 		// DISPDEV_CLOSE_DEVICE
 | |
| 		/* No Parameters */
 | |
| 
 | |
| 
 | |
| 		/**
 | |
| 		    Hook Display Device object
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_HOOK_DEVICE_OBJECT"
 | |
| 		    to hook specified dev_id's device object. This operation can be done at the systemInit phase.
 | |
| 		    This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.HOOK_DEVICE_OBJECT.dev_id        = DISPDEV_ID_TVHDMI;
 | |
| 		\n  DispDev.SEL.HOOK_DEVICE_OBJECT.p_disp_dev_obj  = the dispobj which to hook(ex: &DispDev_HdmiObj);
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_OPEN_DEVICE, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_HOOK_DEVICE_OBJECT
 | |
| 			DISPDEV_ID      dev_id;              ///< select which Device ID of the device object
 | |
| 			PDISPDEV_OBJ    p_disp_dev_obj;        ///< Hook Device object pointer for the dev_id
 | |
| 		} HOOK_DEVICE_OBJECT;
 | |
| 
 | |
| 		/**
 | |
| 		    Hook panel Adjustment callback function
 | |
| 
 | |
| 		    This is backward compatible operation for providing user interface to adjust the panel configuration by his own.
 | |
| 		    This structure is used for display device control operation code "DISPDEV_HOOK_PANEL_ADJUST"
 | |
| 		    to hook specified panel adjustment callback.
 | |
| 		    If this operation is performed, the adjustment in the panel device object would be invalid.
 | |
| 		    This operation can be done at the systemInit phase.
 | |
| 		    This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.HOOK_PANEL_ADJUST.fp_adjust        = (Addess of the panel adjust function);
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_HOOK_PANEL_ADJUST, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_HOOK_PANEL_ADJUST
 | |
| 			FP              fp_adjust;       ///< The callback function of the panel adjustment
 | |
| 		} HOOK_PANEL_ADJUST;
 | |
| 
 | |
| 		/**
 | |
| 		    Set TV Device adjustment Resistor value
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_SET_TVADJUST"
 | |
| 		    to assign the tv adjustment paramter. This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.SET_TVADJUST.tv_adjust    = DISPDEV_TVADJUST_DEFAULT;
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_SET_TVADJUST, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_SET_TVADJUST
 | |
| 			DISPDEV_TVADJUST    tv_adjust;   ///< Assign the panel adjustment paramter.
 | |
| 		} SET_TVADJUST;
 | |
| 
 | |
| 		/**
 | |
| 		    Set LCD Device control interface
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_SET_REG_IF"
 | |
| 		    to specify the LCD control interface. This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.SET_REG_IF.lcd_ctrl    = DISPDEV_LCDCTRL_SIF;
 | |
| 		\n  DispDev.SEL.SET_REG_IF.ui_sif_ch    = SIF_CH0;
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_SET_REG_INTF, &DispDev);
 | |
| 		\n  Or Using like this:
 | |
| 		\n  DispDev.SEL.SET_REG_IF.lcd_ctrl    = DISPDEV_LCDCTRL_GPIO;
 | |
| 		\n  DispDev.SEL.SET_REG_IF.ui_gpio_sen  = P_GPIO_0;
 | |
| 		\n  DispDev.SEL.SET_REG_IF.ui_gpio_clk  = P_GPIO_1;
 | |
| 		\n  DispDev.SEL.SET_REG_IF.ui_gpio_data = P_GPIO_2;
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_SET_REG_IF, &DispDev);
 | |
| 		\n  Or Using like this:
 | |
| 		\n  DispDev.SEL.SET_REG_IF.lcd_ctrl    = DISPDEV_LCDCTRL_MI;
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_SET_REG_IF, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_SET_REG_IF
 | |
| 			DISPDEV_LCDCTRL lcd_ctrl;        ///< select the LCD Control Interface.
 | |
| 
 | |
| 			SIF_CH          ui_sif_ch;        ///< If lcd_ctrl=DISPDEV_LCDCTRL_SIF, this field is the assigned SIF channel number.
 | |
| 			UINT32          ui_gpio_sen;      ///< If lcd_ctrl=DISPDEV_LCDCTRL_GPIO,this field is the assigned GPIO pin name for SIF SEN.
 | |
| 			UINT32          ui_gpio_clk;      ///< If lcd_ctrl=DISPDEV_LCDCTRL_GPIO,this field is the assigned GPIO pin name for SIF CLK.
 | |
| 			UINT32          ui_gpio_data;     ///< If lcd_ctrl=DISPDEV_LCDCTRL_GPIO,this field is the assigned GPIO pin name for SIF DATA.
 | |
| 		} SET_REG_IF;
 | |
| 
 | |
| 		/**
 | |
| 		    Write Display Device register
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_REG_WRITE"
 | |
| 		    to write display device register. This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.REG_WRITE.ui_addr    = 0x00;
 | |
| 		\n  DispDev.SEL.REG_WRITE.ui_value   = 0x01;
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_REG_WRITE, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_REG_WRITE
 | |
| 			UINT32          ui_addr;         ///< LCD Register address
 | |
| 			UINT32          ui_value;        ///< The LCD register configuration value
 | |
| 		} REG_WRITE;
 | |
| 
 | |
| 		/**
 | |
| 		    Set HDMI display Video and Audio mode
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_SET_HDMIMODE"
 | |
| 		    to configure the HDMI Video/Audio mode when HDMI cable connected.
 | |
| 		    If the TV do not support the selected video ID, the HDMI basic format would be displayed.(480P60)
 | |
| 		    This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.SET_HDMIMODE.video_id    = HDMI_1280X720P60;
 | |
| 		\n  DispDev.SEL.SET_HDMIMODE.audio_id    = HDMI_AUDIO32KHZ;
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_SET_HDMIMODE, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_SET_HDMIMODE
 | |
| 			HDMI_VIDEOID    video_id;        ///< select HDMI default Video mode ID
 | |
| 			HDMI_AUDIOFMT   audio_id;        ///< select HDMI default Audio mode ID
 | |
| 		} SET_HDMIMODE;
 | |
| 
 | |
| 		/**
 | |
| 		    Set LCD mode
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_SET_LCDMODE"
 | |
| 		    to configure the LCD mode when change LCD mode
 | |
| 		    This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.SET_LCDMODE    = PINMUX_LCDMODE_YUV640;
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_SET_LCDMODE, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_SET_LCDMODE
 | |
| 			DISPDEV_LCDMODE  mode;      ///< select LCD mode
 | |
| 		} SET_LCDMODE;
 | |
| 
 | |
| 
 | |
| 		/**
 | |
| 		    Set Display Device rotation
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_SET_ROTATE"
 | |
| 		    to configure the display device(LCD) rotation configuration.
 | |
| 		    This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.SET_ROTATE.rot    = DISPDEV_LCD_ROTATE_180;
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_SET_ROTATE, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_SET_ROTATE
 | |
| 			DISPDEV_LCD_ROTATE    rot;        ///< select display device rotate
 | |
| 		} SET_ROTATE;
 | |
| 
 | |
| 		/**
 | |
| 		    Set Display panel(LCD) Device backlight level
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_SET_PANEL_BACKLIGHT"
 | |
| 		    to set the Display panel(LCD) Device backlight level.
 | |
| 		    This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.SET_PANEL_BACKLIGHT.ui_bl_lvl    = (project defined levels);
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_SET_PANEL_BACKLIGHT, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_SET_PANEL_BACKLIGHT
 | |
| 			UINT32      ui_bl_lvl;
 | |
| 		} SET_PANEL_BACKLIGHT;
 | |
| 
 | |
| 		/**
 | |
| 		    Set Display panel(LCD) Device power level
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_SET_PANEL_POWER"
 | |
| 		    to set the Display panel(LCD) Device backlight level.
 | |
| 		    This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.SET_PANEL_POWER.ui_pwr_lvl    = (project defined levels);
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_SET_PANEL_POWER, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_SET_PANEL_POWER
 | |
| 			UINT32      ui_pwr_lvl;
 | |
| 		} SET_PANEL_POWER;
 | |
| 
 | |
| 
 | |
| 		/**
 | |
| 		    Set PowerDown
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_SET_POWERDOWN"
 | |
| 		    to set the Device powerdown or not.
 | |
| 		    This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.SET_POWERDOWN.b_power_down    = (project defined levels);
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_SET_POWERDOWN, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_SET_POWERDOWN
 | |
| 			BOOL        b_power_down;
 | |
| 		} SET_POWERDOWN;
 | |
| 
 | |
| 		/**
 | |
| 		    Set TV parameter
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_SET_TVPAR"
 | |
| 		    to set the TV's parameters.
 | |
| 		    This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.SET_TVPAR.b_en_user  = TRUE or FALSE;
 | |
| 		\n  DispDev.SEL.SET_TVPAR.ui_ntsc_bll    = (project defined levels);
 | |
| 		\n  DispDev.SEL.SET_TVPAR.ui_ntsc_brl    = (project defined levels);
 | |
| 		\n  DispDev.SEL.SET_TVPAR.ui_ntsc_setup  = (project defined levels);
 | |
| 		\n  DispDev.SEL.SET_TVPAR.ui_ntsc_y_scaling = (project defined levels);
 | |
| 		\n  DispDev.SEL.SET_TVPAR.ui_ntsc_cb_scaling= (project defined levels);
 | |
| 		\n  DispDev.SEL.SET_TVPAR.ui_ntsc_cr_scaling= (project defined levels);
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_SET_TVPAR, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_SET_TVPAR
 | |
| 			BOOL        b_en_user;               ///< Enable/Disable user's setting value
 | |
| 			UINT32      ui_ntsc_bll;            ///< TV NTSC Blank Level(valid value:0~0xFF)
 | |
| 			UINT32      ui_ntsc_brl;            ///< TV NTSC Burst Level(valid value:0~0xFF)
 | |
| 			UINT32      ui_ntsc_setup;          ///< TV NTSC NTSC setup(valid value:0~0xFF)
 | |
| 			UINT32      ui_ntsc_y_scaling;       ///< TV NTSC Y Scale(valid value:0~0xFF)
 | |
| 			UINT32      ui_ntsc_cb_scaling;      ///< TV NTSC Cb Scale(valid value:0~0xFF)
 | |
| 			UINT32      ui_ntsc_cr_scaling;      ///< TV NTSC Cr Scale(valid value:0~0xFF)
 | |
| 			UINT32      ui_pal_bll;             ///< TV PAL Blank Level(valid value:0~0xFF)
 | |
| 			UINT32      ui_pal_brl;             ///< TV PAL Burst Level(valid value:0~0xFF)
 | |
| 			UINT32      ui_pal_setup;           ///< TV PAL setup(valid value:0~0xFF)
 | |
| 			UINT32      ui_pal_y_scaling;        ///< TV PAL Y Scale(valid value:0~0xFF)
 | |
| 			UINT32      ui_pal_cb_scaling;       ///< TV PAL Cb Scale(valid value:0~0xFF)
 | |
| 			UINT32      ui_pal_cr_scaling;       ///< TV PAL Cr Scale(valid value:0~0xFF)
 | |
| 		} SET_TVPAR;
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 		/**
 | |
| 		   Set output to dram parameter
 | |
| 
 | |
| 		   This structure is used for output ide internal data output to dram via VDO2 channel.
 | |
| 		   So that VDO2 can not active at the same time
 | |
| 		   This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.SET_TVPAR.b_en_user  = TRUE or FALSE;
 | |
| 		\n  DispDev.SEL.SET_TVPAR.ui_ntsc_bll    = (project defined levels);
 | |
| 		\n  DispDev.SEL.SET_TVPAR.ui_ntsc_brl    = (project defined levels);
 | |
| 		\n  DispDev.SEL.SET_TVPAR.ui_ntsc_setup  = (project defined levels);
 | |
| 		\n  DispDev.SEL.SET_TVPAR.ui_ntsc_y_scaling = (project defined levels);
 | |
| 		\n  DispDev.SEL.SET_TVPAR.ui_ntsc_cb_scaling= (project defined levels);
 | |
| 		\n  DispDev.SEL.SET_TVPAR.ui_ntsc_cr_scaling= (project defined levels);
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_SET_TVPAR, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_SET_OUTPUT_DRAM
 | |
| 			UINT32      y_addr;                  ///< Output Y address
 | |
| 			UINT32      uv_addr;                 ///< Output UV address
 | |
| 			UINT32      output_width;            ///< Output width
 | |
| 			UINT32      output_height;           ///< Output height
 | |
| 			UINT32      output_line_ofs;          ///< Output line offset(unit:byte)
 | |
| 			BOOL        is_yuv422;              ///< output format (0:420/1:422)
 | |
| 		} SET_OUTPUT_DRAM_PAR;
 | |
| 
 | |
| 
 | |
| 		/**
 | |
| 		   Set TV Full screen
 | |
| 
 | |
| 		   This structure is used for display device control operation code "DISPDEV_SET_TVFULL"
 | |
| 		   to set the TV's parameters.
 | |
| 		   This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.SET_TVFULL.b_en_full  = TRUE or FALSE;
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_SET_TVFULL, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_SET_TVFULL
 | |
| 			BOOL        b_en_full;               ///< Enable/Disable TV Full screen
 | |
| 		} SET_TVFULL;
 | |
| 
 | |
| 		/**
 | |
| 		   Set LOGO mode
 | |
| 
 | |
| 		   This structure is used for display device control operation code "DISPDEV_SET_LOGOMODE"
 | |
| 		   to set the parameters.
 | |
| 		   This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.SET_LOGOMODE.b_en_logo  = TRUE or FALSE;
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_SET_LOGOMODE, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_SET_LOGOMODE
 | |
| 			BOOL      b_en_logo;
 | |
| 		} SET_LOGOMODE;
 | |
| 
 | |
| 		/* GET control group */
 | |
| 
 | |
| 		/**
 | |
| 		    Get the current active Display Device ID
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_GET_ACT_DEVICE"
 | |
| 		    to get the current active display device of the display object. This structure shuld be used like this:
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_GET_ACT_DEVICE, &DispDev);
 | |
| 		\n  "DispDev.SEL.GET_ACT_DEVICE.dev_id"
 | |
| 		    is the current active display device ID.
 | |
| 		*/
 | |
| 		struct { // DISPDEV_GET_ACT_DEVICE
 | |
| 			DISPDEV_ID  dev_id;              ///< Current Active display device ID.
 | |
| 		} GET_ACT_DEVICE;
 | |
| 
 | |
| 		/**
 | |
| 		    Get the current active Display optimal buffer/window size
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_GET_DISPSIZE"
 | |
| 		    to get the current active display's optimal buffer/window size. This structure shuld be used like this:
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_GET_DISPSIZE, &DispDev);
 | |
| 		\n  "DispDev.SEL.GET_DISPSIZE.ui_buf_width"/"DispDev.SEL.GET_DISPSIZE.ui_buf_height"/"DispDev.SEL.GET_DISPSIZE.ui_win_width"/"DispDev.SEL.GET_DISPSIZE.ui_win_height"
 | |
| 		    are the display optimal buffer/window size
 | |
| 		*/
 | |
| 		struct { // DISPDEV_GET_DISPSIZE
 | |
| 			UINT32          ui_buf_width;     ///< Current Active display optimal buffer width.
 | |
| 			UINT32          ui_buf_height;    ///< Current Active display optimal buffer height.
 | |
| 
 | |
| 			UINT32          ui_win_width;     ///< Current Active display optimal window width.
 | |
| 			UINT32          ui_win_height;    ///< Current Active display optimal window height.
 | |
| 		} GET_DISPSIZE;
 | |
| 
 | |
| 		/**
 | |
| 		    Get the pre Display optimal buffer size
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_GET_PREDISPSIZE"
 | |
| 		    to get the current active display's optimal buffer size. This structure shuld be used like this:
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_GET_PREDISPSIZE, &DispDev);
 | |
| 		\n  "DispDev.SEL.GET_PREDISPSIZE.ui_buf_width"/"DispDev.SEL.GET_PREDISPSIZE.ui_buf_height"
 | |
| 		    are the display optimal buffer size
 | |
| 		*/
 | |
| 		struct { // DISPDEV_GET_PREDISPSIZE
 | |
| 			DISPDEV_ID      dev_id;          ///< Get specified display device.
 | |
| 			UINT32          ui_buf_width;     ///< Get display optimal buffer width.
 | |
| 			UINT32          ui_buf_height;    ///< Get  display optimal buffer height.
 | |
| 			UINT32          ui_win_width;     ///< Get display optimal window width.
 | |
| 			UINT32          ui_win_height;    ///< Get  display optimal window height.
 | |
| 		} GET_PREDISPSIZE;
 | |
| 
 | |
| 
 | |
| 		/**
 | |
| 		    Get the user defined panel adjustment callback
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_GET_PANEL_ADJUST"
 | |
| 		    to get the user defined panel adjustment callback. This structure shuld be used like this:
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_GET_PANEL_ADJUST, &DispDev);
 | |
| 		\n  "DispDev.SEL.GET_PANEL_ADJUST.pfp_adjust"
 | |
| 		    is the user defined panel adjustment callback.
 | |
| 		*/
 | |
| 		struct { // DISPDEV_GET_PANEL_ADJUST
 | |
| 			FP              pfp_adjust;      ///< Get the panel adjustment callback function
 | |
| 		} GET_PANEL_ADJUST;
 | |
| 
 | |
| 		/**
 | |
| 		    Get the user assigned TV adjustment resistor value
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_GET_TVADJUST"
 | |
| 		    to get the user assigned TV adjustment resistor value. This structure shuld be used like this:
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_GET_TVADJUST, &DispDev);
 | |
| 		\n  "DispDev.SEL.GET_TVADJUST.tv_adjust"
 | |
| 		    is the user assigned TV adjustment resistor value.
 | |
| 		*/
 | |
| 		struct { // DISPDEV_GET_TVADJUST
 | |
| 			DISPDEV_TVADJUST    tv_adjust;   ///< Get the user assigned TV adjustment resistor value
 | |
| 		} GET_TVADJUST;
 | |
| 
 | |
| 		/**
 | |
| 		    Get the user assigned LCD Control interface configurations
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_GET_REG_IF"
 | |
| 		    to get the user assigned LCD Control interface configurations. This structure shuld be used like this:
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_GET_TVADJUST, &DispDev);
 | |
| 		\n  "DispDev.SEL.GET_REG_IF.lcd_ctrl"/"DispDev.SEL.GET_REG_IF.ui_sif_ch"/"DispDev.SEL.GET_REG_IF.ui_gpio_sen"/ ..
 | |
| 		    are the user assigned LCD Control interface configurations.
 | |
| 		*/
 | |
| 		struct { // DISPDEV_GET_REG_IF
 | |
| 			DISPDEV_LCDCTRL lcd_ctrl;        ///< Get LCD Control Interface select
 | |
| 
 | |
| 			SIF_CH          ui_sif_ch;        ///< If interface is SIF, this field is the assigned SIF CH number.
 | |
| 			UINT32          ui_gpio_sen;      ///< If interface is GPIO, this field is the assigned GPIO Pin ID for SIF SEN.
 | |
| 			UINT32          ui_gpio_clk;      ///< If interface is GPIO, this field is the assigned GPIO Pin ID for SIF CLK.
 | |
| 			UINT32          ui_gpio_data;     ///< If interface is GPIO, this field is the assigned GPIO Pin ID for SIF DATA.
 | |
| 		} GET_REG_IF;
 | |
| 
 | |
| 		/**
 | |
| 		    Read Display Device register
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_REG_READ"
 | |
| 		    to read display device register. This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.REG_READ.ui_addr    = 0x00;
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_REG_READ, &DispDev);
 | |
| 		\n  "DispDev.SEL.REG_READ.ui_return" is the read back register value.
 | |
| 		*/
 | |
| 		struct { // DISPDEV_REG_READ
 | |
| 			UINT32          ui_addr;         ///< The panel register offset.
 | |
| 			UINT32          ui_return;       ///< The readback panel register value.
 | |
| 		} REG_READ;
 | |
| 
 | |
| 		/**
 | |
| 		    Get HDMI Display VIDEO/AUDIO mode
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_GET_HDMIMODE"
 | |
| 		    to get the HDMI VIDEO/AUDIO mode. This structure shuld be used like this:
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_GET_HDMIMODE, &DispDev);
 | |
| 		\n  "DispDev.SEL.GET_HDMIMODE.video_id"/"DispDev.SEL.GET_HDMIMODE.audio_id"
 | |
| 		    are the HDMI VIDEO/AUDIO mode selection.
 | |
| 		*/
 | |
| 		struct { // DISPDEV_GET_HDMIMODE
 | |
| 			HDMI_VIDEOID    video_id;        ///< HDMI VIDEO ID select
 | |
| 			HDMI_AUDIOFMT   audio_id;        ///< HDMI AUDIO ID select
 | |
| 		} GET_HDMIMODE;
 | |
| 
 | |
| 		/**
 | |
| 		    Get LCD mode
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_SET_LCDMODE"
 | |
| 		    to get  the LCD mode.
 | |
| 		    This structure shuld be used like this:
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_GET_LCDMODE, &DispDev);
 | |
| 		\n  "DispDev.SEL.GET_LCDMODE.PinMuxMod" is the LCD pinmux mode selection
 | |
| 		*/
 | |
| 		struct { // DISPDEV_SET_LCDMODE
 | |
| 			DISPDEV_LCDMODE  mode;      ///< select LCD mode
 | |
| 		} GET_LCDMODE;
 | |
| 
 | |
| 
 | |
| 		/**
 | |
| 		    Get Display panel(LCD) Device backlight level
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_GET_PANEL_BACKLIGHT"
 | |
| 		    to get the Display panel(LCD) Device backlight level.
 | |
| 		    This structure shuld be used like this:
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_GET_PANEL_BACKLIGHT, &DispDev);
 | |
| 		\n  "DispDev.SEL.GET_PANEL_BACKLIGHT.ui_bl_lvl" is the project defined backlight level
 | |
| 		*/
 | |
| 		struct { // DISPDEV_GET_PANEL_BACKLIGHT
 | |
| 			UINT32      ui_bl_lvl;
 | |
| 		} GET_PANEL_BACKLIGHT;
 | |
| 
 | |
| 		/**
 | |
| 		    Get Display panel(LCD) Device POWER level
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_GET_PANEL_POWER"
 | |
| 		    to get the Display panel(LCD) Device POWER level.
 | |
| 		    This structure shuld be used like this:
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_GET_PANEL_POWER, &DispDev);
 | |
| 		\n  "DispDev.SEL.GET_PANEL_POWER.ui_pwr_lvl" is the project defined POWER level
 | |
| 		*/
 | |
| 		struct { // DISPDEV_GET_PANEL_POWER
 | |
| 			UINT32      ui_pwr_lvl;
 | |
| 		} GET_PANEL_POWER;
 | |
| 
 | |
| 		/**
 | |
| 		    Get PowerDown
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_GET_POWERDOWN"
 | |
| 		    to get the Device powerdown or not.
 | |
| 		    This structure shuld be used like this:
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_GET_POWERDOWN, &DispDev);
 | |
| 		\n  "DispDev.SEL.GET_POWERDOWN.b_power_down" is the project defined POWER level
 | |
| 		*/
 | |
| 		struct { // DISPDEV_GET_ POWERDOWN
 | |
| 			BOOL        b_power_down;
 | |
| 		} GET_POWERDOWN;
 | |
| 
 | |
| 		/**
 | |
| 		    Get TV parameter
 | |
| 
 | |
| 		    This structure is used for display device control operation code "DISPDEV_GET_TVPAR"
 | |
| 		    to get the TV's parameters.
 | |
| 		    This structure shuld be used like this:
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_GET_TVPAR, &DispDev);
 | |
| 		\n  "DispDev.SEL.GET_TVPAR.b_en_user" is Enable/Disable user define value
 | |
| 		\n  "DispDev.SEL.GET_TVPAR.ui_bll" is the TV's blank level
 | |
| 		\n  "DispDev.SEL.GET_TVPAR.ui_brl" is the TV's burst level
 | |
| 		\n  "DispDev.SEL.GET_TVPAR.ui_setup" is the TV's setup level
 | |
| 		\n  "DispDev.SEL.GET_TVPAR.uiYScale" is the TV's y scale level
 | |
| 		\n  "DispDev.SEL.GET_TVPAR.uiCbScale" is the TV's cb scale level
 | |
| 		\n  "DispDev.SEL.GET_TVPAR.uiCrScale" is the TV's cr scale level
 | |
| 		*/
 | |
| 		struct { // DISPDEV_GET_TVPAR
 | |
| 			BOOL        b_en_user;               ///< Enable/Disable user's setting value
 | |
| 			UINT32      ui_ntsc_bll;            ///< TV NTSC Blank Level(valid value:0~0xFF)
 | |
| 			UINT32      ui_ntsc_brl;            ///< TV NTSC Burst Level(valid value:0~0xFF)
 | |
| 			UINT32      ui_ntsc_setup;          ///< TV NTSC setup(valid value:0~0xFF)
 | |
| 			UINT32      ui_ntsc_y_scaling;       ///< TV NTSC Y Scale(valid value:0~0xFF)
 | |
| 			UINT32      ui_ntsc_cb_scaling;      ///< TV NTSC Cb Scale(valid value:0~0xFF)
 | |
| 			UINT32      ui_ntsc_cr_scaling;      ///< TV NTSC Cr Scale(valid value:0~0xFF)
 | |
| 			UINT32      ui_pal_bll;             ///< TV PAL Blank Level(valid value:0~0xFF)
 | |
| 			UINT32      ui_pal_brl;             ///< TV PAL Burst Level(valid value:0~0xFF)
 | |
| 			UINT32      ui_pal_setup;           ///< TV PAL setup(valid value:0~0xFF)
 | |
| 			UINT32      ui_pal_y_scaling;        ///< TV PAL Y Scale(valid value:0~0xFF)
 | |
| 			UINT32      ui_pal_cb_scaling;       ///< TV PAL Cb Scale(valid value:0~0xFF)
 | |
| 			UINT32      ui_pal_cr_scaling;       ///< TV PAL Cr Scale(valid value:0~0xFF)
 | |
| 		} GET_TVPAR;
 | |
| 
 | |
| 		/**
 | |
| 		   Get LOGO mode
 | |
| 
 | |
| 		   This structure is used for display device control operation code "DISPDEV_GET_LOGOMODE"
 | |
| 		   to set the parameters.
 | |
| 		   This structure shuld be used like this:
 | |
| 		\n  DispDev.SEL.GET_LOGOMODE.b_en_logo  = TRUE or FALSE;
 | |
| 		\n  pDispObj->dev_ctrl(DISPDEV_GET_LOGOMODE, &DispDev);
 | |
| 		*/
 | |
| 		struct { // DISPDEV_SET_LOGOMODE
 | |
| 			BOOL      b_en_logo;
 | |
| 		} GET_LOGOMODE;
 | |
| 		
 | |
| 	} SEL;
 | |
| } DISPDEV_PARAM, *PDISPDEV_PARAM;
 | |
| //@}
 | |
| 
 | |
| typedef ER(*DISPDEVCTRL)(DISPDEV_OP, PDISPDEV_PARAM);
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| //
 | |
| //  Exported Get Display Device Object API
 | |
| //
 | |
| //extern PDISPDEV_OBJ dispdev_get_tv_dev_obj(void);
 | |
| //extern PDISPDEV_OBJ dispdev_get_hdmi_dev_obj(void);
 | |
| extern PDISPDEV_OBJ dispdev_get_lcd1_dev_obj(void);
 | |
| //extern PDISPDEV_OBJ dispdev_get_lcd2_dev_obj(void);
 | |
| 
 | |
| 
 | |
| #endif
 | |
| //@}
 | 
