phydm_pre_define.h 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682
  1. /******************************************************************************
  2. *
  3. * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
  4. *
  5. * This program is free software; you can redistribute it and/or modify it
  6. * under the terms of version 2 of the GNU General Public License as
  7. * published by the Free Software Foundation.
  8. *
  9. * This program is distributed in the hope that it will be useful, but WITHOUT
  10. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11. * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  12. * more details.
  13. *
  14. * You should have received a copy of the GNU General Public License along with
  15. * this program; if not, write to the Free Software Foundation, Inc.,
  16. * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
  17. *
  18. *
  19. ******************************************************************************/
  20. #ifndef __PHYDMPREDEFINE_H__
  21. #define __PHYDMPREDEFINE_H__
  22. /* 1 ============================================================
  23. * 1 Definition
  24. * 1 ============================================================ */
  25. #define PHYDM_CODE_BASE "PHYDM_V014"
  26. #define PHYDM_RELEASE_DATE "00000000"
  27. /* Max path of IC */
  28. #define MAX_PATH_NUM_8188E 1
  29. #define MAX_PATH_NUM_8192E 2
  30. #define MAX_PATH_NUM_8723B 1
  31. #define MAX_PATH_NUM_8812A 2
  32. #define MAX_PATH_NUM_8821A 1
  33. #define MAX_PATH_NUM_8814A 4
  34. #define MAX_PATH_NUM_8822B 2
  35. #define MAX_PATH_NUM_8821B 2
  36. #define MAX_PATH_NUM_8703B 1
  37. #define MAX_PATH_NUM_8188F 1
  38. #define MAX_PATH_NUM_8723D 1
  39. #define MAX_PATH_NUM_8197F 2
  40. #define MAX_PATH_NUM_8821C 1
  41. /* JJ ADD 20161014 */
  42. #define MAX_PATH_NUM_8710B 1
  43. /* Max RF path */
  44. #define ODM_RF_PATH_MAX 2
  45. #define ODM_RF_PATH_MAX_JAGUAR 4
  46. /*Bit define path*/
  47. #define PHYDM_A BIT(0)
  48. #define PHYDM_B BIT(1)
  49. #define PHYDM_C BIT(2)
  50. #define PHYDM_D BIT(3)
  51. #define PHYDM_AB (BIT(0) | BIT(1))
  52. #define PHYDM_AC (BIT(0) | BIT(2))
  53. #define PHYDM_AD (BIT(0) | BIT(3))
  54. #define PHYDM_BC (BIT(1) | BIT(2))
  55. #define PHYDM_BD (BIT(1) | BIT(3))
  56. #define PHYDM_CD (BIT(2) | BIT(3))
  57. #define PHYDM_ABC (BIT(0) | BIT(1) | BIT(2))
  58. #define PHYDM_ABD (BIT(0) | BIT(1) | BIT(3))
  59. #define PHYDM_ACD (BIT(0) | BIT(2) | BIT(3))
  60. #define PHYDM_BCD (BIT(1) | BIT(2) | BIT(3))
  61. #define PHYDM_ABCD (BIT(0) | BIT(1) | BIT(2) | BIT(3))
  62. /* number of entry */
  63. #if (DM_ODM_SUPPORT_TYPE & (ODM_CE))
  64. #define ASSOCIATE_ENTRY_NUM MACID_NUM_SW_LIMIT /* Max size of asoc_entry[].*/
  65. #define ODM_ASSOCIATE_ENTRY_NUM ASSOCIATE_ENTRY_NUM
  66. #elif(DM_ODM_SUPPORT_TYPE & (ODM_AP))
  67. #define ASSOCIATE_ENTRY_NUM NUM_STAT
  68. #define ODM_ASSOCIATE_ENTRY_NUM (ASSOCIATE_ENTRY_NUM+1)
  69. #else
  70. #define ODM_ASSOCIATE_ENTRY_NUM ((ASSOCIATE_ENTRY_NUM*3)+1)
  71. #endif
  72. /* -----MGN rate--------------------------------- */
  73. enum ODM_MGN_RATE {
  74. ODM_MGN_1M = 0x02,
  75. ODM_MGN_2M = 0x04,
  76. ODM_MGN_5_5M = 0x0B,
  77. ODM_MGN_6M = 0x0C,
  78. ODM_MGN_9M = 0x12,
  79. ODM_MGN_11M = 0x16,
  80. ODM_MGN_12M = 0x18,
  81. ODM_MGN_18M = 0x24,
  82. ODM_MGN_24M = 0x30,
  83. ODM_MGN_36M = 0x48,
  84. ODM_MGN_48M = 0x60,
  85. ODM_MGN_54M = 0x6C,
  86. ODM_MGN_MCS32 = 0x7F,
  87. ODM_MGN_MCS0,
  88. ODM_MGN_MCS1,
  89. ODM_MGN_MCS2,
  90. ODM_MGN_MCS3,
  91. ODM_MGN_MCS4,
  92. ODM_MGN_MCS5,
  93. ODM_MGN_MCS6,
  94. ODM_MGN_MCS7,
  95. ODM_MGN_MCS8,
  96. ODM_MGN_MCS9,
  97. ODM_MGN_MCS10,
  98. ODM_MGN_MCS11,
  99. ODM_MGN_MCS12,
  100. ODM_MGN_MCS13,
  101. ODM_MGN_MCS14,
  102. ODM_MGN_MCS15,
  103. ODM_MGN_MCS16,
  104. ODM_MGN_MCS17,
  105. ODM_MGN_MCS18,
  106. ODM_MGN_MCS19,
  107. ODM_MGN_MCS20,
  108. ODM_MGN_MCS21,
  109. ODM_MGN_MCS22,
  110. ODM_MGN_MCS23,
  111. ODM_MGN_MCS24,
  112. ODM_MGN_MCS25,
  113. ODM_MGN_MCS26,
  114. ODM_MGN_MCS27,
  115. ODM_MGN_MCS28,
  116. ODM_MGN_MCS29,
  117. ODM_MGN_MCS30,
  118. ODM_MGN_MCS31,
  119. ODM_MGN_VHT1SS_MCS0,
  120. ODM_MGN_VHT1SS_MCS1,
  121. ODM_MGN_VHT1SS_MCS2,
  122. ODM_MGN_VHT1SS_MCS3,
  123. ODM_MGN_VHT1SS_MCS4,
  124. ODM_MGN_VHT1SS_MCS5,
  125. ODM_MGN_VHT1SS_MCS6,
  126. ODM_MGN_VHT1SS_MCS7,
  127. ODM_MGN_VHT1SS_MCS8,
  128. ODM_MGN_VHT1SS_MCS9,
  129. ODM_MGN_VHT2SS_MCS0,
  130. ODM_MGN_VHT2SS_MCS1,
  131. ODM_MGN_VHT2SS_MCS2,
  132. ODM_MGN_VHT2SS_MCS3,
  133. ODM_MGN_VHT2SS_MCS4,
  134. ODM_MGN_VHT2SS_MCS5,
  135. ODM_MGN_VHT2SS_MCS6,
  136. ODM_MGN_VHT2SS_MCS7,
  137. ODM_MGN_VHT2SS_MCS8,
  138. ODM_MGN_VHT2SS_MCS9,
  139. ODM_MGN_VHT3SS_MCS0,
  140. ODM_MGN_VHT3SS_MCS1,
  141. ODM_MGN_VHT3SS_MCS2,
  142. ODM_MGN_VHT3SS_MCS3,
  143. ODM_MGN_VHT3SS_MCS4,
  144. ODM_MGN_VHT3SS_MCS5,
  145. ODM_MGN_VHT3SS_MCS6,
  146. ODM_MGN_VHT3SS_MCS7,
  147. ODM_MGN_VHT3SS_MCS8,
  148. ODM_MGN_VHT3SS_MCS9,
  149. ODM_MGN_VHT4SS_MCS0,
  150. ODM_MGN_VHT4SS_MCS1,
  151. ODM_MGN_VHT4SS_MCS2,
  152. ODM_MGN_VHT4SS_MCS3,
  153. ODM_MGN_VHT4SS_MCS4,
  154. ODM_MGN_VHT4SS_MCS5,
  155. ODM_MGN_VHT4SS_MCS6,
  156. ODM_MGN_VHT4SS_MCS7,
  157. ODM_MGN_VHT4SS_MCS8,
  158. ODM_MGN_VHT4SS_MCS9,
  159. ODM_MGN_UNKNOWN
  160. };
  161. #define ODM_MGN_MCS0_SG 0xc0
  162. #define ODM_MGN_MCS1_SG 0xc1
  163. #define ODM_MGN_MCS2_SG 0xc2
  164. #define ODM_MGN_MCS3_SG 0xc3
  165. #define ODM_MGN_MCS4_SG 0xc4
  166. #define ODM_MGN_MCS5_SG 0xc5
  167. #define ODM_MGN_MCS6_SG 0xc6
  168. #define ODM_MGN_MCS7_SG 0xc7
  169. #define ODM_MGN_MCS8_SG 0xc8
  170. #define ODM_MGN_MCS9_SG 0xc9
  171. #define ODM_MGN_MCS10_SG 0xca
  172. #define ODM_MGN_MCS11_SG 0xcb
  173. #define ODM_MGN_MCS12_SG 0xcc
  174. #define ODM_MGN_MCS13_SG 0xcd
  175. #define ODM_MGN_MCS14_SG 0xce
  176. #define ODM_MGN_MCS15_SG 0xcf
  177. /* -----DESC rate--------------------------------- */
  178. #define ODM_RATEMCS15_SG 0x1c
  179. #define ODM_RATEMCS32 0x20
  180. /* CCK Rates, TxHT = 0 */
  181. #define ODM_RATE1M 0x00
  182. #define ODM_RATE2M 0x01
  183. #define ODM_RATE5_5M 0x02
  184. #define ODM_RATE11M 0x03
  185. /* OFDM Rates, TxHT = 0 */
  186. #define ODM_RATE6M 0x04
  187. #define ODM_RATE9M 0x05
  188. #define ODM_RATE12M 0x06
  189. #define ODM_RATE18M 0x07
  190. #define ODM_RATE24M 0x08
  191. #define ODM_RATE36M 0x09
  192. #define ODM_RATE48M 0x0A
  193. #define ODM_RATE54M 0x0B
  194. /* MCS Rates, TxHT = 1 */
  195. #define ODM_RATEMCS0 0x0C
  196. #define ODM_RATEMCS1 0x0D
  197. #define ODM_RATEMCS2 0x0E
  198. #define ODM_RATEMCS3 0x0F
  199. #define ODM_RATEMCS4 0x10
  200. #define ODM_RATEMCS5 0x11
  201. #define ODM_RATEMCS6 0x12
  202. #define ODM_RATEMCS7 0x13
  203. #define ODM_RATEMCS8 0x14
  204. #define ODM_RATEMCS9 0x15
  205. #define ODM_RATEMCS10 0x16
  206. #define ODM_RATEMCS11 0x17
  207. #define ODM_RATEMCS12 0x18
  208. #define ODM_RATEMCS13 0x19
  209. #define ODM_RATEMCS14 0x1A
  210. #define ODM_RATEMCS15 0x1B
  211. #define ODM_RATEMCS16 0x1C
  212. #define ODM_RATEMCS17 0x1D
  213. #define ODM_RATEMCS18 0x1E
  214. #define ODM_RATEMCS19 0x1F
  215. #define ODM_RATEMCS20 0x20
  216. #define ODM_RATEMCS21 0x21
  217. #define ODM_RATEMCS22 0x22
  218. #define ODM_RATEMCS23 0x23
  219. #define ODM_RATEMCS24 0x24
  220. #define ODM_RATEMCS25 0x25
  221. #define ODM_RATEMCS26 0x26
  222. #define ODM_RATEMCS27 0x27
  223. #define ODM_RATEMCS28 0x28
  224. #define ODM_RATEMCS29 0x29
  225. #define ODM_RATEMCS30 0x2A
  226. #define ODM_RATEMCS31 0x2B
  227. #define ODM_RATEVHTSS1MCS0 0x2C
  228. #define ODM_RATEVHTSS1MCS1 0x2D
  229. #define ODM_RATEVHTSS1MCS2 0x2E
  230. #define ODM_RATEVHTSS1MCS3 0x2F
  231. #define ODM_RATEVHTSS1MCS4 0x30
  232. #define ODM_RATEVHTSS1MCS5 0x31
  233. #define ODM_RATEVHTSS1MCS6 0x32
  234. #define ODM_RATEVHTSS1MCS7 0x33
  235. #define ODM_RATEVHTSS1MCS8 0x34
  236. #define ODM_RATEVHTSS1MCS9 0x35
  237. #define ODM_RATEVHTSS2MCS0 0x36
  238. #define ODM_RATEVHTSS2MCS1 0x37
  239. #define ODM_RATEVHTSS2MCS2 0x38
  240. #define ODM_RATEVHTSS2MCS3 0x39
  241. #define ODM_RATEVHTSS2MCS4 0x3A
  242. #define ODM_RATEVHTSS2MCS5 0x3B
  243. #define ODM_RATEVHTSS2MCS6 0x3C
  244. #define ODM_RATEVHTSS2MCS7 0x3D
  245. #define ODM_RATEVHTSS2MCS8 0x3E
  246. #define ODM_RATEVHTSS2MCS9 0x3F
  247. #define ODM_RATEVHTSS3MCS0 0x40
  248. #define ODM_RATEVHTSS3MCS1 0x41
  249. #define ODM_RATEVHTSS3MCS2 0x42
  250. #define ODM_RATEVHTSS3MCS3 0x43
  251. #define ODM_RATEVHTSS3MCS4 0x44
  252. #define ODM_RATEVHTSS3MCS5 0x45
  253. #define ODM_RATEVHTSS3MCS6 0x46
  254. #define ODM_RATEVHTSS3MCS7 0x47
  255. #define ODM_RATEVHTSS3MCS8 0x48
  256. #define ODM_RATEVHTSS3MCS9 0x49
  257. #define ODM_RATEVHTSS4MCS0 0x4A
  258. #define ODM_RATEVHTSS4MCS1 0x4B
  259. #define ODM_RATEVHTSS4MCS2 0x4C
  260. #define ODM_RATEVHTSS4MCS3 0x4D
  261. #define ODM_RATEVHTSS4MCS4 0x4E
  262. #define ODM_RATEVHTSS4MCS5 0x4F
  263. #define ODM_RATEVHTSS4MCS6 0x50
  264. #define ODM_RATEVHTSS4MCS7 0x51
  265. #define ODM_RATEVHTSS4MCS8 0x52
  266. #define ODM_RATEVHTSS4MCS9 0x53
  267. #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
  268. #define ODM_NUM_RATE_IDX (ODM_RATEVHTSS4MCS9+1)
  269. #else
  270. #if (RTL8192E_SUPPORT == 1) || (RTL8197F_SUPPORT == 1)
  271. #define ODM_NUM_RATE_IDX (ODM_RATEMCS15+1)
  272. #elif (RTL8723B_SUPPORT == 1) || (RTL8188E_SUPPORT == 1) || (RTL8188F_SUPPORT == 1)
  273. #define ODM_NUM_RATE_IDX (ODM_RATEMCS7+1)
  274. #elif (RTL8821A_SUPPORT == 1) || (RTL8881A_SUPPORT == 1)
  275. #define ODM_NUM_RATE_IDX (ODM_RATEVHTSS1MCS9+1)
  276. #elif (RTL8812A_SUPPORT == 1)
  277. #define ODM_NUM_RATE_IDX (ODM_RATEVHTSS2MCS9+1)
  278. #elif (RTL8814A_SUPPORT == 1)
  279. #define ODM_NUM_RATE_IDX (ODM_RATEVHTSS3MCS9+1)
  280. #else
  281. #define ODM_NUM_RATE_IDX (ODM_RATEVHTSS4MCS9+1)
  282. #endif
  283. #endif
  284. #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
  285. #define CONFIG_SFW_SUPPORTED
  286. #endif
  287. /* 1 ============================================================
  288. * 1 enumeration
  289. * 1 ============================================================ */
  290. /* ODM_CMNINFO_INTERFACE */
  291. enum odm_interface_e {
  292. ODM_ITRF_PCIE = 0x1,
  293. ODM_ITRF_USB = 0x2,
  294. ODM_ITRF_SDIO = 0x4,
  295. ODM_ITRF_ALL = 0x7,
  296. };
  297. /* ODM_CMNINFO_IC_TYPE */
  298. enum odm_ic_type_e {
  299. ODM_RTL8188E = BIT(0),
  300. ODM_RTL8812 = BIT(1),
  301. ODM_RTL8821 = BIT(2),
  302. ODM_RTL8192E = BIT(3),
  303. ODM_RTL8723B = BIT(4),
  304. ODM_RTL8814A = BIT(5),
  305. ODM_RTL8881A = BIT(6),
  306. ODM_RTL8822B = BIT(7),
  307. ODM_RTL8703B = BIT(8),
  308. ODM_RTL8195A = BIT(9),
  309. ODM_RTL8188F = BIT(10),
  310. ODM_RTL8723D = BIT(11),
  311. ODM_RTL8197F = BIT(12),
  312. ODM_RTL8821C = BIT(13),
  313. ODM_RTL8814B = BIT(14),
  314. ODM_RTL8198F = BIT(15),
  315. /* JJ ADD 20161014 */
  316. ODM_RTL8710B = BIT(16),
  317. };
  318. /* JJ ADD 20161014 */
  319. #define ODM_IC_1SS (ODM_RTL8188E | ODM_RTL8188F | ODM_RTL8723B | ODM_RTL8703B | ODM_RTL8723D | ODM_RTL8881A | ODM_RTL8821 | ODM_RTL8821C | ODM_RTL8195A | ODM_RTL8710B)
  320. #define ODM_IC_2SS (ODM_RTL8192E | ODM_RTL8197F | ODM_RTL8812 | ODM_RTL8822B)
  321. #define ODM_IC_3SS (ODM_RTL8814A)
  322. #define ODM_IC_4SS (ODM_RTL8814B | ODM_RTL8198F)
  323. /* JJ ADD 20161014 */
  324. #define ODM_IC_11N_SERIES (ODM_RTL8188E | ODM_RTL8192E | ODM_RTL8723B | ODM_RTL8703B | ODM_RTL8188F | ODM_RTL8723D | ODM_RTL8197F | ODM_RTL8710B)
  325. #define ODM_IC_11AC_SERIES (ODM_RTL8812 | ODM_RTL8821 | ODM_RTL8814A | ODM_RTL8881A | ODM_RTL8822B | ODM_RTL8821C)
  326. #define ODM_IC_11AC_1_SERIES (ODM_RTL8812 | ODM_RTL8821 | ODM_RTL8881A)
  327. #define ODM_IC_11AC_2_SERIES (ODM_RTL8814A | ODM_RTL8822B | ODM_RTL8821C)
  328. #define ODM_IC_TXBF_SUPPORT (ODM_RTL8192E | ODM_RTL8812 | ODM_RTL8821 | ODM_RTL8814A | ODM_RTL8881A | ODM_RTL8822B | ODM_RTL8197F | ODM_RTL8821C)
  329. #define ODM_IC_11N_GAIN_IDX_EDCCA (ODM_RTL8195A | ODM_RTL8703B | ODM_RTL8188F | ODM_RTL8723D | ODM_RTL8197F | ODM_RTL8710B)
  330. #define ODM_IC_11AC_GAIN_IDX_EDCCA (ODM_RTL8814A | ODM_RTL8822B | ODM_RTL8821C)
  331. #define ODM_IC_PHY_STATUE_NEW_TYPE (ODM_RTL8197F | ODM_RTL8822B | ODM_RTL8723D | ODM_RTL8821C | ODM_RTL8710B)
  332. #define PHYDM_IC_8051_SERIES (ODM_RTL8881A | ODM_RTL8812 | ODM_RTL8821 | ODM_RTL8188E | ODM_RTL8192E | ODM_RTL8723B | ODM_RTL8703B | ODM_RTL8188F)
  333. #define PHYDM_IC_3081_SERIES (ODM_RTL8814A | ODM_RTL8822B | ODM_RTL8197F | ODM_RTL8821C)
  334. #define PHYDM_IC_SUPPORT_LA_MODE (ODM_RTL8814A | ODM_RTL8822B | ODM_RTL8197F | ODM_RTL8821C)
  335. #if (DM_ODM_SUPPORT_TYPE == ODM_AP)
  336. #ifdef RTK_AC_SUPPORT
  337. #define ODM_IC_11AC_SERIES_SUPPORT 1
  338. #else
  339. #define ODM_IC_11AC_SERIES_SUPPORT 0
  340. #endif
  341. #define ODM_IC_11N_SERIES_SUPPORT 1
  342. #define ODM_CONFIG_BT_COEXIST 0
  343. #elif (DM_ODM_SUPPORT_TYPE == ODM_WIN)
  344. #define ODM_IC_11AC_SERIES_SUPPORT 1
  345. #define ODM_IC_11N_SERIES_SUPPORT 1
  346. #define ODM_CONFIG_BT_COEXIST 1
  347. #else
  348. /* JJ ADD 20161014 */
  349. #if ((RTL8188E_SUPPORT == 1) || \
  350. (RTL8723B_SUPPORT == 1) || (RTL8192E_SUPPORT == 1) || (RTL8195A_SUPPORT == 1) || (RTL8703B_SUPPORT == 1) || \
  351. (RTL8188F_SUPPORT == 1) || (RTL8723D_SUPPORT == 1) || (RTL8197F_SUPPORT == 1) || (RTL8710B_SUPPORT == 1))
  352. #define ODM_IC_11N_SERIES_SUPPORT 1
  353. #define ODM_IC_11AC_SERIES_SUPPORT 0
  354. #else
  355. #define ODM_IC_11N_SERIES_SUPPORT 0
  356. #define ODM_IC_11AC_SERIES_SUPPORT 1
  357. #endif
  358. #ifdef CONFIG_BT_COEXIST
  359. #define ODM_CONFIG_BT_COEXIST 1
  360. #else
  361. #define ODM_CONFIG_BT_COEXIST 0
  362. #endif
  363. #endif
  364. /* JJ ADD 20161014 */
  365. #if ((RTL8197F_SUPPORT == 1) || (RTL8723D_SUPPORT == 1) || (RTL8822B_SUPPORT == 1) || (RTL8821C_SUPPORT == 1) || (RTL8710B_SUPPORT == 1) )
  366. #define ODM_PHY_STATUS_NEW_TYPE_SUPPORT 1
  367. #else
  368. #define ODM_PHY_STATUS_NEW_TYPE_SUPPORT 0
  369. #endif
  370. /* ODM_CMNINFO_CUT_VER */
  371. enum odm_cut_version_e {
  372. ODM_CUT_A = 0,
  373. ODM_CUT_B = 1,
  374. ODM_CUT_C = 2,
  375. ODM_CUT_D = 3,
  376. ODM_CUT_E = 4,
  377. ODM_CUT_F = 5,
  378. ODM_CUT_I = 8,
  379. ODM_CUT_J = 9,
  380. ODM_CUT_K = 10,
  381. ODM_CUT_TEST = 15,
  382. };
  383. /* ODM_CMNINFO_FAB_VER */
  384. enum odm_fab_e {
  385. ODM_TSMC = 0,
  386. ODM_UMC = 1,
  387. };
  388. /* ODM_CMNINFO_RF_TYPE
  389. *
  390. * For example 1T2R (A+AB = BIT(0)|BIT(4)|BIT(5))
  391. * */
  392. enum odm_rf_path_e {
  393. ODM_RF_A = BIT(0),
  394. ODM_RF_B = BIT(1),
  395. ODM_RF_C = BIT(2),
  396. ODM_RF_D = BIT(3),
  397. };
  398. enum odm_rf_tx_num_e {
  399. ODM_1T = 1,
  400. ODM_2T = 2,
  401. ODM_3T = 3,
  402. ODM_4T = 4,
  403. };
  404. enum odm_rf_type_e {
  405. ODM_1T1R,
  406. ODM_1T2R,
  407. ODM_2T2R,
  408. ODM_2T2R_GREEN,
  409. ODM_2T3R,
  410. ODM_2T4R,
  411. ODM_3T3R,
  412. ODM_3T4R,
  413. ODM_4T4R,
  414. ODM_XTXR
  415. };
  416. enum odm_mac_phy_mode_e {
  417. ODM_SMSP = 0,
  418. ODM_DMSP = 1,
  419. ODM_DMDP = 2,
  420. };
  421. enum odm_bt_coexist_e {
  422. ODM_BT_BUSY = 1,
  423. ODM_BT_ON = 2,
  424. ODM_BT_OFF = 3,
  425. ODM_BT_NONE = 4,
  426. };
  427. /* ODM_CMNINFO_OP_MODE */
  428. enum odm_operation_mode_e {
  429. ODM_NO_LINK = BIT(0),
  430. ODM_LINK = BIT(1),
  431. ODM_SCAN = BIT(2),
  432. ODM_POWERSAVE = BIT(3),
  433. ODM_AP_MODE = BIT(4),
  434. ODM_CLIENT_MODE = BIT(5),
  435. ODM_AD_HOC = BIT(6),
  436. ODM_WIFI_DIRECT = BIT(7),
  437. ODM_WIFI_DISPLAY = BIT(8),
  438. };
  439. /* ODM_CMNINFO_WM_MODE */
  440. #if (DM_ODM_SUPPORT_TYPE & (ODM_CE))
  441. enum odm_wireless_mode_e {
  442. ODM_WM_UNKNOW = 0x0,
  443. ODM_WM_B = BIT(0),
  444. ODM_WM_G = BIT(1),
  445. ODM_WM_A = BIT(2),
  446. ODM_WM_N24G = BIT(3),
  447. ODM_WM_N5G = BIT(4),
  448. ODM_WM_AUTO = BIT(5),
  449. ODM_WM_AC = BIT(6),
  450. };
  451. #else
  452. enum odm_wireless_mode_e {
  453. ODM_WM_UNKNOWN = 0x00,/*0x0*/
  454. ODM_WM_A = BIT(0), /* 0x1*/
  455. ODM_WM_B = BIT(1), /* 0x2*/
  456. ODM_WM_G = BIT(2),/* 0x4*/
  457. ODM_WM_AUTO = BIT(3),/* 0x8*/
  458. ODM_WM_N24G = BIT(4),/* 0x10*/
  459. ODM_WM_N5G = BIT(5),/* 0x20*/
  460. ODM_WM_AC_5G = BIT(6),/* 0x40*/
  461. ODM_WM_AC_24G = BIT(7),/* 0x80*/
  462. ODM_WM_AC_ONLY = BIT(8),/* 0x100*/
  463. ODM_WM_MAX = BIT(11)/* 0x800*/
  464. };
  465. #endif
  466. /* ODM_CMNINFO_BAND */
  467. enum odm_band_type_e {
  468. #if (DM_ODM_SUPPORT_TYPE & (ODM_AP))
  469. ODM_BAND_2_4G = BIT(0),
  470. ODM_BAND_5G = BIT(1),
  471. #else
  472. ODM_BAND_2_4G = 0,
  473. ODM_BAND_5G,
  474. ODM_BAND_ON_BOTH,
  475. ODM_BANDMAX
  476. #endif
  477. };
  478. /* ODM_CMNINFO_SEC_CHNL_OFFSET */
  479. enum phydm_sec_chnl_offset_e {
  480. PHYDM_DONT_CARE = 0,
  481. PHYDM_BELOW = 1,
  482. PHYDM_ABOVE = 2
  483. };
  484. /* ODM_CMNINFO_SEC_MODE */
  485. enum odm_security_e {
  486. ODM_SEC_OPEN = 0,
  487. ODM_SEC_WEP40 = 1,
  488. ODM_SEC_TKIP = 2,
  489. ODM_SEC_RESERVE = 3,
  490. ODM_SEC_AESCCMP = 4,
  491. ODM_SEC_WEP104 = 5,
  492. ODM_WEP_WPA_MIXED = 6, /* WEP + WPA */
  493. ODM_SEC_SMS4 = 7,
  494. };
  495. /* ODM_CMNINFO_BW */
  496. enum odm_bw_e {
  497. ODM_BW20M = 0,
  498. ODM_BW40M = 1,
  499. ODM_BW80M = 2,
  500. ODM_BW160M = 3,
  501. ODM_BW5M = 4,
  502. ODM_BW10M = 5,
  503. ODM_BW_MAX = 6
  504. };
  505. /* ODM_CMNINFO_CHNL */
  506. /* ODM_CMNINFO_BOARD_TYPE */
  507. enum odm_board_type_e {
  508. ODM_BOARD_DEFAULT = 0, /* The DEFAULT case. */
  509. ODM_BOARD_MINICARD = BIT(0), /* 0 = non-mini card, 1= mini card. */
  510. ODM_BOARD_SLIM = BIT(1), /* 0 = non-slim card, 1 = slim card */
  511. ODM_BOARD_BT = BIT(2), /* 0 = without BT card, 1 = with BT */
  512. ODM_BOARD_EXT_PA = BIT(3), /* 0 = no 2G ext-PA, 1 = existing 2G ext-PA */
  513. ODM_BOARD_EXT_LNA = BIT(4), /* 0 = no 2G ext-LNA, 1 = existing 2G ext-LNA */
  514. ODM_BOARD_EXT_TRSW = BIT(5), /* 0 = no ext-TRSW, 1 = existing ext-TRSW */
  515. ODM_BOARD_EXT_PA_5G = BIT(6), /* 0 = no 5G ext-PA, 1 = existing 5G ext-PA */
  516. ODM_BOARD_EXT_LNA_5G = BIT(7), /* 0 = no 5G ext-LNA, 1 = existing 5G ext-LNA */
  517. };
  518. enum odm_package_type_e {
  519. ODM_PACKAGE_DEFAULT = 0,
  520. ODM_PACKAGE_QFN68 = BIT(0),
  521. ODM_PACKAGE_TFBGA90 = BIT(1),
  522. ODM_PACKAGE_TFBGA79 = BIT(2),
  523. };
  524. enum odm_type_gpa_e {
  525. TYPE_GPA0 = 0x0000,
  526. TYPE_GPA1 = 0x0055,
  527. TYPE_GPA2 = 0x00AA,
  528. TYPE_GPA3 = 0x00FF,
  529. TYPE_GPA4 = 0x5500,
  530. TYPE_GPA5 = 0x5555,
  531. TYPE_GPA6 = 0x55AA,
  532. TYPE_GPA7 = 0x55FF,
  533. TYPE_GPA8 = 0xAA00,
  534. TYPE_GPA9 = 0xAA55,
  535. TYPE_GPA10 = 0xAAAA,
  536. TYPE_GPA11 = 0xAAFF,
  537. TYPE_GPA12 = 0xFF00,
  538. TYPE_GPA13 = 0xFF55,
  539. TYPE_GPA14 = 0xFFAA,
  540. TYPE_GPA15 = 0xFFFF,
  541. };
  542. enum odm_type_apa_e {
  543. TYPE_APA0 = 0x0000,
  544. TYPE_APA1 = 0x0055,
  545. TYPE_APA2 = 0x00AA,
  546. TYPE_APA3 = 0x00FF,
  547. TYPE_APA4 = 0x5500,
  548. TYPE_APA5 = 0x5555,
  549. TYPE_APA6 = 0x55AA,
  550. TYPE_APA7 = 0x55FF,
  551. TYPE_APA8 = 0xAA00,
  552. TYPE_APA9 = 0xAA55,
  553. TYPE_APA10 = 0xAAAA,
  554. TYPE_APA11 = 0xAAFF,
  555. TYPE_APA12 = 0xFF00,
  556. TYPE_APA13 = 0xFF55,
  557. TYPE_APA14 = 0xFFAA,
  558. TYPE_APA15 = 0xFFFF,
  559. };
  560. enum odm_type_glna_e {
  561. TYPE_GLNA0 = 0x0000,
  562. TYPE_GLNA1 = 0x0055,
  563. TYPE_GLNA2 = 0x00AA,
  564. TYPE_GLNA3 = 0x00FF,
  565. TYPE_GLNA4 = 0x5500,
  566. TYPE_GLNA5 = 0x5555,
  567. TYPE_GLNA6 = 0x55AA,
  568. TYPE_GLNA7 = 0x55FF,
  569. TYPE_GLNA8 = 0xAA00,
  570. TYPE_GLNA9 = 0xAA55,
  571. TYPE_GLNA10 = 0xAAAA,
  572. TYPE_GLNA11 = 0xAAFF,
  573. TYPE_GLNA12 = 0xFF00,
  574. TYPE_GLNA13 = 0xFF55,
  575. TYPE_GLNA14 = 0xFFAA,
  576. TYPE_GLNA15 = 0xFFFF,
  577. };
  578. enum odm_type_alna_e {
  579. TYPE_ALNA0 = 0x0000,
  580. TYPE_ALNA1 = 0x0055,
  581. TYPE_ALNA2 = 0x00AA,
  582. TYPE_ALNA3 = 0x00FF,
  583. TYPE_ALNA4 = 0x5500,
  584. TYPE_ALNA5 = 0x5555,
  585. TYPE_ALNA6 = 0x55AA,
  586. TYPE_ALNA7 = 0x55FF,
  587. TYPE_ALNA8 = 0xAA00,
  588. TYPE_ALNA9 = 0xAA55,
  589. TYPE_ALNA10 = 0xAAAA,
  590. TYPE_ALNA11 = 0xAAFF,
  591. TYPE_ALNA12 = 0xFF00,
  592. TYPE_ALNA13 = 0xFF55,
  593. TYPE_ALNA14 = 0xFFAA,
  594. TYPE_ALNA15 = 0xFFFF,
  595. };
  596. enum odm_rf_radio_path_e {
  597. ODM_RF_PATH_A = 0, /* Radio path A */
  598. ODM_RF_PATH_B = 1, /* Radio path B */
  599. ODM_RF_PATH_C = 2, /* Radio path C */
  600. ODM_RF_PATH_D = 3, /* Radio path D */
  601. ODM_RF_PATH_AB,
  602. ODM_RF_PATH_AC,
  603. ODM_RF_PATH_AD,
  604. ODM_RF_PATH_BC,
  605. ODM_RF_PATH_BD,
  606. ODM_RF_PATH_CD,
  607. ODM_RF_PATH_ABC,
  608. ODM_RF_PATH_ACD,
  609. ODM_RF_PATH_BCD,
  610. ODM_RF_PATH_ABCD,
  611. /* ODM_RF_PATH_MAX, */ /* Max RF number 90 support */
  612. };
  613. enum odm_parameter_init_e {
  614. ODM_PRE_SETTING = 0,
  615. ODM_POST_SETTING = 1,
  616. ODM_INIT_FW_SETTING
  617. };
  618. #endif