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

📄 lcd_sw.h

📁 这个是MTK手机平台上面的LCD
💻 H
📖 第 1 页 / 共 4 页
字号:
					SET_LCD_ROI_WINDOW_SIZE(0, 0);\
					START_LCD_TRANSFER;\
					while (LCD_IS_RUNNING) {};\
				}

				#define LCD_CtrlWrite_LGDP4216(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_CMD, (_data&0xFF));\
					LCD_SEND_DMA_CMD(1);\
				}

				#define LCD_DataWrite_LGDP4216(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_DATA, (_data&0xFF));\
					LCD_SEND_DMA_CMD(1);\
				}
			#else
				
				#define LCD_CtrlWrite_LGDP4216(_data)  \
				{\
					*(volatile kal_uint8 *) LCD_LGDP4216_CTRL_ADDR= (_data&0xFF);\
					Dummy_Delay();\
				}

				#define LCD_DataWrite_LGDP4216(_data)  \
				{\
					*(volatile kal_uint8 *) LCD_LGDP4216_DATA_ADDR = (_data&0xFF);\
					Dummy_Delay();\
				}
					
			#endif // LCD_CMD_DMA_MODE 
			
			#define Write_REG_LGDP4216(_reg,_data)\
			{\
				LCD_CtrlWrite_LGDP4216(_reg);\
				LCD_DataWrite_LGDP4216(_data); \
			}

		#endif
#endif

		

//===========================================================================
//
//   	SKYWORTH  	262k Color LCD,  176x220   Parallel Interface
//   	Chip	 		LGDP4522                      
//                           
//===========================================================================
#ifdef __SKYWORTH_DRV_LCD_LG_LGDP4522__
               #define LCD_16BIT_MODE                        //add by li_fs
               #define LCD_DUMMYADDR   							0x90000000
			   
		#define LCD_LGDP4522_CTRL_ADDR		LCD_PARALLEL0_A0_LOW_ADDR
		#define LCD_LGDP4522_DATA_ADDR		LCD_PARALLEL0_A0_HIGH_ADDR
		#define MAIN_LCD_CMD_ADDR			LCD_LGDP4522_CTRL_ADDR
		#define MAIN_LCD_DATA_ADDR			LCD_LGDP4522_DATA_ADDR	
		
		#ifdef LCD_16BIT_MODE
		#define MAIN_LCD_OUTPUT_FORMAT		LCM_16BIT_16_BPP_RGB565_1
		#define SET_LCD_PARALLEL_DATA_BUS_WIDTH         SET_LCD_PARALLEL_16BIT_DATA_BUS
		#else
		#define MAIN_LCD_OUTPUT_FORMAT		LCM_8BIT_16_BPP_RGB565_1
		#define SET_LCD_PARALLEL_DATA_BUS_WIDTH         SET_LCD_PARALLEL_8BIT_DATA_BUS
		#endif
		
	#ifdef MCU_13M
		#define Dummy_Delay()
	#endif   
			   
	#ifdef MCU_26M
		#define Dummy_Delay()    \
		 {\
		        kal_uint16 _stat;\
		        _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
		 }
	#endif  
			   
	#ifdef MCU_39M
	      #define Dummy_Delay()    \
	      {\
	         	kal_uint16 _stat;\
	         	_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
	         	_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
	      }
	#endif   
		  
	#ifdef MCU_52M
	      #define Dummy_Delay()    \
	      {\
		         kal_uint16 _stat;\
		         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
		         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
		         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
		         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
	      }
	#endif  
		#if (defined(MT6218B) || defined(MT6219) || defined(MT6217) || defined(MT6226)|| defined(MT6226M))
			
			#ifdef LCD_CMD_DMA_MODE
				#define LCD_SEND_DMA_CMD(n) \
				{\
					DISABLE_LCD_TRANSFER_COMPLETE_INT;\
					SET_LCD_ROI_CTRL_NUMBER_OF_CMD(n);\
					ENABLE_LCD_ROI_CTRL_CMD_FIRST;\
					SET_LCD_ROI_WINDOW_SIZE(0, 0);\
					START_LCD_TRANSFER;\
					while (LCD_IS_RUNNING) {};\
				}
                          #ifdef LCD_16BIT_MODE                   //add by li_fs
				#define LCD_CtrlWrite_LGDP4522(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_CMD, _data);\
					LCD_SEND_DMA_CMD(1);\
				}

				#define LCD_DataWrite_LGDP4522(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_DATA, _data);\
					LCD_SEND_DMA_CMD(1);\
				}	  
			     #else     //esle--LCD_16BIT_MODE
				#define LCD_CtrlWrite_LGDP4522(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_CMD, (_data&0xFF00)>>8);\
					Dummy_Delay();\
					SET_LCD_CMD_PARAMETER(1, LCD_CMD, (_data&0xFF));\
					LCD_SEND_DMA_CMD(2);\
				}

				#define LCD_DataWrite_LGDP4522(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_DATA, (_data&0xFF00)>>8);\
					Dummy_Delay();\
					SET_LCD_CMD_PARAMETER(1, LCD_DATA, (_data&0xFF));\
					LCD_SEND_DMA_CMD(2);\
				}
				#endif            //end--LCD_16BIT_MODE
			#else
				
				#define LCD_CtrlWrite_LGDP4522(_data)  \
				{\
					*(volatile kal_uint8 *) LCD_LGDP4522_CTRL_ADDR= (_data&0xFF00)>>8;\
					*(volatile kal_uint8 *) LCD_LGDP4522_CTRL_ADDR= (_data&0xFF);\
					Dummy_Delay();\
				}

				#define LCD_DataWrite_LGDP4522(_data)  \
				{\
					*(volatile kal_uint8 *) LCD_LGDP4522_DATA_ADDR = (_data&0xFF00)>>8;\
					*(volatile kal_uint8 *) LCD_LGDP4522_DATA_ADDR = (_data&0xFF);\
					Dummy_Delay();\
				}
					
			#endif // LCD_CMD_DMA_MODE 
			
			#define Write_REG_LGDP4522(_reg,_data)\
			{\
				LCD_CtrlWrite_LGDP4522(_reg);\
				LCD_DataWrite_LGDP4522(_data); \
			} 

		#endif 
#endif // the end of __SKYWORTH_DRV_LCD_LG_LGDP4522__

//===========================================================================
//
//   	JULANG  	262k Color LCD,  240x320   Parallel Interface
//   	Chip	 		SSD1289                        
//                          
//===========================================================================

	#ifdef __JULANG_LCD_SOLOMON_SSD1289__  
              #define LCD_16BIT_MODE                        //add by li_fs  
			   
		#define LCD_SSD1289_CTRL_ADDR		LCD_PARALLEL0_A0_LOW_ADDR
		#define LCD_SSD1289_DATA_ADDR		LCD_PARALLEL0_A0_HIGH_ADDR
		#define MAIN_LCD_CMD_ADDR			LCD_SSD1289_CTRL_ADDR
		#define MAIN_LCD_DATA_ADDR			LCD_SSD1289_DATA_ADDR	
		
		#ifdef LCD_16BIT_MODE
		#define MAIN_LCD_OUTPUT_FORMAT		LCM_16BIT_16_BPP_RGB565_1
		#define SET_LCD_PARALLEL_DATA_BUS_WIDTH         SET_LCD_PARALLEL_16BIT_DATA_BUS
		#else
		#define MAIN_LCD_OUTPUT_FORMAT		LCM_8BIT_16_BPP_RGB565_1
		#define SET_LCD_PARALLEL_DATA_BUS_WIDTH         SET_LCD_PARALLEL_8BIT_DATA_BUS
		#endif
		
	#ifdef MCU_13M
		#define Dummy_Delay()
	#endif  
			   
	#ifdef MCU_26M
		#define Dummy_Delay()    \
		 {\
		        kal_uint16 _stat;\
		        _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
		 }
	#endif  
			   
	#ifdef MCU_39M
	      #define Dummy_Delay()    \
	      {\
	         	kal_uint16 _stat;\
	         	_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
	         	_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
	      }
	#endif   
		  
	#ifdef MCU_52M
	      #define Dummy_Delay()    \
	      {\
		         kal_uint16 _stat;\
		         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
		         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
		         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
		         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
	      }
	#endif  
		#if (defined(MT6218B) || defined(MT6219) || defined(MT6217) || defined(MT6226))
			
			#ifdef LCD_CMD_DMA_MODE
				#define LCD_SEND_DMA_CMD(n) \
				{\
					DISABLE_LCD_TRANSFER_COMPLETE_INT;\
					SET_LCD_ROI_CTRL_NUMBER_OF_CMD(n);\
					ENABLE_LCD_ROI_CTRL_CMD_FIRST;\
					SET_LCD_ROI_WINDOW_SIZE(0, 0);\
					START_LCD_TRANSFER;\
					while (LCD_IS_RUNNING) {};\
				}
                          #ifdef LCD_16BIT_MODE                   //add by li_fs
				#define LCD_CtrlWrite_SSD1289(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_CMD, _data);\
					LCD_SEND_DMA_CMD(1);\
				}

				#define LCD_DataWrite_SSD1289(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_DATA, _data);\
					LCD_SEND_DMA_CMD(1);\
				}	  
			     #else     //esle--LCD_16BIT_MODE
				#define LCD_CtrlWrite_SSD1289(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_CMD, (_data&0xFF00)>>8);\
					Dummy_Delay();\
					SET_LCD_CMD_PARAMETER(1, LCD_CMD, (_data&0xFF));\
					LCD_SEND_DMA_CMD(2);\
				}

				#define LCD_DataWrite_SSD1289(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_DATA, (_data&0xFF00)>>8);\
					Dummy_Delay();\
					SET_LCD_CMD_PARAMETER(1, LCD_DATA, (_data&0xFF));\
					LCD_SEND_DMA_CMD(2);\
				}
				#endif            //end--LCD_16BIT_MODE
			#else
				
				#define LCD_CtrlWrite_SSD1289(_data)  \
				{\
					*(volatile kal_uint8 *) LCD_SSD1289_CTRL_ADDR= (_data&0xFF00)>>8;\
					*(volatile kal_uint8 *) LCD_SSD1289_CTRL_ADDR= (_data&0xFF);\
					Dummy_Delay();\
				}

				#define LCD_DataWrite_SSD1289(_data)  \
				{\
					*(volatile kal_uint8 *) LCD_SSD1289_DATA_ADDR = (_data&0xFF00)>>8;\
					*(volatile kal_uint8 *) LCD_SSD1289_DATA_ADDR = (_data&0xFF);\
					Dummy_Delay();\
				}
					
			#endif // LCD_CMD_DMA_MODE 
			
			#define Write_REG_SSD1289(_reg,_data)\
			{\
				LCD_CtrlWrite_SSD1289(_reg);\
				LCD_DataWrite_SSD1289(_data); \
			} 

		#endif 
		#endif // the end of __JULANG_LCD_SOLOMON_SSD1289__ 
//===========================================================================
//
//   	TIANMA  	262k Color LCD,  240x320   Parallel Interface
//   	Chip	 		ILITEC ILI9320                      
//                          
//===========================================================================

#ifdef __TIANMA_LCD_ILITEC_ILI9320__

#if (defined(MT6205))
	#define LCD_DUMMYADDR   0x80170010
#elif ( (defined(MT6208)) || (defined(FPGA)) || (defined(MT6205B)) )
	#define LCD_DUMMYADDR   0x80170010
   	#ifdef ORDNANCE
   		#define LCD_CTRLAddr		(0x20000000)
   		#define LCD_DATAAddr		(0x2fffffff)
   	#else /*!ORDNANCE*/
   		#define LCD_CTRLAddr		(0x30000000)
   		#define LCD_DATAAddr		(0x3fffffff)
   	#endif   /*!ORDNANCE*/
#elif (defined(MT6218))
	#define LCD_DUMMYADDR   0x80170010
	#define LCD_CTRLAddr		0x28000000
	#define LCD_DATAAddr		0x2fffffff
#elif (defined(MT6218B) || defined(MT6219) || defined(MT6217) || defined(MT6226) ||defined(MT6226M))
	#define LCD_CMD_DMA_MODE
	#define LCD_DUMMYADDR   		0x90000000
#endif

  
             #define LCD_16BIT_MODE                        //add by li_fs	   
		#define LCD_CTRL_ADDR		LCD_PARALLEL0_A0_LOW_ADDR
		#define LCD_DATA_ADDR		LCD_PARALLEL0_A0_HIGH_ADDR
		#define MAIN_LCD_CMD_ADDR			LCD_CTRL_ADDR
		#define MAIN_LCD_DATA_ADDR			LCD_DATA_ADDR	
		
		#ifdef LCD_16BIT_MODE
		#define MAIN_LCD_OUTPUT_FORMAT		LCM_16BIT_16_BPP_RGB565_1
		#define SET_LCD_PARALLEL_DATA_BUS_WIDTH         SET_LCD_PARALLEL_16BIT_DATA_BUS
		#else
		#define MAIN_LCD_OUTPUT_FORMAT		LCM_8BIT_16_BPP_RGB565_1
		#define SET_LCD_PARALLEL_DATA_BUS_WIDTH         SET_LCD_PARALLEL_8BIT_DATA_BUS
		#endif
		
	#ifdef MCU_13M
		#define Dummy_Delay()
	#endif  
			   
	#ifdef MCU_26M
		#define Dummy_Delay()    \
		 {\
		        kal_uint16 _stat;\
		        _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
		 }
	#endif  
			   
	#ifdef MCU_39M
	      #define Dummy_Delay()    \
	      {\
	         	kal_uint16 _stat;\
	         	_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
	         	_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
	      }
	#endif   
		  
	#ifdef MCU_52M
	      #define Dummy_Delay()    \
	      {\
		         kal_uint16 _stat;\
		         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
		         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
		         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
		         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
	      }
	#endif  
		#if (defined(MT6218B) || defined(MT6219) || defined(MT6217) || defined(MT6226) ||defined(MT6226M))
			
			#ifdef LCD_CMD_DMA_MODE
				#define LCD_SEND_DMA_CMD(n) \
				{\
					DISABLE_LCD_TRANSFER_COMPLETE_INT;\
					SET_LCD_ROI_CTRL_NUMBER_OF_CMD(n);\
					ENABLE_LCD_ROI_CTRL_CMD_FIRST;\
					SET_LCD_ROI_WINDOW_SIZE(0, 0);\
					START_LCD_TRANSFER;\
					while (LCD_IS_RUNNING) {};\
				}
                          #ifdef LCD_16BIT_MODE                   //add by li_fs
				#define LCD_CtrlWrite(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_CMD, _data);\
					LCD_SEND_DMA_CMD(1);\
				}

				#define LCD_DataWrite(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_DATA, _data);\
					LCD_SEND_DMA_CMD(1);\
				}	  
			     #else     //else--LCD_16BIT_MODE
				#define LCD_CtrlWrite(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_CMD, (_data&0xFF00)>>8);\
					Dummy_Delay();\
					SET_LCD_CMD_PARAMETER(1, LCD_CMD, (_data&0xFF));\
					LCD_SEND_DMA_CMD(2);\
				}

				#define LCD_DataWrite(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_DATA, (_data&0xFF00)>>8);\
					Dummy_Delay();\
					SET_LCD_CMD_PARAMETER(1, LCD_DATA, (_data&0xFF));\
					LCD_SEND_DMA_CMD(2);\
				}
				#endif   //end--LCD_16BIT_MODE
					
			#endif // LCD_CMD_DMA_MODE 
			
			#define Write_LCD_REG(_reg,_data)\
			{\
				LCD_CtrlWrite(_reg);\
				LCD_DataWrite(_data); \
			} 

		#endif 	

#endif // the end of __TIANMA_LCD_ILITEC_ILI9320__


#endif   /*_LCD_SW_H*/

⌨️ 快捷键说明

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