phyrx_rssi_legacy.h 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705
  1. /*
  2. * Copyright (c) 2016-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 _PHYRX_RSSI_LEGACY_H_
  19. #define _PHYRX_RSSI_LEGACY_H_
  20. #if !defined(__ASSEMBLER__)
  21. #endif
  22. #include "receive_rssi_info.h"
  23. // ################ START SUMMARY #################
  24. //
  25. // Dword Fields
  26. // 0 reception_type[3:0], reserved_0[5:4], receive_bandwidth[7:6], rx_chain_mask[15:8], phy_ppdu_id[31:16]
  27. // 1 sw_phy_meta_data[31:0]
  28. // 2 ppdu_start_timestamp[31:0]
  29. // 3-18 struct receive_rssi_info pre_rssi_info_details;
  30. // 19-34 struct receive_rssi_info preamble_rssi_info_details;
  31. // 35 pre_rssi_comb[7:0], rssi_comb[15:8], normalized_pre_rssi_comb[23:16], normalized_rssi_comb[31:24]
  32. //
  33. // ################ END SUMMARY #################
  34. #define NUM_OF_DWORDS_PHYRX_RSSI_LEGACY 36
  35. struct phyrx_rssi_legacy {
  36. uint32_t reception_type : 4, //[3:0]
  37. reserved_0 : 2, //[5:4]
  38. receive_bandwidth : 2, //[7:6]
  39. rx_chain_mask : 8, //[15:8]
  40. phy_ppdu_id : 16; //[31:16]
  41. uint32_t sw_phy_meta_data : 32; //[31:0]
  42. uint32_t ppdu_start_timestamp : 32; //[31:0]
  43. struct receive_rssi_info pre_rssi_info_details;
  44. struct receive_rssi_info preamble_rssi_info_details;
  45. uint32_t pre_rssi_comb : 8, //[7:0]
  46. rssi_comb : 8, //[15:8]
  47. normalized_pre_rssi_comb : 8, //[23:16]
  48. normalized_rssi_comb : 8; //[31:24]
  49. };
  50. /*
  51. reception_type
  52. This field helps MAC SW determine which field in this
  53. (and following TLVs) will contain valid information. For
  54. example some RSSI info not valid in case of uplink_ofdma..
  55. <enum 0 reception_is_uplink_ofdma>
  56. <enum 1 reception_is_uplink_mimo>
  57. <enum 2 reception_is_other>
  58. <enum 3 reception_is_frameless> PHY RX has been
  59. instructed in advance that the upcoming reception is
  60. frameless. This implieas that in advance it is known that
  61. all frames will collide in the medium, and nothing can be
  62. properly decoded... This can happen during the CTS reception
  63. in response to the triggered MU-RTS transmission.
  64. MAC takes no action when seeing this e_num. For the
  65. frameless reception the indication in pkt_end is the final
  66. one evaluated by the MAC
  67. <legal 0-3>
  68. reserved_0
  69. <legal 0>
  70. receive_bandwidth
  71. Full receive Bandwidth
  72. <enum 0 full_rx_bw_20_mhz>
  73. <enum 1 full_rx_bw_40_mhz>
  74. <enum 2 full_rx_bw_80_mhz>
  75. <enum 3 full_rx_bw_160_mhz>
  76. <legal 0-3>
  77. rx_chain_mask
  78. The chain mask at the start of the reception of this
  79. frame.
  80. each bit is one antenna
  81. 0: the chain is NOT used
  82. 1: the chain is used
  83. Supports up to 8 chains
  84. Used in 11ax TPC calculations for UL OFDMA/MIMO and has
  85. to be in sync with the rssi_comb value as this is also used
  86. by the MAC for the TPC calculations.
  87. <legal all>
  88. phy_ppdu_id
  89. A ppdu counter value that PHY increments for every PPDU
  90. received. The counter value wraps around
  91. <legal all>
  92. sw_phy_meta_data
  93. 32 bit Meta data that SW can program in a 32 bit PHY
  94. register and PHY will insert the value in every
  95. RX_RSSI_LEGACY TLV that it generates.
  96. SW uses this field to embed among other things some SW
  97. channel info.
  98. ppdu_start_timestamp
  99. Timestamp that indicates when the PPDU that contained
  100. this MPDU started on the medium.
  101. Note that PHY will detect the start later, and will have
  102. to derive out of the preamble info when the frame actually
  103. appeared on the medium
  104. <legal 0- 10>
  105. struct receive_rssi_info pre_rssi_info_details
  106. This field is not valid when reception_is_uplink_ofdma
  107. Overview of the pre-RSSI values. That is RSSI values
  108. measured on the medium before this reception started.
  109. struct receive_rssi_info preamble_rssi_info_details
  110. This field is not valid when reception_is_uplink_ofdma
  111. Overview of the RSSI values measured during the
  112. pre-amble phase of this reception
  113. pre_rssi_comb
  114. Combined pre_rssi of all chains. Based on primary
  115. channel RSSI.
  116. RSSI is reported as 8b signed values. Nominally value is
  117. in dB units above or below the noisefloor(minCCApwr).
  118. The resolution can be:
  119. 1dB or 0.5dB. This is statically configured within the
  120. PHY and MAC
  121. In case of 1dB, the Range is:
  122. -128dB to 127dB
  123. In case of 0.5dB, the Range is:
  124. -64dB to 63.5dB
  125. <legal all>
  126. rssi_comb
  127. Combined rssi of all chains. Based on primary channel
  128. RSSI.
  129. RSSI is reported as 8b signed values. Nominally value is
  130. in dB units above or below the noisefloor(minCCApwr).
  131. The resolution can be:
  132. 1dB or 0.5dB. This is statically configured within the
  133. PHY and MAC
  134. In case of 1dB, the Range is:
  135. -128dB to 127dB
  136. In case of 0.5dB, the Range is:
  137. -64dB to 63.5dB
  138. <legal all>
  139. normalized_pre_rssi_comb
  140. Combined pre_rssi of all chains, but normalized back to
  141. a single chain. This avoids PDG from having to evaluate this
  142. in combination with receive chain mask and perform all kinds
  143. of pre-processing algorithms.
  144. Based on primary channel RSSI.
  145. RSSI is reported as 8b signed values. Nominally value is
  146. in dB units above or below the noisefloor(minCCApwr).
  147. The resolution can be:
  148. 1dB or 0.5dB. This is statically configured within the
  149. PHY and MAC
  150. In case of 1dB, the Range is:
  151. -128dB to 127dB
  152. In case of 0.5dB, the Range is:
  153. -64dB to 63.5dB
  154. <legal all>
  155. normalized_rssi_comb
  156. Combined rssi of all chains, but normalized back to a
  157. single chain. This avoids PDG from having to evaluate this
  158. in combination with receive chain mask and perform all kinds
  159. of pre-processing algorithms.
  160. Based on primary channel RSSI.
  161. RSSI is reported as 8b signed values. Nominally value is
  162. in dB units above or below the noisefloor(minCCApwr).
  163. The resolution can be:
  164. 1dB or 0.5dB. This is statically configured within the
  165. PHY and MAC
  166. In case of 1dB, the Range is:
  167. -128dB to 127dB
  168. In case of 0.5dB, the Range is:
  169. -64dB to 63.5dB
  170. <legal all>
  171. */
  172. /* Description PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE
  173. This field helps MAC SW determine which field in this
  174. (and following TLVs) will contain valid information. For
  175. example some RSSI info not valid in case of uplink_ofdma..
  176. <enum 0 reception_is_uplink_ofdma>
  177. <enum 1 reception_is_uplink_mimo>
  178. <enum 2 reception_is_other>
  179. <enum 3 reception_is_frameless> PHY RX has been
  180. instructed in advance that the upcoming reception is
  181. frameless. This implieas that in advance it is known that
  182. all frames will collide in the medium, and nothing can be
  183. properly decoded... This can happen during the CTS reception
  184. in response to the triggered MU-RTS transmission.
  185. MAC takes no action when seeing this e_num. For the
  186. frameless reception the indication in pkt_end is the final
  187. one evaluated by the MAC
  188. <legal 0-3>
  189. */
  190. #define PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE_OFFSET 0x00000000
  191. #define PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE_LSB 0
  192. #define PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE_MASK 0x0000000f
  193. /* Description PHYRX_RSSI_LEGACY_0_RESERVED_0
  194. <legal 0>
  195. */
  196. #define PHYRX_RSSI_LEGACY_0_RESERVED_0_OFFSET 0x00000000
  197. #define PHYRX_RSSI_LEGACY_0_RESERVED_0_LSB 4
  198. #define PHYRX_RSSI_LEGACY_0_RESERVED_0_MASK 0x00000030
  199. /* Description PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH
  200. Full receive Bandwidth
  201. <enum 0 full_rx_bw_20_mhz>
  202. <enum 1 full_rx_bw_40_mhz>
  203. <enum 2 full_rx_bw_80_mhz>
  204. <enum 3 full_rx_bw_160_mhz>
  205. <legal 0-3>
  206. */
  207. #define PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH_OFFSET 0x00000000
  208. #define PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH_LSB 6
  209. #define PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH_MASK 0x000000c0
  210. /* Description PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK
  211. The chain mask at the start of the reception of this
  212. frame.
  213. each bit is one antenna
  214. 0: the chain is NOT used
  215. 1: the chain is used
  216. Supports up to 8 chains
  217. Used in 11ax TPC calculations for UL OFDMA/MIMO and has
  218. to be in sync with the rssi_comb value as this is also used
  219. by the MAC for the TPC calculations.
  220. <legal all>
  221. */
  222. #define PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK_OFFSET 0x00000000
  223. #define PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK_LSB 8
  224. #define PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK_MASK 0x0000ff00
  225. /* Description PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID
  226. A ppdu counter value that PHY increments for every PPDU
  227. received. The counter value wraps around
  228. <legal all>
  229. */
  230. #define PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID_OFFSET 0x00000000
  231. #define PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID_LSB 16
  232. #define PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID_MASK 0xffff0000
  233. /* Description PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA
  234. 32 bit Meta data that SW can program in a 32 bit PHY
  235. register and PHY will insert the value in every
  236. RX_RSSI_LEGACY TLV that it generates.
  237. SW uses this field to embed among other things some SW
  238. channel info.
  239. */
  240. #define PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA_OFFSET 0x00000004
  241. #define PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA_LSB 0
  242. #define PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA_MASK 0xffffffff
  243. /* Description PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP
  244. Timestamp that indicates when the PPDU that contained
  245. this MPDU started on the medium.
  246. Note that PHY will detect the start later, and will have
  247. to derive out of the preamble info when the frame actually
  248. appeared on the medium
  249. <legal 0- 10>
  250. */
  251. #define PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP_OFFSET 0x00000008
  252. #define PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP_LSB 0
  253. #define PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP_MASK 0xffffffff
  254. #define PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000000c
  255. #define PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  256. #define PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  257. #define PHYRX_RSSI_LEGACY_4_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000010
  258. #define PHYRX_RSSI_LEGACY_4_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  259. #define PHYRX_RSSI_LEGACY_4_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  260. #define PHYRX_RSSI_LEGACY_5_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000014
  261. #define PHYRX_RSSI_LEGACY_5_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  262. #define PHYRX_RSSI_LEGACY_5_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  263. #define PHYRX_RSSI_LEGACY_6_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000018
  264. #define PHYRX_RSSI_LEGACY_6_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  265. #define PHYRX_RSSI_LEGACY_6_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  266. #define PHYRX_RSSI_LEGACY_7_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000001c
  267. #define PHYRX_RSSI_LEGACY_7_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  268. #define PHYRX_RSSI_LEGACY_7_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  269. #define PHYRX_RSSI_LEGACY_8_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000020
  270. #define PHYRX_RSSI_LEGACY_8_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  271. #define PHYRX_RSSI_LEGACY_8_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  272. #define PHYRX_RSSI_LEGACY_9_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000024
  273. #define PHYRX_RSSI_LEGACY_9_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  274. #define PHYRX_RSSI_LEGACY_9_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  275. #define PHYRX_RSSI_LEGACY_10_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000028
  276. #define PHYRX_RSSI_LEGACY_10_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  277. #define PHYRX_RSSI_LEGACY_10_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  278. #define PHYRX_RSSI_LEGACY_11_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000002c
  279. #define PHYRX_RSSI_LEGACY_11_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  280. #define PHYRX_RSSI_LEGACY_11_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  281. #define PHYRX_RSSI_LEGACY_12_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000030
  282. #define PHYRX_RSSI_LEGACY_12_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  283. #define PHYRX_RSSI_LEGACY_12_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  284. #define PHYRX_RSSI_LEGACY_13_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000034
  285. #define PHYRX_RSSI_LEGACY_13_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  286. #define PHYRX_RSSI_LEGACY_13_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  287. #define PHYRX_RSSI_LEGACY_14_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000038
  288. #define PHYRX_RSSI_LEGACY_14_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  289. #define PHYRX_RSSI_LEGACY_14_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  290. #define PHYRX_RSSI_LEGACY_15_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000003c
  291. #define PHYRX_RSSI_LEGACY_15_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  292. #define PHYRX_RSSI_LEGACY_15_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  293. #define PHYRX_RSSI_LEGACY_16_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000040
  294. #define PHYRX_RSSI_LEGACY_16_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  295. #define PHYRX_RSSI_LEGACY_16_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  296. #define PHYRX_RSSI_LEGACY_17_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000044
  297. #define PHYRX_RSSI_LEGACY_17_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  298. #define PHYRX_RSSI_LEGACY_17_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  299. #define PHYRX_RSSI_LEGACY_18_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000048
  300. #define PHYRX_RSSI_LEGACY_18_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
  301. #define PHYRX_RSSI_LEGACY_18_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
  302. #define PHYRX_RSSI_LEGACY_19_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000004c
  303. #define PHYRX_RSSI_LEGACY_19_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  304. #define PHYRX_RSSI_LEGACY_19_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  305. #define PHYRX_RSSI_LEGACY_20_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000050
  306. #define PHYRX_RSSI_LEGACY_20_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  307. #define PHYRX_RSSI_LEGACY_20_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  308. #define PHYRX_RSSI_LEGACY_21_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000054
  309. #define PHYRX_RSSI_LEGACY_21_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  310. #define PHYRX_RSSI_LEGACY_21_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  311. #define PHYRX_RSSI_LEGACY_22_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000058
  312. #define PHYRX_RSSI_LEGACY_22_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  313. #define PHYRX_RSSI_LEGACY_22_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  314. #define PHYRX_RSSI_LEGACY_23_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000005c
  315. #define PHYRX_RSSI_LEGACY_23_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  316. #define PHYRX_RSSI_LEGACY_23_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  317. #define PHYRX_RSSI_LEGACY_24_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000060
  318. #define PHYRX_RSSI_LEGACY_24_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  319. #define PHYRX_RSSI_LEGACY_24_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  320. #define PHYRX_RSSI_LEGACY_25_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000064
  321. #define PHYRX_RSSI_LEGACY_25_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  322. #define PHYRX_RSSI_LEGACY_25_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  323. #define PHYRX_RSSI_LEGACY_26_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000068
  324. #define PHYRX_RSSI_LEGACY_26_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  325. #define PHYRX_RSSI_LEGACY_26_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  326. #define PHYRX_RSSI_LEGACY_27_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000006c
  327. #define PHYRX_RSSI_LEGACY_27_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  328. #define PHYRX_RSSI_LEGACY_27_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  329. #define PHYRX_RSSI_LEGACY_28_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000070
  330. #define PHYRX_RSSI_LEGACY_28_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  331. #define PHYRX_RSSI_LEGACY_28_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  332. #define PHYRX_RSSI_LEGACY_29_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000074
  333. #define PHYRX_RSSI_LEGACY_29_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  334. #define PHYRX_RSSI_LEGACY_29_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  335. #define PHYRX_RSSI_LEGACY_30_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000078
  336. #define PHYRX_RSSI_LEGACY_30_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  337. #define PHYRX_RSSI_LEGACY_30_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  338. #define PHYRX_RSSI_LEGACY_31_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000007c
  339. #define PHYRX_RSSI_LEGACY_31_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  340. #define PHYRX_RSSI_LEGACY_31_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  341. #define PHYRX_RSSI_LEGACY_32_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000080
  342. #define PHYRX_RSSI_LEGACY_32_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  343. #define PHYRX_RSSI_LEGACY_32_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  344. #define PHYRX_RSSI_LEGACY_33_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000084
  345. #define PHYRX_RSSI_LEGACY_33_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  346. #define PHYRX_RSSI_LEGACY_33_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  347. #define PHYRX_RSSI_LEGACY_34_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000088
  348. #define PHYRX_RSSI_LEGACY_34_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
  349. #define PHYRX_RSSI_LEGACY_34_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
  350. /* Description PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB
  351. Combined pre_rssi of all chains. Based on primary
  352. channel RSSI.
  353. RSSI is reported as 8b signed values. Nominally value is
  354. in dB units above or below the noisefloor(minCCApwr).
  355. The resolution can be:
  356. 1dB or 0.5dB. This is statically configured within the
  357. PHY and MAC
  358. In case of 1dB, the Range is:
  359. -128dB to 127dB
  360. In case of 0.5dB, the Range is:
  361. -64dB to 63.5dB
  362. <legal all>
  363. */
  364. #define PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB_OFFSET 0x0000008c
  365. #define PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB_LSB 0
  366. #define PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB_MASK 0x000000ff
  367. /* Description PHYRX_RSSI_LEGACY_35_RSSI_COMB
  368. Combined rssi of all chains. Based on primary channel
  369. RSSI.
  370. RSSI is reported as 8b signed values. Nominally value is
  371. in dB units above or below the noisefloor(minCCApwr).
  372. The resolution can be:
  373. 1dB or 0.5dB. This is statically configured within the
  374. PHY and MAC
  375. In case of 1dB, the Range is:
  376. -128dB to 127dB
  377. In case of 0.5dB, the Range is:
  378. -64dB to 63.5dB
  379. <legal all>
  380. */
  381. #define PHYRX_RSSI_LEGACY_35_RSSI_COMB_OFFSET 0x0000008c
  382. #define PHYRX_RSSI_LEGACY_35_RSSI_COMB_LSB 8
  383. #define PHYRX_RSSI_LEGACY_35_RSSI_COMB_MASK 0x0000ff00
  384. /* Description PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB
  385. Combined pre_rssi of all chains, but normalized back to
  386. a single chain. This avoids PDG from having to evaluate this
  387. in combination with receive chain mask and perform all kinds
  388. of pre-processing algorithms.
  389. Based on primary channel RSSI.
  390. RSSI is reported as 8b signed values. Nominally value is
  391. in dB units above or below the noisefloor(minCCApwr).
  392. The resolution can be:
  393. 1dB or 0.5dB. This is statically configured within the
  394. PHY and MAC
  395. In case of 1dB, the Range is:
  396. -128dB to 127dB
  397. In case of 0.5dB, the Range is:
  398. -64dB to 63.5dB
  399. <legal all>
  400. */
  401. #define PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB_OFFSET 0x0000008c
  402. #define PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB_LSB 16
  403. #define PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB_MASK 0x00ff0000
  404. /* Description PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB
  405. Combined rssi of all chains, but normalized back to a
  406. single chain. This avoids PDG from having to evaluate this
  407. in combination with receive chain mask and perform all kinds
  408. of pre-processing algorithms.
  409. Based on primary channel RSSI.
  410. RSSI is reported as 8b signed values. Nominally value is
  411. in dB units above or below the noisefloor(minCCApwr).
  412. The resolution can be:
  413. 1dB or 0.5dB. This is statically configured within the
  414. PHY and MAC
  415. In case of 1dB, the Range is:
  416. -128dB to 127dB
  417. In case of 0.5dB, the Range is:
  418. -64dB to 63.5dB
  419. <legal all>
  420. */
  421. #define PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB_OFFSET 0x0000008c
  422. #define PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB_LSB 24
  423. #define PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB_MASK 0xff000000
  424. #endif // _PHYRX_RSSI_LEGACY_H_