#ifndef _UFSHCI_H
#define _UFSHCI_H
#include <linux/types.h>
#include <ufs/ufs.h>
enum { … };
enum { … };
enum { … };
enum { … };
enum { … };
enum { … };
enum { … };
enum { … };
enum { … };
enum { … };
#define SQ_ICU_ERR_CODE_MASK …
#define UFS_MASK(mask, offset) …
#define MINOR_VERSION_NUM_MASK …
#define MAJOR_VERSION_NUM_MASK …
#define UFSHCD_NUM_RESERVED …
static inline u32 ufshci_version(u32 major, u32 minor)
{ … }
#define DEVICE_CLASS …
#define DEVICE_ID …
#define MANUFACTURE_ID_MASK …
#define PRODUCT_ID_MASK …
#define UFSHCI_AHIBERN8_TIMER_MASK …
#define UFSHCI_AHIBERN8_SCALE_MASK …
#define UFSHCI_AHIBERN8_SCALE_FACTOR …
#define UFSHCI_AHIBERN8_MAX …
#define UTP_TRANSFER_REQ_COMPL …
#define UIC_DME_END_PT_RESET …
#define UIC_ERROR …
#define UIC_TEST_MODE …
#define UIC_POWER_MODE …
#define UIC_HIBERNATE_EXIT …
#define UIC_HIBERNATE_ENTER …
#define UIC_LINK_LOST …
#define UIC_LINK_STARTUP …
#define UTP_TASK_REQ_COMPL …
#define UIC_COMMAND_COMPL …
#define DEVICE_FATAL_ERROR …
#define CONTROLLER_FATAL_ERROR …
#define SYSTEM_BUS_FATAL_ERROR …
#define CRYPTO_ENGINE_FATAL_ERROR …
#define MCQ_CQ_EVENT_STATUS …
#define UFSHCD_UIC_HIBERN8_MASK …
#define UFSHCD_UIC_PWR_MASK …
#define UFSHCD_UIC_MASK …
#define UFSHCD_ERROR_MASK …
#define INT_FATAL_ERRORS …
#define DEVICE_PRESENT …
#define UTP_TRANSFER_REQ_LIST_READY …
#define UTP_TASK_REQ_LIST_READY …
#define UIC_COMMAND_READY …
#define HOST_ERROR_INDICATOR …
#define DEVICE_ERROR_INDICATOR …
#define UIC_POWER_MODE_CHANGE_REQ_STATUS_MASK …
#define UFSHCD_STATUS_READY …
enum { … };
#define CONTROLLER_ENABLE …
#define CONTROLLER_DISABLE …
#define CRYPTO_GENERAL_ENABLE …
#define UIC_PHY_ADAPTER_LAYER_ERROR …
#define UIC_PHY_ADAPTER_LAYER_ERROR_CODE_MASK …
#define UIC_PHY_ADAPTER_LAYER_LANE_ERR_MASK …
#define UIC_PHY_ADAPTER_LAYER_GENERIC_ERROR …
#define UIC_DATA_LINK_LAYER_ERROR …
#define UIC_DATA_LINK_LAYER_ERROR_CODE_MASK …
#define UIC_DATA_LINK_LAYER_ERROR_TCX_REP_TIMER_EXP …
#define UIC_DATA_LINK_LAYER_ERROR_AFCX_REQ_TIMER_EXP …
#define UIC_DATA_LINK_LAYER_ERROR_FCX_PRO_TIMER_EXP …
#define UIC_DATA_LINK_LAYER_ERROR_RX_BUF_OF …
#define UIC_DATA_LINK_LAYER_ERROR_PA_INIT …
#define UIC_DATA_LINK_LAYER_ERROR_NAC_RECEIVED …
#define UIC_DATA_LINK_LAYER_ERROR_TCx_REPLAY_TIMEOUT …
#define UIC_NETWORK_LAYER_ERROR …
#define UIC_NETWORK_LAYER_ERROR_CODE_MASK …
#define UIC_NETWORK_UNSUPPORTED_HEADER_TYPE …
#define UIC_NETWORK_BAD_DEVICEID_ENC …
#define UIC_NETWORK_LHDR_TRAP_PACKET_DROPPING …
#define UIC_TRANSPORT_LAYER_ERROR …
#define UIC_TRANSPORT_LAYER_ERROR_CODE_MASK …
#define UIC_TRANSPORT_UNSUPPORTED_HEADER_TYPE …
#define UIC_TRANSPORT_UNKNOWN_CPORTID …
#define UIC_TRANSPORT_NO_CONNECTION_RX …
#define UIC_TRANSPORT_CONTROLLED_SEGMENT_DROPPING …
#define UIC_TRANSPORT_BAD_TC …
#define UIC_TRANSPORT_E2E_CREDIT_OVERFOW …
#define UIC_TRANSPORT_SAFETY_VALUE_DROPPING …
#define UIC_DME_ERROR …
#define UIC_DME_ERROR_CODE_MASK …
#define INT_AGGR_TIMEOUT_VAL_MASK …
#define INT_AGGR_COUNTER_THRESHOLD_MASK …
#define INT_AGGR_COUNTER_AND_TIMER_RESET …
#define INT_AGGR_STATUS_BIT …
#define INT_AGGR_PARAM_WRITE …
#define INT_AGGR_ENABLE …
#define UTP_TRANSFER_REQ_LIST_RUN_STOP_BIT …
#define UTP_TASK_REQ_LIST_RUN_STOP_BIT …
#define MCQ_MODE_SELECT …
#define UFSHCD_MCQ_CQIS_TAIL_ENT_PUSH_STS …
#define COMMAND_OPCODE_MASK …
#define GEN_SELECTOR_INDEX_MASK …
#define MIB_ATTRIBUTE_MASK …
#define RESET_LEVEL …
#define ATTR_SET_TYPE_MASK …
#define CONFIG_RESULT_CODE_MASK …
#define GENERIC_ERROR_CODE_MASK …
#define UIC_ARG_MPHY_TX_GEN_SEL_INDEX(lane) …
#define UIC_ARG_MPHY_RX_GEN_SEL_INDEX(lane) …
#define UIC_ARG_MIB_SEL(attr, sel) …
#define UIC_ARG_MIB(attr) …
#define UIC_ARG_ATTR_TYPE(t) …
#define UIC_GET_ATTR_ID(v) …
enum link_status { … };
enum uic_cmd_dme { … };
enum { … };
#define MASK_UIC_COMMAND_RESULT …
#define INT_AGGR_COUNTER_THLD_VAL(c) …
#define INT_AGGR_TIMEOUT_VAL(t) …
enum { … };
ufs_crypto_capabilities;
enum ufs_crypto_key_size { … };
enum ufs_crypto_alg { … };
ufs_crypto_cap_entry;
#define UFS_CRYPTO_CONFIGURATION_ENABLE …
#define UFS_CRYPTO_KEY_MAX_SIZE …
ufs_crypto_cfg_entry;
enum { … };
enum { … };
enum utp_data_direction { … };
enum utp_ocs { … };
enum { … };
#define PRDT_DATA_BYTE_COUNT_MAX …
#define PRDT_DATA_BYTE_COUNT_PAD …
struct ufshcd_sg_entry { … };
struct utp_transfer_cmd_desc { … };
struct request_desc_header { … };
static_assert(…);
struct utp_transfer_req_desc { … };
struct cq_entry { … };
static_assert(…);
struct utp_task_req_desc { … };
#endif