summaryrefslogtreecommitdiff
path: root/hw/qca8074/v2/rx_location_info.h
diff options
context:
space:
mode:
Diffstat (limited to 'hw/qca8074/v2/rx_location_info.h')
-rw-r--r--hw/qca8074/v2/rx_location_info.h1375
1 files changed, 1375 insertions, 0 deletions
diff --git a/hw/qca8074/v2/rx_location_info.h b/hw/qca8074/v2/rx_location_info.h
new file mode 100644
index 0000000..b18c7a0
--- /dev/null
+++ b/hw/qca8074/v2/rx_location_info.h
@@ -0,0 +1,1375 @@
+/*
+ * Copyright (c) 2020 The Linux Foundation. All rights reserved.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+// $ATH_LICENSE_HW_HDR_C$
+//
+// DO NOT EDIT! This file is automatically generated
+// These definitions are tied to a particular hardware layout
+
+
+#ifndef _RX_LOCATION_INFO_H_
+#define _RX_LOCATION_INFO_H_
+#if !defined(__ASSEMBLER__)
+#endif
+
+
+// ################ START SUMMARY #################
+//
+// Dword Fields
+// 0 rtt_fac_legacy[15:0], rtt_fac_legacy_ext80[31:16]
+// 1 rtt_fac_vht[15:0], rtt_fac_vht_ext80[31:16]
+// 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]
+// 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]
+// 4 rx_start_ts[31:0]
+// 5 rx_end_ts[31:0]
+// 6 sfo_phase_pkt_start[11:0], sfo_phase_pkt_end[23:12], rtt_che_buffer_pointer_high8[31:24]
+// 7 rtt_che_buffer_pointer_low32[31:0]
+// 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]
+//
+// ################ END SUMMARY #################
+
+#define NUM_OF_DWORDS_RX_LOCATION_INFO 9
+
+struct rx_location_info {
+ uint32_t rtt_fac_legacy : 16, //[15:0]
+ rtt_fac_legacy_ext80 : 16; //[31:16]
+ uint32_t rtt_fac_vht : 16, //[15:0]
+ rtt_fac_vht_ext80 : 16; //[31:16]
+ uint32_t rtt_fac_legacy_status : 1, //[0]
+ rtt_fac_legacy_ext80_status : 1, //[1]
+ rtt_fac_vht_status : 1, //[2]
+ rtt_fac_vht_ext80_status : 1, //[3]
+ rtt_fac_sifs : 12, //[15:4]
+ rtt_fac_sifs_status : 2, //[17:16]
+ rtt_cfr_status : 1, //[18]
+ rtt_cir_status : 1, //[19]
+ rtt_channel_dump_size : 11, //[30:20]
+ rtt_hw_ifft_mode : 1; //[31]
+ uint32_t rtt_btcf_status : 1, //[0]
+ rtt_preamble_type : 5, //[5:1]
+ rtt_pkt_bw_leg : 2, //[7:6]
+ rtt_pkt_bw_vht : 2, //[9:8]
+ rtt_gi_type : 2, //[11:10]
+ rtt_mcs_rate : 5, //[16:12]
+ rtt_strongest_chain : 3, //[19:17]
+ rtt_strongest_chain_ext80 : 3, //[22:20]
+ rtt_rx_chain_mask : 8, //[30:23]
+ reserved_3 : 1; //[31]
+ uint32_t rx_start_ts : 32; //[31:0]
+ uint32_t rx_end_ts : 32; //[31:0]
+ uint32_t sfo_phase_pkt_start : 12, //[11:0]
+ sfo_phase_pkt_end : 12, //[23:12]
+ rtt_che_buffer_pointer_high8 : 8; //[31:24]
+ uint32_t rtt_che_buffer_pointer_low32 : 32; //[31:0]
+ uint32_t rtt_cfo_measurement : 14, //[13:0]
+ rtt_chan_spread : 8, //[21:14]
+ rtt_timing_backoff_sel : 2, //[23:22]
+ reserved_8 : 7, //[30:24]
+ rx_location_info_valid : 1; //[31]
+};
+
+/*
+
+rtt_fac_legacy
+
+ For 20/40/80, this field shows the RTT first arrival
+ correction value computed from L-LTF on the first selected
+ Rx chain
+
+
+
+ For 80+80, this field shows the RTT first arrival
+ correction value computed from L-LTF on pri80 on the
+ selected pri80 Rx chain
+
+
+
+ 16 bits, signed 12.4. 12 bits integer to cover -6.4us to
+ 6.4us, and 4 bits fraction to cover pri80 and 32x FAC
+ interpolation
+
+
+
+ clock unit is 320MHz
+
+ <legal all>
+
+rtt_fac_legacy_ext80
+
+ For 20/40/80, this field shows the RTT first arrival
+ correction value computed from L-LTF on the second selected
+ Rx chain
+
+
+
+ For 80+80, this field shows the RTT first arrival
+ correction value computed from L-LTF on ext80 on the
+ selected ext80 Rx chain
+
+
+
+ 16 bits, signed 12.4. 12 bits integer to cover -6.4us to
+ 6.4us, and 4 bits fraction to cover ext80 and 32x FAC
+ interpolation
+
+
+
+ clock unit is 320MHz
+
+ <legal all>
+
+rtt_fac_vht
+
+ For 20/40/80, this field shows the RTT first arrival
+ correction value computed from (V)HT/HE-LTF on the first
+ selected Rx chain
+
+
+
+ For 80+80, this field shows the RTT first arrival
+ correction value computed from (V)HT/HE-LTF on pri80 on the
+ selected pri80 Rx chain
+
+
+
+ 16 bits, signed 12.4. 12 bits integer to cover -6.4us to
+ 6.4us, and 4 bits fraction to cover pri80 and 32x FAC
+ interpolation
+
+
+
+ clock unit is 320MHz
+
+ <legal all>
+
+rtt_fac_vht_ext80
+
+ For 20/40/80, this field shows the RTT first arrival
+ correction value computed from (V)HT/HE-LTF on the second
+ selected Rx chain
+
+
+
+ For 80+80, this field shows the RTT first arrival
+ correction value computed from (V)HT/HE-LTF on ext80 on the
+ selected ext80 Rx chain
+
+
+
+ 16 bits, signed 12.4. 12 bits integer to cover -6.4us to
+ 6.4us, and 4 bits fraction to cover ext80 and 32x FAC
+ interpolation
+
+
+
+ clock unit is 320MHz
+
+ <legal all>
+
+rtt_fac_legacy_status
+
+ Status of rtt_fac_legacy
+
+
+
+ <enum 0 location_fac_legacy_status_not_valid>
+
+ <enum 1 location_fac_legacy_status_valid>
+
+ <legal all>
+
+rtt_fac_legacy_ext80_status
+
+ Status of rtt_fac_legacy_ext80
+
+
+
+ <enum 0 location_fac_legacy_ext80_status_not_valid>
+
+ <enum 1 location_fac_legacy_ext80_status_valid>
+
+ <legal all>
+
+rtt_fac_vht_status
+
+ Status of rtt_fac_vht
+
+
+
+ <enum 0 location_fac_vht_status_not_valid>
+
+ <enum 1 location_fac_vht_status_valid>
+
+ <legal all>
+
+rtt_fac_vht_ext80_status
+
+ Status of rtt_fac_vht_ext80
+
+
+
+ <enum 0 location_fac_vht_ext80_status_not_valid>
+
+ <enum 1 location_fac_vht_ext80_status_valid>
+
+ <legal all>
+
+rtt_fac_sifs
+
+ To support fine SIFS adjustment, need to provide FAC
+ value @ integer number of 320 MHz clock cycles to MAC.  It
+ is from L-LTF if it is a Legacy packet and from (V)HT/HE-LTF
+ if it is a (V)HT/HE packet
+
+
+
+ 12 bits, signed, no fractional part
+
+ <legal all>
+
+rtt_fac_sifs_status
+
+ Status of rtt_fac_sifs
+
+ 0: not valid
+
+ 1: valid and from L-LTF
+
+ 2: valid and from (V)HT/HE-LTF
+
+ 3: reserved
+
+ <legal 0-2>
+
+rtt_cfr_status
+
+ Status of channel frequency response dump
+
+
+
+ <enum 0 location_CFR_dump_not_valid>
+
+ <enum 1 location_CFR_dump_valid>
+
+ <legal all>
+
+rtt_cir_status
+
+ Status of channel impulse response dump
+
+
+
+ <enum 0 location_CIR_dump_not_valid>
+
+ <enum 1 location_CIR_dump_valid>
+
+ <legal all>
+
+rtt_channel_dump_size
+
+ Channel dump size.  It shows how many tones in CFR in
+ one chain, for example, it will show 52 for Legacy20 and 484
+ for VHT160
+
+
+
+ <legal all>
+
+rtt_hw_ifft_mode
+
+ Indicator showing if HW IFFT mode or SW IFFT mode
+
+
+
+ <enum 0 location_sw_ifft_mode>
+
+ <enum 1 location_hw_ifft_mode>
+
+ <legal all>
+
+rtt_btcf_status
+
+ Indicate if BTCF is used to capture the timestamps
+
+
+
+ <enum 0 location_not_BTCF_based_ts>
+
+ <enum 1 location_BTCF_based_ts>
+
+ <legal all>
+
+rtt_preamble_type
+
+ Indicate preamble type
+
+
+
+ <enum 0 location_preamble_type_legacy>
+
+ <enum 1 location_preamble_type_ht>
+
+ <enum 2 location_preamble_type_vht>
+
+ <enum 3 location_preamble_type_he_su_4xltf>
+
+ <enum 4 location_preamble_type_he_su_2xltf>
+
+ <enum 5 location_preamble_type_he_su_1xltf>
+
+ <enum 6
+ location_preamble_type_he_trigger_based_ul_4xltf>
+
+ <enum 7
+ location_preamble_type_he_trigger_based_ul_2xltf>
+
+ <enum 8
+ location_preamble_type_he_trigger_based_ul_1xltf>
+
+ <enum 9 location_preamble_type_he_mu_4xltf>
+
+ <enum 10 location_preamble_type_he_mu_2xltf>
+
+ <enum 11 location_preamble_type_he_mu_1xltf>
+
+ <enum 12
+ location_preamble_type_he_extended_range_su_4xltf>
+
+ <enum 13
+ location_preamble_type_he_extended_range_su_2xltf>
+
+ <enum 14
+ location_preamble_type_he_extended_range_su_1xltf>
+
+ <legal 0-14>
+
+rtt_pkt_bw_leg
+
+ Indicate the bandwidth of L-LTF
+
+
+
+ <enum 0 location_pkt_bw_20MHz>
+
+ <enum 1 location_pkt_bw_40MHz>
+
+ <enum 2 location_pkt_bw_80MHz>
+
+ <enum 3 location_pkt_bw_160MHz>
+
+ <legal all>
+
+rtt_pkt_bw_vht
+
+ Indicate the bandwidth of (V)HT/HE-LTF
+
+
+
+ <enum 0 location_pkt_bw_20MHz>
+
+ <enum 1 location_pkt_bw_40MHz>
+
+ <enum 2 location_pkt_bw_80MHz>
+
+ <enum 3 location_pkt_bw_160MHz>
+
+ <legal all>
+
+rtt_gi_type
+
+ Indicate GI (guard interval) type
+
+
+
+ <enum 0 gi_0_8_us > HE related GI. Can also be used
+ for HE
+
+ <enum 1 gi_0_4_us > HE related GI. Can also be used
+ for HE
+
+ <enum 2 gi_1_6_us > HE related GI
+
+ <enum 3 gi_3_2_us > HE related GI
+
+ <legal 0 - 3>
+
+rtt_mcs_rate
+
+ Bits 0~4 indicate MCS rate, if Legacy,
+
+ 0: 48 Mbps,
+
+ 1: 24 Mbps,
+
+ 2: 12 Mbps,
+
+ 3: 6 Mbps,
+
+ 4: 54 Mbps,
+
+ 5: 36 Mbps,
+
+ 6: 18 Mbps,
+
+ 7: 9 Mbps,
+
+
+
+ if HT, 0-7: MCS0-MCS7,
+
+ if VHT, 0-9: MCS0-MCS9,
+
+
+ <legal all>
+
+rtt_strongest_chain
+
+ For 20/40/80, this field shows the first selected Rx
+ chain that is used in HW IFFT mode
+
+
+
+ For 80+80, this field shows the selected pri80 Rx chain
+ that is used in HW IFFT mode
+
+
+
+ <enum 0 location_strongest_chain_is_0>
+
+ <enum 1 location_strongest_chain_is_1>
+
+ <enum 2 location_strongest_chain_is_2>
+
+ <enum 3 location_strongest_chain_is_3>
+
+ <enum 4 location_strongest_chain_is_4>
+
+ <enum 5 location_strongest_chain_is_5>
+
+ <enum 6 location_strongest_chain_is_6>
+
+ <enum 7 location_strongest_chain_is_7>
+
+ <legal all>
+
+rtt_strongest_chain_ext80
+
+ For 20/40/80, this field shows the second selected Rx
+ chain that is used in HW IFFT mode
+
+
+
+ For 80+80, this field shows the selected ext80 Rx chain
+ that is used in HW IFFT mode
+
+
+
+ <enum 0 location_strongest_chain_is_0>
+
+ <enum 1 location_strongest_chain_is_1>
+
+ <enum 2 location_strongest_chain_is_2>
+
+ <enum 3 location_strongest_chain_is_3>
+
+ <enum 4 location_strongest_chain_is_4>
+
+ <enum 5 location_strongest_chain_is_5>
+
+ <enum 6 location_strongest_chain_is_6>
+
+ <enum 7 location_strongest_chain_is_7>
+
+ <legal all>
+
+rtt_rx_chain_mask
+
+ Rx chain mask, each bit is a Rx chain
+
+ 0: the Rx chain is not used
+
+ 1: the Rx chain is used
+
+ Support up to 8 Rx chains
+
+ <legal all>
+
+reserved_3
+
+ <legal 0>
+
+rx_start_ts
+
+ RX packet start timestamp
+
+
+
+ It reports the time the first L-STF ADC sample arrived
+ at RX antenna
+
+
+
+ clock unit is 480MHz
+
+ <legal all>
+
+rx_end_ts
+
+ RX packet end timestamp
+
+
+
+ It reports the time the last symbol's last ADC sample
+ arrived at RX antenna
+
+
+
+ clock unit is 480MHz
+
+ <legal all>
+
+sfo_phase_pkt_start
+
+ The phase of the SFO of the first symbol's first FFT
+ input sample
+
+
+
+ 12 bits, signed 6.6. 6 bits integer to cover -66.7ns to
+ 66.7ns, and 6 bits fraction to provide a resolution of
+ 0.03ns
+
+
+
+ clock unit is 480MHz
+
+ <legal all>
+
+sfo_phase_pkt_end
+
+ The phase of the SFO of the last symbol's last FFT input
+ sample
+
+
+
+ 12 bits, signed 6.6. 6 bits integer to cover -66.7ns to
+ 66.7ns, and 6 bits fraction to provide a resolution of
+ 0.03ns
+
+
+
+ clock unit is 480MHz
+
+ <legal all>
+
+rtt_che_buffer_pointer_high8
+
+ The high 8 bits of the 40 bits pointer pointed to the
+ external RTT channel information buffer
+
+
+
+ 8 bits
+
+ <legal all>
+
+rtt_che_buffer_pointer_low32
+
+ The low 32 bits of the 40 bits pointer pointed to the
+ external RTT channel information buffer
+
+
+
+ 32 bits
+
+ <legal all>
+
+rtt_cfo_measurement
+
+ CFO measurement. Needed for passive locationing
+
+
+
+ 14 bits, signed 1.13. 13 bits fraction to provide a
+ resolution of 153 Hz
+
+
+
+ In units of cycles/800 ns
+
+ <legal all>
+
+rtt_chan_spread
+
+ Channel delay spread measurement. Needed for selecting
+ GI length
+
+
+
+ 8 bits, unsigned. At 25 ns step. Can represent up to
+ 6375 ns
+
+
+
+ In units of cycles @ 40 MHz
+
+ <legal all>
+
+rtt_timing_backoff_sel
+
+ Indicate which timing backoff value is used
+
+
+
+ <enum 0 timing_backoff_low_rssi>
+
+ <enum 1 timing_backoff_mid_rssi>
+
+ <enum 2 timing_backoff_high_rssi>
+
+ <enum 3 reserved>
+
+ <legal all>
+
+reserved_8
+
+ <legal 0>
+
+rx_location_info_valid
+
+ <enum 0 rx_location_info_is_not_valid>
+
+ <enum 1 rx_location_info_is_valid>
+
+ <legal all>
+*/
+
+
+/* Description RX_LOCATION_INFO_0_RTT_FAC_LEGACY
+
+ For 20/40/80, this field shows the RTT first arrival
+ correction value computed from L-LTF on the first selected
+ Rx chain
+
+
+
+ For 80+80, this field shows the RTT first arrival
+ correction value computed from L-LTF on pri80 on the
+ selected pri80 Rx chain
+
+
+
+ 16 bits, signed 12.4. 12 bits integer to cover -6.4us to
+ 6.4us, and 4 bits fraction to cover pri80 and 32x FAC
+ interpolation
+
+
+
+ clock unit is 320MHz
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_OFFSET 0x00000000
+#define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_LSB 0
+#define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_MASK 0x0000ffff
+
+/* Description RX_LOCATION_INFO_0_RTT_FAC_LEGACY_EXT80
+
+ For 20/40/80, this field shows the RTT first arrival
+ correction value computed from L-LTF on the second selected
+ Rx chain
+
+
+
+ For 80+80, this field shows the RTT first arrival
+ correction value computed from L-LTF on ext80 on the
+ selected ext80 Rx chain
+
+
+
+ 16 bits, signed 12.4. 12 bits integer to cover -6.4us to
+ 6.4us, and 4 bits fraction to cover ext80 and 32x FAC
+ interpolation
+
+
+
+ clock unit is 320MHz
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_EXT80_OFFSET 0x00000000
+#define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_EXT80_LSB 16
+#define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_EXT80_MASK 0xffff0000
+
+/* Description RX_LOCATION_INFO_1_RTT_FAC_VHT
+
+ For 20/40/80, this field shows the RTT first arrival
+ correction value computed from (V)HT/HE-LTF on the first
+ selected Rx chain
+
+
+
+ For 80+80, this field shows the RTT first arrival
+ correction value computed from (V)HT/HE-LTF on pri80 on the
+ selected pri80 Rx chain
+
+
+
+ 16 bits, signed 12.4. 12 bits integer to cover -6.4us to
+ 6.4us, and 4 bits fraction to cover pri80 and 32x FAC
+ interpolation
+
+
+
+ clock unit is 320MHz
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_1_RTT_FAC_VHT_OFFSET 0x00000004
+#define RX_LOCATION_INFO_1_RTT_FAC_VHT_LSB 0
+#define RX_LOCATION_INFO_1_RTT_FAC_VHT_MASK 0x0000ffff
+
+/* Description RX_LOCATION_INFO_1_RTT_FAC_VHT_EXT80
+
+ For 20/40/80, this field shows the RTT first arrival
+ correction value computed from (V)HT/HE-LTF on the second
+ selected Rx chain
+
+
+
+ For 80+80, this field shows the RTT first arrival
+ correction value computed from (V)HT/HE-LTF on ext80 on the
+ selected ext80 Rx chain
+
+
+
+ 16 bits, signed 12.4. 12 bits integer to cover -6.4us to
+ 6.4us, and 4 bits fraction to cover ext80 and 32x FAC
+ interpolation
+
+
+
+ clock unit is 320MHz
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_1_RTT_FAC_VHT_EXT80_OFFSET 0x00000004
+#define RX_LOCATION_INFO_1_RTT_FAC_VHT_EXT80_LSB 16
+#define RX_LOCATION_INFO_1_RTT_FAC_VHT_EXT80_MASK 0xffff0000
+
+/* Description RX_LOCATION_INFO_2_RTT_FAC_LEGACY_STATUS
+
+ Status of rtt_fac_legacy
+
+
+
+ <enum 0 location_fac_legacy_status_not_valid>
+
+ <enum 1 location_fac_legacy_status_valid>
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_STATUS_OFFSET 0x00000008
+#define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_STATUS_LSB 0
+#define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_STATUS_MASK 0x00000001
+
+/* Description RX_LOCATION_INFO_2_RTT_FAC_LEGACY_EXT80_STATUS
+
+ Status of rtt_fac_legacy_ext80
+
+
+
+ <enum 0 location_fac_legacy_ext80_status_not_valid>
+
+ <enum 1 location_fac_legacy_ext80_status_valid>
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_EXT80_STATUS_OFFSET 0x00000008
+#define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_EXT80_STATUS_LSB 1
+#define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_EXT80_STATUS_MASK 0x00000002
+
+/* Description RX_LOCATION_INFO_2_RTT_FAC_VHT_STATUS
+
+ Status of rtt_fac_vht
+
+
+
+ <enum 0 location_fac_vht_status_not_valid>
+
+ <enum 1 location_fac_vht_status_valid>
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_2_RTT_FAC_VHT_STATUS_OFFSET 0x00000008
+#define RX_LOCATION_INFO_2_RTT_FAC_VHT_STATUS_LSB 2
+#define RX_LOCATION_INFO_2_RTT_FAC_VHT_STATUS_MASK 0x00000004
+
+/* Description RX_LOCATION_INFO_2_RTT_FAC_VHT_EXT80_STATUS
+
+ Status of rtt_fac_vht_ext80
+
+
+
+ <enum 0 location_fac_vht_ext80_status_not_valid>
+
+ <enum 1 location_fac_vht_ext80_status_valid>
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_2_RTT_FAC_VHT_EXT80_STATUS_OFFSET 0x00000008
+#define RX_LOCATION_INFO_2_RTT_FAC_VHT_EXT80_STATUS_LSB 3
+#define RX_LOCATION_INFO_2_RTT_FAC_VHT_EXT80_STATUS_MASK 0x00000008
+
+/* Description RX_LOCATION_INFO_2_RTT_FAC_SIFS
+
+ To support fine SIFS adjustment, need to provide FAC
+ value @ integer number of 320 MHz clock cycles to MAC.  It
+ is from L-LTF if it is a Legacy packet and from (V)HT/HE-LTF
+ if it is a (V)HT/HE packet
+
+
+
+ 12 bits, signed, no fractional part
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_2_RTT_FAC_SIFS_OFFSET 0x00000008
+#define RX_LOCATION_INFO_2_RTT_FAC_SIFS_LSB 4
+#define RX_LOCATION_INFO_2_RTT_FAC_SIFS_MASK 0x0000fff0
+
+/* Description RX_LOCATION_INFO_2_RTT_FAC_SIFS_STATUS
+
+ Status of rtt_fac_sifs
+
+ 0: not valid
+
+ 1: valid and from L-LTF
+
+ 2: valid and from (V)HT/HE-LTF
+
+ 3: reserved
+
+ <legal 0-2>
+*/
+#define RX_LOCATION_INFO_2_RTT_FAC_SIFS_STATUS_OFFSET 0x00000008
+#define RX_LOCATION_INFO_2_RTT_FAC_SIFS_STATUS_LSB 16
+#define RX_LOCATION_INFO_2_RTT_FAC_SIFS_STATUS_MASK 0x00030000
+
+/* Description RX_LOCATION_INFO_2_RTT_CFR_STATUS
+
+ Status of channel frequency response dump
+
+
+
+ <enum 0 location_CFR_dump_not_valid>
+
+ <enum 1 location_CFR_dump_valid>
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_2_RTT_CFR_STATUS_OFFSET 0x00000008
+#define RX_LOCATION_INFO_2_RTT_CFR_STATUS_LSB 18
+#define RX_LOCATION_INFO_2_RTT_CFR_STATUS_MASK 0x00040000
+
+/* Description RX_LOCATION_INFO_2_RTT_CIR_STATUS
+
+ Status of channel impulse response dump
+
+
+
+ <enum 0 location_CIR_dump_not_valid>
+
+ <enum 1 location_CIR_dump_valid>
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_2_RTT_CIR_STATUS_OFFSET 0x00000008
+#define RX_LOCATION_INFO_2_RTT_CIR_STATUS_LSB 19
+#define RX_LOCATION_INFO_2_RTT_CIR_STATUS_MASK 0x00080000
+
+/* Description RX_LOCATION_INFO_2_RTT_CHANNEL_DUMP_SIZE
+
+ Channel dump size.  It shows how many tones in CFR in
+ one chain, for example, it will show 52 for Legacy20 and 484
+ for VHT160
+
+
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_2_RTT_CHANNEL_DUMP_SIZE_OFFSET 0x00000008
+#define RX_LOCATION_INFO_2_RTT_CHANNEL_DUMP_SIZE_LSB 20
+#define RX_LOCATION_INFO_2_RTT_CHANNEL_DUMP_SIZE_MASK 0x7ff00000
+
+/* Description RX_LOCATION_INFO_2_RTT_HW_IFFT_MODE
+
+ Indicator showing if HW IFFT mode or SW IFFT mode
+
+
+
+ <enum 0 location_sw_ifft_mode>
+
+ <enum 1 location_hw_ifft_mode>
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_2_RTT_HW_IFFT_MODE_OFFSET 0x00000008
+#define RX_LOCATION_INFO_2_RTT_HW_IFFT_MODE_LSB 31
+#define RX_LOCATION_INFO_2_RTT_HW_IFFT_MODE_MASK 0x80000000
+
+/* Description RX_LOCATION_INFO_3_RTT_BTCF_STATUS
+
+ Indicate if BTCF is used to capture the timestamps
+
+
+
+ <enum 0 location_not_BTCF_based_ts>
+
+ <enum 1 location_BTCF_based_ts>
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_3_RTT_BTCF_STATUS_OFFSET 0x0000000c
+#define RX_LOCATION_INFO_3_RTT_BTCF_STATUS_LSB 0
+#define RX_LOCATION_INFO_3_RTT_BTCF_STATUS_MASK 0x00000001
+
+/* Description RX_LOCATION_INFO_3_RTT_PREAMBLE_TYPE
+
+ Indicate preamble type
+
+
+
+ <enum 0 location_preamble_type_legacy>
+
+ <enum 1 location_preamble_type_ht>
+
+ <enum 2 location_preamble_type_vht>
+
+ <enum 3 location_preamble_type_he_su_4xltf>
+
+ <enum 4 location_preamble_type_he_su_2xltf>
+
+ <enum 5 location_preamble_type_he_su_1xltf>
+
+ <enum 6
+ location_preamble_type_he_trigger_based_ul_4xltf>
+
+ <enum 7
+ location_preamble_type_he_trigger_based_ul_2xltf>
+
+ <enum 8
+ location_preamble_type_he_trigger_based_ul_1xltf>
+
+ <enum 9 location_preamble_type_he_mu_4xltf>
+
+ <enum 10 location_preamble_type_he_mu_2xltf>
+
+ <enum 11 location_preamble_type_he_mu_1xltf>
+
+ <enum 12
+ location_preamble_type_he_extended_range_su_4xltf>
+
+ <enum 13
+ location_preamble_type_he_extended_range_su_2xltf>
+
+ <enum 14
+ location_preamble_type_he_extended_range_su_1xltf>
+
+ <legal 0-14>
+*/
+#define RX_LOCATION_INFO_3_RTT_PREAMBLE_TYPE_OFFSET 0x0000000c
+#define RX_LOCATION_INFO_3_RTT_PREAMBLE_TYPE_LSB 1
+#define RX_LOCATION_INFO_3_RTT_PREAMBLE_TYPE_MASK 0x0000003e
+
+/* Description RX_LOCATION_INFO_3_RTT_PKT_BW_LEG
+
+ Indicate the bandwidth of L-LTF
+
+
+
+ <enum 0 location_pkt_bw_20MHz>
+
+ <enum 1 location_pkt_bw_40MHz>
+
+ <enum 2 location_pkt_bw_80MHz>
+
+ <enum 3 location_pkt_bw_160MHz>
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_3_RTT_PKT_BW_LEG_OFFSET 0x0000000c
+#define RX_LOCATION_INFO_3_RTT_PKT_BW_LEG_LSB 6
+#define RX_LOCATION_INFO_3_RTT_PKT_BW_LEG_MASK 0x000000c0
+
+/* Description RX_LOCATION_INFO_3_RTT_PKT_BW_VHT
+
+ Indicate the bandwidth of (V)HT/HE-LTF
+
+
+
+ <enum 0 location_pkt_bw_20MHz>
+
+ <enum 1 location_pkt_bw_40MHz>
+
+ <enum 2 location_pkt_bw_80MHz>
+
+ <enum 3 location_pkt_bw_160MHz>
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_3_RTT_PKT_BW_VHT_OFFSET 0x0000000c
+#define RX_LOCATION_INFO_3_RTT_PKT_BW_VHT_LSB 8
+#define RX_LOCATION_INFO_3_RTT_PKT_BW_VHT_MASK 0x00000300
+
+/* Description RX_LOCATION_INFO_3_RTT_GI_TYPE
+
+ Indicate GI (guard interval) type
+
+
+
+ <enum 0 gi_0_8_us > HE related GI. Can also be used
+ for HE
+
+ <enum 1 gi_0_4_us > HE related GI. Can also be used
+ for HE
+
+ <enum 2 gi_1_6_us > HE related GI
+
+ <enum 3 gi_3_2_us > HE related GI
+
+ <legal 0 - 3>
+*/
+#define RX_LOCATION_INFO_3_RTT_GI_TYPE_OFFSET 0x0000000c
+#define RX_LOCATION_INFO_3_RTT_GI_TYPE_LSB 10
+#define RX_LOCATION_INFO_3_RTT_GI_TYPE_MASK 0x00000c00
+
+/* Description RX_LOCATION_INFO_3_RTT_MCS_RATE
+
+ Bits 0~4 indicate MCS rate, if Legacy,
+
+ 0: 48 Mbps,
+
+ 1: 24 Mbps,
+
+ 2: 12 Mbps,
+
+ 3: 6 Mbps,
+
+ 4: 54 Mbps,
+
+ 5: 36 Mbps,
+
+ 6: 18 Mbps,
+
+ 7: 9 Mbps,
+
+
+
+ if HT, 0-7: MCS0-MCS7,
+
+ if VHT, 0-9: MCS0-MCS9,
+
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_3_RTT_MCS_RATE_OFFSET 0x0000000c
+#define RX_LOCATION_INFO_3_RTT_MCS_RATE_LSB 12
+#define RX_LOCATION_INFO_3_RTT_MCS_RATE_MASK 0x0001f000
+
+/* Description RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN
+
+ For 20/40/80, this field shows the first selected Rx
+ chain that is used in HW IFFT mode
+
+
+
+ For 80+80, this field shows the selected pri80 Rx chain
+ that is used in HW IFFT mode
+
+
+
+ <enum 0 location_strongest_chain_is_0>
+
+ <enum 1 location_strongest_chain_is_1>
+
+ <enum 2 location_strongest_chain_is_2>
+
+ <enum 3 location_strongest_chain_is_3>
+
+ <enum 4 location_strongest_chain_is_4>
+
+ <enum 5 location_strongest_chain_is_5>
+
+ <enum 6 location_strongest_chain_is_6>
+
+ <enum 7 location_strongest_chain_is_7>
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_OFFSET 0x0000000c
+#define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_LSB 17
+#define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_MASK 0x000e0000
+
+/* Description RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_EXT80
+
+ For 20/40/80, this field shows the second selected Rx
+ chain that is used in HW IFFT mode
+
+
+
+ For 80+80, this field shows the selected ext80 Rx chain
+ that is used in HW IFFT mode
+
+
+
+ <enum 0 location_strongest_chain_is_0>
+
+ <enum 1 location_strongest_chain_is_1>
+
+ <enum 2 location_strongest_chain_is_2>
+
+ <enum 3 location_strongest_chain_is_3>
+
+ <enum 4 location_strongest_chain_is_4>
+
+ <enum 5 location_strongest_chain_is_5>
+
+ <enum 6 location_strongest_chain_is_6>
+
+ <enum 7 location_strongest_chain_is_7>
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_EXT80_OFFSET 0x0000000c
+#define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_EXT80_LSB 20
+#define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_EXT80_MASK 0x00700000
+
+/* Description RX_LOCATION_INFO_3_RTT_RX_CHAIN_MASK
+
+ Rx chain mask, each bit is a Rx chain
+
+ 0: the Rx chain is not used
+
+ 1: the Rx chain is used
+
+ Support up to 8 Rx chains
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_3_RTT_RX_CHAIN_MASK_OFFSET 0x0000000c
+#define RX_LOCATION_INFO_3_RTT_RX_CHAIN_MASK_LSB 23
+#define RX_LOCATION_INFO_3_RTT_RX_CHAIN_MASK_MASK 0x7f800000
+
+/* Description RX_LOCATION_INFO_3_RESERVED_3
+
+ <legal 0>
+*/
+#define RX_LOCATION_INFO_3_RESERVED_3_OFFSET 0x0000000c
+#define RX_LOCATION_INFO_3_RESERVED_3_LSB 31
+#define RX_LOCATION_INFO_3_RESERVED_3_MASK 0x80000000
+
+/* Description RX_LOCATION_INFO_4_RX_START_TS
+
+ RX packet start timestamp
+
+
+
+ It reports the time the first L-STF ADC sample arrived
+ at RX antenna
+
+
+
+ clock unit is 480MHz
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_4_RX_START_TS_OFFSET 0x00000010
+#define RX_LOCATION_INFO_4_RX_START_TS_LSB 0
+#define RX_LOCATION_INFO_4_RX_START_TS_MASK 0xffffffff
+
+/* Description RX_LOCATION_INFO_5_RX_END_TS
+
+ RX packet end timestamp
+
+
+
+ It reports the time the last symbol's last ADC sample
+ arrived at RX antenna
+
+
+
+ clock unit is 480MHz
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_5_RX_END_TS_OFFSET 0x00000014
+#define RX_LOCATION_INFO_5_RX_END_TS_LSB 0
+#define RX_LOCATION_INFO_5_RX_END_TS_MASK 0xffffffff
+
+/* Description RX_LOCATION_INFO_6_SFO_PHASE_PKT_START
+
+ The phase of the SFO of the first symbol's first FFT
+ input sample
+
+
+
+ 12 bits, signed 6.6. 6 bits integer to cover -66.7ns to
+ 66.7ns, and 6 bits fraction to provide a resolution of
+ 0.03ns
+
+
+
+ clock unit is 480MHz
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_6_SFO_PHASE_PKT_START_OFFSET 0x00000018
+#define RX_LOCATION_INFO_6_SFO_PHASE_PKT_START_LSB 0
+#define RX_LOCATION_INFO_6_SFO_PHASE_PKT_START_MASK 0x00000fff
+
+/* Description RX_LOCATION_INFO_6_SFO_PHASE_PKT_END
+
+ The phase of the SFO of the last symbol's last FFT input
+ sample
+
+
+
+ 12 bits, signed 6.6. 6 bits integer to cover -66.7ns to
+ 66.7ns, and 6 bits fraction to provide a resolution of
+ 0.03ns
+
+
+
+ clock unit is 480MHz
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_6_SFO_PHASE_PKT_END_OFFSET 0x00000018
+#define RX_LOCATION_INFO_6_SFO_PHASE_PKT_END_LSB 12
+#define RX_LOCATION_INFO_6_SFO_PHASE_PKT_END_MASK 0x00fff000
+
+/* Description RX_LOCATION_INFO_6_RTT_CHE_BUFFER_POINTER_HIGH8
+
+ The high 8 bits of the 40 bits pointer pointed to the
+ external RTT channel information buffer
+
+
+
+ 8 bits
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_6_RTT_CHE_BUFFER_POINTER_HIGH8_OFFSET 0x00000018
+#define RX_LOCATION_INFO_6_RTT_CHE_BUFFER_POINTER_HIGH8_LSB 24
+#define RX_LOCATION_INFO_6_RTT_CHE_BUFFER_POINTER_HIGH8_MASK 0xff000000
+
+/* Description RX_LOCATION_INFO_7_RTT_CHE_BUFFER_POINTER_LOW32
+
+ The low 32 bits of the 40 bits pointer pointed to the
+ external RTT channel information buffer
+
+
+
+ 32 bits
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_7_RTT_CHE_BUFFER_POINTER_LOW32_OFFSET 0x0000001c
+#define RX_LOCATION_INFO_7_RTT_CHE_BUFFER_POINTER_LOW32_LSB 0
+#define RX_LOCATION_INFO_7_RTT_CHE_BUFFER_POINTER_LOW32_MASK 0xffffffff
+
+/* Description RX_LOCATION_INFO_8_RTT_CFO_MEASUREMENT
+
+ CFO measurement. Needed for passive locationing
+
+
+
+ 14 bits, signed 1.13. 13 bits fraction to provide a
+ resolution of 153 Hz
+
+
+
+ In units of cycles/800 ns
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_8_RTT_CFO_MEASUREMENT_OFFSET 0x00000020
+#define RX_LOCATION_INFO_8_RTT_CFO_MEASUREMENT_LSB 0
+#define RX_LOCATION_INFO_8_RTT_CFO_MEASUREMENT_MASK 0x00003fff
+
+/* Description RX_LOCATION_INFO_8_RTT_CHAN_SPREAD
+
+ Channel delay spread measurement. Needed for selecting
+ GI length
+
+
+
+ 8 bits, unsigned. At 25 ns step. Can represent up to
+ 6375 ns
+
+
+
+ In units of cycles @ 40 MHz
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_8_RTT_CHAN_SPREAD_OFFSET 0x00000020
+#define RX_LOCATION_INFO_8_RTT_CHAN_SPREAD_LSB 14
+#define RX_LOCATION_INFO_8_RTT_CHAN_SPREAD_MASK 0x003fc000
+
+/* Description RX_LOCATION_INFO_8_RTT_TIMING_BACKOFF_SEL
+
+ Indicate which timing backoff value is used
+
+
+
+ <enum 0 timing_backoff_low_rssi>
+
+ <enum 1 timing_backoff_mid_rssi>
+
+ <enum 2 timing_backoff_high_rssi>
+
+ <enum 3 reserved>
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_8_RTT_TIMING_BACKOFF_SEL_OFFSET 0x00000020
+#define RX_LOCATION_INFO_8_RTT_TIMING_BACKOFF_SEL_LSB 22
+#define RX_LOCATION_INFO_8_RTT_TIMING_BACKOFF_SEL_MASK 0x00c00000
+
+/* Description RX_LOCATION_INFO_8_RESERVED_8
+
+ <legal 0>
+*/
+#define RX_LOCATION_INFO_8_RESERVED_8_OFFSET 0x00000020
+#define RX_LOCATION_INFO_8_RESERVED_8_LSB 24
+#define RX_LOCATION_INFO_8_RESERVED_8_MASK 0x7f000000
+
+/* Description RX_LOCATION_INFO_8_RX_LOCATION_INFO_VALID
+
+ <enum 0 rx_location_info_is_not_valid>
+
+ <enum 1 rx_location_info_is_valid>
+
+ <legal all>
+*/
+#define RX_LOCATION_INFO_8_RX_LOCATION_INFO_VALID_OFFSET 0x00000020
+#define RX_LOCATION_INFO_8_RX_LOCATION_INFO_VALID_LSB 31
+#define RX_LOCATION_INFO_8_RX_LOCATION_INFO_VALID_MASK 0x80000000
+
+
+#endif // _RX_LOCATION_INFO_H_