hc
2024-05-10 23fa18eaa71266feff7ba8d83022d9e1cc83c65a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _HAL_FWOFFLOADH2CFORMAT_H2C_C2H_NIC_H_
#define _HAL_FWOFFLOADH2CFORMAT_H2C_C2H_NIC_H_
#define CMD_ID_FW_OFFLOAD_H2C  0XFF
#define CMD_ID_CHANNEL_SWITCH  0XFF
#define CMD_ID_DUMP_PHYSICAL_EFUSE  0XFF
#define CMD_ID_UPDATE_BEACON_PARSING_INFO  0XFF
#define CMD_ID_CFG_PARAMETER  0XFF
#define CMD_ID_UPDATE_DATAPACK  0XFF
#define CMD_ID_RUN_DATAPACK  0XFF
#define CMD_ID_DOWNLOAD_FLASH  0XFF
#define CMD_ID_UPDATE_PACKET  0XFF
#define CMD_ID_GENERAL_INFO  0XFF
#define CMD_ID_IQK  0XFF
#define CMD_ID_POWER_TRACKING  0XFF
#define CMD_ID_PSD  0XFF
#define CMD_ID_BT_COEX  0XFF
#define CATEGORY_H2C_CMD_HEADER  0X00
#define CATEGORY_FW_OFFLOAD_H2C  0X01
#define CATEGORY_CHANNEL_SWITCH  0X01
#define CATEGORY_DUMP_PHYSICAL_EFUSE  0X01
#define CATEGORY_UPDATE_BEACON_PARSING_INFO  0X01
#define CATEGORY_CFG_PARAMETER  0X01
#define CATEGORY_UPDATE_DATAPACK  0X01
#define CATEGORY_RUN_DATAPACK  0X01
#define CATEGORY_DOWNLOAD_FLASH  0X01
#define CATEGORY_UPDATE_PACKET  0X01
#define CATEGORY_GENERAL_INFO  0X01
#define CATEGORY_IQK  0X01
#define CATEGORY_POWER_TRACKING  0X01
#define CATEGORY_PSD  0X01
#define CATEGORY_BT_COEX  0X01
#define SUB_CMD_ID_CHANNEL_SWITCH  0X02
#define SUB_CMD_ID_DUMP_PHYSICAL_EFUSE  0X03
#define SUB_CMD_ID_UPDATE_BEACON_PARSING_INFO  0X05
#define SUB_CMD_ID_CFG_PARAMETER  0X08
#define SUB_CMD_ID_UPDATE_DATAPACK  0X09
#define SUB_CMD_ID_RUN_DATAPACK  0X0A
#define SUB_CMD_ID_DOWNLOAD_FLASH  0X0B
#define SUB_CMD_ID_UPDATE_PACKET  0X0C
#define SUB_CMD_ID_GENERAL_INFO  0X0D
#define SUB_CMD_ID_IQK  0X0E
#define SUB_CMD_ID_POWER_TRACKING  0X0F
#define SUB_CMD_ID_PSD  0X10
#define SUB_CMD_ID_BT_COEX  0X60
#define H2C_CMD_HEADER_GET_CATEGORY(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X00, 0, 7)
#define H2C_CMD_HEADER_SET_CATEGORY(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X00, 0, 7, __Value)
#define H2C_CMD_HEADER_GET_ACK(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X00, 7, 1)
#define H2C_CMD_HEADER_SET_ACK(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X00, 7, 1, __Value)
#define H2C_CMD_HEADER_GET_TOTAL_LEN(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X04, 0, 16)
#define H2C_CMD_HEADER_SET_TOTAL_LEN(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X04, 0, 16, __Value)
#define H2C_CMD_HEADER_GET_SEQ_NUM(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X04, 16, 16)
#define H2C_CMD_HEADER_SET_SEQ_NUM(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X04, 16, 16, __Value)
#define FW_OFFLOAD_H2C_GET_CATEGORY(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X00, 0, 7)
#define FW_OFFLOAD_H2C_SET_CATEGORY(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X00, 0, 7, __Value)
#define FW_OFFLOAD_H2C_GET_ACK(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X00, 7, 1)
#define FW_OFFLOAD_H2C_SET_ACK(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X00, 7, 1, __Value)
#define FW_OFFLOAD_H2C_GET_CMD_ID(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X00, 8, 8)
#define FW_OFFLOAD_H2C_SET_CMD_ID(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X00, 8, 8, __Value)
#define FW_OFFLOAD_H2C_GET_SUB_CMD_ID(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X00, 16, 16)
#define FW_OFFLOAD_H2C_SET_SUB_CMD_ID(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X00, 16, 16, __Value)
#define FW_OFFLOAD_H2C_GET_TOTAL_LEN(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X04, 0, 16)
#define FW_OFFLOAD_H2C_SET_TOTAL_LEN(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X04, 0, 16, __Value)
#define FW_OFFLOAD_H2C_GET_SEQ_NUM(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X04, 16, 16)
#define FW_OFFLOAD_H2C_SET_SEQ_NUM(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X04, 16, 16, __Value)
#define CHANNEL_SWITCH_GET_SWITCH_START(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 0, 1)
#define CHANNEL_SWITCH_SET_SWITCH_START(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 0, 1, __Value)
#define CHANNEL_SWITCH_GET_DEST_CH_EN(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 1, 1)
#define CHANNEL_SWITCH_SET_DEST_CH_EN(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 1, 1, __Value)
#define CHANNEL_SWITCH_GET_ABSOLUTE_TIME(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 2, 1)
#define CHANNEL_SWITCH_SET_ABSOLUTE_TIME(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 2, 1, __Value)
#define CHANNEL_SWITCH_GET_PERIODIC_OPTION(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 3, 2)
#define CHANNEL_SWITCH_SET_PERIODIC_OPTION(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 3, 2, __Value)
#define CHANNEL_SWITCH_GET_CHANNEL_INFO_LOC(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 8, 8)
#define CHANNEL_SWITCH_SET_CHANNEL_INFO_LOC(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 8, 8, __Value)
#define CHANNEL_SWITCH_GET_CHANNEL_NUM(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 16, 8)
#define CHANNEL_SWITCH_SET_CHANNEL_NUM(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 16, 8, __Value)
#define CHANNEL_SWITCH_GET_PRI_CH_IDX(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 24, 4)
#define CHANNEL_SWITCH_SET_PRI_CH_IDX(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 24, 4, __Value)
#define CHANNEL_SWITCH_GET_DEST_BW(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 28, 4)
#define CHANNEL_SWITCH_SET_DEST_BW(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 28, 4, __Value)
#define CHANNEL_SWITCH_GET_DEST_CH(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X0C, 0, 8)
#define CHANNEL_SWITCH_SET_DEST_CH(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X0C, 0, 8, __Value)
#define CHANNEL_SWITCH_GET_NORMAL_PERIOD(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X0C, 8, 8)
#define CHANNEL_SWITCH_SET_NORMAL_PERIOD(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X0C, 8, 8, __Value)
#define CHANNEL_SWITCH_GET_SLOW_PERIOD(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X0C, 16, 8)
#define CHANNEL_SWITCH_SET_SLOW_PERIOD(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X0C, 16, 8, __Value)
#define CHANNEL_SWITCH_GET_NORMAL_CYCLE(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X0C, 24, 8)
#define CHANNEL_SWITCH_SET_NORMAL_CYCLE(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X0C, 24, 8, __Value)
#define CHANNEL_SWITCH_GET_TSF_HIGH(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X10, 0, 32)
#define CHANNEL_SWITCH_SET_TSF_HIGH(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X10, 0, 32, __Value)
#define CHANNEL_SWITCH_GET_TSF_LOW(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X14, 0, 32)
#define CHANNEL_SWITCH_SET_TSF_LOW(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X14, 0, 32, __Value)
#define CHANNEL_SWITCH_GET_CHANNEL_INFO_SIZE(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X18, 0, 16)
#define CHANNEL_SWITCH_SET_CHANNEL_INFO_SIZE(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X18, 0, 16, __Value)
#define UPDATE_BEACON_PARSING_INFO_GET_FUNC_EN(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 0, 1)
#define UPDATE_BEACON_PARSING_INFO_SET_FUNC_EN(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 0, 1, __Value)
#define UPDATE_BEACON_PARSING_INFO_GET_SIZE_TH(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 8, 4)
#define UPDATE_BEACON_PARSING_INFO_SET_SIZE_TH(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 8, 4, __Value)
#define UPDATE_BEACON_PARSING_INFO_GET_TIMEOUT(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 12, 4)
#define UPDATE_BEACON_PARSING_INFO_SET_TIMEOUT(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 12, 4, __Value)
#define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_0(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X0C, 0, 32)
#define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_0(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X0C, 0, 32, __Value)
#define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_1(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X10, 0, 32)
#define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_1(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X10, 0, 32, __Value)
#define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_2(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X14, 0, 32)
#define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_2(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X14, 0, 32, __Value)
#define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_3(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X18, 0, 32)
#define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_3(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X18, 0, 32, __Value)
#define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_4(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X1C, 0, 32)
#define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_4(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X1C, 0, 32, __Value)
#define CFG_PARAMETER_GET_NUM(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 0, 16)
#define CFG_PARAMETER_SET_NUM(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 0, 16, __Value)
#define CFG_PARAMETER_GET_INIT_CASE(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 16, 1)
#define CFG_PARAMETER_SET_INIT_CASE(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 16, 1, __Value)
#define CFG_PARAMETER_GET_PHY_PARAMETER_LOC(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 24, 8)
#define CFG_PARAMETER_SET_PHY_PARAMETER_LOC(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 24, 8, __Value)
#define UPDATE_DATAPACK_GET_SIZE(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 0, 16)
#define UPDATE_DATAPACK_SET_SIZE(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 0, 16, __Value)
#define UPDATE_DATAPACK_GET_DATAPACK_ID(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 16, 8)
#define UPDATE_DATAPACK_SET_DATAPACK_ID(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 16, 8, __Value)
#define UPDATE_DATAPACK_GET_DATAPACK_LOC(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 24, 8)
#define UPDATE_DATAPACK_SET_DATAPACK_LOC(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 24, 8, __Value)
#define UPDATE_DATAPACK_GET_DATAPACK_SEGMENT(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X0C, 0, 8)
#define UPDATE_DATAPACK_SET_DATAPACK_SEGMENT(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X0C, 0, 8, __Value)
#define UPDATE_DATAPACK_GET_END_SEGMENT(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X0C, 8, 1)
#define UPDATE_DATAPACK_SET_END_SEGMENT(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X0C, 8, 1, __Value)
#define RUN_DATAPACK_GET_DATAPACK_ID(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 0, 8)
#define RUN_DATAPACK_SET_DATAPACK_ID(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 0, 8, __Value)
#define DOWNLOAD_FLASH_GET_SPI_CMD(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 0, 8)
#define DOWNLOAD_FLASH_SET_SPI_CMD(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 0, 8, __Value)
#define DOWNLOAD_FLASH_GET_LOCATION(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 8, 16)
#define DOWNLOAD_FLASH_SET_LOCATION(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 8, 16, __Value)
#define DOWNLOAD_FLASH_GET_SIZE(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X0C, 0, 32)
#define DOWNLOAD_FLASH_SET_SIZE(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X0C, 0, 32, __Value)
#define DOWNLOAD_FLASH_GET_START_ADDR(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X10, 0, 32)
#define DOWNLOAD_FLASH_SET_START_ADDR(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X10, 0, 32, __Value)
#define UPDATE_PACKET_GET_SIZE(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 0, 16)
#define UPDATE_PACKET_SET_SIZE(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 0, 16, __Value)
#define UPDATE_PACKET_GET_PACKET_ID(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 16, 8)
#define UPDATE_PACKET_SET_PACKET_ID(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 16, 8, __Value)
#define UPDATE_PACKET_GET_PACKET_LOC(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 24, 8)
#define UPDATE_PACKET_SET_PACKET_LOC(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 24, 8, __Value)
#define GENERAL_INFO_GET_REF_TYPE(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 0, 8)
#define GENERAL_INFO_SET_REF_TYPE(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 0, 8, __Value)
#define GENERAL_INFO_GET_RF_TYPE(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 8, 9)
#define GENERAL_INFO_SET_RF_TYPE(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 8, 9, __Value)
#define GENERAL_INFO_GET_FW_TX_BOUNDARY(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 16, 8)
#define GENERAL_INFO_SET_FW_TX_BOUNDARY(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 16, 8, __Value)
#define IQK_GET_CLEAR(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 0, 1)
#define IQK_SET_CLEAR(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 0, 1, __Value)
#define POWER_TRACKING_GET_ENABLE_A(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 0, 1)
#define POWER_TRACKING_SET_ENABLE_A(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 0, 1, __Value)
#define POWER_TRACKING_GET_ENABLE_B(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 1, 1)
#define POWER_TRACKING_SET_ENABLE_B(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 1, 1, __Value)
#define POWER_TRACKING_GET_ENABLE_C(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 2, 1)
#define POWER_TRACKING_SET_ENABLE_C(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 2, 1, __Value)
#define POWER_TRACKING_GET_ENABLE_D(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 3, 1)
#define POWER_TRACKING_SET_ENABLE_D(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 3, 1, __Value)
#define POWER_TRACKING_GET_TYPE(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 4, 3)
#define POWER_TRACKING_SET_TYPE(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 4, 3, __Value)
#define POWER_TRACKING_GET_BBSWING_INDEX(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 8, 8)
#define POWER_TRACKING_SET_BBSWING_INDEX(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 8, 8, __Value)
#define POWER_TRACKING_GET_TX_PWR_INDEX_A(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X0C, 0, 8)
#define POWER_TRACKING_SET_TX_PWR_INDEX_A(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X0C, 0, 8, __Value)
#define POWER_TRACKING_GET_PWR_TRACKING_OFFSET_VALUE_A(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X0C, 8, 8)
#define POWER_TRACKING_SET_PWR_TRACKING_OFFSET_VALUE_A(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X0C, 8, 8, __Value)
#define POWER_TRACKING_GET_TSSI_VALUE_A(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X0C, 16, 8)
#define POWER_TRACKING_SET_TSSI_VALUE_A(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X0C, 16, 8, __Value)
#define POWER_TRACKING_GET_TX_PWR_INDEX_B(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X10, 0, 8)
#define POWER_TRACKING_SET_TX_PWR_INDEX_B(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X10, 0, 8, __Value)
#define POWER_TRACKING_GET_PWR_TRACKING_OFFSET_VALUE_B(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X10, 8, 8)
#define POWER_TRACKING_SET_PWR_TRACKING_OFFSET_VALUE_B(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X10, 8, 8, __Value)
#define POWER_TRACKING_GET_TSSI_VALUE_B(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X10, 16, 8)
#define POWER_TRACKING_SET_TSSI_VALUE_B(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X10, 16, 8, __Value)
#define POWER_TRACKING_GET_TX_PWR_INDEX_C(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X14, 0, 8)
#define POWER_TRACKING_SET_TX_PWR_INDEX_C(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X14, 0, 8, __Value)
#define POWER_TRACKING_GET_PWR_TRACKING_OFFSET_VALUE_C(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X14, 8, 8)
#define POWER_TRACKING_SET_PWR_TRACKING_OFFSET_VALUE_C(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X14, 8, 8, __Value)
#define POWER_TRACKING_GET_TSSI_VALUE_C(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X14, 16, 8)
#define POWER_TRACKING_SET_TSSI_VALUE_C(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X14, 16, 8, __Value)
#define POWER_TRACKING_GET_TX_PWR_INDEX_D(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X18, 0, 8)
#define POWER_TRACKING_SET_TX_PWR_INDEX_D(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X18, 0, 8, __Value)
#define POWER_TRACKING_GET_PWR_TRACKING_OFFSET_VALUE_D(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X18, 8, 8)
#define POWER_TRACKING_SET_PWR_TRACKING_OFFSET_VALUE_D(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X18, 8, 8, __Value)
#define POWER_TRACKING_GET_TSSI_VALUE_D(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X18, 16, 8)
#define POWER_TRACKING_SET_TSSI_VALUE_D(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X18, 16, 8, __Value)
#define PSD_GET_START_PSD(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 0, 16)
#define PSD_SET_START_PSD(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 0, 16, __Value)
#define PSD_GET_END_PSD(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 16, 16)
#define PSD_SET_END_PSD(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 16, 16, __Value)
#define BT_COEX_GET_DATA_START(__pH2C)    LE_BITS_TO_4BYTE(__pH2C + 0X08, 0, 8)
#define BT_COEX_SET_DATA_START(__pH2C, __Value)    SET_BITS_TO_LE_4BYTE(__pH2C + 0X08, 0, 8, __Value)
#endif