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