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

📄 lcd_sw.h

📁 这个是MTK手机平台上面的LCD
💻 H
📖 第 1 页 / 共 4 页
字号:
			}

		#endif
	#endif // #ifdef __SM264_MIKI_DRV_LCD_TRULY_GG3800__

		#if defined(__SM264_MIKI_DRV_LCD_TRULY_GG3558__)

		#define LCD_S1D19105_CTRL_ADDR		LCD_PARALLEL0_A0_LOW_ADDR
		#define LCD_S1D19105_DATA_ADDR		LCD_PARALLEL0_A0_HIGH_ADDR
		#define MAIN_LCD_CMD_ADDR			LCD_S1D19105_CTRL_ADDR
		#define MAIN_LCD_DATA_ADDR		LCD_S1D19105_DATA_ADDR			
		#define MAIN_LCD_OUTPUT_FORMAT	LCM_8BIT_16_BPP_RGB565_1
		#define SET_LCD_PARALLEL_DATA_BUS_WIDTH         SET_LCD_PARALLEL_8BIT_DATA_BUS
		
		#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) {};\
				}

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

				#define LCD_DataWrite_S1D19105(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_DATA, (_data&0xFF));\
					LCD_SEND_DMA_CMD(1);\
				}
			#else
				
				#define LCD_CtrlWrite_S1D19105(_data)  \
				{\
					*(volatile kal_uint8 *) LCD_S1D19105_CTRL_ADDR= (_data&0xFF);\
					Dummy_Delay();\
				}

				#define LCD_DataWrite_S1D19105(_data)  \
				{\
					*(volatile kal_uint8 *) LCD_S1D19105_DATA_ADDR = (_data&0xFF);\
					Dummy_Delay();\
				}
					
			#endif // LCD_CMD_DMA_MODE 
			
			#define Write_REG_S1D19105(_reg,_data)\
			{\
				LCD_CtrlWrite_S1D19105(_reg);\
				LCD_DataWrite_S1D19105(_data); \
			}

		#endif
	#endif // #ifdef __SM264_MIKI_DRV_LCD_TRULY_GG3558__

	//===========================================================================
//
//   	SAMSUNG  	262k Color LCD,  176x220   Parallel Interface
//   	Chip	 		S6D0118                        
//                          
//===========================================================================
#ifdef __DRV_LCD_SAMSUNG_S6D0118__ 

		#define LCD_CTRLAddr				LCD_PARALLEL0_A0_LOW_ADDR
		#define LCD_DATAAddr				LCD_PARALLEL0_A0_HIGH_ADDR

		#define LCD_S6D0118_CTRL_ADDR		LCD_CTRLAddr
		#define LCD_S6D0118_DATA_ADDR		LCD_DATAAddr
		
		#define MAIN_LCD_CMD_ADDR			LCD_S6D0118_CTRL_ADDR
		#define MAIN_LCD_DATA_ADDR		LCD_S6D0118_DATA_ADDR
		#define MAIN_LCD_OUTPUT_FORMAT	LCM_8BIT_16_BPP_RGB565_1
		#define SET_LCD_PARALLEL_DATA_BUS_WIDTH         SET_LCD_PARALLEL_8BIT_DATA_BUS
		

		#if (defined(MT6218B) || defined(MT6219) || defined(MT6217) || defined(MT6226)|| defined(MT6226M))
		
			#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_CMD_DMA_MODE
				#define LCD_CtrlWrite_S6D0118(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_CMD, (_data & 0xFF00) >> 8);\
					SET_LCD_CMD_PARAMETER(1, LCD_CMD, (_data & 0x00FF));\
					LCD_SEND_DMA_CMD(2);\
				}

				#define LCD_DataWrite_S6D0118(_data) \
				{\
					SET_LCD_CMD_PARAMETER(0, LCD_DATA, (_data & 0xFF00) >> 8);\
					SET_LCD_CMD_PARAMETER(1, LCD_DATA, (_data & 0xFF));\
					LCD_SEND_DMA_CMD(2);\
				}
				
			#else
				#define LCD_CtrlWrite_S6D0118(_data)  \
				{\
					*(volatile kal_uint8 *) LCD_S6D0118_CTRL_ADDR = (_data & 0xFF00) >> 8;\
					*(volatile kal_uint8 *) LCD_S6D0118_CTRL_ADDR = _data & 0x00FF;\
					Dummy_Delay();\
				}

				#define LCD_DataWrite_S6D0118(_data)  \
				{\
					*(volatile kal_uint8 *) LCD_S6D0118_DATA_ADDR = (_data  & 0xFF00) >> 8;\
					*(volatile kal_uint8 *) LCD_S6D0118_DATA_ADDR = _data  & 0xFF;\
					Dummy_Delay();\
				}
			#endif // LCD_CMD_DMA_MODE 
			
			#define LCD_RAMWrite_S6D0118(_data)  \
				{\
					*(volatile kal_uint8 *) LCD_S6D0118_DATA_ADDR = (_data & 0xFF00) >> 8;\
					*(volatile kal_uint8 *) LCD_S6D0118_DATA_ADDR = _data  & 0xFF;\
				}

		#endif
#endif  		// #ifdef __DRV_LCD_SAMSUNG_S6D0118__

#ifdef __MIKI_DRV_LCD_TRULY_GG3674__

   #define LCD_S6D0110_CTRL_ADDR	   LCD_PARALLEL0_A0_LOW_ADDR
   #define LCD_S6D0110_DATA_ADDR	   LCD_PARALLEL0_A0_HIGH_ADDR
   #define MAIN_LCD_CMD_ADDR			   LCD_S6D0110_CTRL_ADDR
   #define MAIN_LCD_DATA_ADDR			   LCD_S6D0110_DATA_ADDR
   #define MAIN_LCD_OUTPUT_FORMAT	   LCM_8BIT_16_BPP_RGB565_1
   #define SET_LCD_PARALLEL_DATA_BUS_WIDTH         SET_LCD_PARALLEL_8BIT_DATA_BUS
   
   #define LCD_UC1682XHCY_CTRL_ADDR		   LCD_PARALLEL1_A0_LOW_ADDR
   #define LCD_UC1682XHCY_DATA_ADDR		   LCD_PARALLEL1_A0_HIGH_ADDR
   #define SUB_LCD_CMD_ADDR			   LCD_UC1682XHCY_CTRL_ADDR
   #define SUB_LCD_DATA_ADDR			   LCD_UC1682XHCY_DATA_ADDR
   #define SUB_LCD_OUTPUT_FORMAT		                   LCM_8BIT_16_BPP_BGR565_1//LCM_8BIT_16_BPP_RGB565_1
  #define SET_LCD_PARALLEL1_DATA_BUS_WIDTH         SET_LCD_PARALLEL1_8BIT_DATA_BUS


 		#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) {};\
			}
                 /*MAIN LCD driver S6D0110, used paralle0*/
		#define LCD_CtrlWrite_S6D0110(_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_S6D0110(_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);\
		}

		#define LCD_RAMWrite_S6D0110(_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);\
	        }
                 /*SUB LCD UC1682XHCY, used paralle1*/  
		#define LCD_CtrlWrite_UC1682XHCY(_data) \
		{\
			SET_LCD_CMD_PARAMETER(0,LCD_CMD,(_data&0xFF));\
			LCD_SEND_DMA_CMD(1);\
		}

		#define LCD_DataWrite_UC1682XHCY(_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);\
		}

		#define LCD_RAMWrite_UC1682XHCY(_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);\
	        }

	#else
                 /*MAIN LCD driver S6D0110, used paralle0*/
		#define LCD_CtrlWrite_S6D0110(_data)  \
		{\
		        *(volatile kal_uint8 *)LCD_S6D0110_CTRL_ADDR = (_data & 0xFF00) >>8;\
   	                Dummy_Delay();\
   	                *(volatile kal_uint8 *)LCD_S6D0110_CTRL_ADDR = (_data & 0xFF);\
   	                Dummy_Delay();\
		}
		#define LCD_DataWrite_S6D0110(_data)  \
		{\
		        *(volatile kal_uint8 *)LCD_S6D0110_DATA_ADDR = (_data & 0xFF00) >>8;\
		        Dummy_Delay();\
   	                *(volatile kal_uint8 *)LCD_S6D0110_DATA_ADDR = (_data & 0xFF);\
 			Dummy_Delay();\
		}
	        #define LCD_RAMWrite_S6D0110(_data)  \
	       {\
		        *(volatile kal_uint8 *)LCD_S6D0110_DATA_ADDR = (_data & 0xFF00) >>8;\
		        Dummy_Delay();\
   	                *(volatile kal_uint8 *)LCD_S6D0110_DATA_ADDR = (_data & 0xFF);\
   	                Dummy_Delay();\
	       }

               /*SUB LCD UC1682XHCY, used paralle1*/

		#define LCD_CtrlWrite_UC1682XHCY(_data)  \
		{\
		        *(volatile kal_uint8 *)LCD_UC1682XHCY_CTRL_ADDR = (_data & 0xFF00) >>8;\
   	                Dummy_Delay();\
   	                *(volatile kal_uint8 *)LCD_UC1682XHCY_CTRL_ADDR = (_data & 0xFF);\
   	                Dummy_Delay();\
		}
		
		#define LCD_DataWrite_UC1682XHCY(_data)  \
		{\
		        *(volatile kal_uint8 *)LCD_UC1682XHCY_DATA_ADDR = (_data & 0xFF00) >>8;\
		        Dummy_Delay();\
   	                *(volatile kal_uint8 *)LCD_UC1682XHCY_DATA_ADDR = (_data & 0xFF);\
 			Dummy_Delay();\
		}
	        #define LCD_RAMWrite_UC1682XHCY(_data)  \
	       {\
		        *(volatile kal_uint8 *)LCD_UC1682XHCY_DATA_ADDR = (_data & 0xFF00) >>8;\
		        Dummy_Delay();\
   	                *(volatile kal_uint8 *)LCD_UC1682XHCY_DATA_ADDR = (_data & 0xFF);\
   	                Dummy_Delay();\
	       }

	#endif /* LCD_CMD_DMA_MODE */
#endif

	       	#define Write_REG_UC1682XHCY(reg, data) \
			{\
				LCD_CtrlWrite_UC1682XHCY(reg);  \
				LCD_DataWrite_UC1682XHCY(data); \
			}

#endif

	#ifdef WSX6396A
	
	#define LCD_WSX6396A_CTRL_ADDR		LCD_PARALLEL0_A0_LOW_ADDR
	#define LCD_WSX6396A_DATA_ADDR		LCD_PARALLEL0_A0_HIGH_ADDR
	#define MAIN_LCD_CMD_ADDR		LCD_WSX6396A_CTRL_ADDR
	#define MAIN_LCD_DATA_ADDR		LCD_WSX6396A_DATA_ADDR
	#define MAIN_LCD_OUTPUT_FORMAT		LCM_8BIT_16_BPP_RGB565_1
	#define SET_LCD_PARALLEL_DATA_BUS_WIDTH         SET_LCD_PARALLEL_8BIT_DATA_BUS

	#define LCD_SSD1773_CTRL_ADDR		LCD_PARALLEL1_A0_LOW_ADDR
	#define LCD_SSD1773_DATA_ADDR		LCD_PARALLEL1_A0_HIGH_ADDR
	#define SUB_LCD_CMD_ADDR		LCD_SSD1773_CTRL_ADDR
	#define SUB_LCD_DATA_ADDR		LCD_SSD1773_DATA_ADDR
	#define SUB_LCD_OUTPUT_FORMAT		LCM_8BIT_16_BPP_BGR565_1

/***********************WSX6396A********************************/
		#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) {};\
		}

		#define LCD_CtrlWrite_WSX6396A(_data) \
		{\
			SET_LCD_CMD_PARAMETER(0,LCD_CMD,(_data & 0xFF00) >>8);\
			SET_LCD_CMD_PARAMETER(1,LCD_CMD,(_data & 0xFF));\
			LCD_SEND_DMA_CMD(2);\
		}

		#define LCD_DataWrite_WSX6396A(_data) \
		{\
			SET_LCD_CMD_PARAMETER(0,LCD_DATA,(_data & 0xFF00) >>8);\
			SET_LCD_CMD_PARAMETER(1,LCD_DATA,(_data & 0xFF));\
			LCD_SEND_DMA_CMD(2);\
		}
	#else
		#define LCD_CtrlWrite_WSX6396A(_data) \
		{ \
			*(volatile kal_uint8 *)LCD_WSX6396A_CTRL_ADDR = (_data & 0xFF00) >>8;\
			*(volatile kal_uint8 *)LCD_WSX6396A_CTRL_ADDR = (_data & 0xFF); \
		}

		#define LCD_DataWrite_WSX6396A(_data) \
		{\
			*(volatile kal_uint8 *)LCD_WSX6396A_DATA_ADDR = (_data & 0xFF00) >>8; \
			*(volatile kal_uint8 *)LCD_WSX6396A_DATA_ADDR = (_data & 0xFF); \
		}
	#endif /* LCD_CMD_DMA_MODE */
	
	#define LCD_RAMWrite_WSX6396A(_data) \
	{\
  		*(volatile kal_uint8 *)LCD_WSX6396A_DATA_ADDR = ((_data&0xFF00)>>8);\
  		*(volatile kal_uint8 *)LCD_WSX6396A_DATA_ADDR= (_data&0xFF);\
	}

	#define LCD_CtrlWrite_SSD1773(_data) \
	{ \
		*(volatile kal_uint8 *) LCD_SSD1773_CTRL_ADDR= _data; \
	}

	#define LCD_DataWrite_SSD1773(_data)  \
	{ \
		*(volatile kal_uint8 *)LCD_SSD1773_DATA_ADDR = _data;\
	}
	
	#define LCD_RAMWrite_SSD1773(_data) \
	{\
  		*(volatile kal_uint8 *)LCD_SSD1773_DATA_ADDR = ((_data&0xFF00)>>8);\
  		*(volatile kal_uint8 *)LCD_SSD1773_DATA_ADDR= (_data&0xFF);\
	}
#endif

#endif

	#ifdef __SM261_LCD_SOLOMON_SSD1288__
	
	#if (defined(MT6218B) || defined(MT6219) || defined(MT6217)||defined(MT6226)||defined(MT6227)|| defined(MT6226M))
	
		#define LCD_DUMMYADDR   			0x90000000
		#define LCD_CTRLAddr				LCD_PARALLEL0_A0_LOW_ADDR
		#define LCD_DATAAddr				LCD_PARALLEL0_A0_HIGH_ADDR
		#define SET_LCD_PARALLEL_DATA_BUS_WIDTH SET_LCD_PARALLEL_8BIT_DATA_BUS
		
		#define LCD_CMD_DMA_MODE				
	#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;\

⌨️ 快捷键说明

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