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

📄 lcd_if.c

📁 8032底层驱动部分。因为可以移植 所以单独来拿出来
💻 C
📖 第 1 页 / 共 5 页
字号:
/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2003
*
*****************************************************************************/

/*****************************************************************************
 *
 * Filename:
 * ---------
 *   lcd_if.c
 *
 * Project:
 * --------
 *   Maui
 *
 * Description:
 * ------------
 *   Lcd interface between upper application layer and driver
 *
 * Author:
 * -------
 * -------
 * -------
 *
 *============================================================================
 *             HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *------------------------------------------------------------------------------
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 *
 * removed!
 * removed!
 *
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 *
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *============================================================================
 ****************************************************************************/
#include "kal_release.h"
#include "stack_common.h"
#include "stack_msgs.h"
#include "app_ltlcom.h"       /* Task message communiction */
#include "syscomp_config.h"
#include "task_config.h"
#include "stacklib.h"
#include "stack_timer.h"      /*stack_timer_struct....definitions*/
#include "drv_comm.h"
#include "reg_base.h"
#include "gpt_sw.h"
#include "intrCtrl.h"
#include "gpio_sw.h"
#include "lcd_sw_inc.h"
#include "lcd_hw.h"
#include "lcd_sw.h"
#include "lcd_if.h"
#include "visual_comm.h"
#include "drv_hisr.h"
#if (defined(CAMERA_MODULE))
#include "ext_camera.h"
#endif /* CAMERA_MODULE */
#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
	#include "visual_comm.h"
	#include "img_comm.h"
	#include "imgproc.h"
	#include "imgdma.h"
	#if (defined(ISP_SUPPORT))
		#include "isp_if.h"
	#endif
	#if (defined(MT6228)||defined(MT6229))
		#include "tv_out.h"
		#include "2d_engine.h"
	#endif
#endif


/*Start of Function Declaration*/
extern void LCD_FunConfig(void);
extern kal_bool INT_QueryExceptionStatus(void);
extern void init_lcd_interface(void);
#ifndef __MAUI_BASIC__
extern kal_uint8 L1SM_GetHandle(void);
extern void L1SM_SleepEnable(kal_uint8 handle);
extern void L1SM_SleepDisable(kal_uint8 handle);
kal_uint8	lcd_sleep_mode_handler=0xFF;
#endif	/* __MAUI_BASIC__ */
/*End of Function Declaration*/

/*Start of Variable Declaration*/
LCD_Funcs  *MainLCD;
LCD_Funcs  *SubLCD;

volatile kal_uint8 current_update_lcd=MAIN_LCD;
volatile LCD_OPERATION_STATE_ENUM main_lcd_operation_state=LCD_IDLE_STATE;
lcd_frame_update_struct main_lcd_fb_update_para;
#ifdef DUAL_LCD	   
volatile LCD_OPERATION_STATE_ENUM sub_lcd_operation_state=LCD_IDLE_STATE;
lcd_frame_update_struct sub_lcd_fb_update_para;
#endif


kal_uint8 lcd_dc_color_mode;
kal_uint8 lcd_rotate_value=0;
kal_uint8 lcd_hard_trigger_flag=0;
kal_uint32 current_lcd_hw_update_layer=0;
kal_bool lcd_window_swap_flag=KAL_FALSE;
kal_bool lcd_update_internal_ram=KAL_FALSE;
kal_uint32 lcd_roi_ctrl_shadow,lcd_roi_size_shadow,lcd_roi_offset_shadow;
kal_uint32 lcd_mem_out_address_shadow,lcd_mem_out_address_shadow1, lcd_mem_out_ctrl_shadow;
kal_uint32 lcd_frame_buffer_address;

/*HPI interface control*/
kal_uint16 old_lcd_cmd_period_count;
kal_uint16 hpi_cmd_period_count;
kal_bool hpi_power_on=KAL_FALSE;

/*Start of Function Declaration*/

#if (defined(MT6217)||defined(MT6218B)||defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
	kal_uint8 jpeg_video_play_lcd_id;
	volatile kal_uint8 lcd_transfer_complete=KAL_FALSE;
	kal_eventgrpid lcd_event_id=NULL;	
	lcd_layer_struct lcd_layer_data[LCD_TOTAL_LAYER];
	kal_uint16 lcd_cmd_period_count;

	kal_uint8 lcd_output_mode=KAL_TRUE;
	kal_uint8 main_lcd_hw_trigger_output_mode=KAL_TRUE;
	kal_uint8 sub_lcd_hw_trigger_output_mode=KAL_TRUE;
	kal_bool wait_lcd_update_flag=KAL_FALSE;
	void (*lcd_block_cb) (void);	
	#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
      volatile kal_bool lcd_cmd_latch_complete=KAL_FALSE;
      kal_uint32 lcd_hw_trigger_roi_offset,lcd_hw_trigger_roi_size,lcd_hw_trigger_roi_ctrl;
      kal_uint32 lcd_hw_trigger_layer;
      volatile kal_uint8 lcd_hw_trigger_flag=KAL_FALSE;
      kal_uint32 lcd_hw_trigger_para[LCD_CMD_QUEUE_LENGTH];      
      kal_uint8 current_lcd_rotate_value=LCD_LAYER_ROTATE_NORMAL;		   
      #if (defined(MT6228)||defined(MT6229)||defined(MT6230))
         kal_uint8 lcd_sleeping_state=KAL_FALSE;
         kal_uint32 lcd_hw_trigger_reg=0;
         kal_uint32 lcd_roi_size_reg=0;
         kal_uint32 lcd_ctrl_reg=0;
         kal_uint32 lcd_cmq_para[LCD_CMD_QUEUE_LENGTH];
         kal_uint8 tv_output_buffer_count=0xFF;
         volatile kal_uint8 tv_full_screen=0;
         kal_uint32 tv_output_buffer_base_address1;
         kal_uint32 tv_output_buffer_base_address2;
         kal_uint32 tv_output_buffer_offset_address1;
         kal_uint32 tv_output_buffer_offset_address2;
         kal_uint8 tv_output_buffer_rotate=0;

⌨️ 快捷键说明

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