ufshcd-dwc.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * UFS Host driver for Synopsys Designware Core
  4. *
  5. * Copyright (C) 2015-2016 Synopsys, Inc. (www.synopsys.com)
  6. *
  7. * Authors: Joao Pinto <jpinto@synopsys.com>
  8. */
  9. #ifndef _UFSHCD_DWC_H
  10. #define _UFSHCD_DWC_H
  11. #include <ufs/ufshcd.h>
  12. /* RMMI Attributes */
  13. #define CBREFCLKCTRL2 0x8132
  14. #define CBCRCTRL 0x811F
  15. #define CBC10DIRECTCONF2 0x810E
  16. #define CBRATESEL 0x8114
  17. #define CBCREGADDRLSB 0x8116
  18. #define CBCREGADDRMSB 0x8117
  19. #define CBCREGWRLSB 0x8118
  20. #define CBCREGWRMSB 0x8119
  21. #define CBCREGRDLSB 0x811A
  22. #define CBCREGRDMSB 0x811B
  23. #define CBCREGRDWRSEL 0x811C
  24. #define CBREFREFCLK_GATE_OVR_EN BIT(7)
  25. /* M-PHY Attributes */
  26. #define MTX_FSM_STATE 0x41
  27. #define MRX_FSM_STATE 0xC1
  28. /* M-PHY registers */
  29. #define RX_OVRD_IN_1(n) (0x3006 + ((n) * 0x100))
  30. #define RX_PCS_OUT(n) (0x300F + ((n) * 0x100))
  31. #define FAST_FLAGS(n) (0x401C + ((n) * 0x100))
  32. #define RX_AFE_ATT_IDAC(n) (0x4000 + ((n) * 0x100))
  33. #define RX_AFE_CTLE_IDAC(n) (0x4001 + ((n) * 0x100))
  34. #define FW_CALIB_CCFG(n) (0x404D + ((n) * 0x100))
  35. /* Tx/Rx FSM state */
  36. enum rx_fsm_state {
  37. RX_STATE_DISABLED = 0,
  38. RX_STATE_HIBERN8 = 1,
  39. RX_STATE_SLEEP = 2,
  40. RX_STATE_STALL = 3,
  41. RX_STATE_LSBURST = 4,
  42. RX_STATE_HSBURST = 5,
  43. };
  44. enum tx_fsm_state {
  45. TX_STATE_DISABLED = 0,
  46. TX_STATE_HIBERN8 = 1,
  47. TX_STATE_SLEEP = 2,
  48. TX_STATE_STALL = 3,
  49. TX_STATE_LSBURST = 4,
  50. TX_STATE_HSBURST = 5,
  51. };
  52. struct ufshcd_dme_attr_val {
  53. u32 attr_sel;
  54. u32 mib_val;
  55. u8 peer;
  56. };
  57. int ufshcd_dwc_link_startup_notify(struct ufs_hba *hba,
  58. enum ufs_notify_change_status status);
  59. int ufshcd_dwc_dme_set_attrs(struct ufs_hba *hba,
  60. const struct ufshcd_dme_attr_val *v, int n);
  61. #endif /* End of Header */