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

📄 fusb220.h

📁 GM8120 linux driver.
💻 H
字号:
#ifndef __FUSB220_M_H	#define __FUSB220_M_H	#define code const	#define bdata	#define xdata//	#define IRQ_FUSB220 					40	//27#define IRQ_FUSB220 					(FIQ_OFFSET+11) //330 //320: 26	//RISC platform (ivan)//#define FIQ_MAC                       	(8+FIQ_OFFSET)																	// Macro	#define FUSB220_BASE_ADDRESS			0x90b00000 //0x96700000//  0x90600000 	#define FUSB220_FIFO_BASE(bOffset)		0x90b00000+0xC0+(bOffset<<2) 	#define bFUSBPort(bOffset)				*((volatile UINT8 *) ( FUSB220_BASE_ADDRESS | (UINT32)(bOffset)))	#define wFUSBPort(bOffset)				*((volatile UINT16 *) ( FUSB220_BASE_ADDRESS | (UINT32)(bOffset)))	#define dwFUSBPort(bOffset)				*((volatile UINT32 *) ( FUSB220_BASE_ADDRESS | (UINT32)(bOffset)))		// Macro	#define mUsbGoSuspend()			(bFUSBPort(0x00) |=  (UINT8)BIT3)		#define mUsbSoftRstSet()			(bFUSBPort(0x00) |=  (UINT8)BIT4)	#define mUsbSoftRstClr()			(bFUSBPort(0x00) &= ~(UINT8)BIT4)	#define mUsbHighSpeedST()		(bFUSBPort(0x00) & (UINT8)BIT6)	#define mUsbRmWkupST()			(bFUSBPort(0x00) & (UINT8)BIT0)	#define mUsbRmWkupClr()			(bFUSBPort(0x00) &= ~(UINT8)BIT0)	#define mUsbRmWkupSet()		(bFUSBPort(0x00) |= (UINT8)BIT0)	#define mUsbGlobIntEnSet()		(bFUSBPort(0x00) |= (UINT8)BIT2)	#define mUsbChipEnSet()			(bFUSBPort(0x00) |= (UINT8)BIT5)	#define mUsbHbfFlush()			(bFUSBPort(0x00) |= (UINT8)BIT1)	#define mUsbHbfClr()				(bFUSBPort(0x00) |= (UINT8)BIT7)		#define mUsbDevAddrSet(Value)	(bFUSBPort(0x01) = Value)	#define mUsbCfgST()				(bFUSBPort(0x01) & (UINT8)BIT7)	#define mUsbCfgSet()				(bFUSBPort(0x01) |= (UINT8)BIT7)	#define mUsbCfgClr()				(bFUSBPort(0x01) &= ~(UINT8)BIT7)	#define mUsbClrAllFIFOSet()		(bFUSBPort(0x02) |= (UINT8)BIT0)	#define mUsbClrAllFIFOClr()		(bFUSBPort(0x02) &= ~(UINT8)BIT0)		#define mUsbTstHalfSpeedEn()		(bFUSBPort(0x02) |= (UINT8)BIT7)	#define mUsbTstHalfSpeedDis()	(bFUSBPort(0x02) &= ~(UINT8)BIT7)	#define mUsbFrameNoLow()		(bFUSBPort(0x04))	#define mUsbFrameNoHigh()		(bFUSBPort(0x05))	#define mUsbSOFMaskHS()		(bFUSBPort(0x06) = 0x4c); (bFUSBPort(0x07) = 0x4)	#define mUsbSOFMaskFS()		(bFUSBPort(0x06) = 0x10); (bFUSBPort(0x07) = 0x27)		#define mUsbTsMdWr(item)		(bFUSBPort(0x08) = item)	#define mUsbUnPLGClr()			(bFUSBPort(0x08) &= ~(UINT8)BIT0)	#define mUsbEP0DoneSet()		(bFUSBPort(0x0B) |= (UINT8)BIT0)	#define mUsbTsPkDoneSet()		(bFUSBPort(0x0B) |= (UINT8)BIT1)	#define mUsbEP0StallSet()			(bFUSBPort(0x0B) |= (UINT8)BIT2)	/////// Read CxF data ////////	#define mUsbEP0DataRdByte0()			(bFUSBPort(0x0C))	#define mUsbEP0DataRdByte2()			(bFUSBPort(0x0E))	#define mUsbEP0DataRdWord()			(wFUSBPort(0x0C))		#define mUsbEP0DataRdDWord()			(dwFUSBPort(0x0C))	/////// Write CxF data ////////	#define mUsbEP0DataWrByte0(data)		(bFUSBPort(0x0C) = data)	#define mUsbEP0DataWrByte2(data)		(bFUSBPort(0x0E) = data)		#define mUsbEP0DataWrWord(data)		(wFUSBPort(0x0C) = data)	#define mUsbEP0DataWrDWord(data)		(dwFUSBPort(0x0C) = (UINT32)data)		#define mUsbIntGrp1Dis()			(bFUSBPort(0x10) |= (UINT8)BIT1)	#define mUsbIntGrp2Dis()			(bFUSBPort(0x10) |= (UINT8)BIT2)	#define mUsbIntGrp3Dis()			(bFUSBPort(0x10) |= (UINT8)BIT3)	#define mUsbIntGrp4Dis()			(bFUSBPort(0x10) |= (UINT8)BIT4)	#define mUsbIntGrp5Dis()			(bFUSBPort(0x10) |= (UINT8)BIT5)	#define mUsbIntGrp6Dis()			(bFUSBPort(0x10) |= (UINT8)BIT6)	#define mUsbIntGrp7Dis()			(bFUSBPort(0x10) |= (UINT8)BIT7)		#define mUsbIntEP0SetupDis()		(bFUSBPort(0x11) |= (UINT8)BIT0)	#define mUsbIntEP0InDis()		(bFUSBPort(0x11) |= (UINT8)BIT1)	#define mUsbIntEP0OutDis()		(bFUSBPort(0x11) |= (UINT8)BIT2)	#define mUsbIntEP0EndDis()		(bFUSBPort(0x11) |= (UINT8)BIT3)	#define mUsbIntEP0FailDis()		(bFUSBPort(0x11) |= (UINT8)BIT4)	#define mUsbIntRdBufErrDis()		(bFUSBPort(0x11) |= (UINT8)BIT5)	#define mUsbIntEP0SetupEn()		(bFUSBPort(0x11) &= ~((UINT8)BIT0))	#define mUsbIntEP0InEn()			(bFUSBPort(0x11) &= ~((UINT8)BIT1))	#define mUsbIntEP0OutEn()		(bFUSBPort(0x11) &= ~((UINT8)BIT2))	#define mUsbIntEP0EndEn()		(bFUSBPort(0x11) &= ~((UINT8)BIT3))	#define mUsbIntEP0FailEn()		(bFUSBPort(0x11) &= ~((UINT8)BIT4))	#define mUsbIntRdBufErrEn()		(bFUSBPort(0x11) &= ~((UINT8)BIT5))		#define mUsbIntFIFO0_3OUTDis()	(bFUSBPort(0x12) = 0xFF)	#define mUsbIntFIFO4_7OUTDis()	(bFUSBPort(0x13) = 0xFF)	#define mUsbIntFIFO8_9OUTDis()	(bFUSBPort(0x14) = 0xFF)	#define mUsbIntFIFO0_7INDis()	(bFUSBPort(0x16) = 0xFF)	#define mUsbIntFIFO8_9INDis()	(bFUSBPort(0x17) = 0xFF)	#define mUsbIntF0OUTEn()		(bFUSBPort(0x12) &= ~((UINT8)BIT1 | (UINT8)BIT0))		#define mUsbIntF2OUTEn()		(bFUSBPort(0x12) &= ~((UINT8)BIT5 | (UINT8)BIT4))	#define mUsbIntF5OUTEn()		(bFUSBPort(0x13) &= ~((UINT8)BIT3 | (UINT8)BIT2))		#define mUsbIntF0INEn()			(bFUSBPort(0x16) &= ~((UINT8)BIT0))	#define mUsbIntF1INEn()			(bFUSBPort(0x16) &= ~((UINT8)BIT1))	#define mUsbIntF4INEn()			(bFUSBPort(0x16) &= ~((UINT8)BIT4))	#define mUsbIntF8INEn()			(bFUSBPort(0x17) &= ~((UINT8)BIT0))	#define mUsbIntF0OUTDis()		(bFUSBPort(0x12) |= ((UINT8)BIT1 | (UINT8)BIT0))		#define mUsbIntF2OUTDis()		(bFUSBPort(0x12) |= ((UINT8)BIT5 | (UINT8)BIT4))	#define mUsbIntF5OUTDis()		(bFUSBPort(0x13) |= ((UINT8)BIT3 | (UINT8)BIT2))			#define mUsbIntF0INDis()			(bFUSBPort(0x16) |= (UINT8)BIT0)	#define mUsbIntF4INDis()			(bFUSBPort(0x16) |= (UINT8)BIT4)	#define mUsbIntF8INDis()			(bFUSBPort(0x17) |= (UINT8)BIT0)	#define mUsbIntBufEmptyDis()		(bFUSBPort(0x18) |= 0x01)//|= BIT0)	#define mUsbIntRX0Byte0Rd()		(bFUSBPort(0x19))	#define mUsbIntRX0Byte1Rd()		(bFUSBPort(0x1A))	#define mUsbIntRX0Byte0Clr()		(bFUSBPort(0x19) = 0)	#define mUsbIntRX0Byte1Clr()		(bFUSBPort(0x1A) = 0)	#define mUsbIntGroupMaskRd()	(bFUSBPort(0x10))	#define mUsbIntByte0MaskRd()	(bFUSBPort(0x11))	#define mUsbIntByte1MaskRd()	(bFUSBPort(0x12))	#define mUsbIntByte2MaskRd()	(bFUSBPort(0x13))	#define mUsbIntByte3MaskRd()	(bFUSBPort(0x14))	#define mUsbIntByte4MaskRd()	(bFUSBPort(0x15))	#define mUsbIntByte5MaskRd()	(bFUSBPort(0x16))	#define mUsbIntByte6MaskRd()	(bFUSBPort(0x17))	#define mUsbIntByte7MaskRd()	(bFUSBPort(0x18))	#define mUsbIntGroupRegRd()		(bFUSBPort(0x20))	#define mUsbIntByte0Rd()			(bFUSBPort(0x21))	#define mUsbIntByte1Rd()			(bFUSBPort(0x22))	#define mUsbIntByte2Rd()			(bFUSBPort(0x23))	#define mUsbIntByte3Rd()			(bFUSBPort(0x24))	#define mUsbIntByte4Rd()			(bFUSBPort(0x25))	#define mUsbIntByte5Rd()			(bFUSBPort(0x26))	#define mUsbIntByte6Rd()			(bFUSBPort(0x27))	#define mUsbIntByte7Rd()			(bFUSBPort(0x28))	#define mUsbIntBusRstClr()		(bFUSBPort(0x28) = 0x00)		// so weird?	#define mUsbIntSuspClr()			(bFUSBPort(0x28) = 0x00)		// so weird?	#define mUsbIntResmClr()			(bFUSBPort(0x28) = 0x00)		// so weird?	#define mUsbIntIsoSeqErrClr()		(bFUSBPort(0x28) &= ~BIT4)			//	#define mUsbIntIsoSeqAbortClr()	(bFUSBPort(0x28) &= ~BIT5)			//	#define mUsbIntTX0ByteClr()		(bFUSBPort(0x28) &= ~BIT6)			//	#define mUsbIntRX0ByteClr()		(bFUSBPort(0x28) &= ~BIT7)			//	#define mUsbIntBufEmptyRd()		(bFUSBPort(0x28) & BIT0)			//	#define mUsbIntIsoSeqErr0Rd()	(bFUSBPort(0x29))	#define mUsbIntIsoSeqErr1Rd()	(bFUSBPort(0x2A))	#define mUsbIntIsoSeqErr0Clr()	(bFUSBPort(0x29) = 0)	#define mUsbIntIsoSeqErr1Clr()	(bFUSBPort(0x2A) = 0)	#define mUsbIntIsoSeqAbort0Rd()	(bFUSBPort(0x2B))	#define mUsbIntIsoSeqAbort1Rd()	(bFUSBPort(0x2C))	#define mUsbIntIsoSeqAbort0Clr()	(bFUSBPort(0x2B) = 0)	#define mUsbIntIsoSeqAbort1Clr()	(bFUSBPort(0x2C) = 0)	#define mUsbIntTX0Byte0Rd()		(bFUSBPort(0x2D))	#define mUsbIntTX0Byte1Rd()		(bFUSBPort(0x2E))	#define mUsbIntTX0Byte0Clr()		(bFUSBPort(0x2D) = 0)	#define mUsbIntTX0Byte1Clr()		(bFUSBPort(0x2E) = 0)	#define mUsbIdleCnt(time)		(bFUSBPort(0x2F) = time)	#define mUsbHbfCountRd()		(bFUSBPort(0x3F) & (0x1F))	// Endpoint & FIFO Configuration	#define mUsbEPinHighBandSet(EPn, dir , size )	(bFUSBPort(0x41 + ((EPn - 1) << 1)) &= ~(BIT6 |BIT5));  (bFUSBPort(0x41 + ((EPn - 1) << 1)) |= ((((INT8U)(size >> 11)+1) << 5)*(1 - dir)) )		#define mUsbEPMxPtSzLow(EPn, dir, size)		(bFUSBPort(0x40 + (dir * 0x20) + ((EPn - 1) << 1)) = (INT8U)(size))	#define mUsbEPMxPtSzHigh(EPn, dir, size)		(bFUSBPort(0x41 + (dir * 0x20) + ((EPn - 1) << 1)) = (INT8U)(size >> 8))	#define mUsbEPinMxPtSz(EPn)		((((bFUSBPort(0x41 + ((EPn - 1) << 1))) & 0x07) << 8) | (bFUSBPort(0x40 + ((EPn - 1) << 1))))	#define mUsbEPinStallST(EPn)		((bFUSBPort(0x41 + ((EPn - 1) << 1)) & BIT3) >> 3)	#define mUsbEPinStallClr(EPn)		(bFUSBPort(0x41 + ((EPn - 1) << 1)) &= ~BIT3)	#define mUsbEPinStallSet(EPn)		(bFUSBPort(0x41 + ((EPn - 1) << 1)) |=  BIT3)	#define mUsbEPinRsTgClr(EPn)		(bFUSBPort(0x41 + ((EPn - 1) << 1)) &= ~BIT4)	#define mUsbEPinRsTgSet(EPn)	(bFUSBPort(0x41 + ((EPn - 1) << 1)) |=  BIT4)	#define mUsbEPoutMxPtSz(EPn)	((((bFUSBPort(0x61 + ((EPn - 1) << 1))) & 0x07) << 8) | (bFUSBPort(0x60 + ((EPn - 1) << 1))))	#define mUsbEPoutStallST(EPn)	((bFUSBPort(0x61 + ((EPn - 1) << 1)) & BIT3) >> 3)	#define mUsbEPoutStallClr(EPn)	(bFUSBPort(0x61 + ((EPn - 1) << 1)) &= ~BIT3)	#define mUsbEPoutStallSet(EPn)	(bFUSBPort(0x61 + ((EPn - 1) << 1)) |=  BIT3)	#define mUsbEPoutRsTgClr(EPn)	(bFUSBPort(0x61 + ((EPn - 1) << 1)) &= ~BIT4)	#define mUsbEPoutRsTgSet(EPn)	(bFUSBPort(0x61 + ((EPn - 1) << 1)) |=  BIT4)	#define mUsbFIFO0DMAEn()	(bFUSBPort(0x7e ) |=  BIT0)	#define mUsbFIFO1DMAEn()	(bFUSBPort(0x7e ) |=  BIT1)	#define mUsbFIFO2DMAEn()	(bFUSBPort(0x7e ) |=  BIT2)	#define mUsbFIFO3DMAEn()	(bFUSBPort(0x7e ) |=  BIT3)	#define mUsbFIFO4DMAEn()	(bFUSBPort(0x7e ) |=  BIT4)	#define mUsbFIFO5DMAEn()	(bFUSBPort(0x7e ) |=  BIT5)	#define mUsbFIFO6DMAEn()	(bFUSBPort(0x7e ) |=  BIT6)	#define mUsbFIFO7DMAEn()	(bFUSBPort(0x7e ) |=  BIT7)	#define mUsbFIFO0DMADis()	(bFUSBPort(0x7e ) &=  ~BIT0)	#define mUsbFIFO1DMADis()	(bFUSBPort(0x7e ) &=  ~BIT1)	#define mUsbFIFO2DMADis()	(bFUSBPort(0x7e ) &=  ~BIT2)	#define mUsbFIFO3DMADis()	(bFUSBPort(0x7e ) &=  ~BIT3)	#define mUsbFIFO4DMADis()	(bFUSBPort(0x7e ) &=  ~BIT4)	#define mUsbFIFO5DMADis()	(bFUSBPort(0x7e ) &=  ~BIT5)	#define mUsbFIFO6DMADis()	(bFUSBPort(0x7e ) &=  ~BIT6)	#define mUsbFIFO7DMADis()	(bFUSBPort(0x7e ) &=  ~BIT7)		#define mUsbFIFO8DMAEn()	(bFUSBPort(0x7f ) |=  BIT0)	#define mUsbFIFO9DMAEn()	(bFUSBPort(0x7f ) |=  BIT1)	#define mUsbFIFO10DMAEn()	(bFUSBPort(0x7f ) |=  BIT2)	#define mUsbFIFO11DMAEn()	(bFUSBPort(0x7f ) |=  BIT3)	#define mUsbFIFO12DMAEn()	(bFUSBPort(0x7f ) |=  BIT4)	#define mUsbFIFO13DMAEn()	(bFUSBPort(0x7f ) |=  BIT5)	#define mUsbFIFO14DMAEn()	(bFUSBPort(0x7f ) |=  BIT6)	#define mUsbFIFO15DMAEn()	(bFUSBPort(0x7f ) |=  BIT7)		#define mUsbEPMap(EPn, MAP)			(bFUSBPort(0x30 + (EPn-1)) = MAP)	#define mUsbEPMapRd(EPn)		(bFUSBPort(0x30 + (EPn-1)))	#define mUsbFIFOMap(FIFOn, MAP)	(bFUSBPort(0x80 + FIFOn) = MAP)	#define mUsbFIFOMapRd(FIFOn)	(bFUSBPort(0x80 + FIFOn))	#define mUsbFIFOConfig(FIFOn, CONFIG)	(bFUSBPort(0x90 + FIFOn) = CONFIG)	#define mUsbFIFOConfigRd(FIFOn)			(bFUSBPort(0x90 + FIFOn))	#define mUsbFIFOOutByteCount(fifo_num)	(UINT16)(((((UINT16)bFUSBPort(0xA0+fifo_num))&((UINT16)0x07))<<8) | ((UINT16)bFUSBPort(0xB0+fifo_num)))	#define mUsbFIFODone(fifo_num)			(bFUSBPort(0xA0+fifo_num) |= ((UINT8)BIT3))		/////// Read Data FIFO ////////	#define mUsbRdByte0(FIFOn)				(bFUSBPort(0xC0 + (FIFOn<<2)))	#define mUsbRdByte2(FIFOn)				(bFUSBPort(0xC2 + (FIFOn<<2)))	#define mUsbRdWord(FIFOn)				(wFUSBPort(0xC0 + (FIFOn<<2)))	#define mUsbRdDWord(FIFOn)				(dwFUSBPort(0xC0 + (FIFOn<<2)))		/////// Write Data FIFO ////////	#define mUsbWrByte0(FIFOn, value)		(bFUSBPort(0xC0 + (FIFOn<<2)) = value)	#define mUsbWrByte2(FIFOn, value)		(bFUSBPort(0xC2 + (FIFOn<<2)) = value)	#define mUsbWrWord(FIFOn, value)		(wFUSBPort(0xC0 + (FIFOn<<2)) = value)	#define mUsbWrDWord(FIFOn, value)		(dwFUSBPort(0xC0 + (FIFOn<<2)) = value)	#if 0	/////////////////// For AP use //////////////////////	#define mUsbAPDbus1B()			(bFUSBPort(0xF0) =  (BIT0					 ))	#define mUsbAPDbus2B()			(bFUSBPort(0xF0) =  (BIT0 | BIT1				 ))	#define mUsbAPDbus3B()			(bFUSBPort(0xF0) =  (BIT0 | BIT1 | BIT2		 ))	#define mUsbAPDbus4B()			(bFUSBPort(0xF0) =  (BIT0 | BIT1 | BIT2 | BIT3))	#define mUsbAPDbus1BTermWr()	(bFUSBPort(0xF0) = ((BIT0					 ) | BIT4))	#define mUsbAPDbus2BTermWr()	(bFUSBPort(0xF0) = ((BIT0 | BIT1				 ) | BIT4))	#define mUsbAPDbus3BTermWr()	(bFUSBPort(0xF0) = ((BIT0 | BIT1 | BIT2		 ) | BIT4))	#define mUsbAPDbus4BTermWr()	(bFUSBPort(0xF0) = ((BIT0 | BIT1 | BIT2 | BIT3) | BIT4))	#define mUsbAPSetDbusAddr(fifo_num)		(bFUSBPort(0xF1) = (0xC0 + (fifo_num << 2)))	#define mUsbAPAPBLastTx()				(bFUSBPort(0xF2) = (BIT1 | BIT2))			// select SDC as target	#define mUsbAPAPBnonLastTx()			(bFUSBPort(0xF2) = BIT1)					// select SDC as target	#define mUsbAPSetAPBAddr(offset)		(bFUSBPort(0xF3) = offset)	#define mUsbAPRdByte(ByteN)				(bFUSBPort(0xF4 + ByteN))	#define mUsbAPWrByte(ByteN, value)		(bFUSBPort(0xF4 + ByteN) = value)	#define mUsbAPDMATrig(action)			(bFUSBPort(0xF8) = action)	#define mUsbAPWaitDMA()			//while(~((BOOLEAN)bFUSBPort(0xFA)))	#define mUsbAPMaskInt()					(bFUSBPort(0xFC) = BIT1)#endif	#if 0	//////////////////// For Pattern Generation Machine use /////	#define PGStop 			0	#define PGINStart 		1	#define PGOUTStart 		2		#define PGHsShortPacketTest 		(ptENDPOINT->wMaxPacketSize & 0x7ff)	#define PGFsShortPacketTest 		(ptENDPOINT->wMaxPacketSize & 0x7ff)		#define mUsbPGPackSize(size)			(FUSBPatternGenPort(0x0) = (INT8U)size); 	(FUSBPatternGenPort(0x1) = (INT8U)(size >> 8))	// Packet Size	#define mUsbPGWrap(wrap)			(FUSBPatternGenPort(0x2) = (INT8U)wrap)					// wrap	#define mUsbPGErCountThreshold(threshold)		(FUSBPatternGenPort(0x3) = (INT8U)threshold)	// Error data Count Threshold	#define mUsbPGEnable(enable)		(FUSBPatternGenPort(0x4) = (INT8U)enable)					// Start to Generate data	#define mUsbPGErCountRd(count)		(FUSBPatternGenPort(0x5))								// Error Count Read#endif		#endif /* __FUSB220_M_H  */

⌨️ 快捷键说明

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