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

📄 pe_usb.h

📁 GM8120 linux driver.
💻 H
字号:
#ifndef __USB_H	#define __USB_H	#include "flib.h" 	#include "symbol.h"#include "FOTG200_peripheral.h"  #define HighBandWidth_None         0x00  #define HighBandWidth_2            0x01  #define HighBandWidth_3            0x02   	////// Define USB transfer test defines//////	#define Bulk_AP					0	#define Interrupt_AP			1   //Important:this setting only for cross-connection, NOT for PC test-bench	#define IsochronousIN_AP		2			#define IsochronousOUT_AP		3		#define OTG_AP_Satus			Bulk_AP	////// Define Bulk transfer FIFO test ///////	#define Bulk_FIFO_SingleDir		0		#define Bulk_FIFO_BiDir			1				#define Bulk_Satus				Bulk_FIFO_BiDir	//================ 1. Define for control Vandor test==================================================	extern INT8U u8CxOUTVandorDataCount;	extern INT8U u8CxINVandorDataCount;//================ 2.Define for Bulk =====================================================================================	#define ShowMassMsg		0	#define MAX_BUFFER_SIZE	0x10000//0x2000//bruce;;04182005;;0x10000	#define DBUS_RD				1	#define DBUS_WR				2	#define APB_RD				3	#define APB_WR				4	#define DBUS2APB			5	#define APB2DBUS			6	#define CBW_SIGNATE		0x43425355	#define CSW_SIGNATE			0x53425355	#define CSW_STATUS_CMD_PASS			0x00	#define CSW_STATUS_CMD_FAIL			0x01	#define CSW_STATUS_PHASE_ERROR		0x02	typedef enum 	{		IDLE,		STATE_CBW,		STATE_CB_DATA_IN,		STATE_CB_DATA_OUT,		STATE_CSW	} MassStorageState;	typedef struct CommandBlockWrapper	{		INT32U u32Signature;		INT32U u32Tag;		INT32U u32DataTransferLength;		INT8U u8Flags;		INT8U u8LUN;		INT8U u8CBLength;		INT8U u8CB[16];	} CBW;	typedef struct CommandStatusWrapper	{		INT32U u32Signature;		INT32U u32Tag;		INT32U u32DataResidue;		INT8U u8Status;	} CSW;	extern CBW tOTGCBW;	extern CSW tOTGCSW;	extern MassStorageState eUsbOTGMassStorageState;		extern INT8U   *u8VirtOTGMemory;//[MAX_BUFFER_SIZE];	extern INT32U*   u32VirtOTGMemory;	extern INT32U   u32VirtOTGMemoryIndex;		extern INT32U	 u32OTGFIFOUseDMA;	extern INT32U	 u32UseDMAOTGChannel;	extern INT8U   bOTGDMARunning;		extern void vUsb_Bulk_Out(INT16U u16FIFOByteCount);	extern void vUsb_Bulk_In(void);	extern void vOTG_APInit(void);	extern void vOTGCheckDMA(void);//================ 3.Define for Interrupt =====================================================================================	#define IntTransSizeFix 		0		extern INT8U *u8InterruptOTGArray;	extern INT8U u8OTGInterruptCount;	extern INT32U u32OTGInterrupt_TX_COUNT ;		extern INT8U u8OTGInterruptOutCount ;	extern INT32U u32OTGInterrupt_RX_COUNT ;	extern void vOTG_Interrupt_In(void);	extern void vOTG_Interrupt_Initial(void);	extern void vOTG_Interrupt_Out(void);//================   Define for Isochronous =========================	#define ISO_Wrap 	254//254		extern INT32U *u32OTGISOArray;	extern INT32U u32ISOOTGInTransferCount;	extern INT32U u32ISOOTGOutTransferCount;	extern INT32U u32ISOOTGInTest[4096];	extern INT32U *u32ISOOTGOutArray;	extern INT8U u8ISOOTGOutCount ;	extern void vOTG_ISO_Initial(void);	extern void vOTG_ISO_In(void);	extern void vOTG_ISO_Out(void);	extern void vAHB_DMA_WaitIntStatus(UINT32 Channel);	//============== 4.Define for main.c =========================================	                         	extern INT8U u8LineOTGCount;//============== 5.Define for usb.c  =========================================	typedef enum 	{		CMD_VOID,						// No command		CMD_GET_DESCRIPTOR,			// Get_Descriptor command		CMD_SET_DESCRIPTOR,			// Set_Descriptor command		CMD_CxOUT_Vendor,				//Cx OUT Vandor command test		CMD_CxIN_Vendor				//Cx IN Vandor command test	} CommandType;	typedef enum 	{		ACT_IDLE,		ACT_DONE,		ACT_STALL	} Action;	#define DCacheEnable				0	// Table 9-5. Descriptor Types	#define DT_DEVICE							1	#define DT_CONFIGURATION					2	#define DT_STRING							3	#define DT_INTERFACE						4	#define DT_ENDPOINT							5	#define DT_DEVICE_QUALIFIER					6	#define DT_OTHER_SPEED_CONFIGURATION		7	#define DT_INTERFACE_POWER					8	#define DT_OTG				                9 //For OTG		    //For OTG    #define OTG_SRP_SUPPORT			    0x01    #define OTG_HNP_SUPPORT			    0x02		#define FS_OTG_SUPPORT          (OTG_SRP_SUPPORT | OTG_HNP_SUPPORT)   			#define TEST_J								0x02	#define TEST_K								0x04	#define TEST_SE0_NAK						0x08	#define TEST_PKY								0x10	//*******************************************************	// Structure	typedef struct Setup_Packet	{		INT8U Direction;		/*Data transfer direction: IN, OUT*/		INT8U Type;			/*Request Type: Standard, Class, Vendor*/		INT8U Object;		/*Recipient: Device, Interface, Endpoint,other*/		INT16U Request;		/*Refer to Table 9-3*/		INT16U Value;		INT16U Index;		INT16U Length;	} SetupPacket;	extern BOOLEAN bOTGBufferEmpty;	extern INT8U u8OTGMessageLevel;		extern INT32U OTG_interrupt_level1;	extern INT32U OTG_interrupt_level1_Save;	extern INT32U OTG_interrupt_level1_Mask;		extern INT8U u8OTGConfigValue;	extern INT8U u8OTGInterfaceValue;	extern INT8U u8OTGInterfaceAlternateSetting;	extern BOOLEAN bOTGHighSpeed;		extern void vOTGInit(void);	extern void vOTGHandler(void);		extern void vOTGFIFO_EPxCfg_HS(void);	extern void vOTGFIFO_EPxCfg_FS(void);	extern void vFOTG200_Dev_Init(void);	extern void vOTG_ep0setup(void);	extern BOOLEAN bOTGStandardCommand(void);	extern BOOLEAN bGet_OTGstatus(void);	extern BOOLEAN bClear_OTGfeature(void);	extern BOOLEAN bSet_OTGfeature(void);	extern BOOLEAN bSet_OTGaddress(void);	extern BOOLEAN bGet_OTGdescriptor(void);	extern void vOTGEP0TxData(void);	extern BOOLEAN bSet_OTGdescriptor(void);	extern void vOTGEP0RxData(void);	extern void vGet_OTGconfiguration(void);	extern BOOLEAN bSet_OTGconfiguration(void);	extern void vOTGClrEPx(void);	extern void vOTGClrEPxFIFOxReg(void);	extern BOOLEAN bGet_OTGinterface(void);	extern BOOLEAN bSet_OTGinterface(void);	extern BOOLEAN bSynch_OTGframe(void);	extern void vOTG_ep0tx(void);	extern void vOTGEP0TxData(void);	extern void vOTG_ep0rx(void);	extern void vOTGEP0RxData(void);	extern void vOTG_ep0end(void);	extern void vOTG_ep0fail(void);	extern void vOTG_ep0abort(void);		extern void vOTG_rst(void);	extern void vOTG_suspend(void);	extern void vOTG_resm(void);	extern void vOTG_sof(void);			extern void vOTG_ISO_SeqErr(void);	      	extern void vOTG_ISO_SeqAbort(void);   	extern void vOTG_TX0Byte(void);	extern void vOTG_RX0Byte(void);		extern void vOTGDxFWr(INT8U FIFONum, INT8U * pu8Buffer, INT16U u16Num);	extern void vOTGDxFRd(INT8U FIFONum, INT8U * pu8Buffer, INT16U u16Num);	extern void vOTGCxFWr( INT8U *pu8Buffer, INT16U u16Num);	extern void vOTGCxFRd( INT8U *pu8Buffer, INT16U u16Num);	extern void flib_Debug_LED_Init(void);extern void flib_Debug_LED_On_All(void);extern void flib_Debug_LED_Off_All(void);#endif /* __USB_H  */

⌨️ 快捷键说明

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