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