xref: /wlan-driver/fw-api/hw/qca6390/v1/phyrx_rssi_legacy.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2018 The Linux Foundation. All rights reserved.
3*5113495bSYour Name  *
4*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
5*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
6*5113495bSYour Name  * above copyright notice and this permission notice appear in all
7*5113495bSYour Name  * copies.
8*5113495bSYour Name  *
9*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
17*5113495bSYour Name  */
18*5113495bSYour Name 
19*5113495bSYour Name #ifndef _PHYRX_RSSI_LEGACY_H_
20*5113495bSYour Name #define _PHYRX_RSSI_LEGACY_H_
21*5113495bSYour Name #if !defined(__ASSEMBLER__)
22*5113495bSYour Name #endif
23*5113495bSYour Name 
24*5113495bSYour Name #include "receive_rssi_info.h"
25*5113495bSYour Name 
26*5113495bSYour Name // ################ START SUMMARY #################
27*5113495bSYour Name //
28*5113495bSYour Name //	Dword	Fields
29*5113495bSYour Name //	0	reception_type[3:0], reserved_0[5:4], receive_bandwidth[7:6], rx_chain_mask[15:8], phy_ppdu_id[31:16]
30*5113495bSYour Name //	1	sw_phy_meta_data[31:0]
31*5113495bSYour Name //	2	ppdu_start_timestamp[31:0]
32*5113495bSYour Name //	3-18	struct receive_rssi_info pre_rssi_info_details;
33*5113495bSYour Name //	19-34	struct receive_rssi_info preamble_rssi_info_details;
34*5113495bSYour Name //	35	pre_rssi_comb[7:0], rssi_comb[15:8], normalized_pre_rssi_comb[23:16], normalized_rssi_comb[31:24]
35*5113495bSYour Name //	36	rssi_comb_ppdu[7:0], rssi_db_to_dbm_offset[15:8], reserved_36a[31:16]
36*5113495bSYour Name //
37*5113495bSYour Name // ################ END SUMMARY #################
38*5113495bSYour Name 
39*5113495bSYour Name #define NUM_OF_DWORDS_PHYRX_RSSI_LEGACY 37
40*5113495bSYour Name 
41*5113495bSYour Name struct phyrx_rssi_legacy {
42*5113495bSYour Name              uint32_t reception_type                  :  4, //[3:0]
43*5113495bSYour Name                       reserved_0                      :  2, //[5:4]
44*5113495bSYour Name                       receive_bandwidth               :  2, //[7:6]
45*5113495bSYour Name                       rx_chain_mask                   :  8, //[15:8]
46*5113495bSYour Name                       phy_ppdu_id                     : 16; //[31:16]
47*5113495bSYour Name              uint32_t sw_phy_meta_data                : 32; //[31:0]
48*5113495bSYour Name              uint32_t ppdu_start_timestamp            : 32; //[31:0]
49*5113495bSYour Name     struct            receive_rssi_info                       pre_rssi_info_details;
50*5113495bSYour Name     struct            receive_rssi_info                       preamble_rssi_info_details;
51*5113495bSYour Name              uint32_t pre_rssi_comb                   :  8, //[7:0]
52*5113495bSYour Name                       rssi_comb                       :  8, //[15:8]
53*5113495bSYour Name                       normalized_pre_rssi_comb        :  8, //[23:16]
54*5113495bSYour Name                       normalized_rssi_comb            :  8; //[31:24]
55*5113495bSYour Name              uint32_t rssi_comb_ppdu                  :  8, //[7:0]
56*5113495bSYour Name                       rssi_db_to_dbm_offset           :  8, //[15:8]
57*5113495bSYour Name                       reserved_36a                    : 16; //[31:16]
58*5113495bSYour Name };
59*5113495bSYour Name 
60*5113495bSYour Name /*
61*5113495bSYour Name 
62*5113495bSYour Name reception_type
63*5113495bSYour Name 
64*5113495bSYour Name 			This field helps MAC SW determine which field in this
65*5113495bSYour Name 			(and following TLVs) will contain valid information. For
66*5113495bSYour Name 			example some RSSI info not valid in case of uplink_ofdma..
67*5113495bSYour Name 
68*5113495bSYour Name 			<enum 0 reception_is_uplink_ofdma>
69*5113495bSYour Name 
70*5113495bSYour Name 			<enum 1 reception_is_uplink_mimo>
71*5113495bSYour Name 
72*5113495bSYour Name 			<enum 2 reception_is_other>
73*5113495bSYour Name 
74*5113495bSYour Name 			<enum 3 reception_is_frameless> PHY RX has been
75*5113495bSYour Name 			instructed in advance that the upcoming reception is
76*5113495bSYour Name 			frameless. This implieas that in advance it is known that
77*5113495bSYour Name 			all frames will collide in the medium, and nothing can be
78*5113495bSYour Name 			properly decoded... This can happen during the CTS reception
79*5113495bSYour Name 			in response to the triggered MU-RTS transmission.
80*5113495bSYour Name 
81*5113495bSYour Name 			MAC takes no action when seeing this e_num. For the
82*5113495bSYour Name 			frameless reception the indication in pkt_end is the final
83*5113495bSYour Name 			one evaluated by the MAC
84*5113495bSYour Name 
85*5113495bSYour Name 			<legal 0-3>
86*5113495bSYour Name 
87*5113495bSYour Name reserved_0
88*5113495bSYour Name 
89*5113495bSYour Name 			<legal 0>
90*5113495bSYour Name 
91*5113495bSYour Name receive_bandwidth
92*5113495bSYour Name 
93*5113495bSYour Name 			Full receive Bandwidth
94*5113495bSYour Name 
95*5113495bSYour Name 
96*5113495bSYour Name 
97*5113495bSYour Name 			<enum 0     full_rx_bw_20_mhz>
98*5113495bSYour Name 
99*5113495bSYour Name 			<enum 1      full_rx_bw_40_mhz>
100*5113495bSYour Name 
101*5113495bSYour Name 			<enum 2      full_rx_bw_80_mhz>
102*5113495bSYour Name 
103*5113495bSYour Name 			<enum 3      full_rx_bw_160_mhz>
104*5113495bSYour Name 
105*5113495bSYour Name 
106*5113495bSYour Name 
107*5113495bSYour Name 			<legal 0-3>
108*5113495bSYour Name 
109*5113495bSYour Name rx_chain_mask
110*5113495bSYour Name 
111*5113495bSYour Name 			The chain mask at the start of the reception of this
112*5113495bSYour Name 			frame.
113*5113495bSYour Name 
114*5113495bSYour Name 
115*5113495bSYour Name 
116*5113495bSYour Name 			each bit is one antenna
117*5113495bSYour Name 
118*5113495bSYour Name 			0: the chain is NOT used
119*5113495bSYour Name 
120*5113495bSYour Name 			1: the chain is used
121*5113495bSYour Name 
122*5113495bSYour Name 
123*5113495bSYour Name 
124*5113495bSYour Name 			Supports up to 8 chains
125*5113495bSYour Name 
126*5113495bSYour Name 
127*5113495bSYour Name 
128*5113495bSYour Name 			Used in 11ax TPC calculations for UL OFDMA/MIMO and has
129*5113495bSYour Name 			to be in sync with the rssi_comb value as this is also used
130*5113495bSYour Name 			by the MAC for the TPC calculations.
131*5113495bSYour Name 
132*5113495bSYour Name 			<legal all>
133*5113495bSYour Name 
134*5113495bSYour Name phy_ppdu_id
135*5113495bSYour Name 
136*5113495bSYour Name 			A ppdu counter value that PHY increments for every PPDU
137*5113495bSYour Name 			received. The counter value wraps around
138*5113495bSYour Name 
139*5113495bSYour Name 			<legal all>
140*5113495bSYour Name 
141*5113495bSYour Name sw_phy_meta_data
142*5113495bSYour Name 
143*5113495bSYour Name 			32 bit Meta data that SW can program in a 32 bit PHY
144*5113495bSYour Name 			register and PHY will insert the value in every
145*5113495bSYour Name 			RX_RSSI_LEGACY TLV that it generates.
146*5113495bSYour Name 
147*5113495bSYour Name 			SW uses this field to embed among other things some SW
148*5113495bSYour Name 			channel info.
149*5113495bSYour Name 
150*5113495bSYour Name ppdu_start_timestamp
151*5113495bSYour Name 
152*5113495bSYour Name 			Timestamp that indicates when the PPDU that contained
153*5113495bSYour Name 			this MPDU started on the medium.
154*5113495bSYour Name 
155*5113495bSYour Name 
156*5113495bSYour Name 
157*5113495bSYour Name 			Note that PHY will detect the start later, and will have
158*5113495bSYour Name 			to derive out of the preamble info when the frame actually
159*5113495bSYour Name 			appeared on the medium
160*5113495bSYour Name 
161*5113495bSYour Name 			<legal 0- 10>
162*5113495bSYour Name 
163*5113495bSYour Name struct receive_rssi_info pre_rssi_info_details
164*5113495bSYour Name 
165*5113495bSYour Name 			This field is not valid when reception_is_uplink_ofdma
166*5113495bSYour Name 
167*5113495bSYour Name 
168*5113495bSYour Name 
169*5113495bSYour Name 			Overview of the pre-RSSI values. That is RSSI values
170*5113495bSYour Name 			measured on the medium before this reception started.
171*5113495bSYour Name 
172*5113495bSYour Name struct receive_rssi_info preamble_rssi_info_details
173*5113495bSYour Name 
174*5113495bSYour Name 			This field is not valid when reception_is_uplink_ofdma
175*5113495bSYour Name 
176*5113495bSYour Name 
177*5113495bSYour Name 
178*5113495bSYour Name 			Overview of the RSSI values measured during the
179*5113495bSYour Name 			pre-amble phase of this reception
180*5113495bSYour Name 
181*5113495bSYour Name pre_rssi_comb
182*5113495bSYour Name 
183*5113495bSYour Name 			Combined pre_rssi of all chains. Based on primary
184*5113495bSYour Name 			channel RSSI.
185*5113495bSYour Name 
186*5113495bSYour Name 
187*5113495bSYour Name 
188*5113495bSYour Name 			RSSI is reported as 8b signed values. Nominally value is
189*5113495bSYour Name 			in dB units above or below the noisefloor(minCCApwr).
190*5113495bSYour Name 
191*5113495bSYour Name 
192*5113495bSYour Name 
193*5113495bSYour Name 			The resolution can be:
194*5113495bSYour Name 
195*5113495bSYour Name 			1dB or 0.5dB. This is statically configured within the
196*5113495bSYour Name 			PHY and MAC
197*5113495bSYour Name 
198*5113495bSYour Name 
199*5113495bSYour Name 
200*5113495bSYour Name 			In case of 1dB, the Range is:
201*5113495bSYour Name 
202*5113495bSYour Name 			 -128dB to 127dB
203*5113495bSYour Name 
204*5113495bSYour Name 
205*5113495bSYour Name 
206*5113495bSYour Name 			In case of 0.5dB, the Range is:
207*5113495bSYour Name 
208*5113495bSYour Name 			 -64dB to 63.5dB
209*5113495bSYour Name 
210*5113495bSYour Name 
211*5113495bSYour Name 
212*5113495bSYour Name 			<legal all>
213*5113495bSYour Name 
214*5113495bSYour Name rssi_comb
215*5113495bSYour Name 
216*5113495bSYour Name 			Combined rssi of all chains. Based on primary channel
217*5113495bSYour Name 			RSSI.
218*5113495bSYour Name 
219*5113495bSYour Name 
220*5113495bSYour Name 
221*5113495bSYour Name 			RSSI is reported as 8b signed values. Nominally value is
222*5113495bSYour Name 			in dB units above or below the noisefloor(minCCApwr).
223*5113495bSYour Name 
224*5113495bSYour Name 
225*5113495bSYour Name 
226*5113495bSYour Name 			The resolution can be:
227*5113495bSYour Name 
228*5113495bSYour Name 			1dB or 0.5dB. This is statically configured within the
229*5113495bSYour Name 			PHY and MAC
230*5113495bSYour Name 
231*5113495bSYour Name 
232*5113495bSYour Name 
233*5113495bSYour Name 			In case of 1dB, the Range is:
234*5113495bSYour Name 
235*5113495bSYour Name 			 -128dB to 127dB
236*5113495bSYour Name 
237*5113495bSYour Name 
238*5113495bSYour Name 
239*5113495bSYour Name 			In case of 0.5dB, the Range is:
240*5113495bSYour Name 
241*5113495bSYour Name 			 -64dB to 63.5dB
242*5113495bSYour Name 
243*5113495bSYour Name 
244*5113495bSYour Name 
245*5113495bSYour Name 			<legal all>
246*5113495bSYour Name 
247*5113495bSYour Name normalized_pre_rssi_comb
248*5113495bSYour Name 
249*5113495bSYour Name 			Combined pre_rssi of all chains, but normalized back to
250*5113495bSYour Name 			a single chain. This avoids PDG from having to evaluate this
251*5113495bSYour Name 			in combination with receive chain mask and perform all kinds
252*5113495bSYour Name 			of pre-processing algorithms.
253*5113495bSYour Name 
254*5113495bSYour Name 
255*5113495bSYour Name 
256*5113495bSYour Name 			Based on primary channel RSSI.
257*5113495bSYour Name 
258*5113495bSYour Name 
259*5113495bSYour Name 
260*5113495bSYour Name 			RSSI is reported as 8b signed values. Nominally value is
261*5113495bSYour Name 			in dB units above or below the noisefloor(minCCApwr).
262*5113495bSYour Name 
263*5113495bSYour Name 
264*5113495bSYour Name 
265*5113495bSYour Name 			The resolution can be:
266*5113495bSYour Name 
267*5113495bSYour Name 			1dB or 0.5dB. This is statically configured within the
268*5113495bSYour Name 			PHY and MAC
269*5113495bSYour Name 
270*5113495bSYour Name 
271*5113495bSYour Name 
272*5113495bSYour Name 			In case of 1dB, the Range is:
273*5113495bSYour Name 
274*5113495bSYour Name 			 -128dB to 127dB
275*5113495bSYour Name 
276*5113495bSYour Name 
277*5113495bSYour Name 
278*5113495bSYour Name 			In case of 0.5dB, the Range is:
279*5113495bSYour Name 
280*5113495bSYour Name 			 -64dB to 63.5dB
281*5113495bSYour Name 
282*5113495bSYour Name 
283*5113495bSYour Name 
284*5113495bSYour Name 			<legal all>
285*5113495bSYour Name 
286*5113495bSYour Name normalized_rssi_comb
287*5113495bSYour Name 
288*5113495bSYour Name 			Combined rssi of all chains, but normalized back to a
289*5113495bSYour Name 			single chain. This avoids PDG from having to evaluate this
290*5113495bSYour Name 			in combination with receive chain mask and perform all kinds
291*5113495bSYour Name 			of pre-processing algorithms.
292*5113495bSYour Name 
293*5113495bSYour Name 
294*5113495bSYour Name 
295*5113495bSYour Name 			Based on primary channel RSSI.
296*5113495bSYour Name 
297*5113495bSYour Name 
298*5113495bSYour Name 
299*5113495bSYour Name 			RSSI is reported as 8b signed values. Nominally value is
300*5113495bSYour Name 			in dB units above or below the noisefloor(minCCApwr).
301*5113495bSYour Name 
302*5113495bSYour Name 
303*5113495bSYour Name 
304*5113495bSYour Name 			The resolution can be:
305*5113495bSYour Name 
306*5113495bSYour Name 			1dB or 0.5dB. This is statically configured within the
307*5113495bSYour Name 			PHY and MAC
308*5113495bSYour Name 
309*5113495bSYour Name 			In case of 1dB, the Range is:
310*5113495bSYour Name 
311*5113495bSYour Name 			 -128dB to 127dB
312*5113495bSYour Name 
313*5113495bSYour Name 
314*5113495bSYour Name 
315*5113495bSYour Name 			In case of 0.5dB, the Range is:
316*5113495bSYour Name 
317*5113495bSYour Name 			 -64dB to 63.5dB
318*5113495bSYour Name 
319*5113495bSYour Name 
320*5113495bSYour Name 
321*5113495bSYour Name 			<legal all>
322*5113495bSYour Name 
323*5113495bSYour Name rssi_comb_ppdu
324*5113495bSYour Name 
325*5113495bSYour Name 			Combined rssi of all chains, based on active
326*5113495bSYour Name 			RUs/subchannels
327*5113495bSYour Name 
328*5113495bSYour Name 
329*5113495bSYour Name 
330*5113495bSYour Name 			RSSI is reported as 8b signed values. Nominally value is
331*5113495bSYour Name 			in dB units above or below the noisefloor(minCCApwr).
332*5113495bSYour Name 
333*5113495bSYour Name 
334*5113495bSYour Name 
335*5113495bSYour Name 			The resolution can be:
336*5113495bSYour Name 
337*5113495bSYour Name 			1dB or 0.5dB. This is statically configured within the
338*5113495bSYour Name 			PHY and MAC
339*5113495bSYour Name 
340*5113495bSYour Name 
341*5113495bSYour Name 
342*5113495bSYour Name 			In case of 1dB, the Range is:
343*5113495bSYour Name 
344*5113495bSYour Name 			 -128dB to 127dB
345*5113495bSYour Name 
346*5113495bSYour Name 
347*5113495bSYour Name 
348*5113495bSYour Name 			In case of 0.5dB, the Range is:
349*5113495bSYour Name 
350*5113495bSYour Name 			 -64dB to 63.5dB
351*5113495bSYour Name 
352*5113495bSYour Name 
353*5113495bSYour Name 
354*5113495bSYour Name 			When packet BW is 20 MHz,
355*5113495bSYour Name 
356*5113495bSYour Name 			rssi_comb_ppdu = rssi_comb.
357*5113495bSYour Name 
358*5113495bSYour Name 
359*5113495bSYour Name 
360*5113495bSYour Name 			When packet BW > 20 MHz,
361*5113495bSYour Name 
362*5113495bSYour Name 			rssi_comb < rssi_comb_ppdu because rssi_comb only
363*5113495bSYour Name 			includes power of primary 20 MHz while rssi_comb_ppdu
364*5113495bSYour Name 			includes power of active RUs/subchannels.
365*5113495bSYour Name 
366*5113495bSYour Name 
367*5113495bSYour Name 
368*5113495bSYour Name 			<legal all>
369*5113495bSYour Name 
370*5113495bSYour Name rssi_db_to_dbm_offset
371*5113495bSYour Name 
372*5113495bSYour Name 			Offset between 'dB' and 'dBm' values. SW can use this
373*5113495bSYour Name 			value to convert RSSI 'dBm' values back to 'dB,' and report
374*5113495bSYour Name 			both the values.
375*5113495bSYour Name 
376*5113495bSYour Name 
377*5113495bSYour Name 
378*5113495bSYour Name 			When rssi_db_to_dbm_offset = 0,
379*5113495bSYour Name 
380*5113495bSYour Name 			all rssi_xxx fields are defined in dB.
381*5113495bSYour Name 
382*5113495bSYour Name 
383*5113495bSYour Name 
384*5113495bSYour Name 			When rssi_db_to_dbm_offset is a large negative value,
385*5113495bSYour Name 			all rssi_xxx fields are defined in dBm.
386*5113495bSYour Name 
387*5113495bSYour Name 
388*5113495bSYour Name 
389*5113495bSYour Name 			<legal all>
390*5113495bSYour Name 
391*5113495bSYour Name reserved_36a
392*5113495bSYour Name 
393*5113495bSYour Name 			<legal 0>
394*5113495bSYour Name */
395*5113495bSYour Name 
396*5113495bSYour Name 
397*5113495bSYour Name /* Description		PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE
398*5113495bSYour Name 
399*5113495bSYour Name 			This field helps MAC SW determine which field in this
400*5113495bSYour Name 			(and following TLVs) will contain valid information. For
401*5113495bSYour Name 			example some RSSI info not valid in case of uplink_ofdma..
402*5113495bSYour Name 
403*5113495bSYour Name 			<enum 0 reception_is_uplink_ofdma>
404*5113495bSYour Name 
405*5113495bSYour Name 			<enum 1 reception_is_uplink_mimo>
406*5113495bSYour Name 
407*5113495bSYour Name 			<enum 2 reception_is_other>
408*5113495bSYour Name 
409*5113495bSYour Name 			<enum 3 reception_is_frameless> PHY RX has been
410*5113495bSYour Name 			instructed in advance that the upcoming reception is
411*5113495bSYour Name 			frameless. This implieas that in advance it is known that
412*5113495bSYour Name 			all frames will collide in the medium, and nothing can be
413*5113495bSYour Name 			properly decoded... This can happen during the CTS reception
414*5113495bSYour Name 			in response to the triggered MU-RTS transmission.
415*5113495bSYour Name 
416*5113495bSYour Name 			MAC takes no action when seeing this e_num. For the
417*5113495bSYour Name 			frameless reception the indication in pkt_end is the final
418*5113495bSYour Name 			one evaluated by the MAC
419*5113495bSYour Name 
420*5113495bSYour Name 			<legal 0-3>
421*5113495bSYour Name */
422*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE_OFFSET                    0x00000000
423*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE_LSB                       0
424*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RECEPTION_TYPE_MASK                      0x0000000f
425*5113495bSYour Name 
426*5113495bSYour Name /* Description		PHYRX_RSSI_LEGACY_0_RESERVED_0
427*5113495bSYour Name 
428*5113495bSYour Name 			<legal 0>
429*5113495bSYour Name */
430*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RESERVED_0_OFFSET                        0x00000000
431*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RESERVED_0_LSB                           4
432*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RESERVED_0_MASK                          0x00000030
433*5113495bSYour Name 
434*5113495bSYour Name /* Description		PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH
435*5113495bSYour Name 
436*5113495bSYour Name 			Full receive Bandwidth
437*5113495bSYour Name 
438*5113495bSYour Name 
439*5113495bSYour Name 
440*5113495bSYour Name 			<enum 0     full_rx_bw_20_mhz>
441*5113495bSYour Name 
442*5113495bSYour Name 			<enum 1      full_rx_bw_40_mhz>
443*5113495bSYour Name 
444*5113495bSYour Name 			<enum 2      full_rx_bw_80_mhz>
445*5113495bSYour Name 
446*5113495bSYour Name 			<enum 3      full_rx_bw_160_mhz>
447*5113495bSYour Name 
448*5113495bSYour Name 
449*5113495bSYour Name 
450*5113495bSYour Name 			<legal 0-3>
451*5113495bSYour Name */
452*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH_OFFSET                 0x00000000
453*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH_LSB                    6
454*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RECEIVE_BANDWIDTH_MASK                   0x000000c0
455*5113495bSYour Name 
456*5113495bSYour Name /* Description		PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK
457*5113495bSYour Name 
458*5113495bSYour Name 			The chain mask at the start of the reception of this
459*5113495bSYour Name 			frame.
460*5113495bSYour Name 
461*5113495bSYour Name 
462*5113495bSYour Name 
463*5113495bSYour Name 			each bit is one antenna
464*5113495bSYour Name 
465*5113495bSYour Name 			0: the chain is NOT used
466*5113495bSYour Name 
467*5113495bSYour Name 			1: the chain is used
468*5113495bSYour Name 
469*5113495bSYour Name 
470*5113495bSYour Name 
471*5113495bSYour Name 			Supports up to 8 chains
472*5113495bSYour Name 
473*5113495bSYour Name 
474*5113495bSYour Name 
475*5113495bSYour Name 			Used in 11ax TPC calculations for UL OFDMA/MIMO and has
476*5113495bSYour Name 			to be in sync with the rssi_comb value as this is also used
477*5113495bSYour Name 			by the MAC for the TPC calculations.
478*5113495bSYour Name 
479*5113495bSYour Name 			<legal all>
480*5113495bSYour Name */
481*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK_OFFSET                     0x00000000
482*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK_LSB                        8
483*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_RX_CHAIN_MASK_MASK                       0x0000ff00
484*5113495bSYour Name 
485*5113495bSYour Name /* Description		PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID
486*5113495bSYour Name 
487*5113495bSYour Name 			A ppdu counter value that PHY increments for every PPDU
488*5113495bSYour Name 			received. The counter value wraps around
489*5113495bSYour Name 
490*5113495bSYour Name 			<legal all>
491*5113495bSYour Name */
492*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID_OFFSET                       0x00000000
493*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID_LSB                          16
494*5113495bSYour Name #define PHYRX_RSSI_LEGACY_0_PHY_PPDU_ID_MASK                         0xffff0000
495*5113495bSYour Name 
496*5113495bSYour Name /* Description		PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA
497*5113495bSYour Name 
498*5113495bSYour Name 			32 bit Meta data that SW can program in a 32 bit PHY
499*5113495bSYour Name 			register and PHY will insert the value in every
500*5113495bSYour Name 			RX_RSSI_LEGACY TLV that it generates.
501*5113495bSYour Name 
502*5113495bSYour Name 			SW uses this field to embed among other things some SW
503*5113495bSYour Name 			channel info.
504*5113495bSYour Name */
505*5113495bSYour Name #define PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA_OFFSET                  0x00000004
506*5113495bSYour Name #define PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA_LSB                     0
507*5113495bSYour Name #define PHYRX_RSSI_LEGACY_1_SW_PHY_META_DATA_MASK                    0xffffffff
508*5113495bSYour Name 
509*5113495bSYour Name /* Description		PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP
510*5113495bSYour Name 
511*5113495bSYour Name 			Timestamp that indicates when the PPDU that contained
512*5113495bSYour Name 			this MPDU started on the medium.
513*5113495bSYour Name 
514*5113495bSYour Name 
515*5113495bSYour Name 
516*5113495bSYour Name 			Note that PHY will detect the start later, and will have
517*5113495bSYour Name 			to derive out of the preamble info when the frame actually
518*5113495bSYour Name 			appeared on the medium
519*5113495bSYour Name 
520*5113495bSYour Name 			<legal 0- 10>
521*5113495bSYour Name */
522*5113495bSYour Name #define PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP_OFFSET              0x00000008
523*5113495bSYour Name #define PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP_LSB                 0
524*5113495bSYour Name #define PHYRX_RSSI_LEGACY_2_PPDU_START_TIMESTAMP_MASK                0xffffffff
525*5113495bSYour Name #define PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000000c
526*5113495bSYour Name #define PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
527*5113495bSYour Name #define PHYRX_RSSI_LEGACY_3_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
528*5113495bSYour Name #define PHYRX_RSSI_LEGACY_4_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000010
529*5113495bSYour Name #define PHYRX_RSSI_LEGACY_4_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
530*5113495bSYour Name #define PHYRX_RSSI_LEGACY_4_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
531*5113495bSYour Name #define PHYRX_RSSI_LEGACY_5_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000014
532*5113495bSYour Name #define PHYRX_RSSI_LEGACY_5_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
533*5113495bSYour Name #define PHYRX_RSSI_LEGACY_5_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
534*5113495bSYour Name #define PHYRX_RSSI_LEGACY_6_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000018
535*5113495bSYour Name #define PHYRX_RSSI_LEGACY_6_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
536*5113495bSYour Name #define PHYRX_RSSI_LEGACY_6_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
537*5113495bSYour Name #define PHYRX_RSSI_LEGACY_7_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000001c
538*5113495bSYour Name #define PHYRX_RSSI_LEGACY_7_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
539*5113495bSYour Name #define PHYRX_RSSI_LEGACY_7_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
540*5113495bSYour Name #define PHYRX_RSSI_LEGACY_8_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000020
541*5113495bSYour Name #define PHYRX_RSSI_LEGACY_8_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
542*5113495bSYour Name #define PHYRX_RSSI_LEGACY_8_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
543*5113495bSYour Name #define PHYRX_RSSI_LEGACY_9_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000024
544*5113495bSYour Name #define PHYRX_RSSI_LEGACY_9_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
545*5113495bSYour Name #define PHYRX_RSSI_LEGACY_9_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
546*5113495bSYour Name #define PHYRX_RSSI_LEGACY_10_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000028
547*5113495bSYour Name #define PHYRX_RSSI_LEGACY_10_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
548*5113495bSYour Name #define PHYRX_RSSI_LEGACY_10_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
549*5113495bSYour Name #define PHYRX_RSSI_LEGACY_11_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000002c
550*5113495bSYour Name #define PHYRX_RSSI_LEGACY_11_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
551*5113495bSYour Name #define PHYRX_RSSI_LEGACY_11_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
552*5113495bSYour Name #define PHYRX_RSSI_LEGACY_12_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000030
553*5113495bSYour Name #define PHYRX_RSSI_LEGACY_12_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
554*5113495bSYour Name #define PHYRX_RSSI_LEGACY_12_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
555*5113495bSYour Name #define PHYRX_RSSI_LEGACY_13_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000034
556*5113495bSYour Name #define PHYRX_RSSI_LEGACY_13_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
557*5113495bSYour Name #define PHYRX_RSSI_LEGACY_13_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
558*5113495bSYour Name #define PHYRX_RSSI_LEGACY_14_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000038
559*5113495bSYour Name #define PHYRX_RSSI_LEGACY_14_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
560*5113495bSYour Name #define PHYRX_RSSI_LEGACY_14_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
561*5113495bSYour Name #define PHYRX_RSSI_LEGACY_15_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x0000003c
562*5113495bSYour Name #define PHYRX_RSSI_LEGACY_15_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
563*5113495bSYour Name #define PHYRX_RSSI_LEGACY_15_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
564*5113495bSYour Name #define PHYRX_RSSI_LEGACY_16_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000040
565*5113495bSYour Name #define PHYRX_RSSI_LEGACY_16_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
566*5113495bSYour Name #define PHYRX_RSSI_LEGACY_16_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
567*5113495bSYour Name #define PHYRX_RSSI_LEGACY_17_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000044
568*5113495bSYour Name #define PHYRX_RSSI_LEGACY_17_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
569*5113495bSYour Name #define PHYRX_RSSI_LEGACY_17_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
570*5113495bSYour Name #define PHYRX_RSSI_LEGACY_18_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_OFFSET 0x00000048
571*5113495bSYour Name #define PHYRX_RSSI_LEGACY_18_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_LSB 0
572*5113495bSYour Name #define PHYRX_RSSI_LEGACY_18_RECEIVE_RSSI_INFO_PRE_RSSI_INFO_DETAILS_MASK 0xffffffff
573*5113495bSYour Name #define PHYRX_RSSI_LEGACY_19_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000004c
574*5113495bSYour Name #define PHYRX_RSSI_LEGACY_19_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
575*5113495bSYour Name #define PHYRX_RSSI_LEGACY_19_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
576*5113495bSYour Name #define PHYRX_RSSI_LEGACY_20_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000050
577*5113495bSYour Name #define PHYRX_RSSI_LEGACY_20_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
578*5113495bSYour Name #define PHYRX_RSSI_LEGACY_20_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
579*5113495bSYour Name #define PHYRX_RSSI_LEGACY_21_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000054
580*5113495bSYour Name #define PHYRX_RSSI_LEGACY_21_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
581*5113495bSYour Name #define PHYRX_RSSI_LEGACY_21_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
582*5113495bSYour Name #define PHYRX_RSSI_LEGACY_22_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000058
583*5113495bSYour Name #define PHYRX_RSSI_LEGACY_22_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
584*5113495bSYour Name #define PHYRX_RSSI_LEGACY_22_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
585*5113495bSYour Name #define PHYRX_RSSI_LEGACY_23_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000005c
586*5113495bSYour Name #define PHYRX_RSSI_LEGACY_23_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
587*5113495bSYour Name #define PHYRX_RSSI_LEGACY_23_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
588*5113495bSYour Name #define PHYRX_RSSI_LEGACY_24_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000060
589*5113495bSYour Name #define PHYRX_RSSI_LEGACY_24_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
590*5113495bSYour Name #define PHYRX_RSSI_LEGACY_24_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
591*5113495bSYour Name #define PHYRX_RSSI_LEGACY_25_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000064
592*5113495bSYour Name #define PHYRX_RSSI_LEGACY_25_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
593*5113495bSYour Name #define PHYRX_RSSI_LEGACY_25_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
594*5113495bSYour Name #define PHYRX_RSSI_LEGACY_26_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000068
595*5113495bSYour Name #define PHYRX_RSSI_LEGACY_26_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
596*5113495bSYour Name #define PHYRX_RSSI_LEGACY_26_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
597*5113495bSYour Name #define PHYRX_RSSI_LEGACY_27_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000006c
598*5113495bSYour Name #define PHYRX_RSSI_LEGACY_27_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
599*5113495bSYour Name #define PHYRX_RSSI_LEGACY_27_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
600*5113495bSYour Name #define PHYRX_RSSI_LEGACY_28_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000070
601*5113495bSYour Name #define PHYRX_RSSI_LEGACY_28_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
602*5113495bSYour Name #define PHYRX_RSSI_LEGACY_28_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
603*5113495bSYour Name #define PHYRX_RSSI_LEGACY_29_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000074
604*5113495bSYour Name #define PHYRX_RSSI_LEGACY_29_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
605*5113495bSYour Name #define PHYRX_RSSI_LEGACY_29_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
606*5113495bSYour Name #define PHYRX_RSSI_LEGACY_30_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000078
607*5113495bSYour Name #define PHYRX_RSSI_LEGACY_30_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
608*5113495bSYour Name #define PHYRX_RSSI_LEGACY_30_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
609*5113495bSYour Name #define PHYRX_RSSI_LEGACY_31_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x0000007c
610*5113495bSYour Name #define PHYRX_RSSI_LEGACY_31_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
611*5113495bSYour Name #define PHYRX_RSSI_LEGACY_31_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
612*5113495bSYour Name #define PHYRX_RSSI_LEGACY_32_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000080
613*5113495bSYour Name #define PHYRX_RSSI_LEGACY_32_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
614*5113495bSYour Name #define PHYRX_RSSI_LEGACY_32_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
615*5113495bSYour Name #define PHYRX_RSSI_LEGACY_33_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000084
616*5113495bSYour Name #define PHYRX_RSSI_LEGACY_33_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
617*5113495bSYour Name #define PHYRX_RSSI_LEGACY_33_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
618*5113495bSYour Name #define PHYRX_RSSI_LEGACY_34_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_OFFSET 0x00000088
619*5113495bSYour Name #define PHYRX_RSSI_LEGACY_34_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_LSB 0
620*5113495bSYour Name #define PHYRX_RSSI_LEGACY_34_RECEIVE_RSSI_INFO_PREAMBLE_RSSI_INFO_DETAILS_MASK 0xffffffff
621*5113495bSYour Name 
622*5113495bSYour Name /* Description		PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB
623*5113495bSYour Name 
624*5113495bSYour Name 			Combined pre_rssi of all chains. Based on primary
625*5113495bSYour Name 			channel RSSI.
626*5113495bSYour Name 
627*5113495bSYour Name 
628*5113495bSYour Name 
629*5113495bSYour Name 			RSSI is reported as 8b signed values. Nominally value is
630*5113495bSYour Name 			in dB units above or below the noisefloor(minCCApwr).
631*5113495bSYour Name 
632*5113495bSYour Name 
633*5113495bSYour Name 
634*5113495bSYour Name 			The resolution can be:
635*5113495bSYour Name 
636*5113495bSYour Name 			1dB or 0.5dB. This is statically configured within the
637*5113495bSYour Name 			PHY and MAC
638*5113495bSYour Name 
639*5113495bSYour Name 
640*5113495bSYour Name 
641*5113495bSYour Name 			In case of 1dB, the Range is:
642*5113495bSYour Name 
643*5113495bSYour Name 			 -128dB to 127dB
644*5113495bSYour Name 
645*5113495bSYour Name 
646*5113495bSYour Name 
647*5113495bSYour Name 			In case of 0.5dB, the Range is:
648*5113495bSYour Name 
649*5113495bSYour Name 			 -64dB to 63.5dB
650*5113495bSYour Name 
651*5113495bSYour Name 
652*5113495bSYour Name 
653*5113495bSYour Name 			<legal all>
654*5113495bSYour Name */
655*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB_OFFSET                    0x0000008c
656*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB_LSB                       0
657*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_PRE_RSSI_COMB_MASK                      0x000000ff
658*5113495bSYour Name 
659*5113495bSYour Name /* Description		PHYRX_RSSI_LEGACY_35_RSSI_COMB
660*5113495bSYour Name 
661*5113495bSYour Name 			Combined rssi of all chains. Based on primary channel
662*5113495bSYour Name 			RSSI.
663*5113495bSYour Name 
664*5113495bSYour Name 
665*5113495bSYour Name 
666*5113495bSYour Name 			RSSI is reported as 8b signed values. Nominally value is
667*5113495bSYour Name 			in dB units above or below the noisefloor(minCCApwr).
668*5113495bSYour Name 
669*5113495bSYour Name 
670*5113495bSYour Name 
671*5113495bSYour Name 			The resolution can be:
672*5113495bSYour Name 
673*5113495bSYour Name 			1dB or 0.5dB. This is statically configured within the
674*5113495bSYour Name 			PHY and MAC
675*5113495bSYour Name 
676*5113495bSYour Name 
677*5113495bSYour Name 
678*5113495bSYour Name 			In case of 1dB, the Range is:
679*5113495bSYour Name 
680*5113495bSYour Name 			 -128dB to 127dB
681*5113495bSYour Name 
682*5113495bSYour Name 
683*5113495bSYour Name 
684*5113495bSYour Name 			In case of 0.5dB, the Range is:
685*5113495bSYour Name 
686*5113495bSYour Name 			 -64dB to 63.5dB
687*5113495bSYour Name 
688*5113495bSYour Name 
689*5113495bSYour Name 
690*5113495bSYour Name 			<legal all>
691*5113495bSYour Name */
692*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_RSSI_COMB_OFFSET                        0x0000008c
693*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_RSSI_COMB_LSB                           8
694*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_RSSI_COMB_MASK                          0x0000ff00
695*5113495bSYour Name 
696*5113495bSYour Name /* Description		PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB
697*5113495bSYour Name 
698*5113495bSYour Name 			Combined pre_rssi of all chains, but normalized back to
699*5113495bSYour Name 			a single chain. This avoids PDG from having to evaluate this
700*5113495bSYour Name 			in combination with receive chain mask and perform all kinds
701*5113495bSYour Name 			of pre-processing algorithms.
702*5113495bSYour Name 
703*5113495bSYour Name 
704*5113495bSYour Name 
705*5113495bSYour Name 			Based on primary channel RSSI.
706*5113495bSYour Name 
707*5113495bSYour Name 
708*5113495bSYour Name 
709*5113495bSYour Name 			RSSI is reported as 8b signed values. Nominally value is
710*5113495bSYour Name 			in dB units above or below the noisefloor(minCCApwr).
711*5113495bSYour Name 
712*5113495bSYour Name 
713*5113495bSYour Name 
714*5113495bSYour Name 			The resolution can be:
715*5113495bSYour Name 
716*5113495bSYour Name 			1dB or 0.5dB. This is statically configured within the
717*5113495bSYour Name 			PHY and MAC
718*5113495bSYour Name 
719*5113495bSYour Name 
720*5113495bSYour Name 
721*5113495bSYour Name 			In case of 1dB, the Range is:
722*5113495bSYour Name 
723*5113495bSYour Name 			 -128dB to 127dB
724*5113495bSYour Name 
725*5113495bSYour Name 
726*5113495bSYour Name 
727*5113495bSYour Name 			In case of 0.5dB, the Range is:
728*5113495bSYour Name 
729*5113495bSYour Name 			 -64dB to 63.5dB
730*5113495bSYour Name 
731*5113495bSYour Name 
732*5113495bSYour Name 
733*5113495bSYour Name 			<legal all>
734*5113495bSYour Name */
735*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB_OFFSET         0x0000008c
736*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB_LSB            16
737*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_NORMALIZED_PRE_RSSI_COMB_MASK           0x00ff0000
738*5113495bSYour Name 
739*5113495bSYour Name /* Description		PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB
740*5113495bSYour Name 
741*5113495bSYour Name 			Combined rssi of all chains, but normalized back to a
742*5113495bSYour Name 			single chain. This avoids PDG from having to evaluate this
743*5113495bSYour Name 			in combination with receive chain mask and perform all kinds
744*5113495bSYour Name 			of pre-processing algorithms.
745*5113495bSYour Name 
746*5113495bSYour Name 
747*5113495bSYour Name 
748*5113495bSYour Name 			Based on primary channel RSSI.
749*5113495bSYour Name 
750*5113495bSYour Name 
751*5113495bSYour Name 
752*5113495bSYour Name 			RSSI is reported as 8b signed values. Nominally value is
753*5113495bSYour Name 			in dB units above or below the noisefloor(minCCApwr).
754*5113495bSYour Name 
755*5113495bSYour Name 
756*5113495bSYour Name 
757*5113495bSYour Name 			The resolution can be:
758*5113495bSYour Name 
759*5113495bSYour Name 			1dB or 0.5dB. This is statically configured within the
760*5113495bSYour Name 			PHY and MAC
761*5113495bSYour Name 
762*5113495bSYour Name 			In case of 1dB, the Range is:
763*5113495bSYour Name 
764*5113495bSYour Name 			 -128dB to 127dB
765*5113495bSYour Name 
766*5113495bSYour Name 
767*5113495bSYour Name 
768*5113495bSYour Name 			In case of 0.5dB, the Range is:
769*5113495bSYour Name 
770*5113495bSYour Name 			 -64dB to 63.5dB
771*5113495bSYour Name 
772*5113495bSYour Name 
773*5113495bSYour Name 
774*5113495bSYour Name 			<legal all>
775*5113495bSYour Name */
776*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB_OFFSET             0x0000008c
777*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB_LSB                24
778*5113495bSYour Name #define PHYRX_RSSI_LEGACY_35_NORMALIZED_RSSI_COMB_MASK               0xff000000
779*5113495bSYour Name 
780*5113495bSYour Name /* Description		PHYRX_RSSI_LEGACY_36_RSSI_COMB_PPDU
781*5113495bSYour Name 
782*5113495bSYour Name 			Combined rssi of all chains, based on active
783*5113495bSYour Name 			RUs/subchannels
784*5113495bSYour Name 
785*5113495bSYour Name 
786*5113495bSYour Name 
787*5113495bSYour Name 			RSSI is reported as 8b signed values. Nominally value is
788*5113495bSYour Name 			in dB units above or below the noisefloor(minCCApwr).
789*5113495bSYour Name 
790*5113495bSYour Name 
791*5113495bSYour Name 
792*5113495bSYour Name 			The resolution can be:
793*5113495bSYour Name 
794*5113495bSYour Name 			1dB or 0.5dB. This is statically configured within the
795*5113495bSYour Name 			PHY and MAC
796*5113495bSYour Name 
797*5113495bSYour Name 
798*5113495bSYour Name 
799*5113495bSYour Name 			In case of 1dB, the Range is:
800*5113495bSYour Name 
801*5113495bSYour Name 			 -128dB to 127dB
802*5113495bSYour Name 
803*5113495bSYour Name 
804*5113495bSYour Name 
805*5113495bSYour Name 			In case of 0.5dB, the Range is:
806*5113495bSYour Name 
807*5113495bSYour Name 			 -64dB to 63.5dB
808*5113495bSYour Name 
809*5113495bSYour Name 
810*5113495bSYour Name 
811*5113495bSYour Name 			When packet BW is 20 MHz,
812*5113495bSYour Name 
813*5113495bSYour Name 			rssi_comb_ppdu = rssi_comb.
814*5113495bSYour Name 
815*5113495bSYour Name 
816*5113495bSYour Name 
817*5113495bSYour Name 			When packet BW > 20 MHz,
818*5113495bSYour Name 
819*5113495bSYour Name 			rssi_comb < rssi_comb_ppdu because rssi_comb only
820*5113495bSYour Name 			includes power of primary 20 MHz while rssi_comb_ppdu
821*5113495bSYour Name 			includes power of active RUs/subchannels.
822*5113495bSYour Name 
823*5113495bSYour Name 
824*5113495bSYour Name 
825*5113495bSYour Name 			<legal all>
826*5113495bSYour Name */
827*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RSSI_COMB_PPDU_OFFSET                   0x00000090
828*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RSSI_COMB_PPDU_LSB                      0
829*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RSSI_COMB_PPDU_MASK                     0x000000ff
830*5113495bSYour Name 
831*5113495bSYour Name /* Description		PHYRX_RSSI_LEGACY_36_RSSI_DB_TO_DBM_OFFSET
832*5113495bSYour Name 
833*5113495bSYour Name 			Offset between 'dB' and 'dBm' values. SW can use this
834*5113495bSYour Name 			value to convert RSSI 'dBm' values back to 'dB,' and report
835*5113495bSYour Name 			both the values.
836*5113495bSYour Name 
837*5113495bSYour Name 
838*5113495bSYour Name 
839*5113495bSYour Name 			When rssi_db_to_dbm_offset = 0,
840*5113495bSYour Name 
841*5113495bSYour Name 			all rssi_xxx fields are defined in dB.
842*5113495bSYour Name 
843*5113495bSYour Name 
844*5113495bSYour Name 
845*5113495bSYour Name 			When rssi_db_to_dbm_offset is a large negative value,
846*5113495bSYour Name 			all rssi_xxx fields are defined in dBm.
847*5113495bSYour Name 
848*5113495bSYour Name 
849*5113495bSYour Name 
850*5113495bSYour Name 			<legal all>
851*5113495bSYour Name */
852*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RSSI_DB_TO_DBM_OFFSET_OFFSET            0x00000090
853*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RSSI_DB_TO_DBM_OFFSET_LSB               8
854*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RSSI_DB_TO_DBM_OFFSET_MASK              0x0000ff00
855*5113495bSYour Name 
856*5113495bSYour Name /* Description		PHYRX_RSSI_LEGACY_36_RESERVED_36A
857*5113495bSYour Name 
858*5113495bSYour Name 			<legal 0>
859*5113495bSYour Name */
860*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RESERVED_36A_OFFSET                     0x00000090
861*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RESERVED_36A_LSB                        16
862*5113495bSYour Name #define PHYRX_RSSI_LEGACY_36_RESERVED_36A_MASK                       0xffff0000
863*5113495bSYour Name 
864*5113495bSYour Name 
865*5113495bSYour Name #endif // _PHYRX_RSSI_LEGACY_H_
866