You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
3.2 KiB
95 lines
3.2 KiB
/*
|
|
* Copyright : (C) 2022 Phytium Information Technology, Inc.
|
|
* All Rights Reserved.
|
|
*
|
|
* This program is OPEN SOURCE software: you can redistribute it and/or modify it
|
|
* under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
|
|
* either version 1.0 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 Phytium Public License for more details.
|
|
*
|
|
*
|
|
* FilePath: fxhci.h
|
|
* Date: 2022-02-11 13:33:12
|
|
* LastEditTime: 2022-02-18 09:17:44
|
|
* Description: This files is for definition of XHCI user function
|
|
*
|
|
* Modify History:
|
|
* Ver Who Date Changes
|
|
* ----- ------ -------- --------------------------------------
|
|
* 1.0 zhugengyu 2022/2/7 init commit
|
|
*/
|
|
|
|
#ifndef FXHCI_H
|
|
#define FXHCI_H
|
|
|
|
/***************************** Include Files *********************************/
|
|
#include "fusb.h"
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
/************************** Constant Definitions *****************************/
|
|
#define FXHCI_EVENT_RING_SIZE 64
|
|
#define FXHCI_TRANSFER_RING_SIZE 32 /* Never raise this above 256 to prevent transfer event length overflow! */
|
|
#define FXHCI_COMMAND_RING_SIZE 4
|
|
#define FXHCI_NUM_EPS 32
|
|
|
|
#define FXHCI_HC_VERSION_MIN 0x96 /* supported XHCI version from v0.96 to v1.2 */
|
|
#define FXHCI_HC_VERSION_MAX 0x120
|
|
|
|
/* completion code for xhci */
|
|
enum
|
|
{
|
|
/* Make these high enough to not collide with negative FUSB_HC_XHCI CCs */
|
|
FXHCI_CC_TIMEOUT = -65,
|
|
FXHCI_CC_CONTROLLER_ERROR = -66,
|
|
FXHCI_CC_COMMUNICATION_ERROR = -67,
|
|
FXHCI_CC_OUT_OF_MEMORY = -68,
|
|
FXHCI_CC_DRIVER_ERROR = -69,
|
|
FXHCI_CC_GENERAL_ERROR = -1,
|
|
|
|
FXHCI_CC_ZERO_BYTES = FUSB_CC_ZERO_BYTES,
|
|
|
|
/* defined according to Table 130: TRB Completion Code Definitions in spec */
|
|
FXHCI_CC_SUCCESS = FUSB_CC_SUCCESS,
|
|
|
|
/* Use as -FXHCI_CC_TRB_ERROR when return as error */
|
|
FXHCI_CC_TRB_ERROR = 5,
|
|
FXHCI_CC_STALL_ERROR = 6,
|
|
FXHCI_CC_RESOURCE_ERROR = 7,
|
|
FXHCI_CC_BANDWIDTH_ERROR = 8,
|
|
FXHCI_CC_NO_SLOTS_AVAILABLE = 9,
|
|
FXHCI_CC_SLOT_NOT_ENABLED = 11,
|
|
FXHCI_CC_SHORT_PACKET = 13,
|
|
FXHCI_CC_EVENT_RING_FULL_ERROR = 21,
|
|
FXHCI_CC_COMMAND_RING_STOPPED = 24,
|
|
FXHCI_CC_COMMAND_ABORTED = 25,
|
|
FXHCI_CC_STOPPED = 26,
|
|
FXHCI_CC_STOPPED_LENGTH_INVALID = 27
|
|
};
|
|
|
|
typedef FUsbTransCode FXhciTransCode;
|
|
/**************************** Type Definitions *******************************/
|
|
|
|
/************************** Variable Definitions *****************************/
|
|
|
|
/***************** Macros (Inline Functions) Definitions *********************/
|
|
|
|
/************************** Function Prototypes ******************************/
|
|
/* 创建XHCI USB 控制器实例,完成初始化 */
|
|
FUsbHc *FXhciHcInit(FUsb *instance, uintptr base_addr);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|