xref: /wlan-driver/fw-api/hw/qca6490/v1/rx_location_info.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2019 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 //
20 // DO NOT EDIT!  This file is automatically generated
21 //               These definitions are tied to a particular hardware layout
22 
23 
24 #ifndef _RX_LOCATION_INFO_H_
25 #define _RX_LOCATION_INFO_H_
26 #if !defined(__ASSEMBLER__)
27 #endif
28 
29 
30 // ################ START SUMMARY #################
31 //
32 //	Dword	Fields
33 //	0	rtt_fac_legacy[15:0], rtt_fac_legacy_ext80[31:16]
34 //	1	rtt_fac_vht[15:0], rtt_fac_vht_ext80[31:16]
35 //	2	rtt_fac_legacy_status[0], rtt_fac_legacy_ext80_status[1], rtt_fac_vht_status[2], rtt_fac_vht_ext80_status[3], rtt_fac_sifs[15:4], rtt_fac_sifs_status[17:16], rtt_cfr_status[18], rtt_cir_status[19], rtt_channel_dump_size[30:20], rtt_hw_ifft_mode[31]
36 //	3	rtt_btcf_status[0], rtt_preamble_type[5:1], rtt_pkt_bw_leg[7:6], rtt_pkt_bw_vht[9:8], rtt_gi_type[11:10], rtt_mcs_rate[16:12], rtt_strongest_chain[19:17], rtt_strongest_chain_ext80[22:20], rtt_rx_chain_mask[30:23], reserved_3[31]
37 //	4	rx_start_ts[31:0]
38 //	5	rx_end_ts[31:0]
39 //	6	sfo_phase_pkt_start[11:0], sfo_phase_pkt_end[23:12], rtt_che_buffer_pointer_high8[31:24]
40 //	7	rtt_che_buffer_pointer_low32[31:0]
41 //	8	rtt_cfo_measurement[13:0], rtt_chan_spread[21:14], rtt_timing_backoff_sel[23:22], reserved_8[30:24], rx_location_info_valid[31]
42 //
43 // ################ END SUMMARY #################
44 
45 #define NUM_OF_DWORDS_RX_LOCATION_INFO 9
46 
47 struct rx_location_info {
48              uint32_t rtt_fac_legacy                  : 16, //[15:0]
49                       rtt_fac_legacy_ext80            : 16; //[31:16]
50              uint32_t rtt_fac_vht                     : 16, //[15:0]
51                       rtt_fac_vht_ext80               : 16; //[31:16]
52              uint32_t rtt_fac_legacy_status           :  1, //[0]
53                       rtt_fac_legacy_ext80_status     :  1, //[1]
54                       rtt_fac_vht_status              :  1, //[2]
55                       rtt_fac_vht_ext80_status        :  1, //[3]
56                       rtt_fac_sifs                    : 12, //[15:4]
57                       rtt_fac_sifs_status             :  2, //[17:16]
58                       rtt_cfr_status                  :  1, //[18]
59                       rtt_cir_status                  :  1, //[19]
60                       rtt_channel_dump_size           : 11, //[30:20]
61                       rtt_hw_ifft_mode                :  1; //[31]
62              uint32_t rtt_btcf_status                 :  1, //[0]
63                       rtt_preamble_type               :  5, //[5:1]
64                       rtt_pkt_bw_leg                  :  2, //[7:6]
65                       rtt_pkt_bw_vht                  :  2, //[9:8]
66                       rtt_gi_type                     :  2, //[11:10]
67                       rtt_mcs_rate                    :  5, //[16:12]
68                       rtt_strongest_chain             :  3, //[19:17]
69                       rtt_strongest_chain_ext80       :  3, //[22:20]
70                       rtt_rx_chain_mask               :  8, //[30:23]
71                       reserved_3                      :  1; //[31]
72              uint32_t rx_start_ts                     : 32; //[31:0]
73              uint32_t rx_end_ts                       : 32; //[31:0]
74              uint32_t sfo_phase_pkt_start             : 12, //[11:0]
75                       sfo_phase_pkt_end               : 12, //[23:12]
76                       rtt_che_buffer_pointer_high8    :  8; //[31:24]
77              uint32_t rtt_che_buffer_pointer_low32    : 32; //[31:0]
78              uint32_t rtt_cfo_measurement             : 14, //[13:0]
79                       rtt_chan_spread                 :  8, //[21:14]
80                       rtt_timing_backoff_sel          :  2, //[23:22]
81                       reserved_8                      :  7, //[30:24]
82                       rx_location_info_valid          :  1; //[31]
83 };
84 
85 /*
86 
87 rtt_fac_legacy
88 
89 			For 20/40/80, this field shows the RTT first arrival
90 			correction value computed from L-LTF on the first selected
91 			Rx chain
92 
93 
94 
95 			For 80+80, this field shows the RTT first arrival
96 			correction value computed from L-LTF on pri80 on the
97 			selected pri80 Rx chain
98 
99 
100 
101 			16 bits, signed 12.4. 12 bits integer to cover -6.4us to
102 			6.4us, and 4 bits fraction to cover pri80 and 32x FAC
103 			interpolation
104 
105 
106 
107 			clock unit is 320MHz
108 
109 			<legal all>
110 
111 rtt_fac_legacy_ext80
112 
113 			For 20/40/80, this field shows the RTT first arrival
114 			correction value computed from L-LTF on the second selected
115 			Rx chain
116 
117 
118 
119 			For 80+80, this field shows the RTT first arrival
120 			correction value computed from L-LTF on ext80 on the
121 			selected ext80 Rx chain
122 
123 
124 
125 			16 bits, signed 12.4. 12 bits integer to cover -6.4us to
126 			6.4us, and 4 bits fraction to cover ext80 and 32x FAC
127 			interpolation
128 
129 
130 
131 			clock unit is 320MHz
132 
133 			<legal all>
134 
135 rtt_fac_vht
136 
137 			For 20/40/80, this field shows the RTT first arrival
138 			correction value computed from (V)HT/HE-LTF on the first
139 			selected Rx chain
140 
141 
142 
143 			For 80+80, this field shows the RTT first arrival
144 			correction value computed from (V)HT/HE-LTF on pri80 on the
145 			selected pri80 Rx chain
146 
147 
148 
149 			16 bits, signed 12.4. 12 bits integer to cover -6.4us to
150 			6.4us, and 4 bits fraction to cover pri80 and 32x FAC
151 			interpolation
152 
153 
154 
155 			clock unit is 320MHz
156 
157 			<legal all>
158 
159 rtt_fac_vht_ext80
160 
161 			For 20/40/80, this field shows the RTT first arrival
162 			correction value computed from (V)HT/HE-LTF on the second
163 			selected Rx chain
164 
165 
166 
167 			For 80+80, this field shows the RTT first arrival
168 			correction value computed from (V)HT/HE-LTF on ext80 on the
169 			selected ext80 Rx chain
170 
171 
172 
173 			16 bits, signed 12.4. 12 bits integer to cover -6.4us to
174 			6.4us, and 4 bits fraction to cover ext80 and 32x FAC
175 			interpolation
176 
177 
178 
179 			clock unit is 320MHz
180 
181 			<legal all>
182 
183 rtt_fac_legacy_status
184 
185 			Status of rtt_fac_legacy
186 
187 
188 
189 			<enum 0 location_fac_legacy_status_not_valid>
190 
191 			<enum 1 location_fac_legacy_status_valid>
192 
193 			<legal all>
194 
195 rtt_fac_legacy_ext80_status
196 
197 			Status of rtt_fac_legacy_ext80
198 
199 
200 
201 			<enum 0 location_fac_legacy_ext80_status_not_valid>
202 
203 			<enum 1 location_fac_legacy_ext80_status_valid>
204 
205 			<legal all>
206 
207 rtt_fac_vht_status
208 
209 			Status of rtt_fac_vht
210 
211 
212 
213 			<enum 0 location_fac_vht_status_not_valid>
214 
215 			<enum 1 location_fac_vht_status_valid>
216 
217 			<legal all>
218 
219 rtt_fac_vht_ext80_status
220 
221 			Status of rtt_fac_vht_ext80
222 
223 
224 
225 			<enum 0 location_fac_vht_ext80_status_not_valid>
226 
227 			<enum 1 location_fac_vht_ext80_status_valid>
228 
229 			<legal all>
230 
231 rtt_fac_sifs
232 
233 			To support fine SIFS adjustment, need to provide FAC
234 			value @ integer number of 320 MHz clock cycles to MAC.  It
235 			is from L-LTF if it is a Legacy packet and from (V)HT/HE-LTF
236 			if it is a (V)HT/HE packet
237 
238 
239 
240 			12 bits, signed, no fractional part
241 
242 			<legal all>
243 
244 rtt_fac_sifs_status
245 
246 			Status of rtt_fac_sifs
247 
248 			0: not valid
249 
250 			1: valid and from L-LTF
251 
252 			2: valid and from (V)HT/HE-LTF
253 
254 			3: reserved
255 
256 			<legal 0-2>
257 
258 rtt_cfr_status
259 
260 			Status of channel frequency response dump
261 
262 
263 
264 			<enum 0 location_CFR_dump_not_valid>
265 
266 			<enum 1 location_CFR_dump_valid>
267 
268 			<legal all>
269 
270 rtt_cir_status
271 
272 			Status of channel impulse response dump
273 
274 
275 
276 			<enum 0 location_CIR_dump_not_valid>
277 
278 			<enum 1 location_CIR_dump_valid>
279 
280 			<legal all>
281 
282 rtt_channel_dump_size
283 
284 			Channel dump size.  It shows how many tones in CFR in
285 			one chain, for example, it will show 52 for Legacy20 and 484
286 			for VHT160
287 
288 
289 
290 			<legal all>
291 
292 rtt_hw_ifft_mode
293 
294 			Indicator showing if HW IFFT mode or SW IFFT mode
295 
296 
297 
298 			<enum 0 location_sw_ifft_mode>
299 
300 			<enum 1 location_hw_ifft_mode>
301 
302 			<legal all>
303 
304 rtt_btcf_status
305 
306 			Indicate if BTCF is used to capture the timestamps
307 
308 
309 
310 			<enum 0 location_not_BTCF_based_ts>
311 
312 			<enum 1 location_BTCF_based_ts>
313 
314 			<legal all>
315 
316 rtt_preamble_type
317 
318 			Indicate preamble type
319 
320 
321 
322 			<enum 0 location_preamble_type_legacy>
323 
324 			<enum 1 location_preamble_type_ht>
325 
326 			<enum 2 location_preamble_type_vht>
327 
328 			<enum 3 location_preamble_type_he_su_4xltf>
329 
330 			<enum 4 location_preamble_type_he_su_2xltf>
331 
332 			<enum 5 location_preamble_type_he_su_1xltf>
333 
334 			<enum 6
335 			location_preamble_type_he_trigger_based_ul_4xltf>
336 
337 			<enum 7
338 			location_preamble_type_he_trigger_based_ul_2xltf>
339 
340 			<enum 8
341 			location_preamble_type_he_trigger_based_ul_1xltf>
342 
343 			<enum 9 location_preamble_type_he_mu_4xltf>
344 
345 			<enum 10 location_preamble_type_he_mu_2xltf>
346 
347 			<enum 11 location_preamble_type_he_mu_1xltf>
348 
349 			<enum 12
350 			location_preamble_type_he_extended_range_su_4xltf>
351 
352 			<enum 13
353 			location_preamble_type_he_extended_range_su_2xltf>
354 
355 			<enum 14
356 			location_preamble_type_he_extended_range_su_1xltf>
357 
358 			<legal 0-14>
359 
360 rtt_pkt_bw_leg
361 
362 			Indicate the bandwidth of L-LTF
363 
364 
365 
366 			<enum 0 location_pkt_bw_20MHz>
367 
368 			<enum 1 location_pkt_bw_40MHz>
369 
370 			<enum 2 location_pkt_bw_80MHz>
371 
372 			<enum 3 location_pkt_bw_160MHz>
373 
374 			<legal all>
375 
376 rtt_pkt_bw_vht
377 
378 			Indicate the bandwidth of (V)HT/HE-LTF
379 
380 
381 
382 			<enum 0 location_pkt_bw_20MHz>
383 
384 			<enum 1 location_pkt_bw_40MHz>
385 
386 			<enum 2 location_pkt_bw_80MHz>
387 
388 			<enum 3 location_pkt_bw_160MHz>
389 
390 			<legal all>
391 
392 rtt_gi_type
393 
394 			Indicate GI (guard interval) type
395 
396 
397 
398 			<enum 0     gi_0_8_us > HE related GI. Can also be used
399 			for HE
400 
401 			<enum 1     gi_0_4_us > HE related GI. Can also be used
402 			for HE
403 
404 			<enum 2     gi_1_6_us > HE related GI
405 
406 			<enum 3     gi_3_2_us > HE related GI
407 
408 			<legal 0 - 3>
409 
410 rtt_mcs_rate
411 
412 			Bits 0~4 indicate MCS rate, if Legacy,
413 
414 			0: 48 Mbps,
415 
416 			1: 24 Mbps,
417 
418 			2: 12 Mbps,
419 
420 			3: 6 Mbps,
421 
422 			4: 54 Mbps,
423 
424 			5: 36 Mbps,
425 
426 			6: 18 Mbps,
427 
428 			7: 9 Mbps,
429 
430 
431 
432 			if HT, 0-7: MCS0-MCS7,
433 
434 			if VHT, 0-9: MCS0-MCS9,
435 
436 
437 			<legal all>
438 
439 rtt_strongest_chain
440 
441 			For 20/40/80, this field shows the first selected Rx
442 			chain that is used in HW IFFT mode
443 
444 
445 
446 			For 80+80, this field shows the selected pri80 Rx chain
447 			that is used in HW IFFT mode
448 
449 
450 
451 			<enum 0 location_strongest_chain_is_0>
452 
453 			<enum 1 location_strongest_chain_is_1>
454 
455 			<enum 2 location_strongest_chain_is_2>
456 
457 			<enum 3 location_strongest_chain_is_3>
458 
459 			<enum 4 location_strongest_chain_is_4>
460 
461 			<enum 5 location_strongest_chain_is_5>
462 
463 			<enum 6 location_strongest_chain_is_6>
464 
465 			<enum 7 location_strongest_chain_is_7>
466 
467 			<legal all>
468 
469 rtt_strongest_chain_ext80
470 
471 			For 20/40/80, this field shows the second selected Rx
472 			chain that is used in HW IFFT mode
473 
474 
475 
476 			For 80+80, this field shows the selected ext80 Rx chain
477 			that is used in HW IFFT mode
478 
479 
480 
481 			<enum 0 location_strongest_chain_is_0>
482 
483 			<enum 1 location_strongest_chain_is_1>
484 
485 			<enum 2 location_strongest_chain_is_2>
486 
487 			<enum 3 location_strongest_chain_is_3>
488 
489 			<enum 4 location_strongest_chain_is_4>
490 
491 			<enum 5 location_strongest_chain_is_5>
492 
493 			<enum 6 location_strongest_chain_is_6>
494 
495 			<enum 7 location_strongest_chain_is_7>
496 
497 			<legal all>
498 
499 rtt_rx_chain_mask
500 
501 			Rx chain mask, each bit is a Rx chain
502 
503 			0: the Rx chain is not used
504 
505 			1: the Rx chain is used
506 
507 			Support up to 8 Rx chains
508 
509 			<legal all>
510 
511 reserved_3
512 
513 			<legal 0>
514 
515 rx_start_ts
516 
517 			RX packet start timestamp
518 
519 
520 
521 			It reports the time the first L-STF ADC sample arrived
522 			at RX antenna
523 
524 
525 
526 			clock unit is 480MHz
527 
528 			<legal all>
529 
530 rx_end_ts
531 
532 			RX packet end timestamp
533 
534 
535 
536 			It reports the time the last symbol's last ADC sample
537 			arrived at RX antenna
538 
539 
540 
541 			clock unit is 480MHz
542 
543 			<legal all>
544 
545 sfo_phase_pkt_start
546 
547 			The phase of the SFO of the first symbol's first FFT
548 			input sample
549 
550 
551 
552 			12 bits, signed 6.6. 6 bits integer to cover -66.7ns to
553 			66.7ns, and 6 bits fraction to provide a resolution of
554 			0.03ns
555 
556 
557 
558 			clock unit is 480MHz
559 
560 			<legal all>
561 
562 sfo_phase_pkt_end
563 
564 			The phase of the SFO of the last symbol's last FFT input
565 			sample
566 
567 
568 
569 			12 bits, signed 6.6. 6 bits integer to cover -66.7ns to
570 			66.7ns, and 6 bits fraction to provide a resolution of
571 			0.03ns
572 
573 
574 
575 			clock unit is 480MHz
576 
577 			<legal all>
578 
579 rtt_che_buffer_pointer_high8
580 
581 			The high 8 bits of the 40 bits pointer pointed to the
582 			external RTT channel information buffer
583 
584 
585 
586 			8 bits
587 
588 			<legal all>
589 
590 rtt_che_buffer_pointer_low32
591 
592 			The low 32 bits of the 40 bits pointer pointed to the
593 			external RTT channel information buffer
594 
595 
596 
597 			32 bits
598 
599 			<legal all>
600 
601 rtt_cfo_measurement
602 
603 			CFO measurement. Needed for passive locationing
604 
605 
606 
607 			14 bits, signed 1.13. 13 bits fraction to provide a
608 			resolution of 153 Hz
609 
610 
611 
612 			In units of cycles/800 ns
613 
614 			<legal all>
615 
616 rtt_chan_spread
617 
618 			Channel delay spread measurement. Needed for selecting
619 			GI length
620 
621 
622 
623 			8 bits, unsigned. At 25 ns step. Can represent up to
624 			6375 ns
625 
626 
627 
628 			In units of cycles @ 40 MHz
629 
630 			<legal all>
631 
632 rtt_timing_backoff_sel
633 
634 			Indicate which timing backoff value is used
635 
636 
637 
638 			<enum 0 timing_backoff_low_rssi>
639 
640 			<enum 1 timing_backoff_mid_rssi>
641 
642 			<enum 2 timing_backoff_high_rssi>
643 
644 			<enum 3 reserved>
645 
646 			<legal all>
647 
648 reserved_8
649 
650 			<legal 0>
651 
652 rx_location_info_valid
653 
654 			<enum 0 rx_location_info_is_not_valid>
655 
656 			<enum 1 rx_location_info_is_valid>
657 
658 			<legal all>
659 */
660 
661 
662 /* Description		RX_LOCATION_INFO_0_RTT_FAC_LEGACY
663 
664 			For 20/40/80, this field shows the RTT first arrival
665 			correction value computed from L-LTF on the first selected
666 			Rx chain
667 
668 
669 
670 			For 80+80, this field shows the RTT first arrival
671 			correction value computed from L-LTF on pri80 on the
672 			selected pri80 Rx chain
673 
674 
675 
676 			16 bits, signed 12.4. 12 bits integer to cover -6.4us to
677 			6.4us, and 4 bits fraction to cover pri80 and 32x FAC
678 			interpolation
679 
680 
681 
682 			clock unit is 320MHz
683 
684 			<legal all>
685 */
686 #define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_OFFSET                     0x00000000
687 #define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_LSB                        0
688 #define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_MASK                       0x0000ffff
689 
690 /* Description		RX_LOCATION_INFO_0_RTT_FAC_LEGACY_EXT80
691 
692 			For 20/40/80, this field shows the RTT first arrival
693 			correction value computed from L-LTF on the second selected
694 			Rx chain
695 
696 
697 
698 			For 80+80, this field shows the RTT first arrival
699 			correction value computed from L-LTF on ext80 on the
700 			selected ext80 Rx chain
701 
702 
703 
704 			16 bits, signed 12.4. 12 bits integer to cover -6.4us to
705 			6.4us, and 4 bits fraction to cover ext80 and 32x FAC
706 			interpolation
707 
708 
709 
710 			clock unit is 320MHz
711 
712 			<legal all>
713 */
714 #define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_EXT80_OFFSET               0x00000000
715 #define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_EXT80_LSB                  16
716 #define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_EXT80_MASK                 0xffff0000
717 
718 /* Description		RX_LOCATION_INFO_1_RTT_FAC_VHT
719 
720 			For 20/40/80, this field shows the RTT first arrival
721 			correction value computed from (V)HT/HE-LTF on the first
722 			selected Rx chain
723 
724 
725 
726 			For 80+80, this field shows the RTT first arrival
727 			correction value computed from (V)HT/HE-LTF on pri80 on the
728 			selected pri80 Rx chain
729 
730 
731 
732 			16 bits, signed 12.4. 12 bits integer to cover -6.4us to
733 			6.4us, and 4 bits fraction to cover pri80 and 32x FAC
734 			interpolation
735 
736 
737 
738 			clock unit is 320MHz
739 
740 			<legal all>
741 */
742 #define RX_LOCATION_INFO_1_RTT_FAC_VHT_OFFSET                        0x00000004
743 #define RX_LOCATION_INFO_1_RTT_FAC_VHT_LSB                           0
744 #define RX_LOCATION_INFO_1_RTT_FAC_VHT_MASK                          0x0000ffff
745 
746 /* Description		RX_LOCATION_INFO_1_RTT_FAC_VHT_EXT80
747 
748 			For 20/40/80, this field shows the RTT first arrival
749 			correction value computed from (V)HT/HE-LTF on the second
750 			selected Rx chain
751 
752 
753 
754 			For 80+80, this field shows the RTT first arrival
755 			correction value computed from (V)HT/HE-LTF on ext80 on the
756 			selected ext80 Rx chain
757 
758 
759 
760 			16 bits, signed 12.4. 12 bits integer to cover -6.4us to
761 			6.4us, and 4 bits fraction to cover ext80 and 32x FAC
762 			interpolation
763 
764 
765 
766 			clock unit is 320MHz
767 
768 			<legal all>
769 */
770 #define RX_LOCATION_INFO_1_RTT_FAC_VHT_EXT80_OFFSET                  0x00000004
771 #define RX_LOCATION_INFO_1_RTT_FAC_VHT_EXT80_LSB                     16
772 #define RX_LOCATION_INFO_1_RTT_FAC_VHT_EXT80_MASK                    0xffff0000
773 
774 /* Description		RX_LOCATION_INFO_2_RTT_FAC_LEGACY_STATUS
775 
776 			Status of rtt_fac_legacy
777 
778 
779 
780 			<enum 0 location_fac_legacy_status_not_valid>
781 
782 			<enum 1 location_fac_legacy_status_valid>
783 
784 			<legal all>
785 */
786 #define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_STATUS_OFFSET              0x00000008
787 #define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_STATUS_LSB                 0
788 #define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_STATUS_MASK                0x00000001
789 
790 /* Description		RX_LOCATION_INFO_2_RTT_FAC_LEGACY_EXT80_STATUS
791 
792 			Status of rtt_fac_legacy_ext80
793 
794 
795 
796 			<enum 0 location_fac_legacy_ext80_status_not_valid>
797 
798 			<enum 1 location_fac_legacy_ext80_status_valid>
799 
800 			<legal all>
801 */
802 #define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_EXT80_STATUS_OFFSET        0x00000008
803 #define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_EXT80_STATUS_LSB           1
804 #define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_EXT80_STATUS_MASK          0x00000002
805 
806 /* Description		RX_LOCATION_INFO_2_RTT_FAC_VHT_STATUS
807 
808 			Status of rtt_fac_vht
809 
810 
811 
812 			<enum 0 location_fac_vht_status_not_valid>
813 
814 			<enum 1 location_fac_vht_status_valid>
815 
816 			<legal all>
817 */
818 #define RX_LOCATION_INFO_2_RTT_FAC_VHT_STATUS_OFFSET                 0x00000008
819 #define RX_LOCATION_INFO_2_RTT_FAC_VHT_STATUS_LSB                    2
820 #define RX_LOCATION_INFO_2_RTT_FAC_VHT_STATUS_MASK                   0x00000004
821 
822 /* Description		RX_LOCATION_INFO_2_RTT_FAC_VHT_EXT80_STATUS
823 
824 			Status of rtt_fac_vht_ext80
825 
826 
827 
828 			<enum 0 location_fac_vht_ext80_status_not_valid>
829 
830 			<enum 1 location_fac_vht_ext80_status_valid>
831 
832 			<legal all>
833 */
834 #define RX_LOCATION_INFO_2_RTT_FAC_VHT_EXT80_STATUS_OFFSET           0x00000008
835 #define RX_LOCATION_INFO_2_RTT_FAC_VHT_EXT80_STATUS_LSB              3
836 #define RX_LOCATION_INFO_2_RTT_FAC_VHT_EXT80_STATUS_MASK             0x00000008
837 
838 /* Description		RX_LOCATION_INFO_2_RTT_FAC_SIFS
839 
840 			To support fine SIFS adjustment, need to provide FAC
841 			value @ integer number of 320 MHz clock cycles to MAC.  It
842 			is from L-LTF if it is a Legacy packet and from (V)HT/HE-LTF
843 			if it is a (V)HT/HE packet
844 
845 
846 
847 			12 bits, signed, no fractional part
848 
849 			<legal all>
850 */
851 #define RX_LOCATION_INFO_2_RTT_FAC_SIFS_OFFSET                       0x00000008
852 #define RX_LOCATION_INFO_2_RTT_FAC_SIFS_LSB                          4
853 #define RX_LOCATION_INFO_2_RTT_FAC_SIFS_MASK                         0x0000fff0
854 
855 /* Description		RX_LOCATION_INFO_2_RTT_FAC_SIFS_STATUS
856 
857 			Status of rtt_fac_sifs
858 
859 			0: not valid
860 
861 			1: valid and from L-LTF
862 
863 			2: valid and from (V)HT/HE-LTF
864 
865 			3: reserved
866 
867 			<legal 0-2>
868 */
869 #define RX_LOCATION_INFO_2_RTT_FAC_SIFS_STATUS_OFFSET                0x00000008
870 #define RX_LOCATION_INFO_2_RTT_FAC_SIFS_STATUS_LSB                   16
871 #define RX_LOCATION_INFO_2_RTT_FAC_SIFS_STATUS_MASK                  0x00030000
872 
873 /* Description		RX_LOCATION_INFO_2_RTT_CFR_STATUS
874 
875 			Status of channel frequency response dump
876 
877 
878 
879 			<enum 0 location_CFR_dump_not_valid>
880 
881 			<enum 1 location_CFR_dump_valid>
882 
883 			<legal all>
884 */
885 #define RX_LOCATION_INFO_2_RTT_CFR_STATUS_OFFSET                     0x00000008
886 #define RX_LOCATION_INFO_2_RTT_CFR_STATUS_LSB                        18
887 #define RX_LOCATION_INFO_2_RTT_CFR_STATUS_MASK                       0x00040000
888 
889 /* Description		RX_LOCATION_INFO_2_RTT_CIR_STATUS
890 
891 			Status of channel impulse response dump
892 
893 
894 
895 			<enum 0 location_CIR_dump_not_valid>
896 
897 			<enum 1 location_CIR_dump_valid>
898 
899 			<legal all>
900 */
901 #define RX_LOCATION_INFO_2_RTT_CIR_STATUS_OFFSET                     0x00000008
902 #define RX_LOCATION_INFO_2_RTT_CIR_STATUS_LSB                        19
903 #define RX_LOCATION_INFO_2_RTT_CIR_STATUS_MASK                       0x00080000
904 
905 /* Description		RX_LOCATION_INFO_2_RTT_CHANNEL_DUMP_SIZE
906 
907 			Channel dump size.  It shows how many tones in CFR in
908 			one chain, for example, it will show 52 for Legacy20 and 484
909 			for VHT160
910 
911 
912 
913 			<legal all>
914 */
915 #define RX_LOCATION_INFO_2_RTT_CHANNEL_DUMP_SIZE_OFFSET              0x00000008
916 #define RX_LOCATION_INFO_2_RTT_CHANNEL_DUMP_SIZE_LSB                 20
917 #define RX_LOCATION_INFO_2_RTT_CHANNEL_DUMP_SIZE_MASK                0x7ff00000
918 
919 /* Description		RX_LOCATION_INFO_2_RTT_HW_IFFT_MODE
920 
921 			Indicator showing if HW IFFT mode or SW IFFT mode
922 
923 
924 
925 			<enum 0 location_sw_ifft_mode>
926 
927 			<enum 1 location_hw_ifft_mode>
928 
929 			<legal all>
930 */
931 #define RX_LOCATION_INFO_2_RTT_HW_IFFT_MODE_OFFSET                   0x00000008
932 #define RX_LOCATION_INFO_2_RTT_HW_IFFT_MODE_LSB                      31
933 #define RX_LOCATION_INFO_2_RTT_HW_IFFT_MODE_MASK                     0x80000000
934 
935 /* Description		RX_LOCATION_INFO_3_RTT_BTCF_STATUS
936 
937 			Indicate if BTCF is used to capture the timestamps
938 
939 
940 
941 			<enum 0 location_not_BTCF_based_ts>
942 
943 			<enum 1 location_BTCF_based_ts>
944 
945 			<legal all>
946 */
947 #define RX_LOCATION_INFO_3_RTT_BTCF_STATUS_OFFSET                    0x0000000c
948 #define RX_LOCATION_INFO_3_RTT_BTCF_STATUS_LSB                       0
949 #define RX_LOCATION_INFO_3_RTT_BTCF_STATUS_MASK                      0x00000001
950 
951 /* Description		RX_LOCATION_INFO_3_RTT_PREAMBLE_TYPE
952 
953 			Indicate preamble type
954 
955 
956 
957 			<enum 0 location_preamble_type_legacy>
958 
959 			<enum 1 location_preamble_type_ht>
960 
961 			<enum 2 location_preamble_type_vht>
962 
963 			<enum 3 location_preamble_type_he_su_4xltf>
964 
965 			<enum 4 location_preamble_type_he_su_2xltf>
966 
967 			<enum 5 location_preamble_type_he_su_1xltf>
968 
969 			<enum 6
970 			location_preamble_type_he_trigger_based_ul_4xltf>
971 
972 			<enum 7
973 			location_preamble_type_he_trigger_based_ul_2xltf>
974 
975 			<enum 8
976 			location_preamble_type_he_trigger_based_ul_1xltf>
977 
978 			<enum 9 location_preamble_type_he_mu_4xltf>
979 
980 			<enum 10 location_preamble_type_he_mu_2xltf>
981 
982 			<enum 11 location_preamble_type_he_mu_1xltf>
983 
984 			<enum 12
985 			location_preamble_type_he_extended_range_su_4xltf>
986 
987 			<enum 13
988 			location_preamble_type_he_extended_range_su_2xltf>
989 
990 			<enum 14
991 			location_preamble_type_he_extended_range_su_1xltf>
992 
993 			<legal 0-14>
994 */
995 #define RX_LOCATION_INFO_3_RTT_PREAMBLE_TYPE_OFFSET                  0x0000000c
996 #define RX_LOCATION_INFO_3_RTT_PREAMBLE_TYPE_LSB                     1
997 #define RX_LOCATION_INFO_3_RTT_PREAMBLE_TYPE_MASK                    0x0000003e
998 
999 /* Description		RX_LOCATION_INFO_3_RTT_PKT_BW_LEG
1000 
1001 			Indicate the bandwidth of L-LTF
1002 
1003 
1004 
1005 			<enum 0 location_pkt_bw_20MHz>
1006 
1007 			<enum 1 location_pkt_bw_40MHz>
1008 
1009 			<enum 2 location_pkt_bw_80MHz>
1010 
1011 			<enum 3 location_pkt_bw_160MHz>
1012 
1013 			<legal all>
1014 */
1015 #define RX_LOCATION_INFO_3_RTT_PKT_BW_LEG_OFFSET                     0x0000000c
1016 #define RX_LOCATION_INFO_3_RTT_PKT_BW_LEG_LSB                        6
1017 #define RX_LOCATION_INFO_3_RTT_PKT_BW_LEG_MASK                       0x000000c0
1018 
1019 /* Description		RX_LOCATION_INFO_3_RTT_PKT_BW_VHT
1020 
1021 			Indicate the bandwidth of (V)HT/HE-LTF
1022 
1023 
1024 
1025 			<enum 0 location_pkt_bw_20MHz>
1026 
1027 			<enum 1 location_pkt_bw_40MHz>
1028 
1029 			<enum 2 location_pkt_bw_80MHz>
1030 
1031 			<enum 3 location_pkt_bw_160MHz>
1032 
1033 			<legal all>
1034 */
1035 #define RX_LOCATION_INFO_3_RTT_PKT_BW_VHT_OFFSET                     0x0000000c
1036 #define RX_LOCATION_INFO_3_RTT_PKT_BW_VHT_LSB                        8
1037 #define RX_LOCATION_INFO_3_RTT_PKT_BW_VHT_MASK                       0x00000300
1038 
1039 /* Description		RX_LOCATION_INFO_3_RTT_GI_TYPE
1040 
1041 			Indicate GI (guard interval) type
1042 
1043 
1044 
1045 			<enum 0     gi_0_8_us > HE related GI. Can also be used
1046 			for HE
1047 
1048 			<enum 1     gi_0_4_us > HE related GI. Can also be used
1049 			for HE
1050 
1051 			<enum 2     gi_1_6_us > HE related GI
1052 
1053 			<enum 3     gi_3_2_us > HE related GI
1054 
1055 			<legal 0 - 3>
1056 */
1057 #define RX_LOCATION_INFO_3_RTT_GI_TYPE_OFFSET                        0x0000000c
1058 #define RX_LOCATION_INFO_3_RTT_GI_TYPE_LSB                           10
1059 #define RX_LOCATION_INFO_3_RTT_GI_TYPE_MASK                          0x00000c00
1060 
1061 /* Description		RX_LOCATION_INFO_3_RTT_MCS_RATE
1062 
1063 			Bits 0~4 indicate MCS rate, if Legacy,
1064 
1065 			0: 48 Mbps,
1066 
1067 			1: 24 Mbps,
1068 
1069 			2: 12 Mbps,
1070 
1071 			3: 6 Mbps,
1072 
1073 			4: 54 Mbps,
1074 
1075 			5: 36 Mbps,
1076 
1077 			6: 18 Mbps,
1078 
1079 			7: 9 Mbps,
1080 
1081 
1082 
1083 			if HT, 0-7: MCS0-MCS7,
1084 
1085 			if VHT, 0-9: MCS0-MCS9,
1086 
1087 
1088 			<legal all>
1089 */
1090 #define RX_LOCATION_INFO_3_RTT_MCS_RATE_OFFSET                       0x0000000c
1091 #define RX_LOCATION_INFO_3_RTT_MCS_RATE_LSB                          12
1092 #define RX_LOCATION_INFO_3_RTT_MCS_RATE_MASK                         0x0001f000
1093 
1094 /* Description		RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN
1095 
1096 			For 20/40/80, this field shows the first selected Rx
1097 			chain that is used in HW IFFT mode
1098 
1099 
1100 
1101 			For 80+80, this field shows the selected pri80 Rx chain
1102 			that is used in HW IFFT mode
1103 
1104 
1105 
1106 			<enum 0 location_strongest_chain_is_0>
1107 
1108 			<enum 1 location_strongest_chain_is_1>
1109 
1110 			<enum 2 location_strongest_chain_is_2>
1111 
1112 			<enum 3 location_strongest_chain_is_3>
1113 
1114 			<enum 4 location_strongest_chain_is_4>
1115 
1116 			<enum 5 location_strongest_chain_is_5>
1117 
1118 			<enum 6 location_strongest_chain_is_6>
1119 
1120 			<enum 7 location_strongest_chain_is_7>
1121 
1122 			<legal all>
1123 */
1124 #define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_OFFSET                0x0000000c
1125 #define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_LSB                   17
1126 #define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_MASK                  0x000e0000
1127 
1128 /* Description		RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_EXT80
1129 
1130 			For 20/40/80, this field shows the second selected Rx
1131 			chain that is used in HW IFFT mode
1132 
1133 
1134 
1135 			For 80+80, this field shows the selected ext80 Rx chain
1136 			that is used in HW IFFT mode
1137 
1138 
1139 
1140 			<enum 0 location_strongest_chain_is_0>
1141 
1142 			<enum 1 location_strongest_chain_is_1>
1143 
1144 			<enum 2 location_strongest_chain_is_2>
1145 
1146 			<enum 3 location_strongest_chain_is_3>
1147 
1148 			<enum 4 location_strongest_chain_is_4>
1149 
1150 			<enum 5 location_strongest_chain_is_5>
1151 
1152 			<enum 6 location_strongest_chain_is_6>
1153 
1154 			<enum 7 location_strongest_chain_is_7>
1155 
1156 			<legal all>
1157 */
1158 #define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_EXT80_OFFSET          0x0000000c
1159 #define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_EXT80_LSB             20
1160 #define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_EXT80_MASK            0x00700000
1161 
1162 /* Description		RX_LOCATION_INFO_3_RTT_RX_CHAIN_MASK
1163 
1164 			Rx chain mask, each bit is a Rx chain
1165 
1166 			0: the Rx chain is not used
1167 
1168 			1: the Rx chain is used
1169 
1170 			Support up to 8 Rx chains
1171 
1172 			<legal all>
1173 */
1174 #define RX_LOCATION_INFO_3_RTT_RX_CHAIN_MASK_OFFSET                  0x0000000c
1175 #define RX_LOCATION_INFO_3_RTT_RX_CHAIN_MASK_LSB                     23
1176 #define RX_LOCATION_INFO_3_RTT_RX_CHAIN_MASK_MASK                    0x7f800000
1177 
1178 /* Description		RX_LOCATION_INFO_3_RESERVED_3
1179 
1180 			<legal 0>
1181 */
1182 #define RX_LOCATION_INFO_3_RESERVED_3_OFFSET                         0x0000000c
1183 #define RX_LOCATION_INFO_3_RESERVED_3_LSB                            31
1184 #define RX_LOCATION_INFO_3_RESERVED_3_MASK                           0x80000000
1185 
1186 /* Description		RX_LOCATION_INFO_4_RX_START_TS
1187 
1188 			RX packet start timestamp
1189 
1190 
1191 
1192 			It reports the time the first L-STF ADC sample arrived
1193 			at RX antenna
1194 
1195 
1196 
1197 			clock unit is 480MHz
1198 
1199 			<legal all>
1200 */
1201 #define RX_LOCATION_INFO_4_RX_START_TS_OFFSET                        0x00000010
1202 #define RX_LOCATION_INFO_4_RX_START_TS_LSB                           0
1203 #define RX_LOCATION_INFO_4_RX_START_TS_MASK                          0xffffffff
1204 
1205 /* Description		RX_LOCATION_INFO_5_RX_END_TS
1206 
1207 			RX packet end timestamp
1208 
1209 
1210 
1211 			It reports the time the last symbol's last ADC sample
1212 			arrived at RX antenna
1213 
1214 
1215 
1216 			clock unit is 480MHz
1217 
1218 			<legal all>
1219 */
1220 #define RX_LOCATION_INFO_5_RX_END_TS_OFFSET                          0x00000014
1221 #define RX_LOCATION_INFO_5_RX_END_TS_LSB                             0
1222 #define RX_LOCATION_INFO_5_RX_END_TS_MASK                            0xffffffff
1223 
1224 /* Description		RX_LOCATION_INFO_6_SFO_PHASE_PKT_START
1225 
1226 			The phase of the SFO of the first symbol's first FFT
1227 			input sample
1228 
1229 
1230 
1231 			12 bits, signed 6.6. 6 bits integer to cover -66.7ns to
1232 			66.7ns, and 6 bits fraction to provide a resolution of
1233 			0.03ns
1234 
1235 
1236 
1237 			clock unit is 480MHz
1238 
1239 			<legal all>
1240 */
1241 #define RX_LOCATION_INFO_6_SFO_PHASE_PKT_START_OFFSET                0x00000018
1242 #define RX_LOCATION_INFO_6_SFO_PHASE_PKT_START_LSB                   0
1243 #define RX_LOCATION_INFO_6_SFO_PHASE_PKT_START_MASK                  0x00000fff
1244 
1245 /* Description		RX_LOCATION_INFO_6_SFO_PHASE_PKT_END
1246 
1247 			The phase of the SFO of the last symbol's last FFT input
1248 			sample
1249 
1250 
1251 
1252 			12 bits, signed 6.6. 6 bits integer to cover -66.7ns to
1253 			66.7ns, and 6 bits fraction to provide a resolution of
1254 			0.03ns
1255 
1256 
1257 
1258 			clock unit is 480MHz
1259 
1260 			<legal all>
1261 */
1262 #define RX_LOCATION_INFO_6_SFO_PHASE_PKT_END_OFFSET                  0x00000018
1263 #define RX_LOCATION_INFO_6_SFO_PHASE_PKT_END_LSB                     12
1264 #define RX_LOCATION_INFO_6_SFO_PHASE_PKT_END_MASK                    0x00fff000
1265 
1266 /* Description		RX_LOCATION_INFO_6_RTT_CHE_BUFFER_POINTER_HIGH8
1267 
1268 			The high 8 bits of the 40 bits pointer pointed to the
1269 			external RTT channel information buffer
1270 
1271 
1272 
1273 			8 bits
1274 
1275 			<legal all>
1276 */
1277 #define RX_LOCATION_INFO_6_RTT_CHE_BUFFER_POINTER_HIGH8_OFFSET       0x00000018
1278 #define RX_LOCATION_INFO_6_RTT_CHE_BUFFER_POINTER_HIGH8_LSB          24
1279 #define RX_LOCATION_INFO_6_RTT_CHE_BUFFER_POINTER_HIGH8_MASK         0xff000000
1280 
1281 /* Description		RX_LOCATION_INFO_7_RTT_CHE_BUFFER_POINTER_LOW32
1282 
1283 			The low 32 bits of the 40 bits pointer pointed to the
1284 			external RTT channel information buffer
1285 
1286 
1287 
1288 			32 bits
1289 
1290 			<legal all>
1291 */
1292 #define RX_LOCATION_INFO_7_RTT_CHE_BUFFER_POINTER_LOW32_OFFSET       0x0000001c
1293 #define RX_LOCATION_INFO_7_RTT_CHE_BUFFER_POINTER_LOW32_LSB          0
1294 #define RX_LOCATION_INFO_7_RTT_CHE_BUFFER_POINTER_LOW32_MASK         0xffffffff
1295 
1296 /* Description		RX_LOCATION_INFO_8_RTT_CFO_MEASUREMENT
1297 
1298 			CFO measurement. Needed for passive locationing
1299 
1300 
1301 
1302 			14 bits, signed 1.13. 13 bits fraction to provide a
1303 			resolution of 153 Hz
1304 
1305 
1306 
1307 			In units of cycles/800 ns
1308 
1309 			<legal all>
1310 */
1311 #define RX_LOCATION_INFO_8_RTT_CFO_MEASUREMENT_OFFSET                0x00000020
1312 #define RX_LOCATION_INFO_8_RTT_CFO_MEASUREMENT_LSB                   0
1313 #define RX_LOCATION_INFO_8_RTT_CFO_MEASUREMENT_MASK                  0x00003fff
1314 
1315 /* Description		RX_LOCATION_INFO_8_RTT_CHAN_SPREAD
1316 
1317 			Channel delay spread measurement. Needed for selecting
1318 			GI length
1319 
1320 
1321 
1322 			8 bits, unsigned. At 25 ns step. Can represent up to
1323 			6375 ns
1324 
1325 
1326 
1327 			In units of cycles @ 40 MHz
1328 
1329 			<legal all>
1330 */
1331 #define RX_LOCATION_INFO_8_RTT_CHAN_SPREAD_OFFSET                    0x00000020
1332 #define RX_LOCATION_INFO_8_RTT_CHAN_SPREAD_LSB                       14
1333 #define RX_LOCATION_INFO_8_RTT_CHAN_SPREAD_MASK                      0x003fc000
1334 
1335 /* Description		RX_LOCATION_INFO_8_RTT_TIMING_BACKOFF_SEL
1336 
1337 			Indicate which timing backoff value is used
1338 
1339 
1340 
1341 			<enum 0 timing_backoff_low_rssi>
1342 
1343 			<enum 1 timing_backoff_mid_rssi>
1344 
1345 			<enum 2 timing_backoff_high_rssi>
1346 
1347 			<enum 3 reserved>
1348 
1349 			<legal all>
1350 */
1351 #define RX_LOCATION_INFO_8_RTT_TIMING_BACKOFF_SEL_OFFSET             0x00000020
1352 #define RX_LOCATION_INFO_8_RTT_TIMING_BACKOFF_SEL_LSB                22
1353 #define RX_LOCATION_INFO_8_RTT_TIMING_BACKOFF_SEL_MASK               0x00c00000
1354 
1355 /* Description		RX_LOCATION_INFO_8_RESERVED_8
1356 
1357 			<legal 0>
1358 */
1359 #define RX_LOCATION_INFO_8_RESERVED_8_OFFSET                         0x00000020
1360 #define RX_LOCATION_INFO_8_RESERVED_8_LSB                            24
1361 #define RX_LOCATION_INFO_8_RESERVED_8_MASK                           0x7f000000
1362 
1363 /* Description		RX_LOCATION_INFO_8_RX_LOCATION_INFO_VALID
1364 
1365 			<enum 0 rx_location_info_is_not_valid>
1366 
1367 			<enum 1 rx_location_info_is_valid>
1368 
1369 			<legal all>
1370 */
1371 #define RX_LOCATION_INFO_8_RX_LOCATION_INFO_VALID_OFFSET             0x00000020
1372 #define RX_LOCATION_INFO_8_RX_LOCATION_INFO_VALID_LSB                31
1373 #define RX_LOCATION_INFO_8_RX_LOCATION_INFO_VALID_MASK               0x80000000
1374 
1375 
1376 #endif // _RX_LOCATION_INFO_H_
1377