111 lines
3.5 KiB
C
111 lines
3.5 KiB
C
/*
|
|
* Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef DW_UFS_H
|
|
#define DW_UFS_H
|
|
|
|
#include <stdint.h>
|
|
|
|
/* Bus Throtting */
|
|
#define BUSTHRTL 0xC0
|
|
/* Outstanding OCP Requests */
|
|
#define OOCPR 0xC4
|
|
/* Fatal Error Interrupt Enable */
|
|
#define FEIE 0xC8
|
|
/* C-Port Direct Access Configuration register */
|
|
#define CDACFG 0xD0
|
|
/* C-Port Direct Access Transmit 1 register */
|
|
#define CDATX1 0xD4
|
|
/* C-Port Direct Access Transmit 2 register */
|
|
#define CDATX2 0xD8
|
|
/* C-Port Direct Access Receive 1 register */
|
|
#define CDARX1 0xDC
|
|
/* C-Port Direct Access Receive 2 register */
|
|
#define CDARX2 0xE0
|
|
/* C-Port Direct Access Status register */
|
|
#define CDASTA 0xE4
|
|
/* UPIU Loopback Configuration register */
|
|
#define LBMCFG 0xF0
|
|
/* UPIU Loopback Status */
|
|
#define LBMSTA 0xF4
|
|
/* Debug register */
|
|
#define DBG 0xF8
|
|
/* HClk Divider register */
|
|
#define HCLKDIV 0xFC
|
|
|
|
#define TX_HIBERN8TIME_CAP_OFFSET 0x000F
|
|
#define TX_FSM_STATE_OFFSET 0x0041
|
|
#define TX_FSM_STATE_LINE_RESET 7
|
|
#define TX_FSM_STATE_LINE_CFG 6
|
|
#define TX_FSM_STATE_HS_BURST 5
|
|
#define TX_FSM_STATE_LS_BURST 4
|
|
#define TX_FSM_STATE_STALL 3
|
|
#define TX_FSM_STATE_SLEEP 2
|
|
#define TX_FSM_STATE_HIBERN8 1
|
|
#define TX_FSM_STATE_DISABLE 0
|
|
|
|
#define RX_MIN_ACTIVATETIME_CAP_OFFSET 0x008F
|
|
#define RX_HS_G2_SYNC_LENGTH_CAP_OFFSET 0x0094
|
|
#define RX_HS_G3_SYNC_LENGTH_CAP_OFFSET 0x0095
|
|
|
|
#define PA_AVAIL_TX_DATA_LANES_OFFSET 0x1520
|
|
#define PA_TX_SKIP_OFFSET 0x155C
|
|
#define PA_TX_SKIP_PERIOD_OFFSET 0x155D
|
|
#define PA_LOCAL_TX_LCC_ENABLE_OFFSET 0x155E
|
|
#define PA_ACTIVE_TX_DATA_LANES_OFFSET 0x1560
|
|
#define PA_CONNECTED_TX_DATA_LANES_OFFSET 0x1561
|
|
#define PA_TX_TRAILING_CLOCKS_OFFSET 0x1564
|
|
#define PA_TX_GEAR_OFFSET 0x1568
|
|
#define PA_TX_TERMINATION_OFFSET 0x1569
|
|
#define PA_HS_SERIES_OFFSET 0x156A
|
|
#define PA_PWR_MODE_OFFSET 0x1571
|
|
#define PA_ACTIVE_RX_DATA_LANES_OFFSET 0x1580
|
|
#define PA_CONNECTED_RX_DATA_LANES_OFFSET 0x1581
|
|
#define PA_RX_PWR_STATUS_OFFSET 0x1582
|
|
#define PA_RX_GEAR_OFFSET 0x1583
|
|
#define PA_RX_TERMINATION_OFFSET 0x1584
|
|
#define PA_SCRAMBLING_OFFSET 0x1585
|
|
#define PA_MAX_RX_PWM_GEAR_OFFSET 0x1586
|
|
#define PA_MAX_RX_HS_GEAR_OFFSET 0x1587
|
|
#define PA_PACP_REQ_TIMEOUT_OFFSET 0x1590
|
|
#define PA_PACP_REQ_EOB_TIMEOUT_OFFSET 0x1591
|
|
#define PA_REMOTE_VER_INFO_OFFSET 0x15A0
|
|
#define PA_LOGICAL_LANE_MAP_OFFSET 0x15A1
|
|
#define PA_TACTIVATE_OFFSET 0x15A8
|
|
#define PA_PWR_MODE_USER_DATA0_OFFSET 0x15B0
|
|
#define PA_PWR_MODE_USER_DATA1_OFFSET 0x15B1
|
|
#define PA_PWR_MODE_USER_DATA2_OFFSET 0x15B2
|
|
#define PA_PWR_MODE_USER_DATA3_OFFSET 0x15B3
|
|
#define PA_PWR_MODE_USER_DATA4_OFFSET 0x15B4
|
|
#define PA_PWR_MODE_USER_DATA5_OFFSET 0x15B5
|
|
|
|
#define DL_TC0_TX_FC_THRESHOLD_OFFSET 0x2040
|
|
#define DL_AFC0_CREDIT_THRESHOLD_OFFSET 0x2044
|
|
#define DL_TC0_OUT_ACK_THRESHOLD_OFFSET 0x2045
|
|
|
|
#define DME_FC0_PROTECTION_TIMEOUT_OFFSET 0xD041
|
|
#define DME_TC0_REPLAY_TIMEOUT_OFFSET 0xD042
|
|
#define DME_AFC0_REQ_TIMEOUT_OFFSET 0xD043
|
|
#define DME_FC1_PROTECTION_TIMEOUT_OFFSET 0xD044
|
|
#define DME_TC1_REPLAY_TIMEOUT_OFFSET 0xD045
|
|
#define DME_AFC1_REQ_TIMEOUT_OFFSET 0xD046
|
|
|
|
#define VS_MPHY_CFG_UPDT_OFFSET 0xD085
|
|
#define VS_MK2_EXTN_SUPPORT_OFFSET 0xD0AB
|
|
#define VS_MPHY_DISABLE_OFFSET 0xD0C1
|
|
#define VS_MPHY_DISABLE_MPHYDIS (1 << 0)
|
|
|
|
typedef struct dw_ufs_params {
|
|
uintptr_t reg_base;
|
|
uintptr_t desc_base;
|
|
size_t desc_size;
|
|
unsigned long flags;
|
|
} dw_ufs_params_t;
|
|
|
|
int dw_ufs_init(dw_ufs_params_t *params);
|
|
|
|
#endif /* DW_UFS_H */
|