Files

650 lines
42 KiB
C

#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 */