📄 ftc_fotg2xx.h
字号:
/* * Copyright (c) 2005 by Faraday * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, *///*************************************************************************//****************************** 1.Normal Define ****************************//*************************************************************************#define TRUE 1#define FALSE 0#define MASK_F0 0xF0#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#define mLowByte(u16) ((u8)(u16 ))#define mHighByte(u16) ((u8)(u16 >> 8))//*************************************************************************//****************************** 2.Struct Define************************//*************************************************************************typedef struct FTC_OTGC_STS{ //Standard struct otg_transceiver otg; spinlock_t lock; int got_irq; //For FOTG2XX int A_HNP_to_Peripheral; //1=>When A-device change to Peripheral //int iTMP_Force_Speed; u32 wCurrentInterruptMask;} FTC_OTGC_STS;/*-------------------------------------------------------------------------*///*************************************************************************//****************************** 3.Debug Info Define************************//*************************************************************************#define DEBUG#define VERBOSE//#define OPEN_CRITICAL_MESSAGE//Internal Option#define DBG_OTG_OFF 0x00#define DBG_OTG_FUNC 0x01#define DBG_OTG_ERROR 0x02#define DBG_OTG_TRACE 0x04#define DBG_OTG_INFO 0x08#define USB_DBG_OTG_CONDITION (DBG_OTG_INFO)#define xprintk(dev,level,fmt,args...) printk(level "%s : " fmt , driver_name , ## args)#define wprintk(level,fmt,args...) printk(level "%s : " fmt , driver_name , ## args)#ifdef DEBUG#define DBG(dev,fmt,args...) xprintk(dev , KERN_DEBUG , fmt , ## args)#else#define DBG(dev,fmt,args...) do { } while (0)#endif /* DEBUG */#ifdef VERBOSE#define VDBG DBG#else#define VDBG(dev,fmt,args...) do { } while (0)#endif /* VERBOSE */#define ERROR(dev,fmt,args...) xprintk(dev , KERN_ERR , fmt , ## args)#define WARN(dev,fmt,args...) xprintk(dev , KERN_WARNING , fmt , ## args)#define INFO(dev,fmt,args...) xprintk(dev , KERN_INFO , fmt , ## args)//For DBG_OTG_FUNC#if (USB_DBG_OTG_CONDITION & DBG_OTG_FUNC)#define DBG_OTG_FUNCC(fmt,args...) wprintk(KERN_INFO , fmt , ## args)#else#define DBG_OTG_FUNCC(fmt,args...)#endif//For DBG_OTG_TRACE#if (USB_DBG_OTG_CONDITION & DBG_OTG_TRACE)#define DBG_OTG_TRACEC(fmt,args...) wprintk(KERN_INFO , fmt , ## args)#else#define DBG_OTG_TRACEC(fmt,args...)#endif//For DBG_OTG_INFO#if (USB_DBG_OTG_CONDITION & DBG_OTG_INFO)#define DBG_OTG_INFOC(fmt,args...) wprintk(KERN_INFO , fmt , ## args)#else#define DBG_OTG_INFOC(fmt,args...)#endif/*-------------------------------------------------------------------------*///*************************************************************************//****************************** 4.Others Define************************//*************************************************************************#ifndef container_of#define container_of list_entry#endif#ifndef likely#define likely(x) (x)#define unlikely(x) (x)#endif//*************************************************************************//****************************** 5.HW Macro Define************************//*************************************************************************//### For AHB ##########################define AHB_BASE_ADDRESS (IO_ADDRESS(CPE_AHB_BASE))#define mdwAHBPort(bOffset) *((volatile u32 *) ( AHB_BASE_ADDRESS))//### For OTG ##########################define OTG_BASE_ADDRESS (IO_ADDRESS(CPE_FOTG200_BASE))#define mbFOTGPort(bOffset) *((volatile u8 *) ( OTG_BASE_ADDRESS | (u32)bOffset))#define mwFOTGPort(bOffset) *((volatile u16 *) ( OTG_BASE_ADDRESS | (u32)bOffset))#define mdwFOTGPort(bOffset) *((volatile u32 *) ( OTG_BASE_ADDRESS | (u32)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))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -