xref: /wlan-dirver/fw-api/hw/peach/v1/phytx_pkt_end.h (revision 2d29d9afc7efb53a45926b5f9d2533f511c10dc9)
1 /*
2  * Copyright (c) 2023 Qualcomm Innovation Center, Inc. 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 
18 #ifndef _PHYTX_PKT_END_H_
19 #define _PHYTX_PKT_END_H_
20 
21 #define NUM_OF_WORDS_PHYTX_PKT_END 26
22 
23 #define NUM_OF_DWORDS_PHYTX_PKT_END 13
24 
25 struct phytx_pkt_end {
26 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
27              uint16_t start_of_frame_timestamp_15_0                           : 16;
28              uint16_t start_of_frame_timestamp_31_16                          : 16;
29              uint16_t end_of_frame_timestamp_15_0                             : 16;
30              uint16_t end_of_frame_timestamp_31_16                            : 16;
31              uint16_t tx_group_delay                                          : 12,
32                       timing_status                                           :  2,
33                       phyrx_entered_nap_state                                 :  1,
34                       dpdtrain_done                                           :  1;
35              uint16_t transmit_delay                                          : 16;
36              uint16_t tpc_dbg_info_cmn_15_0                                   : 16;
37              uint16_t tpc_dbg_info_cmn_31_16                                  : 16;
38              uint16_t tpc_dbg_info_cmn_47_32                                  : 16;
39              uint16_t tpc_dbg_info_chn1_15_0                                  : 16;
40              uint16_t tpc_dbg_info_chn1_31_16                                 : 16;
41              uint16_t tpc_dbg_info_chn1_47_32                                 : 16;
42              uint16_t tpc_dbg_info_chn1_63_48                                 : 16;
43              uint16_t tpc_dbg_info_chn1_79_64                                 : 16;
44              uint16_t tpc_dbg_info_chn2_15_0                                  : 16;
45              uint16_t tpc_dbg_info_chn2_31_16                                 : 16;
46              uint16_t tpc_dbg_info_chn2_47_32                                 : 16;
47              uint16_t tpc_dbg_info_chn2_63_48                                 : 16;
48              uint16_t tpc_dbg_info_chn2_79_64                                 : 16;
49              uint16_t phytx_tx_end_sw_info_15_0                               : 16;
50              uint16_t phytx_tx_end_sw_info_31_16                              : 16;
51              uint16_t phytx_tx_end_sw_info_47_32                              : 16;
52              uint16_t phytx_tx_end_sw_info_63_48                              : 16;
53              uint16_t beamform_masked_user_bitmap_15_0                        : 16;
54              uint16_t beamform_masked_user_bitmap_31_16                       : 16;
55              uint16_t beamform_masked_user_bitmap_36_32                       :  5,
56                       reserved_23                                             : 11;
57 #else
58              uint16_t start_of_frame_timestamp_15_0                           : 16;
59              uint16_t start_of_frame_timestamp_31_16                          : 16;
60              uint16_t end_of_frame_timestamp_15_0                             : 16;
61              uint16_t end_of_frame_timestamp_31_16                            : 16;
62              uint16_t dpdtrain_done                                           :  1,
63                       phyrx_entered_nap_state                                 :  1,
64                       timing_status                                           :  2,
65                       tx_group_delay                                          : 12;
66              uint16_t transmit_delay                                          : 16;
67              uint16_t tpc_dbg_info_cmn_15_0                                   : 16;
68              uint16_t tpc_dbg_info_cmn_31_16                                  : 16;
69              uint16_t tpc_dbg_info_cmn_47_32                                  : 16;
70              uint16_t tpc_dbg_info_chn1_15_0                                  : 16;
71              uint16_t tpc_dbg_info_chn1_31_16                                 : 16;
72              uint16_t tpc_dbg_info_chn1_47_32                                 : 16;
73              uint16_t tpc_dbg_info_chn1_63_48                                 : 16;
74              uint16_t tpc_dbg_info_chn1_79_64                                 : 16;
75              uint16_t tpc_dbg_info_chn2_15_0                                  : 16;
76              uint16_t tpc_dbg_info_chn2_31_16                                 : 16;
77              uint16_t tpc_dbg_info_chn2_47_32                                 : 16;
78              uint16_t tpc_dbg_info_chn2_63_48                                 : 16;
79              uint16_t tpc_dbg_info_chn2_79_64                                 : 16;
80              uint16_t phytx_tx_end_sw_info_15_0                               : 16;
81              uint16_t phytx_tx_end_sw_info_31_16                              : 16;
82              uint16_t phytx_tx_end_sw_info_47_32                              : 16;
83              uint16_t phytx_tx_end_sw_info_63_48                              : 16;
84              uint16_t beamform_masked_user_bitmap_15_0                        : 16;
85              uint16_t beamform_masked_user_bitmap_31_16                       : 16;
86              uint16_t reserved_23                                             : 11,
87                       beamform_masked_user_bitmap_36_32                       :  5;
88 #endif
89 };
90 
91 #define PHYTX_PKT_END_START_OF_FRAME_TIMESTAMP_15_0_OFFSET                          0x00000000
92 #define PHYTX_PKT_END_START_OF_FRAME_TIMESTAMP_15_0_LSB                             0
93 #define PHYTX_PKT_END_START_OF_FRAME_TIMESTAMP_15_0_MSB                             15
94 #define PHYTX_PKT_END_START_OF_FRAME_TIMESTAMP_15_0_MASK                            0x0000ffff
95 
96 #define PHYTX_PKT_END_START_OF_FRAME_TIMESTAMP_31_16_OFFSET                         0x00000002
97 #define PHYTX_PKT_END_START_OF_FRAME_TIMESTAMP_31_16_LSB                            0
98 #define PHYTX_PKT_END_START_OF_FRAME_TIMESTAMP_31_16_MSB                            15
99 #define PHYTX_PKT_END_START_OF_FRAME_TIMESTAMP_31_16_MASK                           0x0000ffff
100 
101 #define PHYTX_PKT_END_END_OF_FRAME_TIMESTAMP_15_0_OFFSET                            0x00000004
102 #define PHYTX_PKT_END_END_OF_FRAME_TIMESTAMP_15_0_LSB                               0
103 #define PHYTX_PKT_END_END_OF_FRAME_TIMESTAMP_15_0_MSB                               15
104 #define PHYTX_PKT_END_END_OF_FRAME_TIMESTAMP_15_0_MASK                              0x0000ffff
105 
106 #define PHYTX_PKT_END_END_OF_FRAME_TIMESTAMP_31_16_OFFSET                           0x00000006
107 #define PHYTX_PKT_END_END_OF_FRAME_TIMESTAMP_31_16_LSB                              0
108 #define PHYTX_PKT_END_END_OF_FRAME_TIMESTAMP_31_16_MSB                              15
109 #define PHYTX_PKT_END_END_OF_FRAME_TIMESTAMP_31_16_MASK                             0x0000ffff
110 
111 #define PHYTX_PKT_END_TX_GROUP_DELAY_OFFSET                                         0x00000008
112 #define PHYTX_PKT_END_TX_GROUP_DELAY_LSB                                            0
113 #define PHYTX_PKT_END_TX_GROUP_DELAY_MSB                                            11
114 #define PHYTX_PKT_END_TX_GROUP_DELAY_MASK                                           0x00000fff
115 
116 #define PHYTX_PKT_END_TIMING_STATUS_OFFSET                                          0x00000008
117 #define PHYTX_PKT_END_TIMING_STATUS_LSB                                             12
118 #define PHYTX_PKT_END_TIMING_STATUS_MSB                                             13
119 #define PHYTX_PKT_END_TIMING_STATUS_MASK                                            0x00003000
120 
121 #define PHYTX_PKT_END_PHYRX_ENTERED_NAP_STATE_OFFSET                                0x00000008
122 #define PHYTX_PKT_END_PHYRX_ENTERED_NAP_STATE_LSB                                   14
123 #define PHYTX_PKT_END_PHYRX_ENTERED_NAP_STATE_MSB                                   14
124 #define PHYTX_PKT_END_PHYRX_ENTERED_NAP_STATE_MASK                                  0x00004000
125 
126 #define PHYTX_PKT_END_DPDTRAIN_DONE_OFFSET                                          0x00000008
127 #define PHYTX_PKT_END_DPDTRAIN_DONE_LSB                                             15
128 #define PHYTX_PKT_END_DPDTRAIN_DONE_MSB                                             15
129 #define PHYTX_PKT_END_DPDTRAIN_DONE_MASK                                            0x00008000
130 
131 #define PHYTX_PKT_END_TRANSMIT_DELAY_OFFSET                                         0x0000000a
132 #define PHYTX_PKT_END_TRANSMIT_DELAY_LSB                                            0
133 #define PHYTX_PKT_END_TRANSMIT_DELAY_MSB                                            15
134 #define PHYTX_PKT_END_TRANSMIT_DELAY_MASK                                           0x0000ffff
135 
136 #define PHYTX_PKT_END_TPC_DBG_INFO_CMN_15_0_OFFSET                                  0x0000000c
137 #define PHYTX_PKT_END_TPC_DBG_INFO_CMN_15_0_LSB                                     0
138 #define PHYTX_PKT_END_TPC_DBG_INFO_CMN_15_0_MSB                                     15
139 #define PHYTX_PKT_END_TPC_DBG_INFO_CMN_15_0_MASK                                    0x0000ffff
140 
141 #define PHYTX_PKT_END_TPC_DBG_INFO_CMN_31_16_OFFSET                                 0x0000000e
142 #define PHYTX_PKT_END_TPC_DBG_INFO_CMN_31_16_LSB                                    0
143 #define PHYTX_PKT_END_TPC_DBG_INFO_CMN_31_16_MSB                                    15
144 #define PHYTX_PKT_END_TPC_DBG_INFO_CMN_31_16_MASK                                   0x0000ffff
145 
146 #define PHYTX_PKT_END_TPC_DBG_INFO_CMN_47_32_OFFSET                                 0x00000010
147 #define PHYTX_PKT_END_TPC_DBG_INFO_CMN_47_32_LSB                                    0
148 #define PHYTX_PKT_END_TPC_DBG_INFO_CMN_47_32_MSB                                    15
149 #define PHYTX_PKT_END_TPC_DBG_INFO_CMN_47_32_MASK                                   0x0000ffff
150 
151 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_15_0_OFFSET                                 0x00000012
152 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_15_0_LSB                                    0
153 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_15_0_MSB                                    15
154 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_15_0_MASK                                   0x0000ffff
155 
156 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_31_16_OFFSET                                0x00000014
157 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_31_16_LSB                                   0
158 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_31_16_MSB                                   15
159 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_31_16_MASK                                  0x0000ffff
160 
161 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_47_32_OFFSET                                0x00000016
162 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_47_32_LSB                                   0
163 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_47_32_MSB                                   15
164 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_47_32_MASK                                  0x0000ffff
165 
166 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_63_48_OFFSET                                0x00000018
167 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_63_48_LSB                                   0
168 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_63_48_MSB                                   15
169 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_63_48_MASK                                  0x0000ffff
170 
171 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_79_64_OFFSET                                0x0000001a
172 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_79_64_LSB                                   0
173 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_79_64_MSB                                   15
174 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN1_79_64_MASK                                  0x0000ffff
175 
176 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_15_0_OFFSET                                 0x0000001c
177 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_15_0_LSB                                    0
178 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_15_0_MSB                                    15
179 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_15_0_MASK                                   0x0000ffff
180 
181 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_31_16_OFFSET                                0x0000001e
182 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_31_16_LSB                                   0
183 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_31_16_MSB                                   15
184 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_31_16_MASK                                  0x0000ffff
185 
186 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_47_32_OFFSET                                0x00000020
187 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_47_32_LSB                                   0
188 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_47_32_MSB                                   15
189 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_47_32_MASK                                  0x0000ffff
190 
191 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_63_48_OFFSET                                0x00000022
192 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_63_48_LSB                                   0
193 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_63_48_MSB                                   15
194 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_63_48_MASK                                  0x0000ffff
195 
196 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_79_64_OFFSET                                0x00000024
197 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_79_64_LSB                                   0
198 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_79_64_MSB                                   15
199 #define PHYTX_PKT_END_TPC_DBG_INFO_CHN2_79_64_MASK                                  0x0000ffff
200 
201 #define PHYTX_PKT_END_PHYTX_TX_END_SW_INFO_15_0_OFFSET                              0x00000026
202 #define PHYTX_PKT_END_PHYTX_TX_END_SW_INFO_15_0_LSB                                 0
203 #define PHYTX_PKT_END_PHYTX_TX_END_SW_INFO_15_0_MSB                                 15
204 #define PHYTX_PKT_END_PHYTX_TX_END_SW_INFO_15_0_MASK                                0x0000ffff
205 
206 #define PHYTX_PKT_END_PHYTX_TX_END_SW_INFO_31_16_OFFSET                             0x00000028
207 #define PHYTX_PKT_END_PHYTX_TX_END_SW_INFO_31_16_LSB                                0
208 #define PHYTX_PKT_END_PHYTX_TX_END_SW_INFO_31_16_MSB                                15
209 #define PHYTX_PKT_END_PHYTX_TX_END_SW_INFO_31_16_MASK                               0x0000ffff
210 
211 #define PHYTX_PKT_END_PHYTX_TX_END_SW_INFO_47_32_OFFSET                             0x0000002a
212 #define PHYTX_PKT_END_PHYTX_TX_END_SW_INFO_47_32_LSB                                0
213 #define PHYTX_PKT_END_PHYTX_TX_END_SW_INFO_47_32_MSB                                15
214 #define PHYTX_PKT_END_PHYTX_TX_END_SW_INFO_47_32_MASK                               0x0000ffff
215 
216 #define PHYTX_PKT_END_PHYTX_TX_END_SW_INFO_63_48_OFFSET                             0x0000002c
217 #define PHYTX_PKT_END_PHYTX_TX_END_SW_INFO_63_48_LSB                                0
218 #define PHYTX_PKT_END_PHYTX_TX_END_SW_INFO_63_48_MSB                                15
219 #define PHYTX_PKT_END_PHYTX_TX_END_SW_INFO_63_48_MASK                               0x0000ffff
220 
221 #define PHYTX_PKT_END_BEAMFORM_MASKED_USER_BITMAP_15_0_OFFSET                       0x0000002e
222 #define PHYTX_PKT_END_BEAMFORM_MASKED_USER_BITMAP_15_0_LSB                          0
223 #define PHYTX_PKT_END_BEAMFORM_MASKED_USER_BITMAP_15_0_MSB                          15
224 #define PHYTX_PKT_END_BEAMFORM_MASKED_USER_BITMAP_15_0_MASK                         0x0000ffff
225 
226 #define PHYTX_PKT_END_BEAMFORM_MASKED_USER_BITMAP_31_16_OFFSET                      0x00000030
227 #define PHYTX_PKT_END_BEAMFORM_MASKED_USER_BITMAP_31_16_LSB                         0
228 #define PHYTX_PKT_END_BEAMFORM_MASKED_USER_BITMAP_31_16_MSB                         15
229 #define PHYTX_PKT_END_BEAMFORM_MASKED_USER_BITMAP_31_16_MASK                        0x0000ffff
230 
231 #define PHYTX_PKT_END_BEAMFORM_MASKED_USER_BITMAP_36_32_OFFSET                      0x00000032
232 #define PHYTX_PKT_END_BEAMFORM_MASKED_USER_BITMAP_36_32_LSB                         0
233 #define PHYTX_PKT_END_BEAMFORM_MASKED_USER_BITMAP_36_32_MSB                         4
234 #define PHYTX_PKT_END_BEAMFORM_MASKED_USER_BITMAP_36_32_MASK                        0x0000001f
235 
236 #define PHYTX_PKT_END_RESERVED_23_OFFSET                                            0x00000032
237 #define PHYTX_PKT_END_RESERVED_23_LSB                                               5
238 #define PHYTX_PKT_END_RESERVED_23_MSB                                               15
239 #define PHYTX_PKT_END_RESERVED_23_MASK                                              0x0000ffe0
240 
241 #endif
242