#ifndef USB_INIT_H #define USB_INIT_H /*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====* usb_init.h GENERAL DESCRIPTION This file is for USB initialize. EXTERNALIZED FUNCTIONS INITIALIZATION AND SEQUENCING REQUIREMENTS Copyright (c) 2011 by Marvell, Incorporated. All Rights Reserved. *====*====*====*====*====*====*====*====*====*====*====*====*====*====*====* *=========================================================================== EDIT HISTORY FOR MODULE This section contains comments describing changes made to the module. Notice that changes are listed in reverse chronological order. when who what, where, why -------- ------ ---------------------------------------------------------- 03/07/2013 zhoujin Created module ===========================================================================*/ /*=========================================================================== INCLUDE FILES FOR MODULE ===========================================================================*/ #include "utils.h" #include "usb_device.h" #include "usbTrace.h" #include "usb_macro.h" #include "diag_nvm.h" #include "rndis.h" #include "platform.h" #include "mvUsbStorage.h" /*=========================================================================== LOCAL MACRO ===========================================================================*/ /* Usb normal mode */ #define USB_NORMAL_MODE 0x00 /* WIFI Calibration mode */ #define USB_WIFI_CALIBRATION_MODE 0x01 /* RNDIS/ECM only mode */ #define USB_RNDIS_ECM_ONLY_MODE 0x02 /* RNDIS/ECM + Modem mode */ #define USB_RNDIS_ECM_MODEM_MODE 0x03 /* Diag PDU check mode */ #define USB_DIAG_PDU_CHECK_MODE 0x10 /*=========================================================================== LOCAL DEFINITIONS AND DECLARATIONS FOR MODULE ===========================================================================*/ /* Usb descriptor information. */ typedef struct { char UsbMode; PlatformUsbDescType DefaultDesc; PlatformUsbDescType ReConfigDesc; PlatformUsbDescType CurrentDesc; } mvUsbDescriptorInfo; /*=========================================================================== EXTERN FUNCTION DECLARATIONS ===========================================================================*/ /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* GetUsbMode */ /* */ /* DESCRIPTION */ /* */ /* The function Get the usb mode. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ extern char GetUsbMode(void); /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* CheckIf32MNOR */ /* */ /* DESCRIPTION */ /* */ /* If Manfactur ID = 0xXX19, this is 32M Nor Flash. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ extern BOOL CheckIf32MNOR(void); /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* UsbDriverGetSetting */ /* */ /* DESCRIPTION */ /* */ /* The function read usb configuration from NVM files. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ extern void UsbDriverGetSetting(void); /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* diagCfgUseIntIfType */ /* */ /* DESCRIPTION */ /* */ /* The function read diag configuration from NVM files. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ extern BOOL diagCfgUseIntIfType(void); /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* diagPhase2Init */ /* */ /* DESCRIPTION */ /* */ /* The function initialize usb diag device. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ extern void diagPhase2Init(void); /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* USB2IsAutoInstallEnable */ /* */ /* DESCRIPTION */ /* */ /* The function Check whether auto-installation is enable or not. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ extern BOOL USB2IsAutoInstallEnable(void); /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* mvUsbModemInitialize */ /* */ /* DESCRIPTION */ /* */ /* The function initialize usb modem device. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ extern void mvUsbModemInitialize(void); /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* sdcard_is_insert */ /* */ /* DESCRIPTION */ /* */ /* The function check whether the SD card is insert or not. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ extern BOOL sdcard_is_insert(void); /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* diagCommSdLogEnable */ /* */ /* DESCRIPTION */ /* */ /* The function check whether the Diag SD logging is enable or not. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ extern BOOL diagCommSdLogEnable(void); /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* diag_online_sdl_enable */ /* */ /* DESCRIPTION */ /* */ /* The function check whether the online sd log is enable or not. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ //extern BOOL diag_online_sdl_enable(void); /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* GetUsbDriverConfig */ /* */ /* DESCRIPTION */ /* */ /* The function get the usb driver configuration. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* Usb_DriverS Driver configuration. */ /* */ /*************************************************************************/ extern Usb_DriverS *GetUsbDriverConfig(void); /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* USB2MgrUpdateDescriptor */ /* */ /* DESCRIPTION */ /* */ /* The function update the usb descriptor. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ extern void USB2MgrUpdateDescriptor(PlatformUsbDescType desc, char mode); /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* USB2GetDescriptorInfo */ /* */ /* DESCRIPTION */ /* */ /* The function get the usb descriptor information. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ extern mvUsbDescriptorInfo *USB2GetDescriptorInfo(void); /*=========================================================================== INTERNAL FUNCTION DECLARATIONS ===========================================================================*/ /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* mvUsbCheckProdctionMode */ /* */ /* DESCRIPTION */ /* */ /* The function check whether the production mode is enable or not. */ /* When uAP KEY is pressdown, The 'PRMD' flag is set in memory. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* TRUE Flag is set. */ /* FALSE Flag is not set. */ /* */ /*************************************************************************/ BOOL mvUsbCheckProdctionMode( void ); #ifdef MV_USB2_MASS_STORAGE /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* mvUsbStorageConfigure */ /* */ /* DESCRIPTION */ /* */ /* The function configurate the parameters of mass storage. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ void mvUsbStorageConfigure(void); /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* mvUsbMassStorageInit */ /* */ /* DESCRIPTION */ /* */ /* The function initialize the mass storage deivce. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ void mvUsbMassStorageInit(void); /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* mvUsbStorageRead */ /* */ /* DESCRIPTION */ /* */ /* The function read data from mass storage. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ BOOL mvUsbStorageRead(unsigned int address, unsigned int length, unsigned char *buf, unsigned char lun); /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* mvUsbStorageWrite */ /* */ /* DESCRIPTION */ /* */ /* The function write data to mass storage. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ BOOL mvUsbStorageWrite(unsigned int address, unsigned int length, unsigned char *buf, unsigned char lun); #endif /* MV_USB2_MASS_STORAGE */ /*************************************************************************/ /* */ /* FUNCTION */ /* */ /* usb_device_init */ /* */ /* DESCRIPTION */ /* */ /* The function initialize the usb devices. */ /* */ /* CALLED BY */ /* */ /* Application */ /* */ /* CALLS */ /* */ /* Application The application function */ /* */ /* INPUTS */ /* */ /* None N/A */ /* */ /* OUTPUTS */ /* */ /* None N/A */ /* */ /*************************************************************************/ void usb_device_init(void ); #endif /* USB_INIT_H */