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

📄 otgcontroller.h

📁 GM8120 linux driver.
💻 H
字号:
//////////////////////////////////////////////////////////////////////////////////	File name: OTGController.h//	Version: 1.0//	Date: 2005/1/31//	Author: Bruce//	Company: Faraday Tech. Corp.//	Description: 1.Define Data Type//               2.Define for Bulk//               3.Define Macro///////////////////////////////////////////////////////////////////////////////#ifndef __OTGCONTROL_H	#define __OTGCONTROL_H//=================== 1.OTG Condition Setting ============================================================//========================================================================================================#define   OTGC_Device_Not_Support_Then_Return             1//=================== 2.Define Macro =====================================================================//========================================================================================================	//#define OTG_BASE_ADDRESS	                      0x92000000//0x92500000	#define mbFOTGPort(bOffset)	                       *((volatile UINT8 *) ( OTG_BASE_ADDRESS | bOffset))	#define mwFOTGPort(bOffset)	                       *((volatile UINT16 *) ( OTG_BASE_ADDRESS | bOffset))	#define mdwFOTGPort(bOffset)	                   *((volatile UINT32 *) ( OTG_BASE_ADDRESS | bOffset))  //Offset:0x080(OTG Control/Status Register) => Suppose Word-Read & Word-Write    //~B Function    #define mdwOTGC_Control_B_BUS_REQ_Rd()		      (mdwFOTGPort(0x80)& BIT0)		#define mdwOTGC_Control_B_BUS_REQ_Set()  		  (mdwFOTGPort(0x80) |=  BIT0)  	#define mdwOTGC_Control_B_BUS_REQ_Clr()  		  (mdwFOTGPort(0x80) &=  (~BIT0))         #define mdwOTGC_Control_B_HNP_EN_Rd()		      (mdwFOTGPort(0x80)& BIT1)		#define mdwOTGC_Control_B_HNP_EN_Set()		      (mdwFOTGPort(0x80) |=  BIT1)   	#define mdwOTGC_Control_B_HNP_EN_Clr()  		  (mdwFOTGPort(0x80) &=  (~BIT1))          #define mdwOTGC_Control_B_DSCHG_VBUS_Rd()		  (mdwFOTGPort(0x80)& BIT2)		#define mdwOTGC_Control_B_DSCHG_VBUS_Set()		  (mdwFOTGPort(0x80) |=  BIT2)    	#define mdwOTGC_Control_B_DSCHG_VBUS_Clr() 		  (mdwFOTGPort(0x80) &=  (~BIT2))      //~A Function     #define mdwOTGC_Control_A_BUS_REQ_Rd()	          (mdwFOTGPort(0x80)& BIT4)		#define mdwOTGC_Control_A_BUS_REQ_Set()	          (mdwFOTGPort(0x80) |=  BIT4)    	#define mdwOTGC_Control_A_BUS_REQ_Clr()	          (mdwFOTGPort(0x80) &=  (~BIT4))                #define mdwOTGC_Control_A_BUS_DROP_Rd()	          (mdwFOTGPort(0x80)& BIT5)		#define mdwOTGC_Control_A_BUS_DROP_Set()	      (mdwFOTGPort(0x80) |=  BIT5)      	#define mdwOTGC_Control_A_BUS_DROP_Clr()	      (mdwFOTGPort(0x80) &=  (~BIT5))              #define mdwOTGC_Control_A_SET_B_HNP_EN_Rd()	      (mdwFOTGPort(0x80)& BIT6)		#define mdwOTGC_Control_A_SET_B_HNP_EN_Set()	  (mdwFOTGPort(0x80) |=  BIT6)    	#define mdwOTGC_Control_A_SET_B_HNP_EN_Clr()	  (mdwFOTGPort(0x80) &=  (~BIT6))            #define mdwOTGC_Control_A_SRP_DET_EN_Rd()	      (mdwFOTGPort(0x80)& BIT7)		#define mdwOTGC_Control_A_SRP_DET_EN_Set()	      (mdwFOTGPort(0x80) |=  BIT7)        	#define mdwOTGC_Control_A_SRP_DET_EN_Clr()	      (mdwFOTGPort(0x80) &=  (~BIT7))            #define mdwOTGC_Control_A_SRP_RESP_TYPE_Rd()	  (mdwFOTGPort(0x80)& BIT8)		#define mdwOTGC_Control_A_SRP_RESP_TYPE_Set(b)	  (mdwFOTGPort(0x80) |=  b)      	#define mdwOTGC_Control_A_SRP_RESP_TYPE_Clr()	  (mdwFOTGPort(0x80) &=  (~BIT8))          #define mdwOTGC_Control_VBUS_FLT_SEL_Rd()	      (mdwFOTGPort(0x80)& BIT10)		#define mdwOTGC_Control_VBUS_FLT_SEL_Set()	      (mdwFOTGPort(0x80) |=  BIT10)     	#define mdwOTGC_Control_VBUS_FLT_SEL_Clr()	      (mdwFOTGPort(0x80) &=  (~BIT10))      #define mdwOTGC_Control_711MA_Phy_Issue_Rd()		  (mdwFOTGPort(0x80)& BIT28)	    #define mdwOTGC_Control_711MA_Phy_Issue_Set()  		  (mdwFOTGPort(0x80) |=  BIT28)      #define mdwOTGC_Control_711MA_Phy_Issue_Clr()  		  (mdwFOTGPort(0x80) &=  (~BIT28))      #define mdwOTGC_Control_B_SESS_END_Rd()	          (mdwFOTGPort(0x80)& BIT16)	      #define mdwOTGC_Control_B_SESS_VLD_Rd()	          (mdwFOTGPort(0x80)& BIT17)	      #define mdwOTGC_Control_A_SESS_VLD_Rd()	          (mdwFOTGPort(0x80)& BIT18)	      #define mdwOTGC_Control_A_VBUS_VLD_Rd()	          (mdwFOTGPort(0x80)& BIT19)      #define mdwOTGC_Control_CROLE_Rd()	              (mdwFOTGPort(0x80)& BIT20) //0:Host 1:Peripheral    #define mdwOTGC_Control_ID_Rd()	                  (mdwFOTGPort(0x80)& BIT21) //0:A-Device 1:B-Device    #define mdwOTGC_Control_Rd()	                  (mdwFOTGPort(0x80))        #define mdwOTGC_Control_Speed_Rd()	              ((mdwFOTGPort(0x80)& 0x00C00000)>>22)      #define A_SRP_RESP_TYPE_VBUS	                  0x00	      #define A_SRP_RESP_TYPE_DATA_LINE                 0x100       //Offset:0x004(OTG Interrupt Status Register)     #define mdwOTGC_INT_STS_Rd()                      (mdwFOTGPort(0x84))    #define mdwOTGC_INT_STS_Clr(wValue)               (mdwFOTGPort(0x84) |= wValue)            #define OTGC_INT_BSRPDN                           BIT0      #define OTGC_INT_ASRPDET                          BIT4    #define OTGC_INT_AVBUSERR                         BIT5    #define OTGC_INT_RLCHG                            BIT8    #define OTGC_INT_IDCHG                            BIT9    #define OTGC_INT_OVC                              BIT10    #define OTGC_INT_BPLGRMV                          BIT11    #define OTGC_INT_APLGRMV                          BIT12    //    #define OTGC_INT_A_TYPE                           (OTGC_INT_ASRPDET|OTGC_INT_AVBUSERR|OTGC_INT_OVC|OTGC_INT_RLCHG|OTGC_INT_IDCHG|OTGC_INT_BPLGRMV|OTGC_INT_APLGRMV)    //    #define OTGC_INT_B_TYPE                           (OTGC_INT_BSRPDN|OTGC_INT_AVBUSERR|OTGC_INT_OVC|OTGC_INT_RLCHG|OTGC_INT_IDCHG)   //Offset:0x008(OTG Interrupt Enable Register)     #define mdwOTGC_INT_Enable_Rd()                   (mdwFOTGPort(0x88))    #define mdwOTGC_INT_Enable_Set(wValue)            (mdwFOTGPort(0x88)|= wValue)    #define mdwOTGC_INT_Enable_Clr(wValue)            (mdwFOTGPort(0x88)&= (~wValue))    #define mdwOTGC_INT_Enable_BSRPDN_Set()           (mdwFOTGPort(0x88) |=  BIT0)       #define mdwOTGC_INT_Enable_ASRPDET_Set()          (mdwFOTGPort(0x88) |=  BIT4)       #define mdwOTGC_INT_Enable_AVBUSERR_Set()         (mdwFOTGPort(0x88) |=  BIT5)       #define mdwOTGC_INT_Enable_RLCHG_Set()            (mdwFOTGPort(0x88) |=  BIT8)       #define mdwOTGC_INT_Enable_IDCHG_Set()            (mdwFOTGPort(0x88) |=  BIT9)       #define mdwOTGC_INT_Enable_OVC_Set()              (mdwFOTGPort(0x88) |=  BIT10)       #define mdwOTGC_INT_Enable_BPLGRMV_Set()          (mdwFOTGPort(0x88) |=  BIT11)       #define mdwOTGC_INT_Enable_APLGRMV_Set()          (mdwFOTGPort(0x88) |=  BIT12)       #define mdwOTGC_INT_Enable_BSRPDN_Clr()           (mdwFOTGPort(0x88) &= ~BIT0)            #define mdwOTGC_INT_Enable_ASRPDET_Clr()          (mdwFOTGPort(0x88) &= ~BIT4)            #define mdwOTGC_INT_Enable_AVBUSERR_Clr()         (mdwFOTGPort(0x88) &= ~BIT5)            #define mdwOTGC_INT_Enable_RLCHG_Clr()            (mdwFOTGPort(0x88) &= ~BIT8)            #define mdwOTGC_INT_Enable_IDCHG_Clr()            (mdwFOTGPort(0x88) &= ~BIT9)            #define mdwOTGC_INT_Enable_OVC_Clr()              (mdwFOTGPort(0x88) &= ~BIT10)            #define mdwOTGC_INT_Enable_BPLGRMV_Clr()          (mdwFOTGPort(0x88) &= ~BIT11)           #define mdwOTGC_INT_Enable_APLGRMV_Clr()          (mdwFOTGPort(0x88) &= ~BIT12)       //===================3.Define Stricture ==================================================================//========================================================================================================   typedef enum 	{		OTG_ID_A_TYPE = 0,		OTG_ID_B_TYPE	} OTGC_ID_Type;                 typedef enum 	{		OTG_CurrentRole_Host = 0,		OTG_CurrentRole_Peripheral 	} OTGC_CurrentRole;           typedef struct OTGC_STS	{		OTGC_ID_Type                     ID;                       //0:A-Type   1: B-Type        volatile OTGC_CurrentRole        CurrentRole;	           //1:Host  0:Peripheral        INT8U                            bVBUSAlwaysOn;             //0:For Standard-ISR 1:For AP-ISR                             INT32U                           wCurrentInterruptMask;        volatile INT8U                   bVBUS_Vaild;                INT8U                            bHostISRType;             //0:For Standard-ISR 1:For AP-ISR                  volatile INT8U                   bBusResetRequest;        volatile INT8U                   bPortSuspendStatusChange;                volatile INT8U                   bPortEnableStatusChange;               volatile INT8U                   bPortConnectStatusChange;                volatile INT8U                   bDevice_RESET_Received;                volatile INT8U                   bDevice_RemoteWakeUp_Received;                                                 INT8U                            A_bGet_SRP_HNP_Support;        volatile INT8U                   A_bASRPDET;         volatile INT8U                   B_bBSRPDN;                                                  volatile INT8U                   A_BPLGRMV;                volatile INT8U                   A_APLGRMV;         volatile INT8U                   IDCHG;		INT32U                           wOTGH_Interrupr_Save ;        		INT32U                           wOTGP_Interrupr_Save ;        	} OTGC_STS;		//===================4.Define Extern Function =====================================================================//========================================================================================================  //--From OTGController.C   extern void OTG_Init(void);  extern void OTG_INT_ISR(void);  extern void OTG_RoleChange(INT8U bRole);  extern void OTGC_Init(void);  extern void OTGC_INT_ISR(UINT32 wINTStatus);  extern void OTGC_A_Bus_Drop(void);  extern INT8U OTGC_A_SRP_Init(void);  extern INT8U OTGC_A_HNP_Init(void);  extern void OTGC_A_Menu(void);  extern UINT8 OTGC_B_SRP_Init(void);  extern UINT8 OTGC_B_HNP_Init(void);  extern void OTGC_B_Menu(void);  extern UINT8 OTGC_VBS_Valid(void);  //--From other file  extern void OTGH_PathTest_Main(void);      extern void OTGP_init(UINT8 bInitAP);  extern void OTGP_Close(void);  extern void OTGP_main(UINT8 bDoNotInit,UINT8 bWaitForVBUS,UINT8 bExitMode);  extern void OTGP_CV_Test_main(void);  extern void OTGP_Resume_Test_main(void);    extern void OTGH_AP_Main(void);      extern void OTGC_A_PHY_Reset(void);    extern void OTGH_Error_Handle(void);  //===================5.Define Extern Variable =====================================================================//========================================================================================================  extern OTGC_STS  OTG;	#endif	

⌨️ 快捷键说明

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