mtreg.h 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. /*
  2. ** Id: //Department/DaVinci/TRUNK/MT6620_5931_WiFi_Driver/include/nic/mtreg.h#2
  3. */
  4. /*! \file "mtreg.h"
  5. \brief The common register definition of mt5931
  6. N/A
  7. */
  8. /*
  9. ** Log: mtreg.h
  10. *
  11. * 01 28 2013 samp.lin
  12. * [WCXRP00000851] [MT6582 Wi-Fi][Driver] Add HIFSYS related definition to driver source tree
  13. * add MT6582-specific definitions.
  14. *
  15. * 08 15 2011 cp.wu
  16. * [WCXRP00000851] [MT6628 Wi-Fi][Driver] Add HIFSYS related definition to driver source tree
  17. * add MT6628-specific definitions.
  18. *
  19. * 07 13 2011 cp.wu
  20. * [WCXRP00000851] [MT6628 Wi-Fi][Driver] Add HIFSYS related definition to driver source tree
  21. * add initial version for MT6628 driver support.
  22. *
  23. */
  24. #ifndef _MTREG_H
  25. #define _MTREG_H
  26. /*******************************************************************************
  27. * C O M P I L E R F L A G S
  28. ********************************************************************************
  29. */
  30. /*******************************************************************************
  31. * E X T E R N A L R E F E R E N C E S
  32. ********************************************************************************
  33. */
  34. /*******************************************************************************
  35. * C O N S T A N T S
  36. ********************************************************************************
  37. */
  38. /*******************************************************************************
  39. * D A T A T Y P E S
  40. ********************************************************************************
  41. */
  42. /*******************************************************************************
  43. * P U B L I C D A T A
  44. ********************************************************************************
  45. */
  46. /*******************************************************************************
  47. * P R I V A T E D A T A
  48. ********************************************************************************
  49. */
  50. /*******************************************************************************
  51. * M A C R O S
  52. ********************************************************************************
  53. */
  54. /*******************************************************************************
  55. * F U N C T I O N D E C L A R A T I O N S
  56. ********************************************************************************
  57. */
  58. /*******************************************************************************
  59. * F U N C T I O N S
  60. ********************************************************************************
  61. */
  62. /* 1 MT6628 MCR Definition */
  63. /* 2 Host Interface */
  64. /* 4 CHIP ID Register */
  65. #define MCR_WCIR 0x0000
  66. /* 4 HIF Low Power Control Register */
  67. #define MCR_WHLPCR 0x0004
  68. /* 4 Control Status Register */
  69. #define MCR_WSDIOCSR 0x0008
  70. #define MCR_WSPICSR 0x0008
  71. /* 4 HIF Control Register */
  72. #define MCR_WHCR 0x000C
  73. /* 4 HIF Interrupt Status Register */
  74. #define MCR_WHISR 0x0010
  75. /* 4 HIF Interrupt Enable Register */
  76. #define MCR_WHIER 0x0014
  77. /* 4 Abnormal Status Register */
  78. #define MCR_WASR 0x0018
  79. /* 4 WLAN Software Interrupt Control Register */
  80. #define MCR_WSICR 0x001C
  81. /* 4 WLAN TX Status Register */
  82. #define MCR_WTSR0 0x0020
  83. /* 4 WLAN TX Status Register */
  84. #define MCR_WTSR1 0x0024
  85. /* 4 WLAN TX Data Register 0 */
  86. #define MCR_WTDR0 0x0028
  87. /* 4 WLAN TX Data Register 1 */
  88. #define MCR_WTDR1 0x002C
  89. /* 4 WLAN RX Data Register 0 */
  90. #define MCR_WRDR0 0x0030
  91. /* 4 WLAN RX Data Register 1 */
  92. #define MCR_WRDR1 0x0034
  93. /* 4 Host to Device Send Mailbox 0 Register */
  94. #define MCR_H2DSM0R 0x0038
  95. /* 4 Host to Device Send Mailbox 1 Register */
  96. #define MCR_H2DSM1R 0x003c
  97. /* 4 Device to Host Receive Mailbox 0 Register */
  98. #define MCR_D2HRM0R 0x0040
  99. /* 4 Device to Host Receive Mailbox 1 Register */
  100. #define MCR_D2HRM1R 0x0044
  101. /* 4 Device to Host Receive Mailbox 2 Register */
  102. #define MCR_D2HRM2R 0x0048
  103. /* 4 WLAN RX Packet Length Register */
  104. #define MCR_WRPLR 0x0050
  105. /* 4 HSIF Transaction Count Register */
  106. #define MCR_HSTCR 0x0058
  107. /* #if CFG_SDIO_INTR_ENHANCE */
  108. typedef struct _ENHANCE_MODE_DATA_STRUCT_T {
  109. UINT_32 u4WHISR;
  110. union {
  111. struct {
  112. UINT_8 ucTQ0Cnt;
  113. UINT_8 ucTQ1Cnt;
  114. UINT_8 ucTQ2Cnt;
  115. UINT_8 ucTQ3Cnt;
  116. UINT_8 ucTQ4Cnt;
  117. UINT_8 ucTQ5Cnt;
  118. UINT_16 u2Rsrv;
  119. } u;
  120. UINT_32 au4WTSR[2];
  121. } rTxInfo;
  122. union {
  123. struct {
  124. UINT_16 u2NumValidRx0Len;
  125. UINT_16 u2NumValidRx1Len;
  126. UINT_16 au2Rx0Len[16];
  127. UINT_16 au2Rx1Len[16];
  128. } u;
  129. UINT_32 au4RxStatusRaw[17];
  130. } rRxInfo;
  131. UINT_32 u4RcvMailbox0;
  132. UINT_32 u4RcvMailbox1;
  133. } ENHANCE_MODE_DATA_STRUCT_T, *P_ENHANCE_MODE_DATA_STRUCT_T;
  134. /* #endif */ /* ENHANCE_MODE_DATA_STRUCT_T */
  135. /* 2 Definition in each register */
  136. /* 3 WCIR 0x0000 */
  137. #define WCIR_WLAN_READY BIT(21)
  138. #define WCIR_POR_INDICATOR BIT(20)
  139. #define WCIR_REVISION_ID BITS(16, 19)
  140. #define WCIR_CHIP_ID BITS(0, 15)
  141. #define MTK_CHIP_REV_72 0x00006572
  142. #define MTK_CHIP_REV_82 0x00006582
  143. #define MTK_CHIP_REV_92 0x00006592
  144. #define MTK_CHIP_MP_REVERSION_ID 0x0
  145. /* 3 WHLPCR 0x0004 */
  146. #define WHLPCR_FW_OWN_REQ_CLR BIT(9)
  147. #define WHLPCR_FW_OWN_REQ_SET BIT(8)
  148. #define WHLPCR_IS_DRIVER_OWN BIT(8)
  149. #define WHLPCR_INT_EN_CLR BIT(1)
  150. #define WHLPCR_INT_EN_SET BIT(0)
  151. /* 3 WSDIOCSR 0x0008 */
  152. #define WSDIOCSR_SDIO_RE_INIT_EN BIT(0)
  153. /* 3 WSPICSR 0x0008 */
  154. #define WCSR_SPI_MODE_SEL BITS(3, 4)
  155. #define WCSR_SPI_ENDIAN_BIG BIT(2)
  156. #define WCSR_SPI_INT_OUT_MODE BIT(1)
  157. #define WCSR_SPI_DATA_OUT_MODE BIT(0)
  158. /* 3 WHCR 0x000C */
  159. #define WHCR_RX_ENHANCE_MODE_EN BIT(16)
  160. #define WHCR_MAX_HIF_RX_LEN_NUM BITS(4, 7)
  161. #define WHCR_W_MAILBOX_RD_CLR_EN BIT(2)
  162. #define WHCR_W_INT_CLR_CTRL BIT(1)
  163. #define WHCR_MCU_DBG_EN BIT(0)
  164. #define WHCR_OFFSET_MAX_HIF_RX_LEN_NUM 4
  165. /* 3 WHISR 0x0010 */
  166. #define WHISR_D2H_SW_INT BITS(8, 31)
  167. #define WHISR_D2H_SW_ASSERT_INFO_INT BIT(31)
  168. #define WHISR_FW_OWN_BACK_INT BIT(4)
  169. #define WHISR_ABNORMAL_INT BIT(3)
  170. #define WHISR_RX1_DONE_INT BIT(2)
  171. #define WHISR_RX0_DONE_INT BIT(1)
  172. #define WHISR_TX_DONE_INT BIT(0)
  173. /* 3 WHIER 0x0014 */
  174. #define WHIER_D2H_SW_INT BITS(8, 31)
  175. #define WHIER_FW_OWN_BACK_INT_EN BIT(4)
  176. #define WHIER_ABNORMAL_INT_EN BIT(3)
  177. #define WHIER_RX1_DONE_INT_EN BIT(2)
  178. #define WHIER_RX0_DONE_INT_EN BIT(1)
  179. #define WHIER_TX_DONE_INT_EN BIT(0)
  180. #define WHIER_DEFAULT (WHIER_RX0_DONE_INT_EN | \
  181. WHIER_RX1_DONE_INT_EN | \
  182. WHIER_TX_DONE_INT_EN | \
  183. WHIER_ABNORMAL_INT_EN | \
  184. WHIER_D2H_SW_INT \
  185. )
  186. /* 3 WASR 0x0018 */
  187. #define WASR_FW_OWN_INVALID_ACCESS BIT(4)
  188. #define WASR_RX1_UNDER_FLOW BIT(3)
  189. #define WASR_RX0_UNDER_FLOW BIT(2)
  190. #define WASR_TX1_OVER_FLOW BIT(1)
  191. #define WASR_TX0_OVER_FLOW BIT(0)
  192. /* 3 WSICR 0x001C */
  193. #define WSICR_H2D_SW_INT_SET BITS(16, 31)
  194. /* 3 WRPLR 0x0050 */
  195. #define WRPLR_RX1_PACKET_LENGTH BITS(16, 31)
  196. #define WRPLR_RX0_PACKET_LENGTH BITS(0, 15)
  197. /* 3 HSTCR 0x0058 */
  198. #define HSTCR_AFF_BURST_LEN BITS(24, 25)
  199. #define HSTCR_AFF_BURST_LEN_OFFSET 24
  200. #define HSTCR_TRANS_TARGET BITS(20, 22)
  201. #define HSTCR_TRANS_TARGET_OFFSET 20
  202. #define HSTCR_HSIF_TRANS_CNT BITS(2, 19)
  203. #define HSTCR_HSIF_TRANS_CNT_OFFSET 2
  204. /* HSTCR_TRANS_TARGET */
  205. typedef enum _eTransTarget {
  206. TRANS_TARGET_TXD0 = 0,
  207. TRANS_TARGET_TXD1,
  208. TRANS_TARGET_RXD0,
  209. TRANS_TARGET_RXD1,
  210. TRANS_TARGET_WHISR,
  211. NUM_TRANS_TARGET
  212. } E_TRANS_TARGET_T;
  213. typedef enum _E_AFF_BURST_LEN {
  214. BURST_1_DW = 0,
  215. BURST_4_DW,
  216. BURST_8_DW,
  217. BURST_RSV,
  218. NUM_AFF_BURST_LEN
  219. } E_AFF_BURST_LEN;
  220. #endif /* _MTREG_H */