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

📄 z228_usb_msc.h

📁 此压缩包为杰得开发得z228的BSP的源代码,可以实现很多功能,尤其是视频解码有很好的效果.
💻 H
字号:
/*++*   The content of this file or document is CONFIDENTIAL and PROPRIETARY*   to Jade Technologies Co., Ltd.  It is subject to the terms of a*   License Agreement between Licensee and Jade Technologies Co., Ltd.*   restricting among other things, the use, reproduction, distribution*   and transfer.  Each of the embodiments, including this information *   and any derivative work shall retain this copyright notice.* *   Copyright (c) 2006 Jade Technologies Co., Ltd. *   All rights reserved.Module Name:        z228_usb_msc.HAbstract:        OTG USB Function (Mass Storage) Platform-Dependent Driver header.--*/#ifndef _Z228USBMSC_H_#define _Z228USBMSC_H_#include <windows.h>#include <usbfntypes.h>#include <usbfn.h>#define Z228_REG_FORCE_FULL_SPEED_VAL    _T("ForceFullSpeed")// Memory Mapped Window Numbers#define WINDOW_CONFIG_NUM           0#define WINDOW_8051_NUM             1#define WINDOW_FIFO_NUM             2// Can be used for Interrupt and Interrupt Enable Reg - common bit def#define EP0_INT_INTR                0x1#define EP1_INT_INTR                0x2#define EP2_INT_INTR                0x4#define EP3_INT_INTR                0x8#define EP4_INT_INTR                0x10#define RegOpenKey(hkey, lpsz, phk) \        RegOpenKeyEx((hkey), (lpsz), 0, 0, (phk))#ifndef SHIP_BUILD#define STR_MODULE _T("Z228")#define SETFNAME() LPCTSTR pszFname = STR_MODULE _T(__FUNCTION__) _T(":")#else#define SETFNAME()#endif/**************************************************************************************** * USB device/endpoint management registers */#define UDC_BASE	0#define UHC_BASE	0#define PHY_UDC_BASE	PHYS_USB_BASE	//#define PHY_UHC_BASE	Z228_UHC_BASE/* UDC Registers Memory Map layout */#define UDC_FIFO_SIZE              	0x4000#define UDC_TX_FIFO_ADR            	UDC_BASE#define UDC_RX_FIFO_ADR            	(UDC_BASE + 0x40000)#define UDC_TLI_ADR             	(UDC_BASE + 0x44000)#define UDC_MAC_ADR             	(UDC_BASE + 0x44400)#define UDC_DIU_ADR                	(UDC_BASE + 0x45000)#define UDC_TLI_REG(x)				(UDC_TLI_ADR + (x))#define UDC_MAC_REG(x)				(UDC_MAC_ADR + (x))#define UDC_DIU_REG(x)				(UDC_DIU_ADR + (x))/* FIFOs */#define UDC_TX_FIFO(n)              (UDC_TX_FIFO_ADR + UDC_FIFO_SIZE * (n))#define UDC_RX_FIFO             	(UDC_RX_FIFO_ADR)/* UDC TLI registers */#define UDC_TX_CONTROL(n)           UDC_TLI_REG(0x10*(n))#define UDC_TX_SENDSTALL           	(1 << 0)#define UDC_TX_SENDNAK             	(1 << 1)#define UDC_TX_FLUSHFIFO           	(1 << 2)#define UDC_TX_FIFOREADY           	(1 << 3)#define UDC_TX_STATUS(n)            UDC_TLI_REG(0x004 + 0x10 * (n))#define UDC_TX_GOOD_STATUS         	(1 << 0)#define UDC_TX_DATASENT         	(1 << 1)#define UDC_TX_BELOWTHR         	(1 << 2)#define UDC_TX_NAKSENT            	(1 << 3)#define UDC_TX_UNDERRUN            	(1 << 4)#define UDC_TX_ISOTXDONE			(1 << 5)#define UDC_TX_FIFOSIZE(n)          UDC_TLI_REG(0x008 + 0x10 * (n))#define UDC_TX_TRANSFER_SIZE(n)     UDC_TLI_REG(0x00c + 0x10 * (n))#define UDC_RX_CONTROL(n)           UDC_TLI_REG(0x100 + 0x10 * (n))#define UDC_RX_SENDSTALL          	(1 << 0) #define UDC_RX_SENDNAK             	(1 << 1) #define UDC_RX_FLUSHFIFO           	(1 << 2) #define UDC_RX_FIFOREADY           	(1 << 3) #define UDC_SENDSTALL          		(1 << 0) #define UDC_SENDNAK             	(1 << 1) #define UDC_FLUSHFIFO           	(1 << 2) #define UDC_FIFOREADY           	(1 << 3) #define UDC_CONFIG                  UDC_TLI_REG(0x200)#define UDC_CONFIG_SPEEDLOW        	(1 << 1) #define UDC_CONFIG_SPEEDFULL       	0x0003#define UDC_CONFIG_REMOTEWAKE      	(1 << 2) #define UDC_CONFIG_SELFPOWERED     (1 << 3) #define UDC_CONFIG_SYNCFRAME       	(1 << 4) #define UDC_CSR_PRG_SUP     			(1 << 5) #define UDC_CSR_DONE          			(1 << 6)#define UDC_SET_DESC_SUP     		(1 << 7)#define UDC_DEVICE_MODE            		(1 << 8)#define UDC_SCALE_DOWN			(1 << 9)	#define UDC_SOFT_DISCONNECT		(1 << 10)#define UDC_STATUS_0				(1 << 11)					#define UDC_STATUS_1				(1 << 12)#define UDC_STATUS                  		UDC_TLI_REG(0x204)#define UDC_STATUS_TS_SHIFT     		21#define UDC_STATUS_TS_MASK      		0x7ff#define UDC_STATUS_SUSP         		(1 << 12)	#define UDC_STATUS_ALT_SHIFT		8#define UDC_STATUS_ALT_MASK		0xf#define UDC_STATUS_INTF_SHIFT		4#define UDC_STATUS_INTF_MASK		0xf#define UDC_STATUS_CFG_SHIFT		0#define UDC_STATUS_CFG_MASK			0xf#define UDC_INTR                   			UDC_TLI_REG(0x208)#define UDC_SETCFG_INTR            		(1 << 0)#define UDC_SETINTF_INTR           		(1 << 1)#define UDC_BUSRESET_INTR          	(1 << 3)#define UDC_SUSPEND_INTR           	(1 << 4)#define UDC_SOF_INTR               		(1 << 5)#define UDC_SETUP_REV_INTR         	(1 << 6)#define UDC_OUT_REV_INTR           		(1 << 7)#define UDC_PORT_STATUS_INTR       	(1 << 8)#define UDC_OTG_STATUS_INTR        	(1 << 9)#define UDC_I2C_INTR			  	(1 << 10)//#define UN_SETUP_INTR		(UDC_BUSRESET_INTR|UDC_SUSPEND_INTR|UDC_OUT_REV_INTR|UDC_PORT_STATUS_INTR|UDC_OTG_STATUS_INTR|UDC_I2C_INTR)#define  UN_SETUP_INTR		(UDC_BUSRESET_INTR|UDC_SUSPEND_INTR|UDC_PORT_STATUS_INTR|UDC_OTG_STATUS_INTR|UDC_I2C_INTR)#define  UN_BUS_INTR              (UDC_BUSRESET_INTR | UDC_SUSPEND_INTR |UDC_OTG_STATUS_INTR)#define  UDC_INTR_MASK 				(UDC_SETCFG_INTR | UDC_SETUP_REV_INTR | UDC_OUT_REV_INTR|UDC_SETINTF_INTR)#define UDC_INTR_ENABLE            		UDC_TLI_REG(0x20c)#define UDC_RX_FIFOSIZE            		UDC_TLI_REG(0x210)                                   	#define UDC_ENDP_INTR_ENABLE       	UDC_TLI_REG(0x214)#define enable_out_ep_intr(n)			(UDC_ENDP_INTR_ENABLE |= 1 << (n + 15))#define disable_out_ep_intr(n)		(UDC_ENDP_INTR_ENABLE &= ~(1 << (n + 15)))#define enable_in_ep_intr(n)        		(UDC_ENDP_INTR_ENABLE |= 1 << (n - 1))#define disable_in_ep_intr(n)			(UDC_ENDP_INTR_ENABLE &= ~(1 << (n - 1)))#define UDC_THRESHOLD              		UDC_TLI_REG(0x218)#define UDC_TX_THRESH_SHIFT        	0#define UDC_TX_THRESH_MASK         	0x3ff			#define UDC_RX_THRESH_SHIFT        	16#define UDC_RX_THRESH_MASK		   	0x3ff	                                   	#define UDC_RX_STATUS              		UDC_TLI_REG(0x21c)#define UDC_RX_GOOD_STATUS         	(1 << 0)#define UDC_RX_STATUS_COMPLETE     	(1 << 1)#define UDC_RX_THRESH_ABOVE        	(1 << 2)#define UDC_RX_OVERRUN             		(1 << 4)#define UDC_RX_ENDP_SHIFT          	16#define UDC_RX_ENDP_MASK           	0xf#define UDC_RX_SIZE_SHIFT          		22#define UDC_RX_SIZE_MASK           		0x3ff                                   	#define UDC_SETUP_STATUS           	UDC_TLI_REG(0x220)#define UDC_SETUP_GOOD_STATUS     	(1 << 0)#define UDC_SETUP_STATUS_COMPLETE  	(1 << 1)#define UDC_SETUP_AFTER_OUT        	(1 << 15)#define UDC_SETUP_ENDP_SHIFT       	16#define UDC_SETUP_ENDP_MASK        	0x000f#define UDC_ENDP_INTR               		UDC_TLI_REG(0x224)#define UDC_FRAMENUM                		UDC_TLI_REG(0x228)#define UDC_SETUP_DATA_LOW          	UDC_TLI_REG(0x300)#define UDC_SETUP_DATA_HIGH         	UDC_TLI_REG(0x304)#define UDC_SLAVE_BIU_DELAY_COUNT       UDC_TLI_REG(0x308)#define UDC_I2C                         		UDC_TLI_REG(0x30c)#define UDC_PORT_STATUS				(UDC_BASE + 0x44c54)#define UDC_OTG_CSR					(UDC_BASE + 0x44c94)/* FS OTG-MAC registers (USB Device Mode) */#define UDC_ENDP_INFO(n)            		UDC_MAC_REG( 0x04*(n+1) )#define UDC_ENDP_NUM_SHIFT			0#define UDC_ENDP_NUM_MASK			0xF#define UDC_ENDP_DIR			    	0x10#define UDC_ENDP_TYPE_SHIFT		5#define UDC_ENDP_TYPE_MASK          	0x3#define UDC_ENDP_CFG_NUM_SHIFT     7#define UDC_ENDP_CFG_NUM_MASK	0xF#define UDC_ENDP_INTF_NUM_SHIFT   11#define UDC_ENDP_INTF_NUM_MASK	0xF#define UDC_ENDP_ALT_SET_SHIFT      15#define UDC_ENDP_ALT_SET_MASK		0xF#define UDC_ENDP_MAX_PACKET_SHIFT   19#define UDC_ENDP_MAX_PACKET_MASK	0x3FF#define EP_OUT						(0 << 4)#define EP_IN						(1 << 4)#define EP_CONTROL					(0 << UDC_ENDP_TYPE_SHIFT)#define EP_ISO						(1 << UDC_ENDP_TYPE_SHIFT)#define EP_BULK						(2 << UDC_ENDP_TYPE_SHIFT)#define EP_INTERRUPT				(3 << UDC_ENDP_TYPE_SHIFT)/* FS OTG-DIU registers (USB Device Mode) */#define UDC_DIU_TX_DMA(n)           UDC_DIU_REG( 0x04*(n) )#define UDC_DIU_RX_DMA(n)           UDC_DIU_REG( 0x040 + 0x04*(n))#define UDC_DIU_TSSHIFT            	16#define UDC_DIU_TSMASK             	0x0000ffff#define UDC_DIU_TFFSHIFT          	15#define UDC_DIU_TFFMASK            	0x00000001#define UDC_DIU_DSESHIFT           	14#define UDC_DIU_DSEMASK            	0x00000001#define UDC_DIU_TTSHIFT            	12#define UDC_DIU_TTMASK             	0x00000003#define UDC_DIU_RSTSHIFT           	11#define UDC_DIU_RSTMASK            	0x00000001#define UDC_DIU_REQSHIFT           	6#define UDC_DIU_REQMASK            	0x0000001f#define UDC_DIU_BSSHIFT            	2#define UDC_DIU_BSMASK             	0x0000000f#define UDC_DIU_DESCSHIFT          	1#define UDC_DIU_DESCMASK           	0x00000001#define UDC_DIU_EPACT              		0x00000001#define UDC_DIU_TT_CTRL             		0#define UDC_DIU_TT_ISOC             		1#define UDC_DIU_TT_BULK             		2#define UDC_DIU_TT_INTR             		3#define UDC_DIU_BS_4				0x2#define UDC_DIU_BS_16				0x4#define UDC_DIU_BS_32               		0x5#define UDC_DIU_BS_64               		0x6#define UDC_DIU_BS_128              		0x7#define UDC_DIU_BS_256              		0x8#define UDC_DIU_BS_512              		0x9#define UDC_DIU_BS_1024             		0xA/* Register for USB Host Controller */#define UHC_TLI_BASE				(UHC_BASE + 0x44800)#define UHC_CSR_ADR                 (UHC_BASE + 0x44800)#define UHC_MAC_ADR                 (UHC_BASE + 0x44c00)#define UHC_DIU_ADR                 (UHC_BASE + 0x45000)#define UHC_CSR_REG(x)              (UHC_CSR_ADR + (x))#define UHC_MAC_REG(x)              (UHC_MAC_ADR + (x))#define UHC_DIU_REG(x)              (UHC_DIU_ADR + (x))#define UHC_INTR_ENABLE				(UHC_TLI_BASE + 0x04)#define UHC_CONTROL					(UHC_TLI_BASE + 0x0c)#define UHC_FLUSHFIFO                  	0x001#define UHC_FIFOSIZE				(UHC_TLI_BASE + 0x10)#define UHC_FRAME_INTVL            UHC_MAC_REG(0x34)  #define UHC_ROOT_HUB_PORT_0        UHC_MAC_REG(0x54)#define RH_PS_PPS            0x00000100     /* port power status */#define UHC_OTG_CSR            		UHC_MAC_REG(0x94)#define UHC_SRP_STATUS_OK         		0x00000001#define UHC_SRP_STATUS_CHANGE     		0x00000002#define UHC_HNP_STATUS_OK         		0x00000004#define UHC_HNP_STATUS_CHANGE     		0x00000008#define UHC_SRP_DETECT            		0x00000010#define UHC_SRP_DETECT_CHANGE     		0x00000020#define UHC_HNP_DETECT            		0x00000040#define UHC_HNP_DETECT_CHANGE     		0x00000080#define UHC_CONN_ID               		0x00000100#define UHC_CONN_ID_CHANGE        		0x00000200#define UHC_MODE_DEVICE           		0x00000400#define UHC_SRP_START             		0x00010000#define UHC_HNP_START             		0x00020000#define UHC_HNP_ENABLE_HOST       		0x00040000#define UHC_HNP_ENABLE_DEVICE     		0x00080000#define UHC_SRP_CAPABLE           		0x00100000#define UHC_HNP_CAPABLE           		0x00200000#define UHC_INTR                   		UHC_CSR_REG(0x00)#define UHC_STATUS_INTR           	0x0001#define UHC_RX_THRESH_INTR        	0x0002#define UHC_TX_THRESH_INTR        	0x0004#define UHC_SOF_INTR              	0x0008#define UHC_PORT_STATUS_INTR      	0x0100#define UHC_OTG_STATUS_INTR       	0x0200#define UHC_I2C_STATUS_INTR					0x0400#define UHC_THRESHOLD              	UHC_CSR_REG(0x14)//********************************************************************************************#define OTG_MODE_DEVICE           	0x00000400#define DEV_MODE					1#define HOST_MODE					0#define  UHC_INTR_MASK                 0x70f/* Register for Z228 System Controller */#define Z228_SC_BASE				0x20020000#define Z228_RESET					(Z228_SC_BASE + 0x110)#define Z228_RESET_nUSBRES			(1 << 8)#define Z228_RESET_nUSB48RES		(1 << 9)#define Z228_RESET_nUSBPLLRES		(1 << 10)#define Z228_RESET_nUSB12RES		(1 << 11)#define Z228_CLOCK                  (Z228_SC_BASE + 0x114)#define Z228_CLOCK_USB133			(1 << 19)#define Z228_CLOCK_USB48			(1 << 20)//********************************************************************************************//******************************************************************************************** /* Max packet size */#define 	EP0_PACKETSIZE  		64	#define 	EP0_MAXPACKETSIZE  	64#define 	UDC_MAX_ENDPOINTS       7 #define 	IN_EP_MASK				0x7#define 	OUT_EP_MASK			(IN_EP_MASK << 16)#define 	ENDP_INTR_MASK		(IN_EP_MASK | OUT_EP_MASK)#define UDC_TX_THRESHOLD		32	#define UDC_RX_THRESHOLD		32	#define UDC_PHY_FIFO_SIZE			64//********************************************************************************************#endif // _Z228USBMSC_H_

⌨️ 快捷键说明

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