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

📄 hw_lcdctrl.h

📁 RK27驱动
💻 H
字号:
/******************************************************************/
/*   Copyright (C) 2007 ROCK-CHIPS FUZHOU . All Rights Reserved.  */
/*******************************************************************
File	:  hw_Lcdcontrol.h
Desc	:  LCD Controler 的寄存器定义
		  
Author	:  nzy
Date	: 
Notes	: 

$Log	: 
*********************************************************************/

#ifndef _HW_LCDCONTROL_H_
#define _HW_LCDCONTROL_H_

#include "hw_memmap.h"


#define LCDCtrlBase		(unsigned int)AHB1_LCDC_BASE 

#define RegLCDC_ctrl				LCDCtrlBase+0x00	
#define RegLCDC_mcu_ctrl			LCDCtrlBase+0x04	
#define RegLCDC_hor_period			LCDCtrlBase+0x08	
#define RegLCDC_vert_period 		LCDCtrlBase+0x0c	
#define RegLCDC_horpw				LCDCtrlBase+0x10	
#define RegLCDC_vertpw				LCDCtrlBase+0x14	
#define RegLCDC_horact				LCDCtrlBase+0x18	
#define RegLCDC_vertact 			LCDCtrlBase+0x1C	
#define RegLCDC_horbp				LCDCtrlBase+0x20	
#define RegLCDC_vertbp				LCDCtrlBase+0x24	
#define RegLCDC_line0yaddr			LCDCtrlBase+0x28	
#define RegLCDC_line0uvaddr 		LCDCtrlBase+0x2c	
#define RegLCDC_line1yaddr			LCDCtrlBase+0x30	
#define RegLCDC_line1uvaddr 		LCDCtrlBase+0x34	
#define RegLCDC_line2yaddr			LCDCtrlBase+0x38	
#define RegLCDC_line2uvaddr 		LCDCtrlBase+0x3c	
#define RegLCDC_line3yaddr			LCDCtrlBase+0x40	
#define RegLCDC_line3uvaddr 		LCDCtrlBase+0x44	
#define RegLCDC_StartX				LCDCtrlBase+0x48
#define RegLCDC_StartY				LCDCtrlBase+0x4C
#define RegLCDC_DeltaX				LCDCtrlBase+0x50
#define RegLCDC_DeltaY				LCDCtrlBase+0x54
#define RegLCDC_intrmask			LCDCtrlBase+0x58	
#define RegLCDC_alpALeftX			LCDCtrlBase+0x5C
#define RegLCDC_alpATopY			LCDCtrlBase+0x60
#define RegLCDC_alpARightX			LCDCtrlBase+0x64
#define RegLCDC_alpABottomY 		LCDCtrlBase+0x68
#define RegLCDC_alpBLeftX			LCDCtrlBase+0x6C
#define RegLCDC_alpBTopY			LCDCtrlBase+0x70
#define RegLCDC_alpBRightX			LCDCtrlBase+0x74
#define RegLCDC_alpBBottomY 		LCDCtrlBase+0x78
#define RegLCDC_lcdcsta 			LCDCtrlBase+0x7c	

#ifdef RS_HI						//RS 有效电平高
#define RegLCDC_CMD 				LCDCtrlBase+0x2004
#define RegLCDC_DAT 				LCDCtrlBase+0x2000
#else
#define RegLCDC_CMD 				LCDCtrlBase+0x2000
#define RegLCDC_DAT 				LCDCtrlBase+0x2004
#endif

#define RegLCDC_BUF                 LCDCtrlBase+0x2000   
#define RegLCDC_LCDCFIFO(Offset)    LCDCtrlBase+(Offset+0x40)*64   


//一些微操作和位操作
#define HWLCDC_SetAlp24bit()				SetRegBit32(RegLCDC_ctrl, 13)
#define HWLCDC_SetAlp16bit()				ClrRegBit32(RegLCDC_ctrl, 13)

#define HWLCDC_SetMCU8086IF()				SetRegBit32(RegLCDC_ctrl, 7)
#define HWLCDC_SelectAlpFactor()			SetRegBit32(RegLCDC_ctrl, 13)

#define HWLCDC_SetRGB24bit()				SetRegBit32(RegLCDC_ctrl, 6)
#define HWLCDC_SetRGB16bit()				ClrRegBit32(RegLCDC_ctrl, 6)

#define HWLCDC_StartEven()					SetRegBit32(RegLCDC_ctrl, 5)
#define HWLCDC_StopRGBFrame()				ClrRegBit32(RegLCDC_ctrl, 0)

#define HWLCDC_EnRGBMode()					SetRegBit32(RegLCDC_ctrl, 1)
#define HWLCDC_DisRGBMode() 				ClrRegBit32(RegLCDC_ctrl, 1)

#define HWLCDC_EnAlpBuffer()				SetRegBit32(RegLCDC_mcu_ctrl, 6)
#define HWLCDC_DisAlpBuffer()				ClrRegBit32(RegLCDC_mcu_ctrl, 6)

#define HWLCDC_SetRS()						SetRegBit32(RegLCDC_mcu_ctrl, 5)
#define HWLCDC_ClrRS()						ClrRegBit32(RegLCDC_mcu_ctrl, 5)

#define HWLCDC_StartMcuBuf()				SetRegBit32(RegLCDC_mcu_ctrl, 1)
#define HWLCDC_EnMcuBufIntr()				SetRegBit32(RegLCDC_intrmask, 2)
#define HWLCDC_DisMcuBufIntr()				ClrRegBit32(RegLCDC_intrmask, 2)


#define HWLCDC_McuBypassMode()				SetRegBit32(RegLCDC_mcu_ctrl, 0)
#define HWLCDC_McuBufferMode()				ClrRegBit32(RegLCDC_mcu_ctrl, 0)


#define HWLCDC_GetMcuIdleState() 			GetRegBit32(RegLCDC_lcdcsta,4)
#define HWLCDC_GetHactiveState()			GetRegBit32(RegLCDC_lcdcsta,0)
#define HWLCDC_GetVactiveState()			GetRegBit32(RegLCDC_lcdcsta,1)
#define HWLCDC_GetEvenLineState()			GetRegBit32(RegLCDC_lcdcsta,2)



#define BitEnLCDC	1
#define BitMcu		7
#define BitBypass	0



/**************************************************************
*LCDC register
**************************************************************/
#define 	LCDC_BASE 		LCDCtrlBase

#define 		LCDC_CTRL			((LCDC_BASE +0*4 ))
#define         b_DCLK_INVERTED     (1<<14)
#define 		b_ALPHA_24B         (1<<13)
#define 		b_ALPHA_16B         (0<<13)
#define 		b_ALPHA(factor)     (factor<<9)
#define 		b_Y_MIX		    	(1<<8)
#define 		b_MCU_MODE			(1<<7)
#define 		b_RGB_24B			(1<<6)
#define 		b_RGB_16B			(0<<6)
#define 		b_START_EVEN		(1<<5)
#define 		b_EVEN_EN			(1<<4)
#define 		b_RGB_DUMMY0		(0<<2)
#define 		b_RGB_DUMMY2		(2<<2)
#define 		b_RGB_DUMMY3		(3<<2)
#define 		b_RGB_DUMMY(Dummy)  (Dummy<<2)
#define 		b_LCDC_EN			(1<<1)
#define 		b_LCDC_STOP 		(1<<0)

#define 		BUFF_CTRL			((LCDC_BASE +1*4 ))
#define 		b_ALPHA_BASE(Addr)  (Addr<<8)
#define 		b_LCDC_FIFOEN	    (1<<6)
#define 		b_RS_HIGH		    (1<<5)
#define 		b_BUFF_LINE3	    (3<<3)
#define 		b_BUFF_LINE2	    (2<<3)
#define 		b_BUFF_LINE1	    (1<<3)
#define 		b_BUFF_LINE0	    (0<<3)
#define 		b_BUFF_WRITE	    (1<<2)
#define 		b_BUFF_START	    (1<<1)
#define 		b_MCU_BYPASS	    (1<<0)
 	
#define 		HOR_PERIOD			(LCDC_BASE +2*4 )
#define 		VERT_PERIOD 		(LCDC_BASE +3*4 )
#define 		LCD_WAIT			(LCDC_BASE +3*4 )
#define 		HOR_PW				(LCDC_BASE +4*4 )
#define 		VERT_PW 			(LCDC_BASE +5*4 )
#define 		HOR_BP				(LCDC_BASE +6*4 )
#define 		VERT_BP 			(LCDC_BASE +7*4 )
#define 		HOR_ACT 			(LCDC_BASE +8*4 )
#define 		BUFF_LEN			(LCDC_BASE +8*4 )
#define 		VERT_ACT			(LCDC_BASE +9*4 )

#define 		LINE0_YADDR 		(LCDC_BASE +10*4)
#define 		b_ALPHA_EN			(1<<14)
#define 		b_SCALE_EN			(1<<13)
#define 		b_GBR_ORDER 		(1<<12)
#define 		b_YUV_SRC			(1<<11)

#define 		LINE0_UVADDR		(LCDC_BASE +11*4)
#define 		LINE1_YADDR 		(LCDC_BASE +12*4)
#define 		LINE1_UVADDR		(LCDC_BASE +13*4)
#define 		LINE2_YADDR 		(LCDC_BASE +14*4)
#define 		LINE2_UVADDR		(LCDC_BASE +15*4)
#define 		LINE3_YADDR 		(LCDC_BASE +16*4)
#define 		LINE3_UVADDR		(LCDC_BASE +17*4)
#define 		START_X 			(LCDC_BASE +18*4)
#define 		START_Y 			(LCDC_BASE +19*4)
#define 		DELTA_X 			(LCDC_BASE +20*4)
#define 		DELTA_Y 			(LCDC_BASE +21*4)

#define 		INTR_MASK			(LCDC_BASE +22*4)
#define 		b_INTR_PERLINE	    (1<<3)
#define 		b_INTR_EVENLINE	    (0<<3)
#define 		b_BUFF_INTR 		(1<<2)
#define 		b_VERT_INTR 		(1<<1)
#define 		b_HOR_INTR			(1<<0)

#define         ALPHA_ALX           (LCDC_BASE +23*4) 
#define         ALPHA_ATY           (LCDC_BASE +24*4) 
#define         ALPHA_ARX           (LCDC_BASE +25*4) 
#define         ALPHA_ABY           (LCDC_BASE +26*4)
#define         ALPHA_BLX           (LCDC_BASE +27*4) 
#define         ALPHA_BTY           (LCDC_BASE +28*4) 
#define         ALPHA_BRX           (LCDC_BASE +29*4) 
#define         ALPHA_BBY           (LCDC_BASE +30*4) 

#define 		LCDC_STA			(LCDC_BASE +31*4)
#define 		b_CURR_LINE1		(1<<14)
#define 		b_MCU_IDLE			(1<<12)
#define 		b_VERT_ACTIVE		(1<<11)
#define 		b_HOR_ACTIVE		(1<<0)	

#define 		LCD_DATA			(LCDC_BASE +0x1004)
#define 		LCD_COMMAND 		(LCDC_BASE +0x1000)


#define         LCDC_FIFO           (LCDC_BASE +0x1c00)
#define         LCDC_FIFO_DEPTH     256         //480
#define         LCDC_DWDMA_FIFO     (LCDC_BASE +0x1000)
#define         LCDC_BUFFER         (LCDC_BASE +0x2000)
#define         LCDC_DWDMA_BUFFER   (LCDC_BASE +0x2000)

#define         LCDMode_Bypass 			0
#define         LCDMode_DMABypass		1
#define         LCDMode_Buffer			2



#endif/* _HW_LCDCONTROL_H_ */

/*********************************************************************
 END OF FILE
*********************************************************************/

⌨️ 快捷键说明

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