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