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 _TX_FES_STATUS_START_PROT_H_
19  #define _TX_FES_STATUS_START_PROT_H_
20  
21  #define NUM_OF_DWORDS_TX_FES_STATUS_START_PROT 4
22  
23  struct tx_fes_status_start_prot {
24  #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
25               uint32_t prot_timestamp_lower_32                                 : 32;
26               uint32_t prot_timestamp_upper_32                                 : 32;
27               uint32_t subband_mask                                            : 16,
28                        reserved_2b                                             :  4,
29                        prot_coex_based_tx_bw                                   :  3,
30                        prot_coex_based_ant_mask                                :  8,
31                        prot_coex_result_alt_based                              :  1;
32               uint32_t prot_coex_tx_pwr_shared_ant                             :  8,
33                        prot_coex_tx_pwr_ant                                    :  8,
34                        prot_concurrent_bt_tx                                   :  1,
35                        prot_concurrent_wlan_tx                                 :  1,
36                        prot_concurrent_wan_tx                                  :  1,
37                        prot_concurrent_wan_rx                                  :  1,
38                        prot_coex_pwr_reduction_bt                              :  1,
39                        prot_coex_pwr_reduction_wlan                            :  1,
40                        prot_coex_pwr_reduction_wan                             :  1,
41                        prot_request_packet_bw                                  :  3,
42                        response_type                                           :  5,
43                        reserved_3a                                             :  1;
44  #else
45               uint32_t prot_timestamp_lower_32                                 : 32;
46               uint32_t prot_timestamp_upper_32                                 : 32;
47               uint32_t prot_coex_result_alt_based                              :  1,
48                        prot_coex_based_ant_mask                                :  8,
49                        prot_coex_based_tx_bw                                   :  3,
50                        reserved_2b                                             :  4,
51                        subband_mask                                            : 16;
52               uint32_t reserved_3a                                             :  1,
53                        response_type                                           :  5,
54                        prot_request_packet_bw                                  :  3,
55                        prot_coex_pwr_reduction_wan                             :  1,
56                        prot_coex_pwr_reduction_wlan                            :  1,
57                        prot_coex_pwr_reduction_bt                              :  1,
58                        prot_concurrent_wan_rx                                  :  1,
59                        prot_concurrent_wan_tx                                  :  1,
60                        prot_concurrent_wlan_tx                                 :  1,
61                        prot_concurrent_bt_tx                                   :  1,
62                        prot_coex_tx_pwr_ant                                    :  8,
63                        prot_coex_tx_pwr_shared_ant                             :  8;
64  #endif
65  };
66  
67  #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_OFFSET                     0x00000000
68  #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_LSB                        0
69  #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_MSB                        31
70  #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_MASK                       0xffffffff
71  
72  #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_OFFSET                     0x00000004
73  #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_LSB                        0
74  #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_MSB                        31
75  #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_MASK                       0xffffffff
76  
77  #define TX_FES_STATUS_START_PROT_SUBBAND_MASK_OFFSET                                0x00000008
78  #define TX_FES_STATUS_START_PROT_SUBBAND_MASK_LSB                                   0
79  #define TX_FES_STATUS_START_PROT_SUBBAND_MASK_MSB                                   15
80  #define TX_FES_STATUS_START_PROT_SUBBAND_MASK_MASK                                  0x0000ffff
81  
82  #define TX_FES_STATUS_START_PROT_RESERVED_2B_OFFSET                                 0x00000008
83  #define TX_FES_STATUS_START_PROT_RESERVED_2B_LSB                                    16
84  #define TX_FES_STATUS_START_PROT_RESERVED_2B_MSB                                    19
85  #define TX_FES_STATUS_START_PROT_RESERVED_2B_MASK                                   0x000f0000
86  
87  #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_OFFSET                       0x00000008
88  #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_LSB                          20
89  #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_MSB                          22
90  #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_MASK                         0x00700000
91  
92  #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_OFFSET                    0x00000008
93  #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_LSB                       23
94  #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_MSB                       30
95  #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_MASK                      0x7f800000
96  
97  #define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_OFFSET                  0x00000008
98  #define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_LSB                     31
99  #define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_MSB                     31
100  #define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_MASK                    0x80000000
101  
102  #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_OFFSET                 0x0000000c
103  #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_LSB                    0
104  #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_MSB                    7
105  #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_MASK                   0x000000ff
106  
107  #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_OFFSET                        0x0000000c
108  #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_LSB                           8
109  #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_MSB                           15
110  #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_MASK                          0x0000ff00
111  
112  #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_OFFSET                       0x0000000c
113  #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_LSB                          16
114  #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_MSB                          16
115  #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_MASK                         0x00010000
116  
117  #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_OFFSET                     0x0000000c
118  #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_LSB                        17
119  #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_MSB                        17
120  #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_MASK                       0x00020000
121  
122  #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_OFFSET                      0x0000000c
123  #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_LSB                         18
124  #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_MSB                         18
125  #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_MASK                        0x00040000
126  
127  #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_OFFSET                      0x0000000c
128  #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_LSB                         19
129  #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_MSB                         19
130  #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_MASK                        0x00080000
131  
132  #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_OFFSET                  0x0000000c
133  #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_LSB                     20
134  #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_MSB                     20
135  #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_MASK                    0x00100000
136  
137  #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_OFFSET                0x0000000c
138  #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_LSB                   21
139  #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_MSB                   21
140  #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_MASK                  0x00200000
141  
142  #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_OFFSET                 0x0000000c
143  #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_LSB                    22
144  #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_MSB                    22
145  #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_MASK                   0x00400000
146  
147  #define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_OFFSET                      0x0000000c
148  #define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_LSB                         23
149  #define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_MSB                         25
150  #define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_MASK                        0x03800000
151  
152  #define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_OFFSET                               0x0000000c
153  #define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_LSB                                  26
154  #define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_MSB                                  30
155  #define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_MASK                                 0x7c000000
156  
157  #define TX_FES_STATUS_START_PROT_RESERVED_3A_OFFSET                                 0x0000000c
158  #define TX_FES_STATUS_START_PROT_RESERVED_3A_LSB                                    31
159  #define TX_FES_STATUS_START_PROT_RESERVED_3A_MSB                                    31
160  #define TX_FES_STATUS_START_PROT_RESERVED_3A_MASK                                   0x80000000
161  
162  #endif
163