xref: /wlan-driver/fw-api/hw/qca6490/v1/he_sig_a_mu_ul_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 _HE_SIG_A_MU_UL_INFO_H_
25 #define _HE_SIG_A_MU_UL_INFO_H_
26 #if !defined(__ASSEMBLER__)
27 #endif
28 
29 
30 // ################ START SUMMARY #################
31 //
32 //	Dword	Fields
33 //	0	format_indication[0], bss_color_id[6:1], spatial_reuse[22:7], reserved_0a[23], transmit_bw[25:24], reserved_0b[31:26]
34 //	1	txop_duration[6:0], reserved_1a[15:7], crc[19:16], tail[25:20], reserved_1b[31:26]
35 //
36 // ################ END SUMMARY #################
37 
38 #define NUM_OF_DWORDS_HE_SIG_A_MU_UL_INFO 2
39 
40 struct he_sig_a_mu_ul_info {
41              uint32_t format_indication               :  1, //[0]
42                       bss_color_id                    :  6, //[6:1]
43                       spatial_reuse                   : 16, //[22:7]
44                       reserved_0a                     :  1, //[23]
45                       transmit_bw                     :  2, //[25:24]
46                       reserved_0b                     :  6; //[31:26]
47              uint32_t txop_duration                   :  7, //[6:0]
48                       reserved_1a                     :  9, //[15:7]
49                       crc                             :  4, //[19:16]
50                       tail                            :  6, //[25:20]
51                       reserved_1b                     :  6; //[31:26]
52 };
53 
54 /*
55 
56 format_indication
57 
58 			Indicates whether the transmission is SU PPDU or a
59 			trigger based UL MU PDDU
60 
61 			<enum 0 HE_SIGA_FORMAT_HE_TRIG>
62 
63 			<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
64 
65 			<legal all>
66 
67 bss_color_id
68 
69 			BSS color ID
70 
71 			<legal all>
72 
73 spatial_reuse
74 
75 			Spatial reuse
76 
77 
78 
79 			<legal all>
80 
81 reserved_0a
82 
83 			Note: spec indicates this shall be set to 1
84 
85 			<legal 1>
86 
87 transmit_bw
88 
89 			Bandwidth of the PPDU.
90 
91 
92 
93 			<enum 0 HE_SIG_A_MU_UL_BW20> 20 Mhz
94 
95 			<enum 1 HE_SIG_A_MU_UL_BW40> 40 Mhz
96 
97 			<enum 2 HE_SIG_A_MU_UL_BW80> 80 Mhz
98 
99 			<enum 3 HE_SIG_A_MU_UL_BW160> 160 MHz or 80+80 MHz
100 
101 
102 
103 			On RX side, Field Used by MAC HW
104 
105 			<legal 0-3>
106 
107 reserved_0b
108 
109 			<legal 0>
110 
111 txop_duration
112 
113 			Indicates the remaining time in the current TXOP <legal
114 			all>
115 
116 reserved_1a
117 
118 			Set to value indicated in the trigger frame
119 
120 			<legal 255>
121 
122 crc
123 
124 			CRC for HE-SIG-A contents.
125 
126 			This CRC may also cover some fields of L-SIG (TBD)
127 
128 			<legal all>
129 
130 tail
131 
132 			BCC encoding (similar to VHT-SIG-A) with 6 tail bits is
133 			used
134 
135 			<legal 0>
136 
137 reserved_1b
138 
139 			<legal 0>
140 */
141 
142 
143 /* Description		HE_SIG_A_MU_UL_INFO_0_FORMAT_INDICATION
144 
145 			Indicates whether the transmission is SU PPDU or a
146 			trigger based UL MU PDDU
147 
148 			<enum 0 HE_SIGA_FORMAT_HE_TRIG>
149 
150 			<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
151 
152 			<legal all>
153 */
154 #define HE_SIG_A_MU_UL_INFO_0_FORMAT_INDICATION_OFFSET               0x00000000
155 #define HE_SIG_A_MU_UL_INFO_0_FORMAT_INDICATION_LSB                  0
156 #define HE_SIG_A_MU_UL_INFO_0_FORMAT_INDICATION_MASK                 0x00000001
157 
158 /* Description		HE_SIG_A_MU_UL_INFO_0_BSS_COLOR_ID
159 
160 			BSS color ID
161 
162 			<legal all>
163 */
164 #define HE_SIG_A_MU_UL_INFO_0_BSS_COLOR_ID_OFFSET                    0x00000000
165 #define HE_SIG_A_MU_UL_INFO_0_BSS_COLOR_ID_LSB                       1
166 #define HE_SIG_A_MU_UL_INFO_0_BSS_COLOR_ID_MASK                      0x0000007e
167 
168 /* Description		HE_SIG_A_MU_UL_INFO_0_SPATIAL_REUSE
169 
170 			Spatial reuse
171 
172 
173 
174 			<legal all>
175 */
176 #define HE_SIG_A_MU_UL_INFO_0_SPATIAL_REUSE_OFFSET                   0x00000000
177 #define HE_SIG_A_MU_UL_INFO_0_SPATIAL_REUSE_LSB                      7
178 #define HE_SIG_A_MU_UL_INFO_0_SPATIAL_REUSE_MASK                     0x007fff80
179 
180 /* Description		HE_SIG_A_MU_UL_INFO_0_RESERVED_0A
181 
182 			Note: spec indicates this shall be set to 1
183 
184 			<legal 1>
185 */
186 #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0A_OFFSET                     0x00000000
187 #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0A_LSB                        23
188 #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0A_MASK                       0x00800000
189 
190 /* Description		HE_SIG_A_MU_UL_INFO_0_TRANSMIT_BW
191 
192 			Bandwidth of the PPDU.
193 
194 
195 
196 			<enum 0 HE_SIG_A_MU_UL_BW20> 20 Mhz
197 
198 			<enum 1 HE_SIG_A_MU_UL_BW40> 40 Mhz
199 
200 			<enum 2 HE_SIG_A_MU_UL_BW80> 80 Mhz
201 
202 			<enum 3 HE_SIG_A_MU_UL_BW160> 160 MHz or 80+80 MHz
203 
204 
205 
206 			On RX side, Field Used by MAC HW
207 
208 			<legal 0-3>
209 */
210 #define HE_SIG_A_MU_UL_INFO_0_TRANSMIT_BW_OFFSET                     0x00000000
211 #define HE_SIG_A_MU_UL_INFO_0_TRANSMIT_BW_LSB                        24
212 #define HE_SIG_A_MU_UL_INFO_0_TRANSMIT_BW_MASK                       0x03000000
213 
214 /* Description		HE_SIG_A_MU_UL_INFO_0_RESERVED_0B
215 
216 			<legal 0>
217 */
218 #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0B_OFFSET                     0x00000000
219 #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0B_LSB                        26
220 #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0B_MASK                       0xfc000000
221 
222 /* Description		HE_SIG_A_MU_UL_INFO_1_TXOP_DURATION
223 
224 			Indicates the remaining time in the current TXOP <legal
225 			all>
226 */
227 #define HE_SIG_A_MU_UL_INFO_1_TXOP_DURATION_OFFSET                   0x00000004
228 #define HE_SIG_A_MU_UL_INFO_1_TXOP_DURATION_LSB                      0
229 #define HE_SIG_A_MU_UL_INFO_1_TXOP_DURATION_MASK                     0x0000007f
230 
231 /* Description		HE_SIG_A_MU_UL_INFO_1_RESERVED_1A
232 
233 			Set to value indicated in the trigger frame
234 
235 			<legal 255>
236 */
237 #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1A_OFFSET                     0x00000004
238 #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1A_LSB                        7
239 #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1A_MASK                       0x0000ff80
240 
241 /* Description		HE_SIG_A_MU_UL_INFO_1_CRC
242 
243 			CRC for HE-SIG-A contents.
244 
245 			This CRC may also cover some fields of L-SIG (TBD)
246 
247 			<legal all>
248 */
249 #define HE_SIG_A_MU_UL_INFO_1_CRC_OFFSET                             0x00000004
250 #define HE_SIG_A_MU_UL_INFO_1_CRC_LSB                                16
251 #define HE_SIG_A_MU_UL_INFO_1_CRC_MASK                               0x000f0000
252 
253 /* Description		HE_SIG_A_MU_UL_INFO_1_TAIL
254 
255 			BCC encoding (similar to VHT-SIG-A) with 6 tail bits is
256 			used
257 
258 			<legal 0>
259 */
260 #define HE_SIG_A_MU_UL_INFO_1_TAIL_OFFSET                            0x00000004
261 #define HE_SIG_A_MU_UL_INFO_1_TAIL_LSB                               20
262 #define HE_SIG_A_MU_UL_INFO_1_TAIL_MASK                              0x03f00000
263 
264 /* Description		HE_SIG_A_MU_UL_INFO_1_RESERVED_1B
265 
266 			<legal 0>
267 */
268 #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1B_OFFSET                     0x00000004
269 #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1B_LSB                        26
270 #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1B_MASK                       0xfc000000
271 
272 
273 #endif // _HE_SIG_A_MU_UL_INFO_H_
274