GNU Linux-libre 4.14.253-gnu1
[releases.git] / drivers / staging / rtlwifi / halmac / halmac_fw_offload_h2c_nic.h
1 /******************************************************************************
2  *
3  * Copyright(c) 2016  Realtek Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12  * more details.
13  *
14  * The full GNU General Public License is included in this distribution in the
15  * file called LICENSE.
16  *
17  * Contact Information:
18  * wlanfae <wlanfae@realtek.com>
19  * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
20  * Hsinchu 300, Taiwan.
21  *
22  * Larry Finger <Larry.Finger@lwfinger.net>
23  *
24  *****************************************************************************/
25 #ifndef _HAL_FWOFFLOADH2CFORMAT_H2C_C2H_NIC_H_
26 #define _HAL_FWOFFLOADH2CFORMAT_H2C_C2H_NIC_H_
27 #define CMD_ID_FW_OFFLOAD_H2C 0XFF
28 #define CMD_ID_CHANNEL_SWITCH 0XFF
29 #define CMD_ID_DUMP_PHYSICAL_EFUSE 0XFF
30 #define CMD_ID_UPDATE_BEACON_PARSING_INFO 0XFF
31 #define CMD_ID_CFG_PARAMETER 0XFF
32 #define CMD_ID_UPDATE_DATAPACK 0XFF
33 #define CMD_ID_RUN_DATAPACK 0XFF
34 #define CMD_ID_DOWNLOAD_FLASH 0XFF
35 #define CMD_ID_UPDATE_PACKET 0XFF
36 #define CMD_ID_GENERAL_INFO 0XFF
37 #define CMD_ID_IQK 0XFF
38 #define CMD_ID_POWER_TRACKING 0XFF
39 #define CMD_ID_PSD 0XFF
40 #define CMD_ID_P2PPS 0XFF
41 #define CMD_ID_BT_COEX 0XFF
42 #define CMD_ID_NAN_CTRL 0XFF
43 #define CMD_ID_NAN_CHANNEL_PLAN_0 0XFF
44 #define CMD_ID_NAN_CHANNEL_PLAN_1 0XFF
45 #define CATEGORY_H2C_CMD_HEADER 0X00
46 #define CATEGORY_FW_OFFLOAD_H2C 0X01
47 #define CATEGORY_CHANNEL_SWITCH 0X01
48 #define CATEGORY_DUMP_PHYSICAL_EFUSE 0X01
49 #define CATEGORY_UPDATE_BEACON_PARSING_INFO 0X01
50 #define CATEGORY_CFG_PARAMETER 0X01
51 #define CATEGORY_UPDATE_DATAPACK 0X01
52 #define CATEGORY_RUN_DATAPACK 0X01
53 #define CATEGORY_DOWNLOAD_FLASH 0X01
54 #define CATEGORY_UPDATE_PACKET 0X01
55 #define CATEGORY_GENERAL_INFO 0X01
56 #define CATEGORY_IQK 0X01
57 #define CATEGORY_POWER_TRACKING 0X01
58 #define CATEGORY_PSD 0X01
59 #define CATEGORY_P2PPS 0X01
60 #define CATEGORY_BT_COEX 0X01
61 #define CATEGORY_NAN_CTRL 0X01
62 #define CATEGORY_NAN_CHANNEL_PLAN_0 0X01
63 #define CATEGORY_NAN_CHANNEL_PLAN_1 0X01
64 #define SUB_CMD_ID_CHANNEL_SWITCH 0X02
65 #define SUB_CMD_ID_DUMP_PHYSICAL_EFUSE 0X03
66 #define SUB_CMD_ID_UPDATE_BEACON_PARSING_INFO 0X05
67 #define SUB_CMD_ID_CFG_PARAMETER 0X08
68 #define SUB_CMD_ID_UPDATE_DATAPACK 0X09
69 #define SUB_CMD_ID_RUN_DATAPACK 0X0A
70 #define SUB_CMD_ID_DOWNLOAD_FLASH 0X0B
71 #define SUB_CMD_ID_UPDATE_PACKET 0X0C
72 #define SUB_CMD_ID_GENERAL_INFO 0X0D
73 #define SUB_CMD_ID_IQK 0X0E
74 #define SUB_CMD_ID_POWER_TRACKING 0X0F
75 #define SUB_CMD_ID_PSD 0X10
76 #define SUB_CMD_ID_P2PPS 0X24
77 #define SUB_CMD_ID_BT_COEX 0X60
78 #define SUB_CMD_ID_NAN_CTRL 0XB2
79 #define SUB_CMD_ID_NAN_CHANNEL_PLAN_0 0XB4
80 #define SUB_CMD_ID_NAN_CHANNEL_PLAN_1 0XB5
81 #define H2C_CMD_HEADER_GET_CATEGORY(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 7)
82 #define H2C_CMD_HEADER_SET_CATEGORY(__h2c, __value)                            \
83         SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 7, __value)
84 #define H2C_CMD_HEADER_GET_ACK(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 7, 1)
85 #define H2C_CMD_HEADER_SET_ACK(__h2c, __value)                                 \
86         SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 7, 1, __value)
87 #define H2C_CMD_HEADER_GET_TOTAL_LEN(__h2c)                                    \
88         LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 16)
89 #define H2C_CMD_HEADER_SET_TOTAL_LEN(__h2c, __value)                           \
90         SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 16, __value)
91 #define H2C_CMD_HEADER_GET_SEQ_NUM(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 16, 16)
92 #define H2C_CMD_HEADER_SET_SEQ_NUM(__h2c, __value)                             \
93         SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 16, 16, __value)
94 #define FW_OFFLOAD_H2C_GET_CATEGORY(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 0, 7)
95 #define FW_OFFLOAD_H2C_SET_CATEGORY(__h2c, __value)                            \
96         SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 0, 7, __value)
97 #define FW_OFFLOAD_H2C_GET_ACK(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 7, 1)
98 #define FW_OFFLOAD_H2C_SET_ACK(__h2c, __value)                                 \
99         SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 7, 1, __value)
100 #define FW_OFFLOAD_H2C_GET_CMD_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X00, 8, 8)
101 #define FW_OFFLOAD_H2C_SET_CMD_ID(__h2c, __value)                              \
102         SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 8, 8, __value)
103 #define FW_OFFLOAD_H2C_GET_SUB_CMD_ID(__h2c)                                   \
104         LE_BITS_TO_4BYTE(__h2c + 0X00, 16, 16)
105 #define FW_OFFLOAD_H2C_SET_SUB_CMD_ID(__h2c, __value)                          \
106         SET_BITS_TO_LE_4BYTE(__h2c + 0X00, 16, 16, __value)
107 #define FW_OFFLOAD_H2C_GET_TOTAL_LEN(__h2c)                                    \
108         LE_BITS_TO_4BYTE(__h2c + 0X04, 0, 16)
109 #define FW_OFFLOAD_H2C_SET_TOTAL_LEN(__h2c, __value)                           \
110         SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 0, 16, __value)
111 #define FW_OFFLOAD_H2C_GET_SEQ_NUM(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X04, 16, 16)
112 #define FW_OFFLOAD_H2C_SET_SEQ_NUM(__h2c, __value)                             \
113         SET_BITS_TO_LE_4BYTE(__h2c + 0X04, 16, 16, __value)
114 #define CHANNEL_SWITCH_GET_SWITCH_START(__h2c)                                 \
115         LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 1)
116 #define CHANNEL_SWITCH_SET_SWITCH_START(__h2c, __value)                        \
117         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 1, __value)
118 #define CHANNEL_SWITCH_GET_DEST_CH_EN(__h2c)                                   \
119         LE_BITS_TO_4BYTE(__h2c + 0X08, 1, 1)
120 #define CHANNEL_SWITCH_SET_DEST_CH_EN(__h2c, __value)                          \
121         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 1, 1, __value)
122 #define CHANNEL_SWITCH_GET_ABSOLUTE_TIME(__h2c)                                \
123         LE_BITS_TO_4BYTE(__h2c + 0X08, 2, 1)
124 #define CHANNEL_SWITCH_SET_ABSOLUTE_TIME(__h2c, __value)                       \
125         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 2, 1, __value)
126 #define CHANNEL_SWITCH_GET_PERIODIC_OPTION(__h2c)                              \
127         LE_BITS_TO_4BYTE(__h2c + 0X08, 3, 2)
128 #define CHANNEL_SWITCH_SET_PERIODIC_OPTION(__h2c, __value)                     \
129         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 3, 2, __value)
130 #define CHANNEL_SWITCH_GET_CHANNEL_INFO_LOC(__h2c)                             \
131         LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 8)
132 #define CHANNEL_SWITCH_SET_CHANNEL_INFO_LOC(__h2c, __value)                    \
133         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 8, __value)
134 #define CHANNEL_SWITCH_GET_CHANNEL_NUM(__h2c)                                  \
135         LE_BITS_TO_4BYTE(__h2c + 0X08, 16, 8)
136 #define CHANNEL_SWITCH_SET_CHANNEL_NUM(__h2c, __value)                         \
137         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 16, 8, __value)
138 #define CHANNEL_SWITCH_GET_PRI_CH_IDX(__h2c)                                   \
139         LE_BITS_TO_4BYTE(__h2c + 0X08, 24, 4)
140 #define CHANNEL_SWITCH_SET_PRI_CH_IDX(__h2c, __value)                          \
141         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 24, 4, __value)
142 #define CHANNEL_SWITCH_GET_DEST_BW(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 28, 4)
143 #define CHANNEL_SWITCH_SET_DEST_BW(__h2c, __value)                             \
144         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 28, 4, __value)
145 #define CHANNEL_SWITCH_GET_DEST_CH(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 8)
146 #define CHANNEL_SWITCH_SET_DEST_CH(__h2c, __value)                             \
147         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 8, __value)
148 #define CHANNEL_SWITCH_GET_NORMAL_PERIOD(__h2c)                                \
149         LE_BITS_TO_4BYTE(__h2c + 0X0C, 8, 8)
150 #define CHANNEL_SWITCH_SET_NORMAL_PERIOD(__h2c, __value)                       \
151         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 8, 8, __value)
152 #define CHANNEL_SWITCH_GET_SLOW_PERIOD(__h2c)                                  \
153         LE_BITS_TO_4BYTE(__h2c + 0X0C, 16, 8)
154 #define CHANNEL_SWITCH_SET_SLOW_PERIOD(__h2c, __value)                         \
155         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 16, 8, __value)
156 #define CHANNEL_SWITCH_GET_NORMAL_CYCLE(__h2c)                                 \
157         LE_BITS_TO_4BYTE(__h2c + 0X0C, 24, 8)
158 #define CHANNEL_SWITCH_SET_NORMAL_CYCLE(__h2c, __value)                        \
159         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 24, 8, __value)
160 #define CHANNEL_SWITCH_GET_TSF_HIGH(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X10, 0, 32)
161 #define CHANNEL_SWITCH_SET_TSF_HIGH(__h2c, __value)                            \
162         SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 0, 32, __value)
163 #define CHANNEL_SWITCH_GET_TSF_LOW(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X14, 0, 32)
164 #define CHANNEL_SWITCH_SET_TSF_LOW(__h2c, __value)                             \
165         SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 0, 32, __value)
166 #define CHANNEL_SWITCH_GET_CHANNEL_INFO_SIZE(__h2c)                            \
167         LE_BITS_TO_4BYTE(__h2c + 0X18, 0, 16)
168 #define CHANNEL_SWITCH_SET_CHANNEL_INFO_SIZE(__h2c, __value)                   \
169         SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 0, 16, __value)
170 #define UPDATE_BEACON_PARSING_INFO_GET_FUNC_EN(__h2c)                          \
171         LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 1)
172 #define UPDATE_BEACON_PARSING_INFO_SET_FUNC_EN(__h2c, __value)                 \
173         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 1, __value)
174 #define UPDATE_BEACON_PARSING_INFO_GET_SIZE_TH(__h2c)                          \
175         LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 4)
176 #define UPDATE_BEACON_PARSING_INFO_SET_SIZE_TH(__h2c, __value)                 \
177         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 4, __value)
178 #define UPDATE_BEACON_PARSING_INFO_GET_TIMEOUT(__h2c)                          \
179         LE_BITS_TO_4BYTE(__h2c + 0X08, 12, 4)
180 #define UPDATE_BEACON_PARSING_INFO_SET_TIMEOUT(__h2c, __value)                 \
181         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 12, 4, __value)
182 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_0(__h2c)                      \
183         LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 32)
184 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_0(__h2c, __value)             \
185         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 32, __value)
186 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_1(__h2c)                      \
187         LE_BITS_TO_4BYTE(__h2c + 0X10, 0, 32)
188 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_1(__h2c, __value)             \
189         SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 0, 32, __value)
190 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_2(__h2c)                      \
191         LE_BITS_TO_4BYTE(__h2c + 0X14, 0, 32)
192 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_2(__h2c, __value)             \
193         SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 0, 32, __value)
194 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_3(__h2c)                      \
195         LE_BITS_TO_4BYTE(__h2c + 0X18, 0, 32)
196 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_3(__h2c, __value)             \
197         SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 0, 32, __value)
198 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_4(__h2c)                      \
199         LE_BITS_TO_4BYTE(__h2c + 0X1C, 0, 32)
200 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_4(__h2c, __value)             \
201         SET_BITS_TO_LE_4BYTE(__h2c + 0X1C, 0, 32, __value)
202 #define CFG_PARAMETER_GET_NUM(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 16)
203 #define CFG_PARAMETER_SET_NUM(__h2c, __value)                                  \
204         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 16, __value)
205 #define CFG_PARAMETER_GET_INIT_CASE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 16, 1)
206 #define CFG_PARAMETER_SET_INIT_CASE(__h2c, __value)                            \
207         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 16, 1, __value)
208 #define CFG_PARAMETER_GET_PHY_PARAMETER_LOC(__h2c)                             \
209         LE_BITS_TO_4BYTE(__h2c + 0X08, 24, 8)
210 #define CFG_PARAMETER_SET_PHY_PARAMETER_LOC(__h2c, __value)                    \
211         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 24, 8, __value)
212 #define UPDATE_DATAPACK_GET_SIZE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 16)
213 #define UPDATE_DATAPACK_SET_SIZE(__h2c, __value)                               \
214         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 16, __value)
215 #define UPDATE_DATAPACK_GET_DATAPACK_ID(__h2c)                                 \
216         LE_BITS_TO_4BYTE(__h2c + 0X08, 16, 8)
217 #define UPDATE_DATAPACK_SET_DATAPACK_ID(__h2c, __value)                        \
218         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 16, 8, __value)
219 #define UPDATE_DATAPACK_GET_DATAPACK_LOC(__h2c)                                \
220         LE_BITS_TO_4BYTE(__h2c + 0X08, 24, 8)
221 #define UPDATE_DATAPACK_SET_DATAPACK_LOC(__h2c, __value)                       \
222         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 24, 8, __value)
223 #define UPDATE_DATAPACK_GET_DATAPACK_SEGMENT(__h2c)                            \
224         LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 8)
225 #define UPDATE_DATAPACK_SET_DATAPACK_SEGMENT(__h2c, __value)                   \
226         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 8, __value)
227 #define UPDATE_DATAPACK_GET_END_SEGMENT(__h2c)                                 \
228         LE_BITS_TO_4BYTE(__h2c + 0X0C, 8, 1)
229 #define UPDATE_DATAPACK_SET_END_SEGMENT(__h2c, __value)                        \
230         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 8, 1, __value)
231 #define RUN_DATAPACK_GET_DATAPACK_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 8)
232 #define RUN_DATAPACK_SET_DATAPACK_ID(__h2c, __value)                           \
233         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 8, __value)
234 #define DOWNLOAD_FLASH_GET_SPI_CMD(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 8)
235 #define DOWNLOAD_FLASH_SET_SPI_CMD(__h2c, __value)                             \
236         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 8, __value)
237 #define DOWNLOAD_FLASH_GET_LOCATION(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 16)
238 #define DOWNLOAD_FLASH_SET_LOCATION(__h2c, __value)                            \
239         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 16, __value)
240 #define DOWNLOAD_FLASH_GET_SIZE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 32)
241 #define DOWNLOAD_FLASH_SET_SIZE(__h2c, __value)                                \
242         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 32, __value)
243 #define DOWNLOAD_FLASH_GET_START_ADDR(__h2c)                                   \
244         LE_BITS_TO_4BYTE(__h2c + 0X10, 0, 32)
245 #define DOWNLOAD_FLASH_SET_START_ADDR(__h2c, __value)                          \
246         SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 0, 32, __value)
247 #define UPDATE_PACKET_GET_SIZE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 16)
248 #define UPDATE_PACKET_SET_SIZE(__h2c, __value)                                 \
249         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 16, __value)
250 #define UPDATE_PACKET_GET_PACKET_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 16, 8)
251 #define UPDATE_PACKET_SET_PACKET_ID(__h2c, __value)                            \
252         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 16, 8, __value)
253 #define UPDATE_PACKET_GET_PACKET_LOC(__h2c)                                    \
254         LE_BITS_TO_4BYTE(__h2c + 0X08, 24, 8)
255 #define UPDATE_PACKET_SET_PACKET_LOC(__h2c, __value)                           \
256         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 24, 8, __value)
257 #define GENERAL_INFO_GET_REF_TYPE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 8)
258 #define GENERAL_INFO_SET_REF_TYPE(__h2c, __value)                              \
259         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 8, __value)
260 #define GENERAL_INFO_GET_RF_TYPE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 9)
261 #define GENERAL_INFO_SET_RF_TYPE(__h2c, __value)                               \
262         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 9, __value)
263 #define GENERAL_INFO_GET_FW_TX_BOUNDARY(__h2c)                                 \
264         LE_BITS_TO_4BYTE(__h2c + 0X08, 16, 8)
265 #define GENERAL_INFO_SET_FW_TX_BOUNDARY(__h2c, __value)                        \
266         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 16, 8, __value)
267 #define IQK_GET_CLEAR(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 1)
268 #define IQK_SET_CLEAR(__h2c, __value)                                          \
269         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 1, __value)
270 #define IQK_GET_SEGMENT_IQK(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 1, 1)
271 #define IQK_SET_SEGMENT_IQK(__h2c, __value)                                    \
272         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 1, 1, __value)
273 #define POWER_TRACKING_GET_ENABLE_A(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 1)
274 #define POWER_TRACKING_SET_ENABLE_A(__h2c, __value)                            \
275         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 1, __value)
276 #define POWER_TRACKING_GET_ENABLE_B(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 1, 1)
277 #define POWER_TRACKING_SET_ENABLE_B(__h2c, __value)                            \
278         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 1, 1, __value)
279 #define POWER_TRACKING_GET_ENABLE_C(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 2, 1)
280 #define POWER_TRACKING_SET_ENABLE_C(__h2c, __value)                            \
281         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 2, 1, __value)
282 #define POWER_TRACKING_GET_ENABLE_D(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 3, 1)
283 #define POWER_TRACKING_SET_ENABLE_D(__h2c, __value)                            \
284         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 3, 1, __value)
285 #define POWER_TRACKING_GET_TYPE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 4, 3)
286 #define POWER_TRACKING_SET_TYPE(__h2c, __value)                                \
287         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 4, 3, __value)
288 #define POWER_TRACKING_GET_BBSWING_INDEX(__h2c)                                \
289         LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 8)
290 #define POWER_TRACKING_SET_BBSWING_INDEX(__h2c, __value)                       \
291         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 8, __value)
292 #define POWER_TRACKING_GET_TX_PWR_INDEX_A(__h2c)                               \
293         LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 8)
294 #define POWER_TRACKING_SET_TX_PWR_INDEX_A(__h2c, __value)                      \
295         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 8, __value)
296 #define POWER_TRACKING_GET_PWR_TRACKING_OFFSET_VALUE_A(__h2c)                  \
297         LE_BITS_TO_4BYTE(__h2c + 0X0C, 8, 8)
298 #define POWER_TRACKING_SET_PWR_TRACKING_OFFSET_VALUE_A(__h2c, __value)         \
299         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 8, 8, __value)
300 #define POWER_TRACKING_GET_TSSI_VALUE_A(__h2c)                                 \
301         LE_BITS_TO_4BYTE(__h2c + 0X0C, 16, 8)
302 #define POWER_TRACKING_SET_TSSI_VALUE_A(__h2c, __value)                        \
303         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 16, 8, __value)
304 #define POWER_TRACKING_GET_TX_PWR_INDEX_B(__h2c)                               \
305         LE_BITS_TO_4BYTE(__h2c + 0X10, 0, 8)
306 #define POWER_TRACKING_SET_TX_PWR_INDEX_B(__h2c, __value)                      \
307         SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 0, 8, __value)
308 #define POWER_TRACKING_GET_PWR_TRACKING_OFFSET_VALUE_B(__h2c)                  \
309         LE_BITS_TO_4BYTE(__h2c + 0X10, 8, 8)
310 #define POWER_TRACKING_SET_PWR_TRACKING_OFFSET_VALUE_B(__h2c, __value)         \
311         SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 8, 8, __value)
312 #define POWER_TRACKING_GET_TSSI_VALUE_B(__h2c)                                 \
313         LE_BITS_TO_4BYTE(__h2c + 0X10, 16, 8)
314 #define POWER_TRACKING_SET_TSSI_VALUE_B(__h2c, __value)                        \
315         SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 16, 8, __value)
316 #define POWER_TRACKING_GET_TX_PWR_INDEX_C(__h2c)                               \
317         LE_BITS_TO_4BYTE(__h2c + 0X14, 0, 8)
318 #define POWER_TRACKING_SET_TX_PWR_INDEX_C(__h2c, __value)                      \
319         SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 0, 8, __value)
320 #define POWER_TRACKING_GET_PWR_TRACKING_OFFSET_VALUE_C(__h2c)                  \
321         LE_BITS_TO_4BYTE(__h2c + 0X14, 8, 8)
322 #define POWER_TRACKING_SET_PWR_TRACKING_OFFSET_VALUE_C(__h2c, __value)         \
323         SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 8, 8, __value)
324 #define POWER_TRACKING_GET_TSSI_VALUE_C(__h2c)                                 \
325         LE_BITS_TO_4BYTE(__h2c + 0X14, 16, 8)
326 #define POWER_TRACKING_SET_TSSI_VALUE_C(__h2c, __value)                        \
327         SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 16, 8, __value)
328 #define POWER_TRACKING_GET_TX_PWR_INDEX_D(__h2c)                               \
329         LE_BITS_TO_4BYTE(__h2c + 0X18, 0, 8)
330 #define POWER_TRACKING_SET_TX_PWR_INDEX_D(__h2c, __value)                      \
331         SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 0, 8, __value)
332 #define POWER_TRACKING_GET_PWR_TRACKING_OFFSET_VALUE_D(__h2c)                  \
333         LE_BITS_TO_4BYTE(__h2c + 0X18, 8, 8)
334 #define POWER_TRACKING_SET_PWR_TRACKING_OFFSET_VALUE_D(__h2c, __value)         \
335         SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 8, 8, __value)
336 #define POWER_TRACKING_GET_TSSI_VALUE_D(__h2c)                                 \
337         LE_BITS_TO_4BYTE(__h2c + 0X18, 16, 8)
338 #define POWER_TRACKING_SET_TSSI_VALUE_D(__h2c, __value)                        \
339         SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 16, 8, __value)
340 #define PSD_GET_START_PSD(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 16)
341 #define PSD_SET_START_PSD(__h2c, __value)                                      \
342         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 16, __value)
343 #define PSD_GET_END_PSD(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 16, 16)
344 #define PSD_SET_END_PSD(__h2c, __value)                                        \
345         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 16, 16, __value)
346 #define P2PPS_GET_OFFLOAD_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 1)
347 #define P2PPS_SET_OFFLOAD_EN(__h2c, __value)                                   \
348         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 1, __value)
349 #define P2PPS_GET_ROLE(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 1, 1)
350 #define P2PPS_SET_ROLE(__h2c, __value)                                         \
351         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 1, 1, __value)
352 #define P2PPS_GET_CTWINDOW_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 2, 1)
353 #define P2PPS_SET_CTWINDOW_EN(__h2c, __value)                                  \
354         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 2, 1, __value)
355 #define P2PPS_GET_NOA_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 3, 1)
356 #define P2PPS_SET_NOA_EN(__h2c, __value)                                       \
357         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 3, 1, __value)
358 #define P2PPS_GET_NOA_SEL(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 4, 1)
359 #define P2PPS_SET_NOA_SEL(__h2c, __value)                                      \
360         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 4, 1, __value)
361 #define P2PPS_GET_ALLSTASLEEP(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 5, 1)
362 #define P2PPS_SET_ALLSTASLEEP(__h2c, __value)                                  \
363         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 5, 1, __value)
364 #define P2PPS_GET_DISCOVERY(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 6, 1)
365 #define P2PPS_SET_DISCOVERY(__h2c, __value)                                    \
366         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 6, 1, __value)
367 #define P2PPS_GET_P2P_PORT_ID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 8)
368 #define P2PPS_SET_P2P_PORT_ID(__h2c, __value)                                  \
369         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 8, __value)
370 #define P2PPS_GET_P2P_GROUP(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 16, 8)
371 #define P2PPS_SET_P2P_GROUP(__h2c, __value)                                    \
372         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 16, 8, __value)
373 #define P2PPS_GET_P2P_MACID(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 24, 8)
374 #define P2PPS_SET_P2P_MACID(__h2c, __value)                                    \
375         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 24, 8, __value)
376 #define P2PPS_GET_CTWINDOW_LENGTH(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 8)
377 #define P2PPS_SET_CTWINDOW_LENGTH(__h2c, __value)                              \
378         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 8, __value)
379 #define P2PPS_GET_NOA_DURATION_PARA(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X10, 0, 32)
380 #define P2PPS_SET_NOA_DURATION_PARA(__h2c, __value)                            \
381         SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 0, 32, __value)
382 #define P2PPS_GET_NOA_INTERVAL_PARA(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X14, 0, 32)
383 #define P2PPS_SET_NOA_INTERVAL_PARA(__h2c, __value)                            \
384         SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 0, 32, __value)
385 #define P2PPS_GET_NOA_START_TIME_PARA(__h2c)                                   \
386         LE_BITS_TO_4BYTE(__h2c + 0X18, 0, 32)
387 #define P2PPS_SET_NOA_START_TIME_PARA(__h2c, __value)                          \
388         SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 0, 32, __value)
389 #define P2PPS_GET_NOA_COUNT_PARA(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X1C, 0, 32)
390 #define P2PPS_SET_NOA_COUNT_PARA(__h2c, __value)                               \
391         SET_BITS_TO_LE_4BYTE(__h2c + 0X1C, 0, 32, __value)
392 #define BT_COEX_GET_DATA_START(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 8)
393 #define BT_COEX_SET_DATA_START(__h2c, __value)                                 \
394         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 8, __value)
395 #define NAN_CTRL_GET_NAN_EN(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 2)
396 #define NAN_CTRL_SET_NAN_EN(__h2c, __value)                                    \
397         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 2, __value)
398 #define NAN_CTRL_GET_SUPPORT_BAND(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 2)
399 #define NAN_CTRL_SET_SUPPORT_BAND(__h2c, __value)                              \
400         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 2, __value)
401 #define NAN_CTRL_GET_DISABLE_2G_DISC_BCN(__h2c)                                \
402         LE_BITS_TO_4BYTE(__h2c + 0X08, 10, 1)
403 #define NAN_CTRL_SET_DISABLE_2G_DISC_BCN(__h2c, __value)                       \
404         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 10, 1, __value)
405 #define NAN_CTRL_GET_DISABLE_5G_DISC_BCN(__h2c)                                \
406         LE_BITS_TO_4BYTE(__h2c + 0X08, 11, 1)
407 #define NAN_CTRL_SET_DISABLE_5G_DISC_BCN(__h2c, __value)                       \
408         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 11, 1, __value)
409 #define NAN_CTRL_GET_BCN_RSVD_PAGE_OFFSET(__h2c)                               \
410         LE_BITS_TO_4BYTE(__h2c + 0X08, 16, 8)
411 #define NAN_CTRL_SET_BCN_RSVD_PAGE_OFFSET(__h2c, __value)                      \
412         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 16, 8, __value)
413 #define NAN_CTRL_GET_CHANNEL_2G(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X08, 24, 8)
414 #define NAN_CTRL_SET_CHANNEL_2G(__h2c, __value)                                \
415         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 24, 8, __value)
416 #define NAN_CTRL_GET_CHANNEL_5G(__h2c) LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 8)
417 #define NAN_CTRL_SET_CHANNEL_5G(__h2c, __value)                                \
418         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 8, __value)
419 #define NAN_CHANNEL_PLAN_0_GET_CHANNEL_NUMBER_0(__h2c)                         \
420         LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 8)
421 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_0(__h2c, __value)                \
422         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 8, __value)
423 #define NAN_CHANNEL_PLAN_0_GET_UNPAUSE_MACID_0(__h2c)                          \
424         LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 8)
425 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_0(__h2c, __value)                 \
426         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 8, __value)
427 #define NAN_CHANNEL_PLAN_0_GET_START_TIME_SLOT_0(__h2c)                        \
428         LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 16)
429 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_0(__h2c, __value)               \
430         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 16, __value)
431 #define NAN_CHANNEL_PLAN_0_GET_DURATION_0(__h2c)                               \
432         LE_BITS_TO_4BYTE(__h2c + 0X0C, 16, 16)
433 #define NAN_CHANNEL_PLAN_0_SET_DURATION_0(__h2c, __value)                      \
434         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 16, 16, __value)
435 #define NAN_CHANNEL_PLAN_0_GET_CHANNEL_NUMBER_1(__h2c)                         \
436         LE_BITS_TO_4BYTE(__h2c + 0X10, 0, 8)
437 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_1(__h2c, __value)                \
438         SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 0, 8, __value)
439 #define NAN_CHANNEL_PLAN_0_GET_UNPAUSE_MACID_1(__h2c)                          \
440         LE_BITS_TO_4BYTE(__h2c + 0X10, 8, 8)
441 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_1(__h2c, __value)                 \
442         SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 8, 8, __value)
443 #define NAN_CHANNEL_PLAN_0_GET_START_TIME_SLOT_1(__h2c)                        \
444         LE_BITS_TO_4BYTE(__h2c + 0X14, 0, 16)
445 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_1(__h2c, __value)               \
446         SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 0, 16, __value)
447 #define NAN_CHANNEL_PLAN_0_GET_DURATION_1(__h2c)                               \
448         LE_BITS_TO_4BYTE(__h2c + 0X14, 16, 16)
449 #define NAN_CHANNEL_PLAN_0_SET_DURATION_1(__h2c, __value)                      \
450         SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 16, 16, __value)
451 #define NAN_CHANNEL_PLAN_0_GET_CHANNEL_NUMBER_2(__h2c)                         \
452         LE_BITS_TO_4BYTE(__h2c + 0X18, 0, 8)
453 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_2(__h2c, __value)                \
454         SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 0, 8, __value)
455 #define NAN_CHANNEL_PLAN_0_GET_UNPAUSE_MACID_2(__h2c)                          \
456         LE_BITS_TO_4BYTE(__h2c + 0X18, 8, 8)
457 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_2(__h2c, __value)                 \
458         SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 8, 8, __value)
459 #define NAN_CHANNEL_PLAN_0_GET_START_TIME_SLOT_2(__h2c)                        \
460         LE_BITS_TO_4BYTE(__h2c + 0X1C, 0, 16)
461 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_2(__h2c, __value)               \
462         SET_BITS_TO_LE_4BYTE(__h2c + 0X1C, 0, 16, __value)
463 #define NAN_CHANNEL_PLAN_0_GET_DURATION_2(__h2c)                               \
464         LE_BITS_TO_4BYTE(__h2c + 0X1C, 16, 16)
465 #define NAN_CHANNEL_PLAN_0_SET_DURATION_2(__h2c, __value)                      \
466         SET_BITS_TO_LE_4BYTE(__h2c + 0X1C, 16, 16, __value)
467 #define NAN_CHANNEL_PLAN_1_GET_CHANNEL_NUMBER_3(__h2c)                         \
468         LE_BITS_TO_4BYTE(__h2c + 0X08, 0, 8)
469 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_3(__h2c, __value)                \
470         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 0, 8, __value)
471 #define NAN_CHANNEL_PLAN_1_GET_UNPAUSE_MACID_3(__h2c)                          \
472         LE_BITS_TO_4BYTE(__h2c + 0X08, 8, 8)
473 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_3(__h2c, __value)                 \
474         SET_BITS_TO_LE_4BYTE(__h2c + 0X08, 8, 8, __value)
475 #define NAN_CHANNEL_PLAN_1_GET_START_TIME_SLOT_3(__h2c)                        \
476         LE_BITS_TO_4BYTE(__h2c + 0X0C, 0, 16)
477 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_3(__h2c, __value)               \
478         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 0, 16, __value)
479 #define NAN_CHANNEL_PLAN_1_GET_DURATION_3(__h2c)                               \
480         LE_BITS_TO_4BYTE(__h2c + 0X0C, 16, 16)
481 #define NAN_CHANNEL_PLAN_1_SET_DURATION_3(__h2c, __value)                      \
482         SET_BITS_TO_LE_4BYTE(__h2c + 0X0C, 16, 16, __value)
483 #define NAN_CHANNEL_PLAN_1_GET_CHANNEL_NUMBER_4(__h2c)                         \
484         LE_BITS_TO_4BYTE(__h2c + 0X10, 0, 8)
485 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_4(__h2c, __value)                \
486         SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 0, 8, __value)
487 #define NAN_CHANNEL_PLAN_1_GET_UNPAUSE_MACID_4(__h2c)                          \
488         LE_BITS_TO_4BYTE(__h2c + 0X10, 8, 8)
489 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_4(__h2c, __value)                 \
490         SET_BITS_TO_LE_4BYTE(__h2c + 0X10, 8, 8, __value)
491 #define NAN_CHANNEL_PLAN_1_GET_START_TIME_SLOT_4(__h2c)                        \
492         LE_BITS_TO_4BYTE(__h2c + 0X14, 0, 16)
493 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_4(__h2c, __value)               \
494         SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 0, 16, __value)
495 #define NAN_CHANNEL_PLAN_1_GET_DURATION_4(__h2c)                               \
496         LE_BITS_TO_4BYTE(__h2c + 0X14, 16, 16)
497 #define NAN_CHANNEL_PLAN_1_SET_DURATION_4(__h2c, __value)                      \
498         SET_BITS_TO_LE_4BYTE(__h2c + 0X14, 16, 16, __value)
499 #define NAN_CHANNEL_PLAN_1_GET_CHANNEL_NUMBER_5(__h2c)                         \
500         LE_BITS_TO_4BYTE(__h2c + 0X18, 0, 8)
501 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_5(__h2c, __value)                \
502         SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 0, 8, __value)
503 #define NAN_CHANNEL_PLAN_1_GET_UNPAUSE_MACID_5(__h2c)                          \
504         LE_BITS_TO_4BYTE(__h2c + 0X18, 8, 8)
505 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_5(__h2c, __value)                 \
506         SET_BITS_TO_LE_4BYTE(__h2c + 0X18, 8, 8, __value)
507 #define NAN_CHANNEL_PLAN_1_GET_START_TIME_SLOT_5(__h2c)                        \
508         LE_BITS_TO_4BYTE(__h2c + 0X1C, 0, 16)
509 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_5(__h2c, __value)               \
510         SET_BITS_TO_LE_4BYTE(__h2c + 0X1C, 0, 16, __value)
511 #define NAN_CHANNEL_PLAN_1_GET_DURATION_5(__h2c)                               \
512         LE_BITS_TO_4BYTE(__h2c + 0X1C, 16, 16)
513 #define NAN_CHANNEL_PLAN_1_SET_DURATION_5(__h2c, __value)                      \
514         SET_BITS_TO_LE_4BYTE(__h2c + 0X1C, 16, 16, __value)
515 #endif