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

📄 usb_hwinterface_layer.h

📁 freescale atk source code
💻 H
字号:
/*======================================================================================================================================================================================================    Module Name:  usb_hwinterface_layer.h    General Description: This is the header file for HW interface layer .====================================================================================================                               Freescale Confidential Proprietary                       Copyright (c) 2006 Freescale Inc. All Rights ReservedRevision History:                            Modification     TrackingAuthor                      Date (mm/dd/yy)   Number     Description of Changes-------------------------   ------------    ----------   -------------------------------------------Prabhat Singh              29/01/2008       Engcm03148          USB lpb flow modification Siva Pothireddy             26-Dec-2007   engcm02041   Added additional registers for USBOH3Mahima Verma                 19/Jul/2007    TLSbo94597   Change in USB address definition. Mahima Verma                 06/11/2007     TLSbo93857   Ported to Marley.Suresh Kumar                 15/Oct/2006    TLSbo80774   Initial Version for ZappaBharat Bhushan               08/24/2006     TLSbo76463   Porting to SKYE+ .Bharat Bhushan               07/20/2006     TLSbo73521   Defines for ULPI Driver added.Bharat Bhushan               05/10/2006     TLSbo68884   Initial Version ( USB Layer Architecture).====================================================================================================                                        INCLUDE FILES==================================================================================================*/#ifndef USB_HWINTERFACE_LAYER_H#define USB_HWINTERFACE_LAYER_H#ifdef __cplusplusextern "C" {#endif#include <suapi.h> #define BIT0 	0x00000001#define BIT1 	0x00000002#define BIT2 	0x00000004#define BIT3 	0x00000008#define BIT4	0x00000010#define BIT5 	0x00000020#define BIT6	0x00000040#define BIT7	0x00000080#define BIT8	0x00000100#define BIT9 	0x00000200#define BIT10 	0x00000400#define BIT11 	0x00000800#define BIT12 	0x00001000#define BIT13 	0x00002000#define BIT14 	0x00004000#define BIT15 	0x00008000#define BIT16 	0x00010000#define BIT17 	0x00020000#define BIT18 	0x00040000#define BIT19 	0x00080000#define BIT20 	0x00100000#define BIT21 	0x00200000#define BIT22 	0x00400000#define BIT23 	0x00800000#define BIT24 	0x01000000#define BIT25 	0x02000000#define BIT26 	0x04000000#define BIT27 	0x08000000#define BIT28 	0x10000000#define BIT29 	0x20000000#define BIT30 	0x40000000#define BIT31 	0x80000000/* Device Queue Head and Device Transfer Descriptor Related Defination */#define SIZE_OF_QHD	0x40#define SIZE_OF_DTD0 	0x20#define SIZE_OF_DTD1 	0x20#define dTD_SIZE_EPIN 	(SIZE_OF_DTD0 + SIZE_OF_DTD1)#define dTD_SIZE_EPOUT 	(SIZE_OF_DTD0 + SIZE_OF_DTD1)#define BUFFER_USED_PER_EP ((SIZE_OF_QHD + dTD_SIZE_EPIN) +(SIZE_OF_QHD + dTD_SIZE_EPOUT))#define ZLT_ENABLE	0#define ZLT_DISABLE 	1#define IOS_NOTSET	0#define IOS_SET		1#define IOC_NOTSET	0#define IOC_SET		1#define TERMINATE	1#define NOT_TERMINATE	0#define NO_STATUS 0#define ACTIVE	BIT7#define EPOUT_COMPLETE  BIT0#define EPIN_COMPLETE	BIT16	#define EPOUT_PRIME	BIT0#define EPIN_PRIME	BIT16#define EPOUT_ENABLE	BIT7#define EPIN_ENABLE     BIT23#define STALL_RX	0x00000001#define STALL_TX	0x00010000/* Buffer size of the buffer used for bulk data transfer */ #define	CONTROL_BUFFER_SIZE	0x40#define BULK_BUFFER_SIZE	0x200#define NUM_OF_BULK_BUFFER	0x2	#define TOTAL_DATA_BUFFER_SIZE	((BULK_BUFFER_SIZE * NUM_OF_BULK_BUFFER) + CONTROL_BUFFER_SIZE)/*  Hash Define for PORTSC1 Register *//* Defines for USB OTG Interface Speed  */#define  USB_OTG_INF_SPEED_MASK	0x0C000000#define  USB_OTG_INF_SPEED_FS	0x00000000#define  USB_OTG_INF_SPEED_LS	0x04000000#define  USB_OTG_INF_SPEED_HS	0x08000000#define  USB_OTG_DEV_ATTACHED   0x00000001 /* State whether the device is attached or not */#define  usb_base_address 0x73F80000#define  USB_OTG_BASE_ADDR ((UINT32)usb_base_address + 0x000) #define  USB_H1_BASE_ADDR (usb_base_address + 0x200) #define  USB_H2_BASE_ADDR (usb_base_address + 0x400) #define  USB_CONTROL_REG ((UINT32)usb_base_address + 0x800) #define  USB_OTG_MIRROR_REG ((UINT32)usb_base_address + 0x804) #define  USB_PHY_CTRL_0_REG ((UINT32)usb_base_address + 0x808) #define  USB_PHY_CTRL_1_REG ((UINT32)usb_base_address + 0x80c) #define  USB_CTRL_1_REG ((UINT32)usb_base_address + 0x810) #define USB_PHY_CTRL_0_CHRGERDETON_MASK 0x00800000#define USB_PHY_CTRL_0_CHRGERDETON_VAL    0x00800000#define USB_PHY_CTRL_0_CHRGERDETEN_MASK  0x01000000 #define USB_PHY_CTRL_0_CHRGERDETEN_VAL     0x01000000#define USB_PHY_CTRL_0_CHRGERDET_MASK       0x00000004#define USB_PHY_CTRL_0_CHRGERDETON_SET()    *(VP_U32)USB_PHY_CTRL_0_REG =((*(VP_U32)USB_PHY_CTRL_0_REG & ~ USB_PHY_CTRL_0_CHRGERDETON_MASK) \											| USB_PHY_CTRL_0_CHRGERDETON_VAL)#define USB_PHY_CTRL_0_CHRGERDETEN_SET()    *(VP_U32)USB_PHY_CTRL_0_REG =((*(VP_U32)USB_PHY_CTRL_0_REG & ~ USB_PHY_CTRL_0_CHRGERDETEN_MASK) \											| USB_PHY_CTRL_0_CHRGERDETEN_VAL) /*Hash Defines for PHY_CTRL_REG_1*/#define  USB_PHY_CTRL_PLLDIVVALUE_MASK  0x00000003#define  USB_PHY_CTRL_PLLDIVVALUE_19_2_MHZ  0x00000000#define  USB_PHY_CTRL_PLLDIVVALUE_24_MHZ  0x00000001#define  USB_PHY_CTRL_PLLDIVVALUE_26_MHZ  0x00000002#define  USB_PHY_CTRL_PLLDIVVALUE_27_MHZ  0x00000003  /*#**************#  # USB HOST 1   ##**************#  */#define  USB_H1_ID (USB_H1_BASE_ADDR +0x000) 		/*   Identification Register */               #define  USB_H1_HWGENERAL (USB_H1_BASE_ADDR +0x004) 	/*   General Hardware Parameters*/            #define  USB_H1_HWHOST (USB_H1_BASE_ADDR +0x008) 	/*   Host Hardware Parameters       */        #define  USB_H1_HWTXBUF (USB_H1_BASE_ADDR +0x010) 	/* TX Buffer Hardware Parameters  */        #define  USB_H1_HWRXBUF (USB_H1_BASE_ADDR +0x014) 	/*   RX Buffer Hardware Parameters   */       #define  USB_H1_CAPLENGTH (USB_H1_BASE_ADDR +0x100) 	/*   Capability Register Length     */        #define  USB_H1_HCIVERSION (USB_H1_BASE_ADDR +0x102) 	/*   Host Interface Version Number  */        #define  USB_H1_HCSPARAMS (USB_H1_BASE_ADDR +0x104) 	/*   Host Ctrl. Structural Parameters */      #define  USB_H1_HCCPARAMS (USB_H1_BASE_ADDR +0x108) 	/*   Host Ctrl. Capability Parameters  */     #define  USB_H1_USBCMD (USB_H1_BASE_ADDR +0x140) 	/*   USB Command            */ #define  USB_H1_USBSTS (USB_H1_BASE_ADDR +0x144) 	/*   USB Status             */ #define  USB_H1_USBINTR (USB_H1_BASE_ADDR +0x148) 	/*   USB Interrupt Enable   */#define  USB_H1_FRINDEX (USB_H1_BASE_ADDR +0x14C) 	/*   USB Frame Index  */#define  USB_H1_PERIODICLISTBASE (USB_H1_BASE_ADDR +0x154) /*   Frame List Base Address */ #define  USB_H1_ASYNCLISTADDR (USB_H1_BASE_ADDR +0x158) /*   Next Asynchronous List Address */        #define  USB_H1_BURSTSIZE (USB_H1_BASE_ADDR +0x160) 	/*   Programmable Burst Size*/                #define  USB_H1_TXFILLTUNING (USB_H1_BASE_ADDR +0x164) 	/*   Host Transmit Pre-Buffer Packet Tuning */#define  USB_H1_CONFIGFLAG (USB_H1_BASE_ADDR +0x180) 	/*   Configured Flag Register*/               #define  USB_H1_PORTSC1 (USB_H1_BASE_ADDR +0x184) 	/*   Port Status/Control */                   #define  USB_H1_USBMODE (USB_H1_BASE_ADDR +0x1A8) 	/*   USB Device Mode */                        /*	#**********************  # USB HOST 2  #**********************  */#define  USB_H2_ID (USB_H2_BASE_ADDR +0x000) 		/*   Identification Register  */#define  USB_H2_HWGENERAL (USB_H2_BASE_ADDR +0x004) 	/*   General Hardware Parameters  */#define  USB_H2_HWHOST (USB_H2_BASE_ADDR +0x008) 	/*   Host Hardware Parameters   */#define  USB_H2_HWTXBUF (USB_H2_BASE_ADDR +0x010) 	/*   TX Buffer Hardware Parameters   */#define  USB_H2_HWRXBUF (USB_H2_BASE_ADDR +0x014) 	/*   RX Buffer Hardware Parameters   */#define  USB_H2_CAPLENGTH (USB_H2_BASE_ADDR +0x100) 	/*   Capability Register Length    */#define  USB_H2_HCIVERSION (USB_H2_BASE_ADDR +0x102) 	/*   Host Interface Version Number  */ #define  USB_H2_HCSPARAMS (USB_H2_BASE_ADDR +0x104) 	/*   Host Ctrl. Structural Parameters */   #define  USB_H2_HCCPARAMS (USB_H2_BASE_ADDR +0x108) 	/*   Host Ctrl. Capability Parameters  */      #define  USB_H2_USBCMD (USB_H2_BASE_ADDR +0x140) 	/*   USB Command  */            #define  USB_H2_USBSTS (USB_H2_BASE_ADDR +0x144) 	/*   USB Status   */               #define  USB_H2_USBINTR (USB_H2_BASE_ADDR +0x148) 	/*   USB Interrupt Enable */                   #define  USB_H2_FRINDEX (USB_H2_BASE_ADDR +0x14C) 	/*   USB Frame Index */#define  USB_H2_PERIODICLISTBASE (USB_H2_BASE_ADDR +0x154) /*   Frame List Base Address  */               #define  USB_H2_ASYNCLISTADDR (USB_H2_BASE_ADDR +0x158) /*   Next Asynchronous List Address */         #define  USB_H2_BURSTSIZE (USB_H2_BASE_ADDR +0x160) 	/*   Programmable Burst Size   */              #define  USB_H2_TXFILLTUNING (USB_H2_BASE_ADDR +0x164) 	/*   Host Transmit Pre-Buffer Packet Tuning  */#define  USB_H2_CONFIGFLAG (USB_H2_BASE_ADDR +0x180) 	/*   Configured Flag Register */               #define  USB_H2_PORTSC1 (USB_H2_BASE_ADDR +0x184) 	/*   Port Status/Control  */                   #define  USB_H2_USBMODE (USB_H2_BASE_ADDR +0x1A8) 	/*   USB Device Mode */                         /*	#*************  #   OTG  #*************  */#define  USB_OTG_ID (USB_OTG_BASE_ADDR + 0x000) 	/*   Identification Register */#define  USB_OTG_HWGENERAL (USB_OTG_BASE_ADDR + 0x004) 	/*   General Hardware Parameters */#define  USB_OTG_HWHOST (USB_OTG_BASE_ADDR + 0x008) 	/*   Host Hardware Parameters */#define  USB_OTG_HWDEVICE (USB_OTG_BASE_ADDR + 0x00C) 	/*   Device Hardware Parameters */#define  USB_OTG_HWTXBUF (USB_OTG_BASE_ADDR + 0x010) 	/*   TX Buffer Hardware Parameters */#define  USB_OTG_HWRXBUF (USB_OTG_BASE_ADDR + 0x014) 	/*   RX Buffer Hardware Parameters */#define  USB_OTG_CAPLENGTH (USB_OTG_BASE_ADDR + 0x100) 	/*   Capability Register Length */#define  USB_OTG_HCIVERSION (USB_OTG_BASE_ADDR + 0x102) /*   Host Interface Version Number */#define  USB_OTG_HCSPARAMS (USB_OTG_BASE_ADDR + 0x104) 	/*   Host Ctrl. Structural Parameters */#define  USB_OTG_HCCPARAMS (USB_OTG_BASE_ADDR + 0x108) 	/*   Host Ctrl. Capability Parameters */#define  USB_OTG_DCIVERSION (USB_OTG_BASE_ADDR + 0x120) /*   Dev. Interface Version Number */#define  USB_OTG_DCCPARAMS (USB_OTG_BASE_ADDR + 0x124) 	/*   Device Ctrl. Capability Parameters */  #define  USB_OTG_USBCMD (USB_OTG_BASE_ADDR + 0x140) 	/*   USB Command */#define  USB_OTG_USBSTS (USB_OTG_BASE_ADDR + 0x144) 	/*   USB Status */#define  USB_OTG_USBINTR (USB_OTG_BASE_ADDR + 0x148) 	/*   USB Interrupt Enable */#define  USB_OTG_FRINDEX (USB_OTG_BASE_ADDR+ 0x14C) 	/*   USB Frame Index */#define  USB_OTG_PERIODICLISTBASE (USB_OTG_BASE_ADDR + 0x154) /*   Frame List Base Address */#define  USB_OTG_DEVICEADDR  USB_OTG_PERIODICLISTBASE  	/*   USB Device Address */#define  USB_OTG_ASYNCLISTADDR (USB_OTG_BASE_ADDR + 0x158) /*   Next Asynchronous List Address */#define  USB_OTG_ENDPOINTLISTADDR USB_OTG_ASYNCLISTADDR	/*   Next Asynchronous List Address */#define  USB_OTG_BURSTSIZE (USB_OTG_BASE_ADDR + 0x160) 	/*   Programmable Burst Size */#define  USB_OTG_TXFILLTUNING (USB_OTG_BASE_ADDR + 0x164) /*   Host Transmit Pre-Buffer Packet Tuning */#define  USB_OTG_VIEWPORT (USB_OTG_BASE_ADDR + 0x170)   /* ULPI Register */#define  USB_OTG_CONFIGFLAG (USB_OTG_BASE_ADDR + 0x180) /*   Configured Flag Register */#define  USB_OTG_PORTSC1 (USB_OTG_BASE_ADDR + 0x184) 	/*   Port Status/Control   */#define  USB_OTG_OTGSC (USB_OTG_BASE_ADDR + 0x1A4) 	/*   On-The-Go (OTG) Status and Control  */  #define  USB_OTG_USBMODE (USB_OTG_BASE_ADDR + 0x1A8) 	/*   USB Device Mode */#define  USB_OTG_ENDPTSETUPSTAT (USB_OTG_BASE_ADDR + 0x1AC) /*   Endpoint Setup Status */#define  USB_OTG_ENDPTPRIME (USB_OTG_BASE_ADDR + 0x1B0) /*   Endpoint Initialization */#define  USB_OTG_ENDPTFLUSH (USB_OTG_BASE_ADDR + 0x1B4) /*   Endpoint De-Initialize */#define  USB_OTG_ENDPTSTATUS (USB_OTG_BASE_ADDR + 0x1B8) /*   Endpoint Status */#define  USB_OTG_ENDPTCOMPLETE (USB_OTG_BASE_ADDR + 0x1BC) /*   Endpoint Complete */#define  USB_OTG_ENDPTCTRL0 (USB_OTG_BASE_ADDR + 0x1C0) /*   Endpoint Control 0 */#define  USB_OTG_ENDPTCTRL1 (USB_OTG_BASE_ADDR + 0x1C4) /*   Endpoint Control 1 */#define  USB_OTG_ENDPTCTRL2 (USB_OTG_BASE_ADDR + 0x1C8) /*   Endpoint Control 2 */#define  USB_OTG_ENDPTCTRL3 (USB_OTG_BASE_ADDR + 0x1CC) /*   Endpoint Control 3 */#define  USB_OTG_ENDPTCTRL4 (USB_OTG_BASE_ADDR + 0x1D0) /*   Endpoint Control 4 */#define  USB_OTG_ENDPTCTRL5 (USB_OTG_BASE_ADDR + 0x1D4) /*   Endpoint Control 5 */#define  USB_OTG_ENDPTCTRL6 (USB_OTG_BASE_ADDR + 0x1D8) /*   Endpoint Control 6 */#define  USB_OTG_ENDPTCTRL7 (USB_OTG_BASE_ADDR + 0x1DC) /*   Endpoint Control 7 */typedef struct dqh_setup_t{	U32 dqh_word0;		U32 dqh_word1;		U32 dqh_word2;		U32 dqh_word3;		U32 dqh_word4;		U32 dqh_word5;		U32 dqh_word6;		U32 dqh_word7;		U32 dqh_word8;		U32 dqh_word9;		U32 dqh_word10;		U32 dqh_word11;	} dqh_setup_t;typedef struct dtd_setup_t {	U32 dtd_word0;		U32 dtd_word1;		U32 dtd_word2;		U32 dtd_word3;		U32 dtd_word4;		U32 dtd_word5;		U32 dtd_word6;		U32 dtd_word7;	} dtd_setup_t;typedef struct dqh_t {    U32 dqh_base;    U32 next_link_ptr;    U32 buffer_ptr0;     U32 buffer_ptr1;     U32 buffer_ptr2;     U32 buffer_ptr3;     U32 buffer_ptr4;    U16 total_bytes;    U16 mps;    U16 current_offset;    U8 zlt;     U8 ios;    U8 terminate;    U8 ioc;    U8 status; }dqh_t;typedef struct dtd_t {	U32 dtd_base; 	U32 next_link_ptr;	U32 buffer_ptr0;    	U32 buffer_ptr1; 	U32 buffer_ptr2;   	U32 buffer_ptr3;   	U32 buffer_ptr4;   	U16 total_bytes;	U16 current_offset;   	U8 terminate;   	U8 ioc;   	U8 status;}dtd_t;typedef struct {    U32 ep_dqh_base_addrs;	/* Base Address of Queue Header */    U32 ep_dtd_base_addrs;	/* Base Address of Transfer Descriptor */    U32 ep0_buffer_addrs ;   	/* Buffer Addres for EP0 IN  */    U32 buffer1_address;	/* Buffer1 address for bulk transfer */    U32 buffer1_status;		/* Status of Buffer1 */    U32 buffer2_address;	/* Buffer2 address for bulk transfer */    U32 buffer2_status;		/* Status of Buffer2 */}buffer_map_t;/* Status of the buffer used for bulk transfer */enum {    BUFFER_FREE,    BUFFER_IN_USE};#ifdef __cplusplus}#endif#endif /* USB_HWINTERFACE_LAYER_H */

⌨️ 快捷键说明

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