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 
19 #ifndef _PHYRX_RSSI_LEGACY_H_
20 #define _PHYRX_RSSI_LEGACY_H_
21 #if !defined(__ASSEMBLER__)
22 #endif
23 
24 #include "receive_rssi_info.h"
25 
26 // ################ START SUMMARY #################
27 //
28 //	Dword	Fields
29 //	0	reception_type[3:0], reserved_0[5:4], receive_bandwidth[7:6], rx_chain_mask[15:8], phy_ppdu_id[31:16]
30 //	1	sw_phy_meta_data[31:0]
31 //	2	ppdu_start_timestamp[31:0]
32 //	3-18	struct receive_rssi_info pre_rssi_info_details;
33 //	19-34	struct receive_rssi_info preamble_rssi_info_details;
34 //	35	pre_rssi_comb[7:0], rssi_comb[15:8], normalized_pre_rssi_comb[23:16], normalized_rssi_comb[31:24]
35 //
36 // ################ END SUMMARY #################
37 
38 #define NUM_OF_DWORDS_PHYRX_RSSI_LEGACY 36
39 
40 struct phyrx_rssi_legacy {
41              uint32_t reception_type                  :  4, //[3:0]
42                       reserved_0                      :  2, //[5:4]
43                       receive_bandwidth               :  2, //[7:6]
44                       rx_chain_mask                   :  8, //[15:8]
45                       phy_ppdu_id                     : 16; //[31:16]
46              uint32_t sw_phy_meta_data                : 32; //[31:0]
47              uint32_t ppdu_start_timestamp            : 32; //[31:0]
48     struct            receive_rssi_info                       pre_rssi_info_details;
49     struct            receive_rssi_info                       preamble_rssi_info_details;
50              uint32_t pre_rssi_comb                   :  8, //[7:0]
51                       rssi_comb                       :  8, //[15:8]
52                       normalized_pre_rssi_comb        :  8, //[23:16]
53                       normalized_rssi_comb            :  8; //[31:24]
54 };
55 
56 /*
57 
58 reception_type
59 
60 			This field helps MAC SW determine which field in this
61 			(and following TLVs) will contain valid information. For
62 			example some RSSI info not valid in case of uplink_ofdma..
63 
64 			<enum 0 reception_is_uplink_ofdma>
65 
66 			<enum 1 reception_is_uplink_mimo>
67 
68 			<enum 2 reception_is_other>
69 
70 			<enum 3 reception_is_frameless> PHY RX has been
71 			instructed in advance that the upcoming reception is
72 			frameless. This implieas that in advance it is known that
73 			all frames will collide in the medium, and nothing can be
74 			properly decoded... This can happen during the CTS reception
75 			in response to the triggered MU-RTS transmission.
76 
77 			MAC takes no action when seeing this e_num. For the
78 			frameless reception the indication in pkt_end is the final
79 			one evaluated by the MAC
80 
81 			<legal 0-3>
82 
83 reserved_0
84 
85 			<legal 0>
86 
87 receive_bandwidth
88 
89 			Full receive Bandwidth
90 
91 
92 
93 			<enum 0     full_rx_bw_20_mhz>
94 
95 			<enum 1      full_rx_bw_40_mhz>
96 
97 			<enum 2      full_rx_bw_80_mhz>
98 
99 			<enum 3      full_rx_bw_160_mhz>
100 
101 
102 
103 			<legal 0-3>
104 
105 rx_chain_mask
106 
107 			The chain mask at the start of the reception of this
108 			frame.
109 
110 
111 
112 			each bit is one antenna
113 
114 			0: the chain is NOT used
115 
116 			1: the chain is used
117 
118 
119 
120 			Supports up to 8 chains
121 
122 
123 
124 			Used in 11ax TPC calculations for UL OFDMA/MIMO and has
125 			to be in sync with the rssi_comb value as this is also used
126 			by the MAC for the TPC calculations.
127 
128 			<legal all>
129 
130 phy_ppdu_id
131 
132 			A ppdu counter value that PHY increments for every PPDU
133 			received. The counter value wraps around
134 
135 			<legal all>
136 
137 sw_phy_meta_data
138 
139 			32 bit Meta data that SW can program in a 32 bit PHY
140 			register and PHY will insert the value in every
141 			RX_RSSI_LEGACY TLV that it generates.
142 
143 			SW uses this field to embed among other things some SW
144 			channel info.
145 
146 ppdu_start_timestamp
147 
148 			Timestamp that indicates when the PPDU that contained
149 			this MPDU started on the medium.
150 
151 
152 
153 			Note that PHY will detect the start later, and will have
154 			to derive out of the preamble info when the frame actually
155 			appeared on the medium
156 
157 			<legal 0- 10>
158 
159 struct receive_rssi_info pre_rssi_info_details
160 
161 			This field is not valid when reception_is_uplink_ofdma
162 
163 
164 
165 			Overview of the pre-RSSI values. That is RSSI values
166 			measured on the medium before this reception started.
167 
168 struct receive_rssi_info preamble_rssi_info_details
169 
170 			This field is not valid when reception_is_uplink_ofdma
171 
172 
173 
174 			Overview of the RSSI values measured during the
175 			pre-amble phase of this reception
176 
177 pre_rssi_comb
178 
179 			Combined pre_rssi of all chains. Based on primary
180 			channel RSSI.
181 
182 
183 
184 			RSSI is reported as 8b signed values. Nominally value is
185 			in dB units above or below the noisefloor(minCCApwr).
186 
187 
188 
189 			The resolution can be:
190 
191 			1dB or 0.5dB. This is statically configured within the
192 			PHY and MAC
193 
194 
195 
196 			In case of 1dB, the Range is:
197 
198 			 -128dB to 127dB
199 
200 
201 
202 			In case of 0.5dB, the Range is:
203 
204 			 -64dB to 63.5dB
205 
206 
207 
208 			<legal all>
209 
210 rssi_comb
211 
212 			Combined rssi of all chains. Based on primary channel
213 			RSSI.
214 
215 
216 
217 			RSSI is reported as 8b signed values. Nominally value is
218 			in dB units above or below the noisefloor(minCCApwr).
219 
220 
221 
222 			The resolution can be:
223 
224 			1dB or 0.5dB. This is statically configured within the
225 			PHY and MAC
226 
227 
228 
229 			In case of 1dB, the Range is:
230 
231 			 -128dB to 127dB
232 
233 
234 
235 			In case of 0.5dB, the Range is:
236 
237 			 -64dB to 63.5dB
238 
239 
240 
241 			<legal all>
242 
243 normalized_pre_rssi_comb
244 
245 			Combined pre_rssi of all chains, but normalized back to
246 			a single chain. This avoids PDG from having to evaluate this
247 			in combination with receive chain mask and perform all kinds
248 			of pre-processing algorithms.
249 
250 
251 
252 			Based on primary channel RSSI.
253 
254 
255 
256 			RSSI is reported as 8b signed values. Nominally value is
257 			in dB units above or below the noisefloor(minCCApwr).
258 
259 
260 
261 			The resolution can be:
262 
263 			1dB or 0.5dB. This is statically configured within the
264 			PHY and MAC
265 
266 
267 
268 			In case of 1dB, the Range is:
269 
270 			 -128dB to 127dB
271 
272 
273 
274 			In case of 0.5dB, the Range is:
275 
276 			 -64dB to 63.5dB
277 
278 
279 
280 			<legal all>
281 
282 normalized_rssi_comb
283 
284 			Combined rssi of all chains, but normalized back to a
285 			single chain. This avoids PDG from having to evaluate this
286 			in combination with receive chain mask and perform all kinds
287 			of pre-processing algorithms.
288 
289 
290 
291 			Based on primary channel RSSI.
292 
293 
294 
295 			RSSI is reported as 8b signed values. Nominally value is
296 			in dB units above or below the noisefloor(minCCApwr).
297 
298 
299 
300 			The resolution can be:
301 
302 			1dB or 0.5dB. This is statically configured within the
303 			PHY and MAC
304 
305 			In case of 1dB, the Range is:
306 
307 			 -128dB to 127dB
308 
309 
310 
311 			In case of 0.5dB, the Range is:
312 
313 			 -64dB to 63.5dB
314 
315 
316 
317 			<legal all>
318 */
319 
320 
321 /* Description		PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE
322 
323 			This field helps MAC SW determine which field in this
324 			(and following TLVs) will contain valid information. For
325 			example some RSSI info not valid in case of uplink_ofdma..
326 
327 			<enum 0 reception_is_uplink_ofdma>
328 
329 			<enum 1 reception_is_uplink_mimo>
330 
331 			<enum 2 reception_is_other>
332 
333 			<enum 3 reception_is_frameless> PHY RX has been
334 			instructed in advance that the upcoming reception is
335 			frameless. This implieas that in advance it is known that
336 			all frames will collide in the medium, and nothing can be
337 			properly decoded... This can happen during the CTS reception
338 			in response to the triggered MU-RTS transmission.
339 
340 			MAC takes no action when seeing this e_num. For the
341 			frameless reception the indication in pkt_end is the final
342 			one evaluated by the MAC
343 
344 			<legal 0-3>
345 */
346 #define PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE_OFFSET                    0x00000000
347 #define PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE_LSB                       0
348 #define PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE_MASK                      0x0000000f
349 
350 /* Description		PHYRX_RSSI_LEGACY_0_RESERVED_0
351 
352 			<legal 0>
353 */
354 #define PHYRX_RSSI_LEGACY_0_RESERVED_0_OFFSET                        0x00000000
355 #define PHYRX_RSSI_LEGACY_0_RESERVED_0_LSB                           4
356 #define PHYRX_RSSI_LEGACY_0_RESERVED_0_MASK                          0x00000030
357 
358 /* Description		PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH
359 
360 			Full receive Bandwidth
361 
362 
363 
364 			<enum 0     full_rx_bw_20_mhz>
365 
366 			<enum 1      full_rx_bw_40_mhz>
367 
368 			<enum 2      full_rx_bw_80_mhz>
369 
370 			<enum 3      full_rx_bw_160_mhz>
371 
372 
373 
374 			<legal 0-3>
375 */
376 #define PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH_OFFSET                 0x00000000
377 #define PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH_LSB                    6
378 #define PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH_MASK                   0x000000c0
379 
380 /* Description		PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK
381 
382 			The chain mask at the start of the reception of this
383 			frame.
384 
385 
386 
387 			each bit is one antenna
388 
389 			0: the chain is NOT used
390 
391 			1: the chain is used
392 
393 
394 
395 			Supports up to 8 chains
396 
397 
398 
399 			Used in 11ax TPC calculations for UL OFDMA/MIMO and has
400 			to be in sync with the rssi_comb value as this is also used
401 			by the MAC for the TPC calculations.
402 
403 			<legal all>
404 */
405 #define PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK_OFFSET                     0x00000000
406 #define PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK_LSB                        8
407 #define PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK_MASK                       0x0000ff00
408 
409 /* Description		PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID
410 
411 			A ppdu counter value that PHY increments for every PPDU
412 			received. The counter value wraps around
413 
414 			<legal all>
415 */
416 #define PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID_OFFSET                       0x00000000
417 #define PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID_LSB                          16
418 #define PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID_MASK                         0xffff0000
419 
420 /* Description		PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA
421 
422 			32 bit Meta data that SW can program in a 32 bit PHY
423 			register and PHY will insert the value in every
424 			RX_RSSI_LEGACY TLV that it generates.
425 
426 			SW uses this field to embed among other things some SW
427 			channel info.
428 */
429 #define PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA_OFFSET                  0x00000004
430 #define PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA_LSB                     0
431 #define PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA_MASK                    0xffffffff
432 
433 /* Description		PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP
434 
435 			Timestamp that indicates when the PPDU that contained
436 			this MPDU started on the medium.
437 
438 
439 
440 			Note that PHY will detect the start later, and will have
441 			to derive out of the preamble info when the frame actually
442 			appeared on the medium
443 
444 			<legal 0- 10>
445 */
446 #define PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP_OFFSET              0x00000008
447 #define PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP_LSB                 0
448 #define PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP_MASK                0xffffffff
449 #define PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000000c
450 #define PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
451 #define PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
452 #define PHYRX_RSSI_LEGACY_4_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000010
453 #define PHYRX_RSSI_LEGACY_4_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
454 #define PHYRX_RSSI_LEGACY_4_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
455 #define PHYRX_RSSI_LEGACY_5_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000014
456 #define PHYRX_RSSI_LEGACY_5_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
457 #define PHYRX_RSSI_LEGACY_5_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
458 #define PHYRX_RSSI_LEGACY_6_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000018
459 #define PHYRX_RSSI_LEGACY_6_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
460 #define PHYRX_RSSI_LEGACY_6_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
461 #define PHYRX_RSSI_LEGACY_7_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000001c
462 #define PHYRX_RSSI_LEGACY_7_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
463 #define PHYRX_RSSI_LEGACY_7_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
464 #define PHYRX_RSSI_LEGACY_8_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000020
465 #define PHYRX_RSSI_LEGACY_8_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
466 #define PHYRX_RSSI_LEGACY_8_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
467 #define PHYRX_RSSI_LEGACY_9_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000024
468 #define PHYRX_RSSI_LEGACY_9_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
469 #define PHYRX_RSSI_LEGACY_9_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
470 #define PHYRX_RSSI_LEGACY_10_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000028
471 #define PHYRX_RSSI_LEGACY_10_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
472 #define PHYRX_RSSI_LEGACY_10_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
473 #define PHYRX_RSSI_LEGACY_11_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000002c
474 #define PHYRX_RSSI_LEGACY_11_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
475 #define PHYRX_RSSI_LEGACY_11_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
476 #define PHYRX_RSSI_LEGACY_12_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000030
477 #define PHYRX_RSSI_LEGACY_12_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
478 #define PHYRX_RSSI_LEGACY_12_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
479 #define PHYRX_RSSI_LEGACY_13_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000034
480 #define PHYRX_RSSI_LEGACY_13_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
481 #define PHYRX_RSSI_LEGACY_13_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
482 #define PHYRX_RSSI_LEGACY_14_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000038
483 #define PHYRX_RSSI_LEGACY_14_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
484 #define PHYRX_RSSI_LEGACY_14_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
485 #define PHYRX_RSSI_LEGACY_15_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000003c
486 #define PHYRX_RSSI_LEGACY_15_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
487 #define PHYRX_RSSI_LEGACY_15_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
488 #define PHYRX_RSSI_LEGACY_16_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000040
489 #define PHYRX_RSSI_LEGACY_16_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
490 #define PHYRX_RSSI_LEGACY_16_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
491 #define PHYRX_RSSI_LEGACY_17_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000044
492 #define PHYRX_RSSI_LEGACY_17_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
493 #define PHYRX_RSSI_LEGACY_17_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
494 #define PHYRX_RSSI_LEGACY_18_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000048
495 #define PHYRX_RSSI_LEGACY_18_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
496 #define PHYRX_RSSI_LEGACY_18_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
497 #define PHYRX_RSSI_LEGACY_19_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000004c
498 #define PHYRX_RSSI_LEGACY_19_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
499 #define PHYRX_RSSI_LEGACY_19_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
500 #define PHYRX_RSSI_LEGACY_20_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000050
501 #define PHYRX_RSSI_LEGACY_20_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
502 #define PHYRX_RSSI_LEGACY_20_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
503 #define PHYRX_RSSI_LEGACY_21_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000054
504 #define PHYRX_RSSI_LEGACY_21_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
505 #define PHYRX_RSSI_LEGACY_21_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
506 #define PHYRX_RSSI_LEGACY_22_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000058
507 #define PHYRX_RSSI_LEGACY_22_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
508 #define PHYRX_RSSI_LEGACY_22_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
509 #define PHYRX_RSSI_LEGACY_23_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000005c
510 #define PHYRX_RSSI_LEGACY_23_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
511 #define PHYRX_RSSI_LEGACY_23_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
512 #define PHYRX_RSSI_LEGACY_24_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000060
513 #define PHYRX_RSSI_LEGACY_24_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
514 #define PHYRX_RSSI_LEGACY_24_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
515 #define PHYRX_RSSI_LEGACY_25_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000064
516 #define PHYRX_RSSI_LEGACY_25_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
517 #define PHYRX_RSSI_LEGACY_25_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
518 #define PHYRX_RSSI_LEGACY_26_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000068
519 #define PHYRX_RSSI_LEGACY_26_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
520 #define PHYRX_RSSI_LEGACY_26_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
521 #define PHYRX_RSSI_LEGACY_27_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000006c
522 #define PHYRX_RSSI_LEGACY_27_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
523 #define PHYRX_RSSI_LEGACY_27_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
524 #define PHYRX_RSSI_LEGACY_28_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000070
525 #define PHYRX_RSSI_LEGACY_28_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
526 #define PHYRX_RSSI_LEGACY_28_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
527 #define PHYRX_RSSI_LEGACY_29_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000074
528 #define PHYRX_RSSI_LEGACY_29_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
529 #define PHYRX_RSSI_LEGACY_29_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
530 #define PHYRX_RSSI_LEGACY_30_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000078
531 #define PHYRX_RSSI_LEGACY_30_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
532 #define PHYRX_RSSI_LEGACY_30_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
533 #define PHYRX_RSSI_LEGACY_31_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000007c
534 #define PHYRX_RSSI_LEGACY_31_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
535 #define PHYRX_RSSI_LEGACY_31_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
536 #define PHYRX_RSSI_LEGACY_32_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000080
537 #define PHYRX_RSSI_LEGACY_32_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
538 #define PHYRX_RSSI_LEGACY_32_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
539 #define PHYRX_RSSI_LEGACY_33_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000084
540 #define PHYRX_RSSI_LEGACY_33_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
541 #define PHYRX_RSSI_LEGACY_33_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
542 #define PHYRX_RSSI_LEGACY_34_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000088
543 #define PHYRX_RSSI_LEGACY_34_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
544 #define PHYRX_RSSI_LEGACY_34_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
545 
546 /* Description		PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB
547 
548 			Combined pre_rssi of all chains. Based on primary
549 			channel RSSI.
550 
551 
552 
553 			RSSI is reported as 8b signed values. Nominally value is
554 			in dB units above or below the noisefloor(minCCApwr).
555 
556 
557 
558 			The resolution can be:
559 
560 			1dB or 0.5dB. This is statically configured within the
561 			PHY and MAC
562 
563 
564 
565 			In case of 1dB, the Range is:
566 
567 			 -128dB to 127dB
568 
569 
570 
571 			In case of 0.5dB, the Range is:
572 
573 			 -64dB to 63.5dB
574 
575 
576 
577 			<legal all>
578 */
579 #define PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB_OFFSET                    0x0000008c
580 #define PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB_LSB                       0
581 #define PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB_MASK                      0x000000ff
582 
583 /* Description		PHYRX_RSSI_LEGACY_35_RSSI_COMB
584 
585 			Combined rssi of all chains. Based on primary channel
586 			RSSI.
587 
588 
589 
590 			RSSI is reported as 8b signed values. Nominally value is
591 			in dB units above or below the noisefloor(minCCApwr).
592 
593 
594 
595 			The resolution can be:
596 
597 			1dB or 0.5dB. This is statically configured within the
598 			PHY and MAC
599 
600 
601 
602 			In case of 1dB, the Range is:
603 
604 			 -128dB to 127dB
605 
606 
607 
608 			In case of 0.5dB, the Range is:
609 
610 			 -64dB to 63.5dB
611 
612 
613 
614 			<legal all>
615 */
616 #define PHYRX_RSSI_LEGACY_35_RSSI_COMB_OFFSET                        0x0000008c
617 #define PHYRX_RSSI_LEGACY_35_RSSI_COMB_LSB                           8
618 #define PHYRX_RSSI_LEGACY_35_RSSI_COMB_MASK                          0x0000ff00
619 
620 /* Description		PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB
621 
622 			Combined pre_rssi of all chains, but normalized back to
623 			a single chain. This avoids PDG from having to evaluate this
624 			in combination with receive chain mask and perform all kinds
625 			of pre-processing algorithms.
626 
627 
628 
629 			Based on primary channel RSSI.
630 
631 
632 
633 			RSSI is reported as 8b signed values. Nominally value is
634 			in dB units above or below the noisefloor(minCCApwr).
635 
636 
637 
638 			The resolution can be:
639 
640 			1dB or 0.5dB. This is statically configured within the
641 			PHY and MAC
642 
643 
644 
645 			In case of 1dB, the Range is:
646 
647 			 -128dB to 127dB
648 
649 
650 
651 			In case of 0.5dB, the Range is:
652 
653 			 -64dB to 63.5dB
654 
655 
656 
657 			<legal all>
658 */
659 #define PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB_OFFSET         0x0000008c
660 #define PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB_LSB            16
661 #define PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB_MASK           0x00ff0000
662 
663 /* Description		PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB
664 
665 			Combined rssi of all chains, but normalized back to a
666 			single chain. This avoids PDG from having to evaluate this
667 			in combination with receive chain mask and perform all kinds
668 			of pre-processing algorithms.
669 
670 
671 
672 			Based on primary channel RSSI.
673 
674 
675 
676 			RSSI is reported as 8b signed values. Nominally value is
677 			in dB units above or below the noisefloor(minCCApwr).
678 
679 
680 
681 			The resolution can be:
682 
683 			1dB or 0.5dB. This is statically configured within the
684 			PHY and MAC
685 
686 			In case of 1dB, the Range is:
687 
688 			 -128dB to 127dB
689 
690 
691 
692 			In case of 0.5dB, the Range is:
693 
694 			 -64dB to 63.5dB
695 
696 
697 
698 			<legal all>
699 */
700 #define PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB_OFFSET             0x0000008c
701 #define PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB_LSB                24
702 #define PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB_MASK               0xff000000
703 
704 
705 #endif // _PHYRX_RSSI_LEGACY_H_
706