regtable_pcie.h 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744
  1. /*
  2. * Copyright (c) 2011-2018 The Linux Foundation. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for
  5. * any purpose with or without fee is hereby granted, provided that the
  6. * above copyright notice and this permission notice appear in all
  7. * copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  10. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  11. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  12. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  13. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  14. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  15. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  16. * PERFORMANCE OF THIS SOFTWARE.
  17. */
  18. #ifndef _REGTABLE_PCIE_H_
  19. #define _REGTABLE_PCIE_H_
  20. #define MISSING 0
  21. #define A_SOC_CORE_PCIE_INTR_ENABLE_GRP0_Q6_MASK \
  22. (scn->targetdef->d_A_SOC_CORE_PCIE_INTR_ENABLE_GRP0_Q6_MASK)
  23. #define A_SOC_CORE_PCIE_INTR_CAUSE_GRP1 \
  24. (scn->targetdef->d_A_SOC_CORE_PCIE_INTR_CAUSE_GRP1)
  25. #define A_SOC_CORE_SPARE_1_REGISTER \
  26. (scn->targetdef->d_A_SOC_CORE_SPARE_1_REGISTER)
  27. #define A_SOC_CORE_PCIE_INTR_CLR_GRP1 \
  28. (scn->targetdef->d_A_SOC_CORE_PCIE_INTR_CLR_GRP1)
  29. #define A_SOC_CORE_PCIE_INTR_ENABLE_GRP1 \
  30. (scn->targetdef->d_A_SOC_CORE_PCIE_INTR_ENABLE_GRP1)
  31. #define A_SOC_PCIE_PCIE_SCRATCH_0 \
  32. (scn->targetdef->d_A_SOC_PCIE_PCIE_SCRATCH_0)
  33. #define A_SOC_PCIE_PCIE_SCRATCH_1 \
  34. (scn->targetdef->d_A_SOC_PCIE_PCIE_SCRATCH_1)
  35. #define A_WIFI_APB_1_A_WFSS_CE_TARGET_HOST_DELTA \
  36. (scn->targetdef->d_A_WIFI_APB_1_A_WFSS_CE_TARGET_HOST_DELTA)
  37. #define A_SOC_PCIE_PCIE_SCRATCH_2 \
  38. (scn->targetdef->d_A_SOC_PCIE_PCIE_SCRATCH_2)
  39. /* end Q6 iHelium emu registers */
  40. #define PCIE_INTR_FIRMWARE_ROUTE_MASK \
  41. (scn->targetdef->d_PCIE_INTR_FIRMWARE_ROUTE_MASK)
  42. #define A_SOC_CORE_SPARE_0_REGISTER \
  43. (scn->targetdef->d_A_SOC_CORE_SPARE_0_REGISTER)
  44. #define A_SOC_CORE_SCRATCH_0_ADDRESS \
  45. (scn->targetdef->d_A_SOC_CORE_SCRATCH_0_ADDRESS)
  46. #define A_SOC_CORE_SCRATCH_1_ADDRESS \
  47. (scn->targetdef->d_A_SOC_CORE_SCRATCH_1_ADDRESS)
  48. #define A_SOC_CORE_SCRATCH_2_ADDRESS \
  49. (scn->targetdef->d_A_SOC_CORE_SCRATCH_2_ADDRESS)
  50. #define A_SOC_CORE_SCRATCH_3_ADDRESS \
  51. (scn->targetdef->d_A_SOC_CORE_SCRATCH_3_ADDRESS)
  52. #define A_SOC_CORE_SCRATCH_4_ADDRESS \
  53. (scn->targetdef->d_A_SOC_CORE_SCRATCH_4_ADDRESS)
  54. #define A_SOC_CORE_SCRATCH_5_ADDRESS \
  55. (scn->targetdef->d_A_SOC_CORE_SCRATCH_5_ADDRESS)
  56. #define A_SOC_CORE_SCRATCH_6_ADDRESS \
  57. (scn->targetdef->d_A_SOC_CORE_SCRATCH_6_ADDRESS)
  58. #define A_SOC_CORE_SCRATCH_7_ADDRESS \
  59. (scn->targetdef->d_A_SOC_CORE_SCRATCH_7_ADDRESS)
  60. #define RTC_SOC_BASE_ADDRESS (scn->targetdef->d_RTC_SOC_BASE_ADDRESS)
  61. #define RTC_WMAC_BASE_ADDRESS (scn->targetdef->d_RTC_WMAC_BASE_ADDRESS)
  62. #define SYSTEM_SLEEP_OFFSET (scn->targetdef->d_SYSTEM_SLEEP_OFFSET)
  63. #define WLAN_SYSTEM_SLEEP_OFFSET \
  64. (scn->targetdef->d_WLAN_SYSTEM_SLEEP_OFFSET)
  65. #define WLAN_SYSTEM_SLEEP_DISABLE_LSB \
  66. (scn->targetdef->d_WLAN_SYSTEM_SLEEP_DISABLE_LSB)
  67. #define WLAN_SYSTEM_SLEEP_DISABLE_MASK \
  68. (scn->targetdef->d_WLAN_SYSTEM_SLEEP_DISABLE_MASK)
  69. #define CLOCK_CONTROL_OFFSET (scn->targetdef->d_CLOCK_CONTROL_OFFSET)
  70. #define CLOCK_CONTROL_SI0_CLK_MASK \
  71. (scn->targetdef->d_CLOCK_CONTROL_SI0_CLK_MASK)
  72. #define RESET_CONTROL_OFFSET (scn->targetdef->d_RESET_CONTROL_OFFSET)
  73. #define RESET_CONTROL_MBOX_RST_MASK \
  74. (scn->targetdef->d_RESET_CONTROL_MBOX_RST_MASK)
  75. #define RESET_CONTROL_SI0_RST_MASK \
  76. (scn->targetdef->d_RESET_CONTROL_SI0_RST_MASK)
  77. #define WLAN_RESET_CONTROL_OFFSET \
  78. (scn->targetdef->d_WLAN_RESET_CONTROL_OFFSET)
  79. #define WLAN_RESET_CONTROL_COLD_RST_MASK \
  80. (scn->targetdef->d_WLAN_RESET_CONTROL_COLD_RST_MASK)
  81. #define WLAN_RESET_CONTROL_WARM_RST_MASK \
  82. (scn->targetdef->d_WLAN_RESET_CONTROL_WARM_RST_MASK)
  83. #define GPIO_BASE_ADDRESS (scn->targetdef->d_GPIO_BASE_ADDRESS)
  84. #define GPIO_PIN0_OFFSET (scn->targetdef->d_GPIO_PIN0_OFFSET)
  85. #define GPIO_PIN1_OFFSET (scn->targetdef->d_GPIO_PIN1_OFFSET)
  86. #define GPIO_PIN0_CONFIG_MASK (scn->targetdef->d_GPIO_PIN0_CONFIG_MASK)
  87. #define GPIO_PIN1_CONFIG_MASK (scn->targetdef->d_GPIO_PIN1_CONFIG_MASK)
  88. #define A_SOC_CORE_SCRATCH_0 (scn->targetdef->d_A_SOC_CORE_SCRATCH_0)
  89. #define SI_CONFIG_BIDIR_OD_DATA_LSB \
  90. (scn->targetdef->d_SI_CONFIG_BIDIR_OD_DATA_LSB)
  91. #define SI_CONFIG_BIDIR_OD_DATA_MASK \
  92. (scn->targetdef->d_SI_CONFIG_BIDIR_OD_DATA_MASK)
  93. #define SI_CONFIG_I2C_LSB (scn->targetdef->d_SI_CONFIG_I2C_LSB)
  94. #define SI_CONFIG_I2C_MASK \
  95. (scn->targetdef->d_SI_CONFIG_I2C_MASK)
  96. #define SI_CONFIG_POS_SAMPLE_LSB \
  97. (scn->targetdef->d_SI_CONFIG_POS_SAMPLE_LSB)
  98. #define SI_CONFIG_POS_SAMPLE_MASK \
  99. (scn->targetdef->d_SI_CONFIG_POS_SAMPLE_MASK)
  100. #define SI_CONFIG_INACTIVE_CLK_LSB \
  101. (scn->targetdef->d_SI_CONFIG_INACTIVE_CLK_LSB)
  102. #define SI_CONFIG_INACTIVE_CLK_MASK \
  103. (scn->targetdef->d_SI_CONFIG_INACTIVE_CLK_MASK)
  104. #define SI_CONFIG_INACTIVE_DATA_LSB \
  105. (scn->targetdef->d_SI_CONFIG_INACTIVE_DATA_LSB)
  106. #define SI_CONFIG_INACTIVE_DATA_MASK \
  107. (scn->targetdef->d_SI_CONFIG_INACTIVE_DATA_MASK)
  108. #define SI_CONFIG_DIVIDER_LSB (scn->targetdef->d_SI_CONFIG_DIVIDER_LSB)
  109. #define SI_CONFIG_DIVIDER_MASK (scn->targetdef->d_SI_CONFIG_DIVIDER_MASK)
  110. #define SI_BASE_ADDRESS (scn->targetdef->d_SI_BASE_ADDRESS)
  111. #define SI_CONFIG_OFFSET (scn->targetdef->d_SI_CONFIG_OFFSET)
  112. #define SI_TX_DATA0_OFFSET (scn->targetdef->d_SI_TX_DATA0_OFFSET)
  113. #define SI_TX_DATA1_OFFSET (scn->targetdef->d_SI_TX_DATA1_OFFSET)
  114. #define SI_RX_DATA0_OFFSET (scn->targetdef->d_SI_RX_DATA0_OFFSET)
  115. #define SI_RX_DATA1_OFFSET (scn->targetdef->d_SI_RX_DATA1_OFFSET)
  116. #define SI_CS_OFFSET (scn->targetdef->d_SI_CS_OFFSET)
  117. #define SI_CS_DONE_ERR_MASK (scn->targetdef->d_SI_CS_DONE_ERR_MASK)
  118. #define SI_CS_DONE_INT_MASK (scn->targetdef->d_SI_CS_DONE_INT_MASK)
  119. #define SI_CS_START_LSB (scn->targetdef->d_SI_CS_START_LSB)
  120. #define SI_CS_START_MASK (scn->targetdef->d_SI_CS_START_MASK)
  121. #define SI_CS_RX_CNT_LSB (scn->targetdef->d_SI_CS_RX_CNT_LSB)
  122. #define SI_CS_RX_CNT_MASK (scn->targetdef->d_SI_CS_RX_CNT_MASK)
  123. #define SI_CS_TX_CNT_LSB (scn->targetdef->d_SI_CS_TX_CNT_LSB)
  124. #define SI_CS_TX_CNT_MASK (scn->targetdef->d_SI_CS_TX_CNT_MASK)
  125. #define EEPROM_SZ (scn->targetdef->d_BOARD_DATA_SZ)
  126. #define EEPROM_EXT_SZ (scn->targetdef->d_BOARD_EXT_DATA_SZ)
  127. #define MBOX_BASE_ADDRESS (scn->targetdef->d_MBOX_BASE_ADDRESS)
  128. #define LOCAL_SCRATCH_OFFSET (scn->targetdef->d_LOCAL_SCRATCH_OFFSET)
  129. #define CPU_CLOCK_OFFSET (scn->targetdef->d_CPU_CLOCK_OFFSET)
  130. #define LPO_CAL_OFFSET (scn->targetdef->d_LPO_CAL_OFFSET)
  131. #define GPIO_PIN10_OFFSET (scn->targetdef->d_GPIO_PIN10_OFFSET)
  132. #define GPIO_PIN11_OFFSET (scn->targetdef->d_GPIO_PIN11_OFFSET)
  133. #define GPIO_PIN12_OFFSET (scn->targetdef->d_GPIO_PIN12_OFFSET)
  134. #define GPIO_PIN13_OFFSET (scn->targetdef->d_GPIO_PIN13_OFFSET)
  135. #define CLOCK_GPIO_OFFSET (scn->targetdef->d_CLOCK_GPIO_OFFSET)
  136. #define CPU_CLOCK_STANDARD_LSB (scn->targetdef->d_CPU_CLOCK_STANDARD_LSB)
  137. #define CPU_CLOCK_STANDARD_MASK (scn->targetdef->d_CPU_CLOCK_STANDARD_MASK)
  138. #define LPO_CAL_ENABLE_LSB (scn->targetdef->d_LPO_CAL_ENABLE_LSB)
  139. #define LPO_CAL_ENABLE_MASK (scn->targetdef->d_LPO_CAL_ENABLE_MASK)
  140. #define CLOCK_GPIO_BT_CLK_OUT_EN_LSB \
  141. (scn->targetdef->d_CLOCK_GPIO_BT_CLK_OUT_EN_LSB)
  142. #define CLOCK_GPIO_BT_CLK_OUT_EN_MASK \
  143. (scn->targetdef->d_CLOCK_GPIO_BT_CLK_OUT_EN_MASK)
  144. #define ANALOG_INTF_BASE_ADDRESS (scn->targetdef->d_ANALOG_INTF_BASE_ADDRESS)
  145. #define WLAN_MAC_BASE_ADDRESS (scn->targetdef->d_WLAN_MAC_BASE_ADDRESS)
  146. #define FW_INDICATOR_ADDRESS (scn->targetdef->d_FW_INDICATOR_ADDRESS)
  147. #define DRAM_BASE_ADDRESS (scn->targetdef->d_DRAM_BASE_ADDRESS)
  148. #define SOC_CORE_BASE_ADDRESS (scn->targetdef->d_SOC_CORE_BASE_ADDRESS)
  149. #define CORE_CTRL_ADDRESS (scn->targetdef->d_CORE_CTRL_ADDRESS)
  150. #define CE_COUNT (scn->targetdef->d_CE_COUNT)
  151. #define PCIE_INTR_ENABLE_ADDRESS (scn->targetdef->d_PCIE_INTR_ENABLE_ADDRESS)
  152. #define PCIE_INTR_CLR_ADDRESS (scn->targetdef->d_PCIE_INTR_CLR_ADDRESS)
  153. #define PCIE_INTR_FIRMWARE_MASK (scn->targetdef->d_PCIE_INTR_FIRMWARE_MASK)
  154. #define PCIE_INTR_CE_MASK_ALL (scn->targetdef->d_PCIE_INTR_CE_MASK_ALL)
  155. #define CORE_CTRL_CPU_INTR_MASK (scn->targetdef->d_CORE_CTRL_CPU_INTR_MASK)
  156. #define PCIE_INTR_CAUSE_ADDRESS (scn->targetdef->d_PCIE_INTR_CAUSE_ADDRESS)
  157. #define SOC_RESET_CONTROL_ADDRESS (scn->targetdef->d_SOC_RESET_CONTROL_ADDRESS)
  158. #define HOST_GROUP0_MASK (PCIE_INTR_FIRMWARE_MASK | PCIE_INTR_CE_MASK_ALL | \
  159. A_SOC_CORE_PCIE_INTR_ENABLE_GRP0_Q6_MASK)
  160. #define SOC_RESET_CONTROL_CE_RST_MASK \
  161. (scn->targetdef->d_SOC_RESET_CONTROL_CE_RST_MASK)
  162. #define SOC_RESET_CONTROL_CPU_WARM_RST_MASK \
  163. (scn->targetdef->d_SOC_RESET_CONTROL_CPU_WARM_RST_MASK)
  164. #define CPU_INTR_ADDRESS (scn->targetdef->d_CPU_INTR_ADDRESS)
  165. #define SOC_LF_TIMER_CONTROL0_ADDRESS \
  166. (scn->targetdef->d_SOC_LF_TIMER_CONTROL0_ADDRESS)
  167. #define SOC_LF_TIMER_CONTROL0_ENABLE_MASK \
  168. (scn->targetdef->d_SOC_LF_TIMER_CONTROL0_ENABLE_MASK)
  169. #define SOC_LF_TIMER_STATUS0_ADDRESS \
  170. (scn->targetdef->d_SOC_LF_TIMER_STATUS0_ADDRESS)
  171. #define SOC_RESET_CONTROL_PCIE_RST_SHORT_OVRD_LSB \
  172. (scn->targetdef->d_SOC_RESET_CONTROL_PCIE_RST_SHORT_OVRD_LSB)
  173. #define SOC_RESET_CONTROL_PCIE_RST_SHORT_OVRD_MASK \
  174. (scn->targetdef->d_SOC_RESET_CONTROL_PCIE_RST_SHORT_OVRD_MASK)
  175. #define SOC_RESET_CONTROL_PCIE_RST_SHORT_OVRD_GET(x) \
  176. (((x) & SOC_RESET_CONTROL_PCIE_RST_SHORT_OVRD_MASK) >> \
  177. SOC_RESET_CONTROL_PCIE_RST_SHORT_OVRD_LSB)
  178. #define SOC_RESET_CONTROL_PCIE_RST_SHORT_OVRD_SET(x) \
  179. (((x) << SOC_RESET_CONTROL_PCIE_RST_SHORT_OVRD_LSB) & \
  180. SOC_RESET_CONTROL_PCIE_RST_SHORT_OVRD_MASK)
  181. /* hif_pci.c */
  182. #define CHIP_ID_ADDRESS (scn->targetdef->d_SOC_CHIP_ID_ADDRESS)
  183. #define SOC_CHIP_ID_REVISION_MASK (scn->targetdef->d_SOC_CHIP_ID_REVISION_MASK)
  184. #define SOC_CHIP_ID_REVISION_LSB (scn->targetdef->d_SOC_CHIP_ID_REVISION_LSB)
  185. #define SOC_CHIP_ID_VERSION_MASK (scn->targetdef->d_SOC_CHIP_ID_VERSION_MASK)
  186. #define SOC_CHIP_ID_VERSION_LSB (scn->targetdef->d_SOC_CHIP_ID_VERSION_LSB)
  187. #define CHIP_ID_REVISION_GET(x) \
  188. (((x) & SOC_CHIP_ID_REVISION_MASK) >> SOC_CHIP_ID_REVISION_LSB)
  189. #define CHIP_ID_VERSION_GET(x) \
  190. (((x) & SOC_CHIP_ID_VERSION_MASK) >> SOC_CHIP_ID_VERSION_LSB)
  191. /* hif_pci.c end */
  192. /* misc */
  193. #define SR_WR_INDEX_ADDRESS (scn->targetdef->d_SR_WR_INDEX_ADDRESS)
  194. #define DST_WATERMARK_ADDRESS (scn->targetdef->d_DST_WATERMARK_ADDRESS)
  195. #define SOC_POWER_REG_OFFSET (scn->targetdef->d_SOC_POWER_REG_OFFSET)
  196. /* end */
  197. #if !defined(CONFIG_WIN)
  198. /* htt_rx.c */
  199. #define RX_MSDU_END_4_FIRST_MSDU_MASK \
  200. (pdev->targetdef->d_RX_MSDU_END_4_FIRST_MSDU_MASK)
  201. #define RX_MSDU_END_4_FIRST_MSDU_LSB \
  202. (pdev->targetdef->d_RX_MSDU_END_4_FIRST_MSDU_LSB)
  203. #define RX_MPDU_START_0_RETRY_LSB \
  204. (pdev->targetdef->d_RX_MPDU_START_0_RETRY_LSB)
  205. #define RX_MPDU_START_0_RETRY_MASK \
  206. (pdev->targetdef->d_RX_MPDU_START_0_RETRY_MASK)
  207. #define RX_MPDU_START_0_SEQ_NUM_MASK \
  208. (pdev->targetdef->d_RX_MPDU_START_0_SEQ_NUM_MASK)
  209. #define RX_MPDU_START_0_SEQ_NUM_LSB \
  210. (pdev->targetdef->d_RX_MPDU_START_0_SEQ_NUM_LSB)
  211. #define RX_MPDU_START_2_PN_47_32_LSB \
  212. (pdev->targetdef->d_RX_MPDU_START_2_PN_47_32_LSB)
  213. #define RX_MPDU_START_2_PN_47_32_MASK \
  214. (pdev->targetdef->d_RX_MPDU_START_2_PN_47_32_MASK)
  215. #define RX_MPDU_START_2_TID_LSB \
  216. (pdev->targetdef->d_RX_MPDU_START_2_TID_LSB)
  217. #define RX_MPDU_START_2_TID_MASK \
  218. (pdev->targetdef->d_RX_MPDU_START_2_TID_MASK)
  219. #define RX_MSDU_END_1_KEY_ID_OCT_MASK \
  220. (pdev->targetdef->d_RX_MSDU_END_1_KEY_ID_OCT_MASK)
  221. #define RX_MSDU_END_1_KEY_ID_OCT_LSB \
  222. (pdev->targetdef->d_RX_MSDU_END_1_KEY_ID_OCT_LSB)
  223. #define RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK \
  224. (pdev->targetdef->d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK)
  225. #define RX_MSDU_END_1_EXT_WAPI_PN_63_48_LSB \
  226. (pdev->targetdef->d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_LSB)
  227. #define RX_MSDU_END_4_LAST_MSDU_MASK \
  228. (pdev->targetdef->d_RX_MSDU_END_4_LAST_MSDU_MASK)
  229. #define RX_MSDU_END_4_LAST_MSDU_LSB \
  230. (pdev->targetdef->d_RX_MSDU_END_4_LAST_MSDU_LSB)
  231. #define RX_ATTENTION_0_MCAST_BCAST_MASK \
  232. (pdev->targetdef->d_RX_ATTENTION_0_MCAST_BCAST_MASK)
  233. #define RX_ATTENTION_0_MCAST_BCAST_LSB \
  234. (pdev->targetdef->d_RX_ATTENTION_0_MCAST_BCAST_LSB)
  235. #define RX_ATTENTION_0_FRAGMENT_MASK \
  236. (pdev->targetdef->d_RX_ATTENTION_0_FRAGMENT_MASK)
  237. #define RX_ATTENTION_0_FRAGMENT_LSB \
  238. (pdev->targetdef->d_RX_ATTENTION_0_FRAGMENT_LSB)
  239. #define RX_ATTENTION_0_MPDU_LENGTH_ERR_MASK \
  240. (pdev->targetdef->d_RX_ATTENTION_0_MPDU_LENGTH_ERR_MASK)
  241. #define RX_FRAG_INFO_0_RING2_MORE_COUNT_MASK \
  242. (pdev->targetdef->d_RX_FRAG_INFO_0_RING2_MORE_COUNT_MASK)
  243. #define RX_FRAG_INFO_0_RING2_MORE_COUNT_LSB \
  244. (pdev->targetdef->d_RX_FRAG_INFO_0_RING2_MORE_COUNT_LSB)
  245. #define RX_MSDU_START_0_MSDU_LENGTH_MASK \
  246. (pdev->targetdef->d_RX_MSDU_START_0_MSDU_LENGTH_MASK)
  247. #define RX_MSDU_START_0_MSDU_LENGTH_LSB \
  248. (pdev->targetdef->d_RX_MSDU_START_0_MSDU_LENGTH_LSB)
  249. #define RX_MPDU_START_0_ENCRYPTED_MASK \
  250. (pdev->targetdef->d_RX_MPDU_START_0_ENCRYPTED_MASK)
  251. #define RX_MPDU_START_0_ENCRYPTED_LSB \
  252. (pdev->targetdef->d_RX_MPDU_START_0_ENCRYPTED_LSB)
  253. #define RX_ATTENTION_0_MORE_DATA_MASK \
  254. (pdev->targetdef->d_RX_ATTENTION_0_MORE_DATA_MASK)
  255. #define RX_ATTENTION_0_MSDU_DONE_MASK \
  256. (pdev->targetdef->d_RX_ATTENTION_0_MSDU_DONE_MASK)
  257. #define RX_ATTENTION_0_TCP_UDP_CHKSUM_FAIL_MASK \
  258. (pdev->targetdef->d_RX_ATTENTION_0_TCP_UDP_CHKSUM_FAIL_MASK)
  259. #if !defined(QCA6290_HEADERS_DEF) && !defined(QCA6390_HEADERS_DEF)
  260. #ifndef RX_MSDU_START_2_DECAP_FORMAT_OFFSET
  261. #define RX_MSDU_START_2_DECAP_FORMAT_OFFSET \
  262. (pdev->targetdef->d_RX_MSDU_START_2_DECAP_FORMAT_OFFSET)
  263. #endif
  264. #ifndef RX_MSDU_START_2_DECAP_FORMAT_LSB
  265. #define RX_MSDU_START_2_DECAP_FORMAT_LSB \
  266. (pdev->targetdef->d_RX_MSDU_START_2_DECAP_FORMAT_LSB)
  267. #endif
  268. #ifndef RX_MSDU_START_2_DECAP_FORMAT_MASK
  269. #define RX_MSDU_START_2_DECAP_FORMAT_MASK \
  270. (pdev->targetdef->d_RX_MSDU_START_2_DECAP_FORMAT_MASK)
  271. #endif
  272. #endif /*!QCA6290_HEADERS_DEF && !QCA6390_HEADERS_DEF */
  273. /* end */
  274. #endif
  275. /* copy_engine.c */
  276. /* end */
  277. /* PLL start */
  278. #define EFUSE_OFFSET (scn->targetdef->d_EFUSE_OFFSET)
  279. #define EFUSE_XTAL_SEL_MSB (scn->targetdef->d_EFUSE_XTAL_SEL_MSB)
  280. #define EFUSE_XTAL_SEL_LSB (scn->targetdef->d_EFUSE_XTAL_SEL_LSB)
  281. #define EFUSE_XTAL_SEL_MASK (scn->targetdef->d_EFUSE_XTAL_SEL_MASK)
  282. #define BB_PLL_CONFIG_OFFSET (scn->targetdef->d_BB_PLL_CONFIG_OFFSET)
  283. #define BB_PLL_CONFIG_OUTDIV_MSB (scn->targetdef->d_BB_PLL_CONFIG_OUTDIV_MSB)
  284. #define BB_PLL_CONFIG_OUTDIV_LSB (scn->targetdef->d_BB_PLL_CONFIG_OUTDIV_LSB)
  285. #define BB_PLL_CONFIG_OUTDIV_MASK (scn->targetdef->d_BB_PLL_CONFIG_OUTDIV_MASK)
  286. #define BB_PLL_CONFIG_FRAC_MSB (scn->targetdef->d_BB_PLL_CONFIG_FRAC_MSB)
  287. #define BB_PLL_CONFIG_FRAC_LSB (scn->targetdef->d_BB_PLL_CONFIG_FRAC_LSB)
  288. #define BB_PLL_CONFIG_FRAC_MASK (scn->targetdef->d_BB_PLL_CONFIG_FRAC_MASK)
  289. #define WLAN_PLL_SETTLE_TIME_MSB (scn->targetdef->d_WLAN_PLL_SETTLE_TIME_MSB)
  290. #define WLAN_PLL_SETTLE_TIME_LSB (scn->targetdef->d_WLAN_PLL_SETTLE_TIME_LSB)
  291. #define WLAN_PLL_SETTLE_TIME_MASK (scn->targetdef->d_WLAN_PLL_SETTLE_TIME_MASK)
  292. #define WLAN_PLL_SETTLE_OFFSET (scn->targetdef->d_WLAN_PLL_SETTLE_OFFSET)
  293. #define WLAN_PLL_SETTLE_SW_MASK (scn->targetdef->d_WLAN_PLL_SETTLE_SW_MASK)
  294. #define WLAN_PLL_SETTLE_RSTMASK (scn->targetdef->d_WLAN_PLL_SETTLE_RSTMASK)
  295. #define WLAN_PLL_SETTLE_RESET (scn->targetdef->d_WLAN_PLL_SETTLE_RESET)
  296. #define WLAN_PLL_CONTROL_NOPWD_MSB \
  297. (scn->targetdef->d_WLAN_PLL_CONTROL_NOPWD_MSB)
  298. #define WLAN_PLL_CONTROL_NOPWD_LSB \
  299. (scn->targetdef->d_WLAN_PLL_CONTROL_NOPWD_LSB)
  300. #define WLAN_PLL_CONTROL_NOPWD_MASK \
  301. (scn->targetdef->d_WLAN_PLL_CONTROL_NOPWD_MASK)
  302. #define WLAN_PLL_CONTROL_BYPASS_MSB \
  303. (scn->targetdef->d_WLAN_PLL_CONTROL_BYPASS_MSB)
  304. #define WLAN_PLL_CONTROL_BYPASS_LSB \
  305. (scn->targetdef->d_WLAN_PLL_CONTROL_BYPASS_LSB)
  306. #define WLAN_PLL_CONTROL_BYPASS_MASK \
  307. (scn->targetdef->d_WLAN_PLL_CONTROL_BYPASS_MASK)
  308. #define WLAN_PLL_CONTROL_BYPASS_RESET \
  309. (scn->targetdef->d_WLAN_PLL_CONTROL_BYPASS_RESET)
  310. #define WLAN_PLL_CONTROL_CLK_SEL_MSB \
  311. (scn->targetdef->d_WLAN_PLL_CONTROL_CLK_SEL_MSB)
  312. #define WLAN_PLL_CONTROL_CLK_SEL_LSB \
  313. (scn->targetdef->d_WLAN_PLL_CONTROL_CLK_SEL_LSB)
  314. #define WLAN_PLL_CONTROL_CLK_SEL_MASK \
  315. (scn->targetdef->d_WLAN_PLL_CONTROL_CLK_SEL_MASK)
  316. #define WLAN_PLL_CONTROL_CLK_SEL_RESET \
  317. (scn->targetdef->d_WLAN_PLL_CONTROL_CLK_SEL_RESET)
  318. #define WLAN_PLL_CONTROL_REFDIV_MSB \
  319. (scn->targetdef->d_WLAN_PLL_CONTROL_REFDIV_MSB)
  320. #define WLAN_PLL_CONTROL_REFDIV_LSB \
  321. (scn->targetdef->d_WLAN_PLL_CONTROL_REFDIV_LSB)
  322. #define WLAN_PLL_CONTROL_REFDIV_MASK \
  323. (scn->targetdef->d_WLAN_PLL_CONTROL_REFDIV_MASK)
  324. #define WLAN_PLL_CONTROL_REFDIV_RESET \
  325. (scn->targetdef->d_WLAN_PLL_CONTROL_REFDIV_RESET)
  326. #define WLAN_PLL_CONTROL_DIV_MSB (scn->targetdef->d_WLAN_PLL_CONTROL_DIV_MSB)
  327. #define WLAN_PLL_CONTROL_DIV_LSB (scn->targetdef->d_WLAN_PLL_CONTROL_DIV_LSB)
  328. #define WLAN_PLL_CONTROL_DIV_MASK (scn->targetdef->d_WLAN_PLL_CONTROL_DIV_MASK)
  329. #define WLAN_PLL_CONTROL_DIV_RESET \
  330. (scn->targetdef->d_WLAN_PLL_CONTROL_DIV_RESET)
  331. #define WLAN_PLL_CONTROL_OFFSET (scn->targetdef->d_WLAN_PLL_CONTROL_OFFSET)
  332. #define WLAN_PLL_CONTROL_SW_MASK (scn->targetdef->d_WLAN_PLL_CONTROL_SW_MASK)
  333. #define WLAN_PLL_CONTROL_RSTMASK (scn->targetdef->d_WLAN_PLL_CONTROL_RSTMASK)
  334. #define WLAN_PLL_CONTROL_RESET (scn->targetdef->d_WLAN_PLL_CONTROL_RESET)
  335. #define SOC_CORE_CLK_CTRL_OFFSET (scn->targetdef->d_SOC_CORE_CLK_CTRL_OFFSET)
  336. #define SOC_CORE_CLK_CTRL_DIV_MSB (scn->targetdef->d_SOC_CORE_CLK_CTRL_DIV_MSB)
  337. #define SOC_CORE_CLK_CTRL_DIV_LSB (scn->targetdef->d_SOC_CORE_CLK_CTRL_DIV_LSB)
  338. #define SOC_CORE_CLK_CTRL_DIV_MASK \
  339. (scn->targetdef->d_SOC_CORE_CLK_CTRL_DIV_MASK)
  340. #define RTC_SYNC_STATUS_PLL_CHANGING_MSB \
  341. (scn->targetdef->d_RTC_SYNC_STATUS_PLL_CHANGING_MSB)
  342. #define RTC_SYNC_STATUS_PLL_CHANGING_LSB \
  343. (scn->targetdef->d_RTC_SYNC_STATUS_PLL_CHANGING_LSB)
  344. #define RTC_SYNC_STATUS_PLL_CHANGING_MASK \
  345. (scn->targetdef->d_RTC_SYNC_STATUS_PLL_CHANGING_MASK)
  346. #define RTC_SYNC_STATUS_PLL_CHANGING_RESET \
  347. (scn->targetdef->d_RTC_SYNC_STATUS_PLL_CHANGING_RESET)
  348. #define RTC_SYNC_STATUS_OFFSET (scn->targetdef->d_RTC_SYNC_STATUS_OFFSET)
  349. #define SOC_CPU_CLOCK_OFFSET (scn->targetdef->d_SOC_CPU_CLOCK_OFFSET)
  350. #define SOC_CPU_CLOCK_STANDARD_MSB \
  351. (scn->targetdef->d_SOC_CPU_CLOCK_STANDARD_MSB)
  352. #define SOC_CPU_CLOCK_STANDARD_LSB \
  353. (scn->targetdef->d_SOC_CPU_CLOCK_STANDARD_LSB)
  354. #define SOC_CPU_CLOCK_STANDARD_MASK \
  355. (scn->targetdef->d_SOC_CPU_CLOCK_STANDARD_MASK)
  356. /* PLL end */
  357. #define FW_CPU_PLL_CONFIG \
  358. (scn->targetdef->d_FW_CPU_PLL_CONFIG)
  359. #define WIFICMN_PCIE_BAR_REG_ADDRESS \
  360. (sc->targetdef->d_WIFICMN_PCIE_BAR_REG_ADDRESS)
  361. /* htt tx */
  362. #define MSDU_LINK_EXT_3_TCP_OVER_IPV4_CHECKSUM_EN_MASK \
  363. (pdev->targetdef->d_MSDU_LINK_EXT_3_TCP_OVER_IPV4_CHECKSUM_EN_MASK)
  364. #define MSDU_LINK_EXT_3_TCP_OVER_IPV6_CHECKSUM_EN_MASK \
  365. (pdev->targetdef->d_MSDU_LINK_EXT_3_TCP_OVER_IPV6_CHECKSUM_EN_MASK)
  366. #define MSDU_LINK_EXT_3_UDP_OVER_IPV4_CHECKSUM_EN_MASK \
  367. (pdev->targetdef->d_MSDU_LINK_EXT_3_UDP_OVER_IPV4_CHECKSUM_EN_MASK)
  368. #define MSDU_LINK_EXT_3_UDP_OVER_IPV6_CHECKSUM_EN_MASK \
  369. (pdev->targetdef->d_MSDU_LINK_EXT_3_UDP_OVER_IPV6_CHECKSUM_EN_MASK)
  370. #define MSDU_LINK_EXT_3_TCP_OVER_IPV4_CHECKSUM_EN_LSB \
  371. (pdev->targetdef->d_MSDU_LINK_EXT_3_TCP_OVER_IPV4_CHECKSUM_EN_LSB)
  372. #define MSDU_LINK_EXT_3_TCP_OVER_IPV6_CHECKSUM_EN_LSB \
  373. (pdev->targetdef->d_MSDU_LINK_EXT_3_TCP_OVER_IPV6_CHECKSUM_EN_LSB)
  374. #define MSDU_LINK_EXT_3_UDP_OVER_IPV4_CHECKSUM_EN_LSB \
  375. (pdev->targetdef->d_MSDU_LINK_EXT_3_UDP_OVER_IPV4_CHECKSUM_EN_LSB)
  376. #define MSDU_LINK_EXT_3_UDP_OVER_IPV6_CHECKSUM_EN_LSB \
  377. (pdev->targetdef->d_MSDU_LINK_EXT_3_UDP_OVER_IPV6_CHECKSUM_EN_LSB)
  378. #define CE_CMD_ADDRESS \
  379. (scn->targetdef->d_CE_CMD_ADDRESS)
  380. #define CE_CMD_HALT_MASK \
  381. (scn->targetdef->d_CE_CMD_HALT_MASK)
  382. #define CE_CMD_HALT_STATUS_MASK \
  383. (scn->targetdef->d_CE_CMD_HALT_STATUS_MASK)
  384. #define CE_CMD_HALT_STATUS_LSB \
  385. (scn->targetdef->d_CE_CMD_HALT_STATUS_LSB)
  386. #define SI_CONFIG_ERR_INT_MASK \
  387. (scn->targetdef->d_SI_CONFIG_ERR_INT_MASK)
  388. #define SI_CONFIG_ERR_INT_LSB \
  389. (scn->targetdef->d_SI_CONFIG_ERR_INT_LSB)
  390. #define GPIO_ENABLE_W1TS_LOW_ADDRESS \
  391. (scn->targetdef->d_GPIO_ENABLE_W1TS_LOW_ADDRESS)
  392. #define GPIO_PIN0_CONFIG_LSB \
  393. (scn->targetdef->d_GPIO_PIN0_CONFIG_LSB)
  394. #define GPIO_PIN0_PAD_PULL_LSB \
  395. (scn->targetdef->d_GPIO_PIN0_PAD_PULL_LSB)
  396. #define GPIO_PIN0_PAD_PULL_MASK \
  397. (scn->targetdef->d_GPIO_PIN0_PAD_PULL_MASK)
  398. #define SOC_CHIP_ID_REVISION_MSB \
  399. (scn->targetdef->d_SOC_CHIP_ID_REVISION_MSB)
  400. #define FW_AXI_MSI_ADDR \
  401. (scn->targetdef->d_FW_AXI_MSI_ADDR)
  402. #define FW_AXI_MSI_DATA \
  403. (scn->targetdef->d_FW_AXI_MSI_DATA)
  404. #define WLAN_SUBSYSTEM_CORE_ID_ADDRESS \
  405. (scn->targetdef->d_WLAN_SUBSYSTEM_CORE_ID_ADDRESS)
  406. #define FPGA_VERSION_ADDRESS \
  407. (scn->targetdef->d_FPGA_VERSION_ADDRESS)
  408. /* SET macros */
  409. #define WLAN_SYSTEM_SLEEP_DISABLE_SET(x) \
  410. (((x) << WLAN_SYSTEM_SLEEP_DISABLE_LSB) & \
  411. WLAN_SYSTEM_SLEEP_DISABLE_MASK)
  412. #define SI_CONFIG_BIDIR_OD_DATA_SET(x) \
  413. (((x) << SI_CONFIG_BIDIR_OD_DATA_LSB) & SI_CONFIG_BIDIR_OD_DATA_MASK)
  414. #define SI_CONFIG_I2C_SET(x) (((x) << SI_CONFIG_I2C_LSB) & SI_CONFIG_I2C_MASK)
  415. #define SI_CONFIG_POS_SAMPLE_SET(x) \
  416. (((x) << SI_CONFIG_POS_SAMPLE_LSB) & SI_CONFIG_POS_SAMPLE_MASK)
  417. #define SI_CONFIG_INACTIVE_CLK_SET(x) \
  418. (((x) << SI_CONFIG_INACTIVE_CLK_LSB) & SI_CONFIG_INACTIVE_CLK_MASK)
  419. #define SI_CONFIG_INACTIVE_DATA_SET(x) \
  420. (((x) << SI_CONFIG_INACTIVE_DATA_LSB) & SI_CONFIG_INACTIVE_DATA_MASK)
  421. #define SI_CONFIG_DIVIDER_SET(x) \
  422. (((x) << SI_CONFIG_DIVIDER_LSB) & SI_CONFIG_DIVIDER_MASK)
  423. #define SI_CS_START_SET(x) (((x) << SI_CS_START_LSB) & SI_CS_START_MASK)
  424. #define SI_CS_RX_CNT_SET(x) (((x) << SI_CS_RX_CNT_LSB) & SI_CS_RX_CNT_MASK)
  425. #define SI_CS_TX_CNT_SET(x) (((x) << SI_CS_TX_CNT_LSB) & SI_CS_TX_CNT_MASK)
  426. #define LPO_CAL_ENABLE_SET(x) \
  427. (((x) << LPO_CAL_ENABLE_LSB) & LPO_CAL_ENABLE_MASK)
  428. #define CPU_CLOCK_STANDARD_SET(x) \
  429. (((x) << CPU_CLOCK_STANDARD_LSB) & CPU_CLOCK_STANDARD_MASK)
  430. #define CLOCK_GPIO_BT_CLK_OUT_EN_SET(x) \
  431. (((x) << CLOCK_GPIO_BT_CLK_OUT_EN_LSB) & CLOCK_GPIO_BT_CLK_OUT_EN_MASK)
  432. /* copy_engine.c */
  433. /* end */
  434. /* PLL start */
  435. #define EFUSE_XTAL_SEL_GET(x) \
  436. (((x) & EFUSE_XTAL_SEL_MASK) >> EFUSE_XTAL_SEL_LSB)
  437. #define EFUSE_XTAL_SEL_SET(x) \
  438. (((x) << EFUSE_XTAL_SEL_LSB) & EFUSE_XTAL_SEL_MASK)
  439. #define BB_PLL_CONFIG_OUTDIV_GET(x) \
  440. (((x) & BB_PLL_CONFIG_OUTDIV_MASK) >> BB_PLL_CONFIG_OUTDIV_LSB)
  441. #define BB_PLL_CONFIG_OUTDIV_SET(x) \
  442. (((x) << BB_PLL_CONFIG_OUTDIV_LSB) & BB_PLL_CONFIG_OUTDIV_MASK)
  443. #define BB_PLL_CONFIG_FRAC_GET(x) \
  444. (((x) & BB_PLL_CONFIG_FRAC_MASK) >> BB_PLL_CONFIG_FRAC_LSB)
  445. #define BB_PLL_CONFIG_FRAC_SET(x) \
  446. (((x) << BB_PLL_CONFIG_FRAC_LSB) & BB_PLL_CONFIG_FRAC_MASK)
  447. #define WLAN_PLL_SETTLE_TIME_GET(x) \
  448. (((x) & WLAN_PLL_SETTLE_TIME_MASK) >> WLAN_PLL_SETTLE_TIME_LSB)
  449. #define WLAN_PLL_SETTLE_TIME_SET(x) \
  450. (((x) << WLAN_PLL_SETTLE_TIME_LSB) & WLAN_PLL_SETTLE_TIME_MASK)
  451. #define WLAN_PLL_CONTROL_NOPWD_GET(x) \
  452. (((x) & WLAN_PLL_CONTROL_NOPWD_MASK) >> WLAN_PLL_CONTROL_NOPWD_LSB)
  453. #define WLAN_PLL_CONTROL_NOPWD_SET(x) \
  454. (((x) << WLAN_PLL_CONTROL_NOPWD_LSB) & WLAN_PLL_CONTROL_NOPWD_MASK)
  455. #define WLAN_PLL_CONTROL_BYPASS_GET(x) \
  456. (((x) & WLAN_PLL_CONTROL_BYPASS_MASK) >> WLAN_PLL_CONTROL_BYPASS_LSB)
  457. #define WLAN_PLL_CONTROL_BYPASS_SET(x) \
  458. (((x) << WLAN_PLL_CONTROL_BYPASS_LSB) & WLAN_PLL_CONTROL_BYPASS_MASK)
  459. #define WLAN_PLL_CONTROL_CLK_SEL_GET(x) \
  460. (((x) & WLAN_PLL_CONTROL_CLK_SEL_MASK) >> WLAN_PLL_CONTROL_CLK_SEL_LSB)
  461. #define WLAN_PLL_CONTROL_CLK_SEL_SET(x) \
  462. (((x) << WLAN_PLL_CONTROL_CLK_SEL_LSB) & WLAN_PLL_CONTROL_CLK_SEL_MASK)
  463. #define WLAN_PLL_CONTROL_REFDIV_GET(x) \
  464. (((x) & WLAN_PLL_CONTROL_REFDIV_MASK) >> WLAN_PLL_CONTROL_REFDIV_LSB)
  465. #define WLAN_PLL_CONTROL_REFDIV_SET(x) \
  466. (((x) << WLAN_PLL_CONTROL_REFDIV_LSB) & WLAN_PLL_CONTROL_REFDIV_MASK)
  467. #define WLAN_PLL_CONTROL_DIV_GET(x) \
  468. (((x) & WLAN_PLL_CONTROL_DIV_MASK) >> WLAN_PLL_CONTROL_DIV_LSB)
  469. #define WLAN_PLL_CONTROL_DIV_SET(x) \
  470. (((x) << WLAN_PLL_CONTROL_DIV_LSB) & WLAN_PLL_CONTROL_DIV_MASK)
  471. #define SOC_CORE_CLK_CTRL_DIV_GET(x) \
  472. (((x) & SOC_CORE_CLK_CTRL_DIV_MASK) >> SOC_CORE_CLK_CTRL_DIV_LSB)
  473. #define SOC_CORE_CLK_CTRL_DIV_SET(x) \
  474. (((x) << SOC_CORE_CLK_CTRL_DIV_LSB) & SOC_CORE_CLK_CTRL_DIV_MASK)
  475. #define RTC_SYNC_STATUS_PLL_CHANGING_GET(x) \
  476. (((x) & RTC_SYNC_STATUS_PLL_CHANGING_MASK) >> \
  477. RTC_SYNC_STATUS_PLL_CHANGING_LSB)
  478. #define RTC_SYNC_STATUS_PLL_CHANGING_SET(x) \
  479. (((x) << RTC_SYNC_STATUS_PLL_CHANGING_LSB) & \
  480. RTC_SYNC_STATUS_PLL_CHANGING_MASK)
  481. #define SOC_CPU_CLOCK_STANDARD_GET(x) \
  482. (((x) & SOC_CPU_CLOCK_STANDARD_MASK) >> SOC_CPU_CLOCK_STANDARD_LSB)
  483. #define SOC_CPU_CLOCK_STANDARD_SET(x) \
  484. (((x) << SOC_CPU_CLOCK_STANDARD_LSB) & SOC_CPU_CLOCK_STANDARD_MASK)
  485. /* PLL end */
  486. #define WLAN_GPIO_PIN0_CONFIG_SET(x) \
  487. (((x) << GPIO_PIN0_CONFIG_LSB) & GPIO_PIN0_CONFIG_MASK)
  488. #define WLAN_GPIO_PIN0_PAD_PULL_SET(x) \
  489. (((x) << GPIO_PIN0_PAD_PULL_LSB) & GPIO_PIN0_PAD_PULL_MASK)
  490. #define SI_CONFIG_ERR_INT_SET(x) \
  491. (((x) << SI_CONFIG_ERR_INT_LSB) & SI_CONFIG_ERR_INT_MASK)
  492. #ifdef QCA_WIFI_3_0_ADRASTEA
  493. #define Q6_ENABLE_REGISTER_0 \
  494. (scn->targetdef->d_Q6_ENABLE_REGISTER_0)
  495. #define Q6_ENABLE_REGISTER_1 \
  496. (scn->targetdef->d_Q6_ENABLE_REGISTER_1)
  497. #define Q6_CAUSE_REGISTER_0 \
  498. (scn->targetdef->d_Q6_CAUSE_REGISTER_0)
  499. #define Q6_CAUSE_REGISTER_1 \
  500. (scn->targetdef->d_Q6_CAUSE_REGISTER_1)
  501. #define Q6_CLEAR_REGISTER_0 \
  502. (scn->targetdef->d_Q6_CLEAR_REGISTER_0)
  503. #define Q6_CLEAR_REGISTER_1 \
  504. (scn->targetdef->d_Q6_CLEAR_REGISTER_1)
  505. #endif
  506. #ifdef CONFIG_BYPASS_QMI
  507. #define BYPASS_QMI_TEMP_REGISTER \
  508. (scn->targetdef->d_BYPASS_QMI_TEMP_REGISTER)
  509. #endif
  510. #define A_SOC_PCIE_PCIE_BAR0_START (scn->hostdef->d_A_SOC_PCIE_PCIE_BAR0_START)
  511. #define DESC_DATA_FLAG_MASK (scn->hostdef->d_DESC_DATA_FLAG_MASK)
  512. #define MUX_ID_MASK (scn->hostdef->d_MUX_ID_MASK)
  513. #define TRANSACTION_ID_MASK (scn->hostdef->d_TRANSACTION_ID_MASK)
  514. #define HOST_CE_COUNT (scn->hostdef->d_HOST_CE_COUNT)
  515. #define ENABLE_MSI (scn->hostdef->d_ENABLE_MSI)
  516. #define INT_STATUS_ENABLE_ERROR_LSB \
  517. (scn->hostdef->d_INT_STATUS_ENABLE_ERROR_LSB)
  518. #define INT_STATUS_ENABLE_ERROR_MASK \
  519. (scn->hostdef->d_INT_STATUS_ENABLE_ERROR_MASK)
  520. #define INT_STATUS_ENABLE_CPU_LSB (scn->hostdef->d_INT_STATUS_ENABLE_CPU_LSB)
  521. #define INT_STATUS_ENABLE_CPU_MASK (scn->hostdef->d_INT_STATUS_ENABLE_CPU_MASK)
  522. #define INT_STATUS_ENABLE_COUNTER_LSB \
  523. (scn->hostdef->d_INT_STATUS_ENABLE_COUNTER_LSB)
  524. #define INT_STATUS_ENABLE_COUNTER_MASK \
  525. (scn->hostdef->d_INT_STATUS_ENABLE_COUNTER_MASK)
  526. #define INT_STATUS_ENABLE_MBOX_DATA_LSB \
  527. (scn->hostdef->d_INT_STATUS_ENABLE_MBOX_DATA_LSB)
  528. #define INT_STATUS_ENABLE_MBOX_DATA_MASK \
  529. (scn->hostdef->d_INT_STATUS_ENABLE_MBOX_DATA_MASK)
  530. #define ERROR_STATUS_ENABLE_RX_UNDERFLOW_LSB \
  531. (scn->hostdef->d_ERROR_STATUS_ENABLE_RX_UNDERFLOW_LSB)
  532. #define ERROR_STATUS_ENABLE_RX_UNDERFLOW_MASK \
  533. (scn->hostdef->d_ERROR_STATUS_ENABLE_RX_UNDERFLOW_MASK)
  534. #define ERROR_STATUS_ENABLE_TX_OVERFLOW_LSB \
  535. (scn->hostdef->d_ERROR_STATUS_ENABLE_TX_OVERFLOW_LSB)
  536. #define ERROR_STATUS_ENABLE_TX_OVERFLOW_MASK \
  537. (scn->hostdef->d_ERROR_STATUS_ENABLE_TX_OVERFLOW_MASK)
  538. #define COUNTER_INT_STATUS_ENABLE_BIT_LSB \
  539. (scn->hostdef->d_COUNTER_INT_STATUS_ENABLE_BIT_LSB)
  540. #define COUNTER_INT_STATUS_ENABLE_BIT_MASK \
  541. (scn->hostdef->d_COUNTER_INT_STATUS_ENABLE_BIT_MASK)
  542. #define INT_STATUS_ENABLE_ADDRESS \
  543. (scn->hostdef->d_INT_STATUS_ENABLE_ADDRESS)
  544. #define CPU_INT_STATUS_ENABLE_BIT_LSB \
  545. (scn->hostdef->d_CPU_INT_STATUS_ENABLE_BIT_LSB)
  546. #define CPU_INT_STATUS_ENABLE_BIT_MASK \
  547. (scn->hostdef->d_CPU_INT_STATUS_ENABLE_BIT_MASK)
  548. #define HOST_INT_STATUS_ADDRESS (scn->hostdef->d_HOST_INT_STATUS_ADDRESS)
  549. #define CPU_INT_STATUS_ADDRESS (scn->hostdef->d_CPU_INT_STATUS_ADDRESS)
  550. #define ERROR_INT_STATUS_ADDRESS (scn->hostdef->d_ERROR_INT_STATUS_ADDRESS)
  551. #define ERROR_INT_STATUS_WAKEUP_MASK \
  552. (scn->hostdef->d_ERROR_INT_STATUS_WAKEUP_MASK)
  553. #define ERROR_INT_STATUS_WAKEUP_LSB \
  554. (scn->hostdef->d_ERROR_INT_STATUS_WAKEUP_LSB)
  555. #define ERROR_INT_STATUS_RX_UNDERFLOW_MASK \
  556. (scn->hostdef->d_ERROR_INT_STATUS_RX_UNDERFLOW_MASK)
  557. #define ERROR_INT_STATUS_RX_UNDERFLOW_LSB \
  558. (scn->hostdef->d_ERROR_INT_STATUS_RX_UNDERFLOW_LSB)
  559. #define ERROR_INT_STATUS_TX_OVERFLOW_MASK \
  560. (scn->hostdef->d_ERROR_INT_STATUS_TX_OVERFLOW_MASK)
  561. #define ERROR_INT_STATUS_TX_OVERFLOW_LSB \
  562. (scn->hostdef->d_ERROR_INT_STATUS_TX_OVERFLOW_LSB)
  563. #define COUNT_DEC_ADDRESS (scn->hostdef->d_COUNT_DEC_ADDRESS)
  564. #define HOST_INT_STATUS_CPU_MASK (scn->hostdef->d_HOST_INT_STATUS_CPU_MASK)
  565. #define HOST_INT_STATUS_CPU_LSB (scn->hostdef->d_HOST_INT_STATUS_CPU_LSB)
  566. #define HOST_INT_STATUS_ERROR_MASK (scn->hostdef->d_HOST_INT_STATUS_ERROR_MASK)
  567. #define HOST_INT_STATUS_ERROR_LSB (scn->hostdef->d_HOST_INT_STATUS_ERROR_LSB)
  568. #define HOST_INT_STATUS_COUNTER_MASK \
  569. (scn->hostdef->d_HOST_INT_STATUS_COUNTER_MASK)
  570. #define HOST_INT_STATUS_COUNTER_LSB \
  571. (scn->hostdef->d_HOST_INT_STATUS_COUNTER_LSB)
  572. #define RX_LOOKAHEAD_VALID_ADDRESS (scn->hostdef->d_RX_LOOKAHEAD_VALID_ADDRESS)
  573. #define WINDOW_DATA_ADDRESS (scn->hostdef->d_WINDOW_DATA_ADDRESS)
  574. #define WINDOW_READ_ADDR_ADDRESS (scn->hostdef->d_WINDOW_READ_ADDR_ADDRESS)
  575. #define WINDOW_WRITE_ADDR_ADDRESS (scn->hostdef->d_WINDOW_WRITE_ADDR_ADDRESS)
  576. #define SOC_GLOBAL_RESET_ADDRESS (scn->hostdef->d_SOC_GLOBAL_RESET_ADDRESS)
  577. #define RTC_STATE_ADDRESS (scn->hostdef->d_RTC_STATE_ADDRESS)
  578. #define RTC_STATE_COLD_RESET_MASK (scn->hostdef->d_RTC_STATE_COLD_RESET_MASK)
  579. #define PCIE_LOCAL_BASE_ADDRESS (scn->hostdef->d_PCIE_LOCAL_BASE_ADDRESS)
  580. #define PCIE_SOC_WAKE_RESET (scn->hostdef->d_PCIE_SOC_WAKE_RESET)
  581. #define PCIE_SOC_WAKE_ADDRESS (scn->hostdef->d_PCIE_SOC_WAKE_ADDRESS)
  582. #define PCIE_SOC_WAKE_V_MASK (scn->hostdef->d_PCIE_SOC_WAKE_V_MASK)
  583. #define RTC_STATE_V_MASK (scn->hostdef->d_RTC_STATE_V_MASK)
  584. #define RTC_STATE_V_LSB (scn->hostdef->d_RTC_STATE_V_LSB)
  585. #define FW_IND_EVENT_PENDING (scn->hostdef->d_FW_IND_EVENT_PENDING)
  586. #define FW_IND_INITIALIZED (scn->hostdef->d_FW_IND_INITIALIZED)
  587. #define FW_IND_HELPER (scn->hostdef->d_FW_IND_HELPER)
  588. #define RTC_STATE_V_ON (scn->hostdef->d_RTC_STATE_V_ON)
  589. #define FW_IND_HOST_READY (scn->hostdef->d_FW_IND_HOST_READY)
  590. #if defined(SDIO_3_0)
  591. #define HOST_INT_STATUS_MBOX_DATA_MASK \
  592. (scn->hostdef->d_HOST_INT_STATUS_MBOX_DATA_MASK)
  593. #define HOST_INT_STATUS_MBOX_DATA_LSB \
  594. (scn->hostdef->d_HOST_INT_STATUS_MBOX_DATA_LSB)
  595. #endif
  596. #if !defined(SOC_PCIE_BASE_ADDRESS)
  597. #define SOC_PCIE_BASE_ADDRESS 0
  598. #endif
  599. #if !defined(PCIE_SOC_RDY_STATUS_ADDRESS)
  600. #define PCIE_SOC_RDY_STATUS_ADDRESS 0
  601. #define PCIE_SOC_RDY_STATUS_BAR_MASK 0
  602. #endif
  603. #if !defined(MSI_MAGIC_ADR_ADDRESS)
  604. #define MSI_MAGIC_ADR_ADDRESS 0
  605. #define MSI_MAGIC_ADDRESS 0
  606. #endif
  607. /* SET/GET macros */
  608. #define INT_STATUS_ENABLE_ERROR_SET(x) \
  609. (((x) << INT_STATUS_ENABLE_ERROR_LSB) & INT_STATUS_ENABLE_ERROR_MASK)
  610. #define INT_STATUS_ENABLE_CPU_SET(x) \
  611. (((x) << INT_STATUS_ENABLE_CPU_LSB) & INT_STATUS_ENABLE_CPU_MASK)
  612. #define INT_STATUS_ENABLE_COUNTER_SET(x) \
  613. (((x) << INT_STATUS_ENABLE_COUNTER_LSB) & \
  614. INT_STATUS_ENABLE_COUNTER_MASK)
  615. #define INT_STATUS_ENABLE_MBOX_DATA_SET(x) \
  616. (((x) << INT_STATUS_ENABLE_MBOX_DATA_LSB) & \
  617. INT_STATUS_ENABLE_MBOX_DATA_MASK)
  618. #define CPU_INT_STATUS_ENABLE_BIT_SET(x) \
  619. (((x) << CPU_INT_STATUS_ENABLE_BIT_LSB) & \
  620. CPU_INT_STATUS_ENABLE_BIT_MASK)
  621. #define ERROR_STATUS_ENABLE_RX_UNDERFLOW_SET(x) \
  622. (((x) << ERROR_STATUS_ENABLE_RX_UNDERFLOW_LSB) & \
  623. ERROR_STATUS_ENABLE_RX_UNDERFLOW_MASK)
  624. #define ERROR_STATUS_ENABLE_TX_OVERFLOW_SET(x) \
  625. (((x) << ERROR_STATUS_ENABLE_TX_OVERFLOW_LSB) & \
  626. ERROR_STATUS_ENABLE_TX_OVERFLOW_MASK)
  627. #define COUNTER_INT_STATUS_ENABLE_BIT_SET(x) \
  628. (((x) << COUNTER_INT_STATUS_ENABLE_BIT_LSB) & \
  629. COUNTER_INT_STATUS_ENABLE_BIT_MASK)
  630. #define ERROR_INT_STATUS_WAKEUP_GET(x) \
  631. (((x) & ERROR_INT_STATUS_WAKEUP_MASK) >> \
  632. ERROR_INT_STATUS_WAKEUP_LSB)
  633. #define ERROR_INT_STATUS_RX_UNDERFLOW_GET(x) \
  634. (((x) & ERROR_INT_STATUS_RX_UNDERFLOW_MASK) >> \
  635. ERROR_INT_STATUS_RX_UNDERFLOW_LSB)
  636. #define ERROR_INT_STATUS_TX_OVERFLOW_GET(x) \
  637. (((x) & ERROR_INT_STATUS_TX_OVERFLOW_MASK) >> \
  638. ERROR_INT_STATUS_TX_OVERFLOW_LSB)
  639. #define HOST_INT_STATUS_CPU_GET(x) \
  640. (((x) & HOST_INT_STATUS_CPU_MASK) >> HOST_INT_STATUS_CPU_LSB)
  641. #define HOST_INT_STATUS_ERROR_GET(x) \
  642. (((x) & HOST_INT_STATUS_ERROR_MASK) >> HOST_INT_STATUS_ERROR_LSB)
  643. #define HOST_INT_STATUS_COUNTER_GET(x) \
  644. (((x) & HOST_INT_STATUS_COUNTER_MASK) >> HOST_INT_STATUS_COUNTER_LSB)
  645. #define RTC_STATE_V_GET(x) \
  646. (((x) & RTC_STATE_V_MASK) >> RTC_STATE_V_LSB)
  647. #if defined(SDIO_3_0)
  648. #define HOST_INT_STATUS_MBOX_DATA_GET(x) \
  649. (((x) & HOST_INT_STATUS_MBOX_DATA_MASK) >> \
  650. HOST_INT_STATUS_MBOX_DATA_LSB)
  651. #endif
  652. #define INVALID_REG_LOC_DUMMY_DATA 0xAA
  653. #define AR6320_CORE_CLK_DIV_ADDR 0x403fa8
  654. #define AR6320_CPU_PLL_INIT_DONE_ADDR 0x403fd0
  655. #define AR6320_CPU_SPEED_ADDR 0x403fa4
  656. #define AR6320V2_CORE_CLK_DIV_ADDR 0x403fd8
  657. #define AR6320V2_CPU_PLL_INIT_DONE_ADDR 0x403fd0
  658. #define AR6320V2_CPU_SPEED_ADDR 0x403fd4
  659. #define AR6320V3_CORE_CLK_DIV_ADDR 0x404028
  660. #define AR6320V3_CPU_PLL_INIT_DONE_ADDR 0x404020
  661. #define AR6320V3_CPU_SPEED_ADDR 0x404024
  662. enum a_refclk_speed_t {
  663. SOC_REFCLK_UNKNOWN = -1, /* Unsupported ref clock -- use PLL Bypass */
  664. SOC_REFCLK_48_MHZ = 0,
  665. SOC_REFCLK_19_2_MHZ = 1,
  666. SOC_REFCLK_24_MHZ = 2,
  667. SOC_REFCLK_26_MHZ = 3,
  668. SOC_REFCLK_37_4_MHZ = 4,
  669. SOC_REFCLK_38_4_MHZ = 5,
  670. SOC_REFCLK_40_MHZ = 6,
  671. SOC_REFCLK_52_MHZ = 7,
  672. };
  673. #define A_REFCLK_UNKNOWN SOC_REFCLK_UNKNOWN
  674. #define A_REFCLK_48_MHZ SOC_REFCLK_48_MHZ
  675. #define A_REFCLK_19_2_MHZ SOC_REFCLK_19_2_MHZ
  676. #define A_REFCLK_24_MHZ SOC_REFCLK_24_MHZ
  677. #define A_REFCLK_26_MHZ SOC_REFCLK_26_MHZ
  678. #define A_REFCLK_37_4_MHZ SOC_REFCLK_37_4_MHZ
  679. #define A_REFCLK_38_4_MHZ SOC_REFCLK_38_4_MHZ
  680. #define A_REFCLK_40_MHZ SOC_REFCLK_40_MHZ
  681. #define A_REFCLK_52_MHZ SOC_REFCLK_52_MHZ
  682. #define TARGET_CPU_FREQ 176000000
  683. struct wlan_pll_s {
  684. uint32_t refdiv;
  685. uint32_t div;
  686. uint32_t rnfrac;
  687. uint32_t outdiv;
  688. };
  689. struct cmnos_clock_s {
  690. enum a_refclk_speed_t refclk_speed;
  691. uint32_t refclk_hz;
  692. uint32_t pll_settling_time; /* 50us */
  693. struct wlan_pll_s wlan_pll;
  694. };
  695. struct tgt_reg_section {
  696. uint32_t start_addr;
  697. uint32_t end_addr;
  698. };
  699. struct tgt_reg_table {
  700. const struct tgt_reg_section *section;
  701. uint32_t section_size;
  702. };
  703. struct hif_softc;
  704. void hif_target_register_tbl_attach(struct hif_softc *scn, u32 target_type);
  705. void hif_register_tbl_attach(struct hif_softc *scn, u32 hif_type);
  706. #endif /* _REGTABLE_PCIE_H_ */