xref: /wlan-driver/fw-api/hw/qca9574/phyrx_ht_sig.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2021 The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 
17 // $ATH_LICENSE_HW_HDR_C$
18 //
19 // DO NOT EDIT!  This file is automatically generated
20 //               These definitions are tied to a particular hardware layout
21 
22 
23 #ifndef _PHYRX_HT_SIG_H_
24 #define _PHYRX_HT_SIG_H_
25 #if !defined(__ASSEMBLER__)
26 #endif
27 
28 #include "ht_sig_info.h"
29 
30 // ################ START SUMMARY #################
31 //
32 //	Dword	Fields
33 //	0-1	struct ht_sig_info phyrx_ht_sig_info_details;
34 //
35 // ################ END SUMMARY #################
36 
37 #define NUM_OF_DWORDS_PHYRX_HT_SIG 2
38 
39 struct phyrx_ht_sig {
40     struct            ht_sig_info                       phyrx_ht_sig_info_details;
41 };
42 
43 /*
44 
45 struct ht_sig_info phyrx_ht_sig_info_details
46 
47 			See detailed description of the STRUCT
48 */
49 
50 
51  /* EXTERNAL REFERENCE : struct ht_sig_info phyrx_ht_sig_info_details */
52 
53 
54 /* Description		PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_MCS
55 
56 			Modulation Coding Scheme:
57 
58 			0-7 are used for single stream
59 
60 			8-15 are used for 2 streams
61 
62 			16-23 are used for 3 streams
63 
64 			24-31 are used for 4 streams
65 
66 			32 is used for duplicate HT20 (unsupported)
67 
68 			33-76 is used for unequal modulation (unsupported)
69 
70 			77-127 is reserved.
71 
72 			<legal 0-31>
73 */
74 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_MCS_OFFSET          0x00000000
75 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_MCS_LSB             0
76 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_MCS_MASK            0x0000007f
77 
78 /* Description		PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_CBW
79 
80 			Packet bandwidth:
81 
82 			<enum 0     ht_20_mhz>
83 
84 			<enum 1     ht_40_mhz>
85 
86 			<legal 0-1>
87 */
88 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_CBW_OFFSET          0x00000000
89 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_CBW_LSB             7
90 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_CBW_MASK            0x00000080
91 
92 /* Description		PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_LENGTH
93 
94 			This is the MPDU or A-MPDU length in octets of the PPDU
95 
96 			<legal all>
97 */
98 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_OFFSET       0x00000000
99 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_LSB          8
100 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_MASK         0x00ffff00
101 
102 /* Description		PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0
103 
104 			This field is not part of HT-SIG
105 
106 			Reserved: Should be set to 0 by the MAC and ignored by
107 			the PHY <legal 0>
108 */
109 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_OFFSET   0x00000000
110 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_LSB      24
111 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_MASK     0xff000000
112 
113 /* Description		PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING
114 
115 			Field indicates if smoothing is needed
116 
117 			E_num 0     do_smoothing Unsupported setting: indicates
118 			smoothing is often used for beamforming
119 
120 
121 			<legal 1>
122 */
123 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_OFFSET    0x00000004
124 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_LSB       0
125 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_MASK      0x00000001
126 
127 /* Description		PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING
128 
129 			E_num 0     sounding Unsupported setting: indicates
130 			sounding is used
131 
132 			<enum 1     no_sounding>  Indicates no sounding is used
133 
134 			<legal 1>
135 */
136 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_OFFSET 0x00000004
137 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_LSB    1
138 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_MASK   0x00000002
139 
140 /* Description		PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED
141 
142 			Reserved: Should be set to 1 by the MAC and ignored by
143 			the PHY
144 
145 			<legal 1>
146 */
147 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_OFFSET  0x00000004
148 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_LSB     2
149 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_MASK    0x00000004
150 
151 /* Description		PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION
152 
153 			<enum 0     mpdu> Indicates MPDU format
154 
155 			<enum 1     a_mpdu> Indicates A-MPDU format
156 
157 			<legal 0-1>
158 */
159 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_OFFSET  0x00000004
160 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_LSB     3
161 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_MASK    0x00000008
162 
163 /* Description		PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_STBC
164 
165 			<enum 0     no_stbc> Indicates no STBC
166 
167 			<enum 1     1_str_stbc> Indicates 1 stream STBC
168 
169 			E_num 2     2_str_stbc Indicates 2 stream STBC
170 			(Unsupported)
171 
172 			<legal 0-1>
173 */
174 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_STBC_OFFSET         0x00000004
175 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_STBC_LSB            4
176 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_STBC_MASK           0x00000030
177 
178 /* Description		PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING
179 
180 			<enum 0     ht_bcc>  Indicates BCC coding
181 
182 			<enum 1     ht_ldpc>  Indicates LDPC coding
183 
184 			<legal 0-1>
185 */
186 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_OFFSET   0x00000004
187 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_LSB      6
188 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_MASK     0x00000040
189 
190 /* Description		PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI
191 
192 			<enum 0     ht_normal_gi>  Indicates normal guard
193 			interval
194 
195 
196 			<legal 0-1>
197 */
198 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_OFFSET     0x00000004
199 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_LSB        7
200 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_MASK       0x00000080
201 
202 /* Description		PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR
203 
204 			Number of extension spatial streams: (Used for TxBF)
205 
206 			<enum 0     0_ext_sp_str>  No extension spatial streams
207 
208 			E_num 1     1_ext_sp_str  Not supported: 1 extension
209 			spatial streams
210 
211 			E_num 2     2_ext_sp_str  Not supported:  2 extension
212 			spatial streams
213 
214 			<legal 0>
215 */
216 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_OFFSET 0x00000004
217 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_LSB  8
218 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_MASK 0x00000300
219 
220 /* Description		PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_CRC
221 
222 			The CRC protects the HT-SIG (HT-SIG[0][23:0] and
223 			HT-SIG[1][9:0]. The generator polynomial is G(D) = D8 + D2 +
224 			D + 1.  <legal all>
225 */
226 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_CRC_OFFSET          0x00000004
227 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_CRC_LSB             10
228 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_CRC_MASK            0x0003fc00
229 
230 /* Description		PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL
231 
232 			The 6 bits of tail is always set to 0 is used to flush
233 			the BCC encoder and decoder.  <legal 0>
234 */
235 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_OFFSET  0x00000004
236 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_LSB     18
237 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_MASK    0x00fc0000
238 
239 /* Description		PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1
240 
241 			This field is not part of HT-SIG:
242 
243 			Reserved: Should be set to 0 by the MAC and ignored by
244 			the PHY.  <legal 0>
245 */
246 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_OFFSET   0x00000004
247 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_LSB      24
248 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_MASK     0xff000000
249 
250 
251 #endif // _PHYRX_HT_SIG_H_
252