| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * UFS Host driver for Synopsys Designware Core |
| * |
| * Copyright (C) 2015-2016 Synopsys, Inc. (www.synopsys.com) |
| * |
| * Authors: Joao Pinto <jpinto@synopsys.com> |
| */ |
| |
| #ifndef _UFSHCD_DWC_H |
| #define _UFSHCD_DWC_H |
| |
| /* PHY modes */ |
| #define UFSHCD_DWC_PHY_MODE_ROM 0 |
| |
| /* RMMI Attributes */ |
| #define CBREFCLKCTRL2 0x8132 |
| #define CBCRCTRL 0x811F |
| #define CBC10DIRECTCONF2 0x810E |
| #define CBCREGADDRLSB 0x8116 |
| #define CBCREGADDRMSB 0x8117 |
| #define CBCREGWRLSB 0x8118 |
| #define CBCREGWRMSB 0x8119 |
| #define CBCREGRDLSB 0x811A |
| #define CBCREGRDMSB 0x811B |
| #define CBCREGRDWRSEL 0x811C |
| |
| #define CBREFREFCLK_GATE_OVR_EN BIT(7) |
| |
| /* M-PHY Attributes */ |
| #define MTX_FSM_STATE 0x41 |
| #define MRX_FSM_STATE 0xC1 |
| |
| /* M-PHY registers */ |
| #define FAST_FLAGS(n) (0x401C + ((n) * 0x100)) |
| #define RX_AFE_ATT_IDAC(n) (0x4000 + ((n) * 0x100)) |
| #define RX_AFE_CTLE_IDAC(n) (0x4001 + ((n) * 0x100)) |
| #define FW_CALIB_CCFG(n) (0x404D + ((n) * 0x100)) |
| |
| /* Tx/Rx FSM state */ |
| enum rx_fsm_state { |
| RX_STATE_DISABLED = 0, |
| RX_STATE_HIBERN8 = 1, |
| RX_STATE_SLEEP = 2, |
| RX_STATE_STALL = 3, |
| RX_STATE_LSBURST = 4, |
| RX_STATE_HSBURST = 5, |
| }; |
| |
| enum tx_fsm_state { |
| TX_STATE_DISABLED = 0, |
| TX_STATE_HIBERN8 = 1, |
| TX_STATE_SLEEP = 2, |
| TX_STATE_STALL = 3, |
| TX_STATE_LSBURST = 4, |
| TX_STATE_HSBURST = 5, |
| }; |
| |
| struct ufshcd_dme_attr_val { |
| u32 attr_sel; |
| u32 mib_val; |
| u8 peer; |
| }; |
| |
| int ufshcd_dwc_link_startup_notify(struct ufs_hba *hba, |
| enum ufs_notify_change_status status); |
| int ufshcd_dwc_dme_set_attrs(struct ufs_hba *hba, |
| const struct ufshcd_dme_attr_val *v, int n); |
| #endif /* End of Header */ |