Initial import of NFC GNSS SDK project
This commit is contained in:
@@ -0,0 +1,168 @@
|
||||
/*------------------------------------------------------------
|
||||
(C) Copyright [2006-2008] Marvell International Ltd.
|
||||
All Rights Reserved
|
||||
------------------------------------------------------------*/
|
||||
|
||||
/*******************************************************************************
|
||||
* M O D U L E B O D Y
|
||||
*******************************************************************************
|
||||
* COPYRIGHT (C) 2003, 2004 Intel Corporation.
|
||||
*
|
||||
* This software as well as the software described in it is furnished under
|
||||
* license and may only be used or copied in accordance with the terms of the
|
||||
* license. The information in this file is furnished for informational use
|
||||
* only, is subject to change without notice, and should not be construed as
|
||||
* a commitment by Intel Corporation. Intel Corporation assumes no
|
||||
* responsibility or liability for any errors or inaccuracies that may appear
|
||||
* in this document or any software that may be provided in association with
|
||||
* this document.
|
||||
* Except as permitted by such license, no part of this document may be
|
||||
* reproduced, stored in a retrieval system, or transmitted in any form or by
|
||||
* any means without the express written consent of Intel Corporation.
|
||||
*
|
||||
*******************************************************************************
|
||||
*
|
||||
* Title: UDC DRIVER - USB Device Controller header file
|
||||
*
|
||||
* Filename: udc_driver.h
|
||||
*
|
||||
* Author: Yossi Gabay
|
||||
*
|
||||
* Description: This is the header file for UDC hardware in ManitobaEP & Hermon
|
||||
*
|
||||
* Notes:
|
||||
******************************************************************************/
|
||||
|
||||
#if !defined(_UDC_DRIVER_H_)
|
||||
#define _UDC_DRIVER_H_
|
||||
|
||||
//#include "global_types.h"
|
||||
#include "usb_device.h"
|
||||
|
||||
/* type definition for UDC_HANDLE */
|
||||
typedef void * UDC_HANDLE;
|
||||
|
||||
/* define handler error */
|
||||
#define UDC_HANDLE_ERROR (NULL)
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
UDC_ENDPOINT_0 = 0,
|
||||
UDC_ENDPOINT_A,
|
||||
UDC_ENDPOINT_B,
|
||||
UDC_ENDPOINT_C,
|
||||
UDC_ENDPOINT_D,
|
||||
UDC_ENDPOINT_E,
|
||||
UDC_ENDPOINT_F,
|
||||
UDC_ENDPOINT_G,
|
||||
UDC_ENDPOINT_H,
|
||||
UDC_ENDPOINT_I,
|
||||
UDC_ENDPOINT_J,
|
||||
UDC_ENDPOINT_K,
|
||||
UDC_ENDPOINT_L,
|
||||
UDC_ENDPOINT_M,
|
||||
UDC_ENDPOINT_N,
|
||||
UDC_ENDPOINT_P,
|
||||
UDC_ENDPOINT_Q,
|
||||
UDC_ENDPOINT_R,
|
||||
UDC_ENDPOINT_S,
|
||||
UDC_ENDPOINT_T,
|
||||
UDC_ENDPOINT_U,
|
||||
UDC_ENDPOINT_V,
|
||||
UDC_ENDPOINT_W,
|
||||
UDC_ENDPOINT_X,
|
||||
UDC_TOTAL_ENDPOINTS,
|
||||
UDC_INVALID_ENDPOINT
|
||||
} UDC_EndpointE;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
UDC_EVENT_RESET = 0,
|
||||
UDC_EVENT_SUSPEND,
|
||||
UDC_EVENT_RESUME,
|
||||
UDC_EVENT_SOF,
|
||||
UDC_EVENT_CONFIG_CHANGE
|
||||
}UDC_DeviceEventE;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
UDC_INTERRUPT_PACKET_COMPLETE = 0,
|
||||
UDC_INTERRUPT_FIFO_ERROR
|
||||
}UDC_EndpointInterruptTypeE;
|
||||
|
||||
|
||||
//Callback functions prototypes
|
||||
//-----------------------------
|
||||
|
||||
/* UDC_EndpointE - endpoint
|
||||
* UINT8 * - data pointer
|
||||
* UINT32 - data size
|
||||
* BOOL - For OUT (Rx) only: TRUE for End-Of-Message, FALSE for not completed message
|
||||
*/
|
||||
typedef void (*UDCDriverTransactionNofityFn)(UDC_EndpointE, UINT8 *, UINT32, BOOL);
|
||||
|
||||
|
||||
|
||||
/* USB endpoint operations */
|
||||
void UDCDriverEndpointFlush(UDC_EndpointE udcEndpoint);
|
||||
BOOL UDCDriverEndpointStall(UDC_EndpointE udcEndpoint);
|
||||
BOOL UDCDriverEndpointClearStall(UDC_EndpointE udcEndpoint);
|
||||
|
||||
|
||||
void UDCDriverReadFromFifo(volatile UINT32 *pFifo, UINT8 *buffer, UINT32 length);
|
||||
void UDCDriverWriteToFifo(volatile UINT32 *pFifo, UINT8 *buffer, UINT32 length);
|
||||
|
||||
void UDCDriverEndpointClearReceiveStatus(UDC_EndpointE udcEndpoint);
|
||||
|
||||
BOOL UDCDriverEndpointSetupIN(UDC_EndpointE udcEndpoint,
|
||||
UINT8 *pTxBuffer, UINT32 length, BOOL autoZLP);
|
||||
|
||||
BOOL UDCDriverEndpointSetupINMultiTransmitWithDma(UDC_EndpointE udcEndpoint,
|
||||
UINT32 numOfBuffers, USBDevice_MultiTransmitListS *multiList);
|
||||
|
||||
BOOL UDCDriverEndpointSetupOUT(UDC_EndpointE udcEndpoint,
|
||||
UINT8 *pRxBuffer, UINT32 length,BOOL expect_zlp);
|
||||
|
||||
|
||||
void UDCDriverEnableEventInterrupt(UDC_DeviceEventE event);
|
||||
void UDCDriverDisableEventInterrupt(UDC_DeviceEventE event);
|
||||
void UDCDriverClearEventInterrupt(UDC_DeviceEventE event);
|
||||
|
||||
BOOL UDCDriverEndpointDeactivate(UDC_EndpointE udcEndpoint);
|
||||
BOOL UDCDriverEndpointActivate(UDC_EndpointE udcEndpoint,
|
||||
UINT8 usbEndpointNum,
|
||||
BOOL dmaEnabled, UINT8 dmaChannel,
|
||||
UINT8 *pDescBuffer, UINT32 descBufferSize);
|
||||
|
||||
|
||||
/* USB device operations */
|
||||
void UDCDriverEnableEndpointInterrupt(UDC_EndpointE udcEndpoint,
|
||||
UDC_EndpointInterruptTypeE interruptType);
|
||||
void UDCDriverDisableEndpointInterrupt(UDC_EndpointE udcEndpoint,
|
||||
UDC_EndpointInterruptTypeE interruptType);
|
||||
void UDCDriverClearEndpointInterrupt(UDC_EndpointE udcEndpoint,
|
||||
UDC_EndpointInterruptTypeE interruptType);
|
||||
|
||||
BOOL UDCDriverGetCurrentConfigurationSettings(UINT8 *configNum, UINT8 *interfaceNum, UINT8 *altSettingsNum);
|
||||
|
||||
BOOL UDCDriverIsHostEnabledRemoteWakeup(void);
|
||||
void UDCDriverForceHostResume(void);
|
||||
BOOL UDCDriverIsDeviceControllerEnabled (void);
|
||||
|
||||
void UDCDriverDatabaseReset(BOOL fullInit);
|
||||
BOOL UDCDriverConfigureEndpoints(void);
|
||||
|
||||
void UDCDriverResume(void);
|
||||
void UDCDriverSuspend(void);
|
||||
|
||||
void UDCDriverDeactivateHardware(void);
|
||||
BOOL UDCDriverActivateHardware(void);
|
||||
|
||||
/* System API's */
|
||||
BOOL UDCDriverPhase2Init(void);
|
||||
void UDCDriverPhase1Init(void);
|
||||
|
||||
void usbWakeIndication(UINT8 awake);
|
||||
|
||||
#endif /*_UDC_DRIVER_H_*/
|
||||
Reference in New Issue
Block a user