blob: 077f00e3b3d893e9c81e49417424fd19684da07e [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2012
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*****************************************************************************
37 *
38 * Filename:
39 * ---------
40 * el1_ipc_str.h
41 *
42 * Project:
43 * --------
44 * UMOLY
45 *
46 * Description:
47 * ------------
48 * LTE Layer 1 (EL1) and WiFi/BT SW message structure.
49 *
50 * Author:
51 * -------
52 * -------
53 *
54 * ==========================================================================
55 ****************************************************************************/
56#ifndef _IDC_SWMSG_STR_
57#define _IDC_SWMSG_STR_
58
59#include "kal_general_types.h"
60#include "kal_public_defs.h"
61#include "idc_def.h"
62
63/**************************/
64/***** DEFINITED VALUE ****/
65/**************************/
66
67/***** MD part *****/
68
69#define LTE_INVALID_FREQ 0xFFFF
70#define NR_INVALID_FREQ 0xFFFFFFFF
71#define INTF_DIRECT_NUM 2
72#define MAX_WIFI_UNSAFE_FREQ_BMP_NUM 2
73#define MAX_BT_UNSAFE_FREQ_BMP_NUM 3
74#define MAX_UL_DL_SECTORS 3
75#define IDC_BWP_NUM 5
76#define IDC_LTE_NUM 5
77#define IDC_NR_NUM 8
78#define IDC_MAX_LTE_NUM (IDC_LTE_NUM + 1)
79#define IDC_MAX_NR_NUM (IDC_NR_NUM + 1)
80#define IDC_GROUP_NUM 6
81#define IDC_LTE_GROUP_NUM 3
82#define IDC_NR_GROUP_NUM 3
83#define MAX_SLP_DUR_RES_NUM 4
84
85/***** CONSYS part *****/
86
87#define MAX_WIFI_FREQ_IND_BAND_NUM 2
88#define MAX_WIFI_FREQ_NUM 4
89
90/**************************/
91/***** ENUM DEFINITION ****/
92/**************************/
93
94
95/***** MD part *****/
96
97typedef enum
98{
99 MD_CHIP_VER_6290 = 0,
100 MD_CHIP_VER_6291 = 1,
101 MD_CHIP_VER_6292 = 2,
102 MD_CHIP_VER_6293 = 3,
103 MD_CHIP_VER_6295 = 4,
104 MD_CHIP_VER_6297 = 5,
105 MD_CHIP_VER_MAX = 0xFF,
106}idc_md_chip_ver_enum;
107
108typedef enum
109{
110 MD_RF_CHIP_VER_MT6190 = 0,
111 MD_RF_CHIP_VER_MT6190M = 1,
112 MD_RF_CHIP_VER_MAX = 0xFF,
113}idc_md_rf_chip_ver_enum;
114
115/***** CONSYS part *****/
116
117typedef enum
118{
119 CONSYS_GEN_INVALID = 0,
120 CONSYS_GEN_2 = 20,
121 CONSYS_GEN_3 = 30,
122 CONSYS_GEN_4 = 40,
123 CONSYS_CONNAC_1_0 = 50,
124 CONSYS_CONNAC_1_1 = 51,
125 CONSYS_CONNAC_1_2 = 52,
126 CONSYS_CONNAC_2_0 = 60,
127 CONSYS_CONNAC_2_1 = 61,
128 CONSYS_CONNAC_2_2 = 62,
129 CONSYS_GENMAX = 0xFF,
130}idc_consys_gen_enum;
131
132typedef enum
133{
134 PTA_VER_3_0 = 30,
135 PTA_VER_3_1 = 31,
136 PTA_VER_5_0 = 50,
137 PTA_VER_5_1 = 51,
138 PTA_VER_5_2 = 52,
139 PTA_VER_6_0 = 60,
140 PTA_VER_6_1 = 61,
141 PTA_VER_6_2 = 62,
142 PTA_VER_7_0 = 70,
143 PTA_VER_7_1 = 71,
144 PTA_VER_7_2 = 72,
145 PTA_VER_MAX = 0xFF,
146}idc_consys_pta_ver_enum;
147
148typedef enum
149{
150 CONSYS_CHIP_VER_6625 = 0,
151 CONSYS_CHIP_VER_6630 = 1,
152 CONSYS_CHIP_VER_6631 = 2,
153 CONSYS_CHIP_VER_6632 = 3,
154 CONSYS_CHIP_VER_6633 = 4,
155 CONSYS_CHIP_VER_6635 = 5,
156 CONSYS_CHIP_VER_7915 = 6,
157 CONSYS_CHIP_VER_MAX = 0xFF,
158}idc_consys_chip_ver_enum;
159
160/****************************/
161/***** STRUCT DEFINITION ****/
162/****************************/
163
164typedef struct _wifi_unsafe_freq_bmp_struct
165{
166 kal_uint32 FDM_TDM[INTF_DIRECT_NUM][MAX_WIFI_UNSAFE_FREQ_BMP_NUM]; // INTF_DIRECT_NUM = 2, 0: LTE is aggressor, 1: WIFI is aggressor, MAX_WIFI_UNSAFE_FREQ_BMP_NUM = 2, channel base
167 kal_uint32 FDM_PWR[INTF_DIRECT_NUM][MAX_WIFI_UNSAFE_FREQ_BMP_NUM];
168 kal_uint32 FDM[INTF_DIRECT_NUM][MAX_WIFI_UNSAFE_FREQ_BMP_NUM];
169}wifi_unsafe_freq_bmp_struct;
170
171typedef struct _bt_unsafe_freq_bmp_struct
172{
173 kal_uint32 FDM_TDM[INTF_DIRECT_NUM][MAX_BT_UNSAFE_FREQ_BMP_NUM]; // INTF_DIRECT_NUM = 2, 0: LTE is aggressor, 1: BT is aggressor, MAX_WIFI_UNSAFE_FREQ_BMP_NUM = 3, channel base
174 kal_uint32 FDM_PWR[INTF_DIRECT_NUM][MAX_BT_UNSAFE_FREQ_BMP_NUM];
175 kal_uint32 FDM[INTF_DIRECT_NUM][MAX_BT_UNSAFE_FREQ_BMP_NUM];
176}bt_unsafe_freq_bmp_struct;
177
178typedef struct _ul_dl_config_struct
179{
180 kal_uint16 dl_length[MAX_UL_DL_SECTORS]; // PTA6.0 supports max. 5 sections switching
181#if !defined(CHIP10992)
182 kal_uint8 rsvd1[2];
183#endif
184 kal_uint16 ul_length[MAX_UL_DL_SECTORS];
185#if !defined(CHIP10992)
186 kal_uint8 rsvd2[2];
187#endif
188}ul_dl_config_struct;
189
190/************************/
191/***** MD to CONSYS ****/
192/************************/
193
194typedef struct _idc_sw_msg_header
195{
196#if IDC_CCCI_PATH_EN
197 kal_uint8 msg_id;
198 kal_bool is_need_reply_ack;
199 kal_uint8 rsvd[2];
200#else
201 kal_bool is_need_reply_ack;
202 kal_uint8 rsvd[3];
203#endif
204 kal_uint32 seq_num;
205 kal_uint32 enqueue_time_stamp;
206}idc_sw_msg_header;
207
208typedef struct _idc_md_idc_info_ind_struct
209{
210 idc_sw_msg_header msg_header;
211 idc_md_chip_ver_enum chip_ver; // 90:0, 91:1, 92:2, 93:3, 95:4, 97:5
212 kal_uint8 idc_ver_major; // 2
213 kal_uint8 idc_ver_minor; // support feature: 1 power backoff, 2 scc de-activation, 3 DBDC/MCC, 4 interference detector
214 kal_uint8 timer_for_gps_blank_ind; // 3ms
215 kal_uint8 short_timer_for_rx_ind; // 20ms
216 kal_uint8 timer_for_consecutive_bytes_of_hw_sig; // 4us
217 kal_uint8 timer_for_lte_block_consys_tx_ind; // 200ms
218 kal_uint8 timer_for_nr_block_consys_tx_ind; // 200ms
219 kal_uint8 timer_for_pattern_sync_ind; // 30ms
220 kal_uint8 timer_for_resend_ntf; // 10ms
221 kal_uint8 timer_for_tx_ind; // 50ms
222 kal_uint8 max_num_cc_nr; // 9, 8 for MAX_NUM_CC_NR, 1 for NR inter-freq.
223 kal_uint8 max_num_cc_lte; // 6, 5 for MAX_NUM_CC_LTE, 1 for LTE inter-freq.
224 kal_uint8 md_lte_lead_time_step_cr;
225 kal_uint8 md_nr_lead_time_step_cr;
226 kal_uint8 md_expect_consys_mini_power_cr;
227 kal_uint8 md_expect_consys_pwr_step_cr;
228#if !defined(CHIP10992)
229 kal_uint16 long_timer_for_rx_ind; // 1000ms
230 idc_md_rf_chip_ver_enum rf_info;
231#else
232 kal_uint8 rsvd[1];
233 kal_uint16 long_timer_for_rx_ind; // 1000ms
234#endif
235}idc_md_idc_info_ind_struct;
236
237typedef struct _idc_lte_default_param_ind_struct
238{
239 idc_sw_msg_header msg_header;
240 kal_bool lte_actv;
241 kal_bool isReset; // 1: must need do handshake, 0: depends on the status change of LTE
242 kal_uint8 default_lte_rx_priority; // 3
243 kal_uint8 rsvd;
244 kal_uint16 tdm_lte_window; // 130ms
245 kal_uint16 tdm_conn_window; // 110ms
246}idc_lte_default_param_ind_struct;
247
248typedef struct _idc_nr_default_param_ind_struct
249{
250 idc_sw_msg_header msg_header;
251 kal_bool nr_actv;
252 kal_bool isReset; // 1: must need do handshake, 0: depends on the status change of NR
253 kal_uint8 default_nr_rx_priority; // 3
254 kal_uint8 bwp_switch_lead_time;
255 kal_uint16 tdm_nr_window; // 130ms
256 kal_uint16 tdm_conn_window; // 110ms
257#if IDC_FDD_FEATURE_SUPPORT
258 kal_uint8 md_nr_tx_mini_pwr_cr; // 0
259 kal_uint8 md_nr_tx_pwr_step_cr; // 2
260#endif
261}idc_nr_default_param_ind_struct;
262
263typedef struct _idc_lte_oper_freq_ind_struct
264{
265 idc_sw_msg_header msg_header;
266 kal_uint8 oper_freq_num;
267 kal_uint8 rsvd1[3];
268 kal_uint8 dl_bw[IDC_MAX_LTE_NUM];
269 kal_uint8 rsvd2[2];
270 kal_uint8 ul_bw[IDC_MAX_LTE_NUM];
271 kal_uint8 rsvd3[2];
272 kal_uint8 oper_band[IDC_MAX_LTE_NUM];
273 kal_uint8 rsvd4[2];
274 kal_uint16 dl_freq[IDC_MAX_LTE_NUM];
275 kal_uint16 ul_freq[IDC_MAX_LTE_NUM];
276}idc_lte_oper_freq_ind_struct;
277
278typedef struct _idc_nr_oper_freq_ind_struct
279{
280 idc_sw_msg_header msg_header;
281 kal_uint8 oper_freq_num;
282 kal_uint8 rsvd1[3];
283 kal_uint32 dl_bw[IDC_MAX_NR_NUM][IDC_BWP_NUM];
284 kal_uint32 ul_bw[IDC_MAX_NR_NUM][IDC_BWP_NUM];
285 kal_uint16 oper_band[IDC_MAX_NR_NUM];
286#if !defined(CHIP10992)
287 kal_uint8 rsvd2;
288#else
289 kal_uint8 rsvd2[2];
290#endif
291 kal_uint32 dl_freq[IDC_MAX_NR_NUM][IDC_BWP_NUM]; // MAX_BWP_NUM = 5
292 kal_uint32 ul_freq[IDC_MAX_NR_NUM][IDC_BWP_NUM];
293}idc_nr_oper_freq_ind_struct;
294
295typedef struct _idc_lte_wifi_unsafe_freq_bmp_ind_struct
296{
297 idc_sw_msg_header msg_header;
298 wifi_unsafe_freq_bmp_struct bmp_general[IDC_MAX_LTE_NUM];
299}idc_lte_wifi_unsafe_freq_bmp_ind_struct;
300
301typedef struct _idc_lte_wifi_dbdc_unsafe_freq_bmp_ind_struct
302{
303 idc_sw_msg_header msg_header;
304 wifi_unsafe_freq_bmp_struct bmp_dbdc[IDC_MAX_LTE_NUM][MAX_WIFI_FREQ_IND_BAND_NUM]; // MAX_WIFI_FREQ_IND_BAND_NUM = 2
305}idc_lte_wifi_dbdc_unsafe_freq_bmp_ind_struct;
306
307typedef struct _idc_lte_bt_unsafe_freq_bmp_ind_struct
308{
309 idc_sw_msg_header msg_header;
310 bt_unsafe_freq_bmp_struct bmp_general[IDC_MAX_LTE_NUM];
311}idc_lte_bt_unsafe_freq_bmp_ind_struct;
312
313#if IDC_CCCI_PATH_EN
314/* the max NCCCI message size is limited, so split unsafe bmp of CCs into several messages */
315#define IDC_NR_WIFI_UNSAFE_BMP_NCCCI_MAX_CC_NUM (5)
316#define IDC_NR_WIFI_UNSAFE_BMP_NCCCI_MAX_MSG_NUM (2)
317
318typedef struct _idc_nr_wifi_unsafe_freq_bmp_ind_struct
319{
320 idc_sw_msg_header msg_header;
321 wifi_unsafe_freq_bmp_struct bmp_general[IDC_NR_WIFI_UNSAFE_BMP_NCCCI_MAX_CC_NUM][IDC_BWP_NUM];
322 kal_uint8 start_cc;
323 kal_uint8 end_cc;
324 kal_uint8 rsvd[2];
325}idc_nr_wifi_unsafe_freq_bmp_ind_struct;
326#else
327#define IDC_NR_WIFI_UNSAFE_BMP_NCCCI_MAX_MSG_NUM (1)
328
329typedef struct _idc_nr_wifi_unsafe_freq_bmp_ind_struct
330{
331 idc_sw_msg_header msg_header;
332 wifi_unsafe_freq_bmp_struct bmp_general[IDC_MAX_NR_NUM][IDC_BWP_NUM];
333}idc_nr_wifi_unsafe_freq_bmp_ind_struct;
334#endif
335
336#if IDC_CCCI_PATH_EN
337/* the max NCCCI message size is limited, so split unsafe bmp of CCs into several messages */
338#define IDC_NR_WIFI_DBDC_UNSAFE_BMP_NCCCI_MAX_CC_NUM (3)
339#define IDC_NR_WIFI_DBDC_UNSAFE_BMP_NCCCI_MAX_MSG_NUM (3)
340
341typedef struct _idc_nr_wifi_dbdc_unsafe_freq_bmp_ind_struct
342{
343 idc_sw_msg_header msg_header;
344 wifi_unsafe_freq_bmp_struct bmp_dbdc[IDC_NR_WIFI_DBDC_UNSAFE_BMP_NCCCI_MAX_CC_NUM][IDC_BWP_NUM][MAX_WIFI_FREQ_IND_BAND_NUM]; // MAX_WIFI_FREQ_IND_BAND_NUM = 2
345 kal_uint8 start_cc;
346 kal_uint8 end_cc;
347 kal_uint8 rsvd[2];
348}idc_nr_wifi_dbdc_unsafe_freq_bmp_ind_struct;
349#else
350#define IDC_NR_WIFI_DBDC_UNSAFE_BMP_NCCCI_MAX_MSG_NUM (1)
351
352typedef struct _idc_nr_wifi_dbdc_unsafe_freq_bmp_ind_struct
353{
354 idc_sw_msg_header msg_header;
355 wifi_unsafe_freq_bmp_struct bmp_dbdc[IDC_MAX_NR_NUM][IDC_BWP_NUM][MAX_WIFI_FREQ_IND_BAND_NUM]; // MAX_WIFI_FREQ_IND_BAND_NUM = 2
356}idc_nr_wifi_dbdc_unsafe_freq_bmp_ind_struct;
357#endif
358
359#if IDC_CCCI_PATH_EN
360/* the max NCCCI message size is limited, so split unsafe bmp of CCs into several messages */
361#define IDC_NR_BT_UNSAFE_BMP_NCCCI_MAX_CC_NUM (5)
362#define IDC_NR_BT_UNSAFE_BMP_NCCCI_MAX_MSG_NUM (2)
363
364typedef struct _idc_nr_bt_unsafe_freq_bmp_ind_struct
365{
366 idc_sw_msg_header msg_header;
367 bt_unsafe_freq_bmp_struct bmp_general[IDC_NR_BT_UNSAFE_BMP_NCCCI_MAX_CC_NUM][IDC_BWP_NUM];
368 kal_uint8 start_cc;
369 kal_uint8 end_cc;
370 kal_uint8 rsvd[2];
371}idc_nr_bt_unsafe_freq_bmp_ind_struct;
372#else
373#define IDC_NR_BT_UNSAFE_BMP_NCCCI_MAX_MSG_NUM (1)
374
375typedef struct _idc_nr_bt_unsafe_freq_bmp_ind_struct
376{
377 idc_sw_msg_header msg_header;
378 bt_unsafe_freq_bmp_struct bmp_general[IDC_MAX_NR_NUM][IDC_BWP_NUM];
379}idc_nr_bt_unsafe_freq_bmp_ind_struct;
380#endif
381
382typedef struct _idc_md_drx_pattern_ind_struct
383{
384 idc_sw_msg_header msg_header;
385 kal_bool predictable;
386 kal_uint8 on_duration;
387 kal_uint8 start_offset;
388 kal_uint8 rsvd;
389 kal_uint8 resolution[MAX_SLP_DUR_RES_NUM]; // MAX_SLP_DUR_RES_NUM = 4
390}idc_md_drx_pattern_ind_struct;
391
392typedef struct _idc_md_r11_idc_param_ind_struct
393{
394 idc_sw_msg_header msg_header;
395 kal_bool idc_report_enable;
396 kal_uint8 rsvd[3];
397}idc_md_r11_idc_param_ind_struct;
398
399typedef struct _idc_md_sw_msg_ack_ind_strcut
400{
401 idc_sw_msg_header msg_header;
402 kal_bool cnf_status; // Always be ture
403 kal_uint8 rsvd[3];
404 kal_uint32 recv_msg_bmp; // Set the corresponding bit for the target SW MSG from CONSYS which needs ack
405 kal_uint32 recv_seq_num;
406}idc_md_sw_msg_ack_ind_strcut;
407
408typedef struct _idc_lte_trx_group_ind_struct
409{
410 idc_sw_msg_header msg_header;
411 kal_uint8 lte_rx_group[IDC_MAX_LTE_NUM];
412#if !defined(CHIP10992)
413 kal_uint8 rsvd1[2];
414#endif
415 kal_uint8 lte_tx_group[IDC_MAX_LTE_NUM];
416#if !defined(CHIP10992)
417 kal_uint8 rsvd2[2];
418#endif
419}idc_lte_trx_group_ind_struct;
420
421typedef struct _idc_nr_trx_group_ind_struct
422{
423 idc_sw_msg_header msg_header;
424 kal_uint8 nr_rx_group[IDC_MAX_NR_NUM];
425#if !defined(CHIP10992)
426 kal_uint8 rsvd1[3];
427#endif
428 kal_uint8 nr_tx_group[IDC_MAX_NR_NUM];
429#if !defined(CHIP10992)
430 kal_uint8 rsvd2[3];
431#else
432 kal_uint8 rsvd[2];
433#endif
434}idc_nr_trx_group_ind_struct;
435
436typedef struct _idc_md_pattern_cfg_ind_struct
437{
438 idc_sw_msg_header msg_header;
439 ul_dl_config_struct ul_dl_config[IDC_GROUP_NUM]; // NUM_IDC_GROUP = 6
440}idc_md_pattern_cfg_ind_struct;
441
442#if IDC_SEND_HW_SIG_VIA_SW_MSG
443typedef struct _idc_lte_state_ind_struct
444{
445 idc_sw_msg_header msg_header;
446 kal_bool is_lte_enter_conn; // LTE enter connected mode
447 kal_uint8 rsvd[3];
448}idc_lte_state_ind_struct;
449
450typedef struct _idc_nr_state_ind_struct
451{
452 idc_sw_msg_header msg_header;
453 kal_bool is_nr_enter_conn; // NR enter connected mode
454 kal_uint8 rsvd[3];
455}idc_nr_state_ind_struct;
456
457typedef struct _idc_lte_scell_actv_ind_struct
458{
459 idc_sw_msg_header msg_header;
460 kal_uint8 cell_bmp;
461 kal_uint8 rsvd[3];
462}idc_lte_scell_actv_ind_struct;
463
464typedef struct _idc_nr_scell_actv_ind_struct
465{
466 idc_sw_msg_header msg_header;
467 kal_uint16 cell_bmp;
468 kal_uint8 rsvd[2];
469}idc_nr_scell_actv_ind_struct;
470
471typedef struct _idc_md_tx_bwp_fw_ind_struct
472{
473 idc_sw_msg_header msg_header;
474 kal_uint8 bwp_of_cc[IDC_MAX_NR_NUM];
475 kal_uint8 rsvd[3];
476}idc_md_tx_bwp_fw_ind_struct;
477
478typedef struct _idc_md_rx_bwp_fw_ind_struct
479{
480 idc_sw_msg_header msg_header;
481 kal_uint8 bwp_of_cc[IDC_MAX_NR_NUM];
482 kal_uint8 rsvd[3];
483}idc_md_rx_bwp_fw_ind_struct;
484
485typedef struct _idc_md_tx_susp_ind_struct
486{
487 idc_sw_msg_header msg_header;
488 kal_uint8 priority; // default is 3
489 kal_uint8 tx_susp_fdm; // 0: allow CONSYS TX which adopt FDM, 1: LTE stop CONSYS TX, 2: NR stop CONSYS TX, 3: Both RATs stop CONSYS TX
490 kal_uint8 tx_susp_tdm; // 0: allow CONSYS TX which adopt TDM, 1: LTE stop CONSYS TX, 2: NR stop CONSYS TX, 3: Both RATs stop CONSYS TX
491 kal_uint8 rsvd[1];
492}idc_md_tx_susp_ind_struct;
493#endif
494
495typedef struct _idc_md_idc_info_ind_ilm_struct
496{
497 LOCAL_PARA_HDR
498 idc_md_idc_info_ind_struct md_info;
499}idc_md_idc_info_ind_ilm_struct;
500
501typedef struct _idc_lte_default_param_ind_ilm_struct
502{
503 LOCAL_PARA_HDR
504 idc_lte_default_param_ind_struct lte_param;
505}idc_lte_default_param_ind_ilm_struct;
506
507typedef struct _idc_nr_default_param_ind_ilm_struct
508{
509 LOCAL_PARA_HDR
510 idc_nr_default_param_ind_struct nr_param;
511}idc_nr_default_param_ind_ilm_struct;
512
513typedef struct _idc_lte_oper_freq_ind_ilm_struct
514{
515 LOCAL_PARA_HDR
516 idc_lte_oper_freq_ind_struct lte_freq;
517}idc_lte_oper_freq_ind_ilm_struct;
518
519typedef struct _idc_nr_oper_freq_ind_ilm_struct
520{
521 LOCAL_PARA_HDR
522 idc_nr_oper_freq_ind_struct nr_freq;
523}idc_nr_oper_freq_ind_ilm_struct;
524
525typedef struct _idc_lte_wifi_unsafe_freq_bmp_ind_ilm_struct
526{
527 LOCAL_PARA_HDR
528 idc_lte_wifi_unsafe_freq_bmp_ind_struct lte_wifi_unsafe_bmp;
529}idc_lte_wifi_unsafe_freq_bmp_ind_ilm_struct;
530
531typedef struct _idc_lte_wifi_dbdc_unsafe_freq_bmp_ind_ilm_struct
532{
533 LOCAL_PARA_HDR
534 idc_lte_wifi_dbdc_unsafe_freq_bmp_ind_struct lte_wifi_dbdc_unsafe_bmp;
535}idc_lte_wifi_dbdc_unsafe_freq_bmp_ind_ilm_struct;
536
537typedef struct _idc_lte_bt_unsafe_freq_bmp_ind_ilm_struct
538{
539 LOCAL_PARA_HDR
540 idc_lte_bt_unsafe_freq_bmp_ind_struct lte_bt_unsafe_bmp;
541}idc_lte_bt_unsafe_freq_bmp_ind_ilm_struct;
542
543typedef struct _idc_nr_wifi_unsafe_freq_bmp_ind_ilm_struct
544{
545 LOCAL_PARA_HDR
546 idc_nr_wifi_unsafe_freq_bmp_ind_struct nr_wifi_unsafe_bmp;
547}idc_nr_wifi_unsafe_freq_bmp_ind_ilm_struct;
548
549typedef struct _idc_nr_wifi_dbdc_unsafe_freq_bmp_ind_ilm_struct
550{
551 LOCAL_PARA_HDR
552 idc_nr_wifi_dbdc_unsafe_freq_bmp_ind_struct nr_wifi_dbdc_unsafe_bmp;
553}idc_nr_wifi_dbdc_unsafe_freq_bmp_ind_ilm_struct;
554
555typedef struct _idc_nr_bt_unsafe_freq_bmp_ind_ilm_struct
556{
557 LOCAL_PARA_HDR
558 idc_nr_bt_unsafe_freq_bmp_ind_struct nr_bt_unsafe_bmp;
559}idc_nr_bt_unsafe_freq_bmp_ind_ilm_struct;
560
561typedef struct _idc_md_drx_pattern_ind_ilm_struct
562{
563 LOCAL_PARA_HDR
564 idc_md_drx_pattern_ind_struct md_drx_pattern;
565}idc_md_drx_pattern_ind_ilm_struct;
566
567typedef struct _idc_md_r11_idc_param_ind_ilm_struct
568{
569 LOCAL_PARA_HDR
570 idc_md_r11_idc_param_ind_struct md_r11_param;
571}idc_md_r11_idc_param_ind_ilm_struct;
572
573typedef struct _idc_md_sw_msg_ack_ind_ilm_struct
574{
575 LOCAL_PARA_HDR
576 idc_md_sw_msg_ack_ind_strcut md_ack;
577}idc_md_sw_msg_ack_ind_ilm_struct;
578
579typedef struct _idc_lte_trx_group_ind_ilm_struct
580{
581 LOCAL_PARA_HDR
582 idc_lte_trx_group_ind_struct lte_trx_group;
583}idc_lte_trx_group_ind_ilm_struct;
584
585typedef struct _idc_nr_trx_group_ind_ilm_struct
586{
587 LOCAL_PARA_HDR
588 idc_nr_trx_group_ind_struct nr_trx_group;
589}idc_nr_trx_group_ind_ilm_struct;
590
591typedef struct _idc_md_pattern_cfg_ind_ilm_struct
592{
593 LOCAL_PARA_HDR
594 idc_md_pattern_cfg_ind_struct md_pattern_cfg;
595}idc_md_pattern_cfg_ind_ilm_struct;
596
597#if IDC_SEND_HW_SIG_VIA_SW_MSG
598typedef struct _idc_lte_state_ind_ilm_struct
599{
600 LOCAL_PARA_HDR
601 idc_lte_state_ind_struct lte_state_ind;
602}idc_lte_state_ind_ilm_struct;
603
604typedef struct _idc_nr_state_ind_ilm_struct
605{
606 LOCAL_PARA_HDR
607 idc_nr_state_ind_struct nr_state_ind;
608}idc_nr_state_ind_ilm_struct;
609
610typedef struct _idc_lte_scell_actv_ind_ilm_struct
611{
612 LOCAL_PARA_HDR
613 idc_lte_scell_actv_ind_struct lte_scell_actv_ind;
614}idc_lte_scell_actv_ind_ilm_struct;
615
616typedef struct _idc_nr_scell_actv_ind_ilm_struct
617{
618 LOCAL_PARA_HDR
619 idc_nr_scell_actv_ind_struct nr_scell_actv_ind;
620}idc_nr_scell_actv_ind_ilm_struct;
621
622typedef struct _idc_md_tx_bwp_fw_ind_ilm_struct
623{
624 LOCAL_PARA_HDR
625 idc_md_tx_bwp_fw_ind_struct md_tx_bwp_fw_ind;
626}idc_md_tx_bwp_fw_ind_ilm_struct;
627
628typedef struct _idc_md_rx_bwp_fw_ind_ilm_struct
629{
630 LOCAL_PARA_HDR
631 idc_md_rx_bwp_fw_ind_struct md_rx_bwp_fw_ind;
632}idc_md_rx_bwp_fw_ind_ilm_struct;
633
634typedef struct _idc_md_tx_susp_ind_ilm_struct
635{
636 LOCAL_PARA_HDR
637 idc_md_tx_susp_ind_struct md_tx_susp_ind;
638}idc_md_tx_susp_ind_ilm_struct;
639#endif
640
641/************************/
642/***** CONSYS to MD ****/
643/************************/
644
645typedef struct _idc_wifi_default_param_ntf_struct
646{
647 idc_sw_msg_header msg_header;
648 idc_consys_gen_enum idc_ver_major;
649 idc_consys_pta_ver_enum pta_ver;
650 idc_consys_chip_ver_enum chip_ver;
651#if IDC_MD_CTRL_TDM_WITH_3WIRE_PTA
652 kal_uint8 cpe_mifi_feature_extension;//bit 0 = true indicate wifi support tri-band.
653#else
654 kal_uint8 rsvd1;
655#endif
656 kal_bool wifi_en;
657 kal_bool isReset;
658 kal_uint8 idc_ver_minor;
659 kal_uint8 rsvd2;
660}idc_wifi_default_param_ntf_struct;
661
662typedef struct _idc_bt_default_param_ntf_struct
663{
664 idc_sw_msg_header msg_header;
665 idc_consys_gen_enum idc_ver_major;
666 idc_consys_pta_ver_enum pta_ver;
667 idc_consys_chip_ver_enum chip_ver;
668 kal_uint8 rsvd;
669 kal_bool bt_en;
670 kal_bool gnss_en;
671 kal_bool fm_en;
672 kal_uint8 idc_ver_minor;
673}idc_bt_default_param_ntf_struct;
674
675typedef struct _idc_wifi_oper_freq_ntf_struct
676{
677 idc_sw_msg_header msg_header;
678 kal_uint8 wifi_band0_oper_freq_num;
679 kal_uint8 wifi_band1_oper_freq_num;
680 kal_uint8 rsvd[2];
681 kal_uint32 wifi_oper_freq_low[MAX_WIFI_FREQ_NUM]; // MAX_WIFI_FREQ_NUM = 4
682 kal_uint32 wifi_oper_freq_high[MAX_WIFI_FREQ_NUM];
683#if IDC_MD_CTRL_TDM_WITH_3WIRE_PTA
684 kal_uint8 wifi_oper_freq_3wire_group[MAX_WIFI_FREQ_NUM]; /* HW interface of each frequency */
685 /* 0: M2C bridge 1 */
686 /* BT_ACT_TXD (G9) */
687 /* BT_PRI_RXD (AG8) */
688 /* WLAN_ACT (AF8) */
689 /* 1: GPIO 1 */
690 /* PTA_RX (GPIO135) */
691 /* PTA_TX (GPIO134) */
692 /* EINT15 (GPIO15) */
693 /* 2: GPIO 2 */
694 /* PCIE3_PERSTN (GPIO76) */
695 /* PCIE3_PEWAKEN (GPIO77) */
696 /* PCIE3_CLKREQN (GPIO78) */
697#endif
698}idc_wifi_oper_freq_ntf_struct;
699
700typedef struct _idc_bt_oper_freq_ntf_struct
701{
702 idc_sw_msg_header msg_header;
703 kal_bool bt_oper_freq_valid;
704 kal_uint8 rsvd[3];
705 kal_uint32 bt_oper_freq_low;
706 kal_uint32 bt_oper_freq_high;
707}idc_bt_oper_freq_ntf_struct;
708
709typedef struct _idc_consys_send_sw_msg_cnf_struct
710{
711 idc_sw_msg_header msg_header;
712 kal_bool cnf_status;
713 kal_uint8 rsvd[3];
714 kal_uint32 recv_msg_bmp;
715 kal_uint32 recv_seq_num;
716}idc_consys_send_sw_msg_cnf_struct;
717
718typedef struct _idc_wifi_laa_release_ntf_struct
719{
720 idc_sw_msg_header msg_header;
721 kal_bool isWiFion5G;
722 kal_uint8 rsvd[3];
723}idc_wifi_laa_release_ntf_struct;
724
725typedef struct _idc_wifi_default_param_ntf_ilm_struct
726{
727 LOCAL_PARA_HDR
728 idc_wifi_default_param_ntf_struct wifiDefaultParam;
729}idc_wifi_default_param_ntf_ilm_struct;
730
731typedef struct _idc_bt_default_param_ntf_ilm_struct
732{
733 LOCAL_PARA_HDR
734 idc_bt_default_param_ntf_struct btDefaultParam;
735}idc_bt_default_param_ntf_ilm_struct;
736
737typedef struct _idc_wifi_oper_freq_ntf_ilm_struct
738{
739 LOCAL_PARA_HDR
740 idc_wifi_oper_freq_ntf_struct wifiOperFreq;
741}idc_wifi_oper_freq_ntf_ilm_struct;
742
743typedef struct _idc_bt_oper_freq_ntf_ilm_struct
744{
745 LOCAL_PARA_HDR
746 idc_bt_oper_freq_ntf_struct btOperFreq;
747}idc_bt_oper_freq_ntf_ilm_struct;
748
749typedef struct _idc_consys_send_sw_msg_cnf_ilm_struct
750{
751 LOCAL_PARA_HDR
752 idc_consys_send_sw_msg_cnf_struct consysSwMsgCnf;
753}idc_consys_send_sw_msg_cnf_ilm_struct;
754
755typedef struct _idc_wifi_laa_release_ntf_ilm_struct
756{
757 LOCAL_PARA_HDR
758 idc_wifi_laa_release_ntf_struct wifi5GStatus;
759}idc_wifi_laa_release_ntf_ilm_struct;
760
761#if IDC_SEND_HW_SIG_VIA_SW_MSG
762typedef struct _idc_wifi_max_power_backoff_ntf_struct
763{
764 idc_sw_msg_header msg_header;
765 kal_bool mdPwrBackoffEn;
766 kal_uint8 wifiPwrBmp;// bit0: band0 bit1: band 1 bit2:tri band
767 kal_uint8 wifiPwrBackoffEnBmp;
768 kal_bool isWifiScan;
769#if IDC_MD_CTRL_TDM_WITH_3WIRE_PTA
770 kal_uint16 lteCellBmp; /* bit X 1: WIFI Rx need to backoff LTE CC X Tx power */
771 /* bit X 0: WIFI Rx need not to backoff LTE CC X Tx power */
772 kal_uint16 nrCellBmp; /* bit X 1: WIFI Rx need to backoff NR CC X Tx power */
773 /* bit X 0: WIFI Rx need not to backoff NR CC X Tx power */
774#endif
775}idc_wifi_max_power_backoff_ntf_struct;
776
777typedef struct _idc_wifi_actv_bss_ntf_struct
778{
779 idc_sw_msg_header msg_header;
780 kal_uint8 wifiActvBmp;
781 kal_bool isSTA;
782 kal_uint8 rsvd[2];
783}idc_wifi_actv_bss_ntf_struct;
784
785typedef struct _idc_bt_max_power_backoff_ntf_struct
786{
787 idc_sw_msg_header msg_header;
788 kal_bool isMdPwrBack; // TRUE:MODEM NEED TO DO PWER BACK OFF
789 kal_bool isBtPwrBack;
790 kal_uint8 rsvd[2];
791}idc_bt_max_power_backoff_ntf_struct;
792
793typedef struct _idc_consys_resend_ntf_struct
794{
795 idc_sw_msg_header msg_header;
796 kal_bool isConsys;
797 kal_uint8 rsvd[3];
798}idc_consys_resend_ntf_struct;
799
800typedef struct _idc_wifi_max_power_backoff_ntf_ilm_struct
801{
802 LOCAL_PARA_HDR
803 idc_wifi_max_power_backoff_ntf_struct wifiMaxBackOffNtf;
804}idc_wifi_max_power_backoff_ntf_ilm_struct;
805
806typedef struct _idc_wifi_actv_bss_ntf_ilm_struct
807{
808 LOCAL_PARA_HDR
809 idc_wifi_actv_bss_ntf_struct wifiActvBssNtf;
810}idc_wifi_actv_bss_ntf_ilm_struct;
811
812typedef struct _idc_bt_max_power_backoff_ntf_ilm_struct
813{
814 LOCAL_PARA_HDR
815 idc_bt_max_power_backoff_ntf_struct btMaxPowerBackOffNtf;
816}idc_bt_max_power_backoff_ntf_ilm_struct;
817
818typedef struct _idc_consys_resend_ntf_ilm_struct
819{
820 LOCAL_PARA_HDR
821 idc_consys_resend_ntf_struct consysResendNtf;
822}idc_consys_resend_ntf_ilm_struct;
823#endif
824
825#if IDC_MD_CTRL_TDM_WITH_3WIRE_PTA
826typedef struct _idc_consys_tdm_ntf_struct
827{
828 idc_sw_msg_header msg_header;
829 /* following information shall be in the same order with MSG_ID_IDC_WIFI_OPER_FREQ_NTF */
830 kal_bool isTdmForLte[MAX_WIFI_FREQ_NUM]; /* 1: LTE Rx need to block WIFI Tx */
831 /* 0: LTE Rx need not to block WIFI Tx */
832 kal_bool isTdmForNr[MAX_WIFI_FREQ_NUM]; /* 1: NR Rx need to block WIFI Tx */
833 /* 0: NR Rx need not to block WIFI Tx */
834 kal_uint16 lteCellBmp[MAX_WIFI_FREQ_NUM]; /* bit X 1: WIFI Rx need to block LTE CC X Tx */
835 /* bit X 0: WIFI Rx need not to block LTE CC X Tx */
836 kal_uint16 nrCellBmp[MAX_WIFI_FREQ_NUM]; /* bit X 1: WIFI Rx need to block NR CC X Tx */
837 /* bit X 0: WIFI Rx need not to block NR CC X Tx */
838}idc_consys_tdm_ntf_struct;
839
840typedef struct _idc_consys_tdm_ntf_ilm_struct
841{
842 LOCAL_PARA_HDR
843 idc_consys_tdm_ntf_struct consysTdmNtf;
844}idc_consys_tdm_ntf_ilm_struct;
845
846typedef struct _idc_lte_int_detect_ind_struct
847{
848 idc_sw_msg_header msg_header;
849 kal_uint16 tdmOnCellBmp; /* bit X 1: LTE CC X Rx need to block WIFI Tx */
850 /* bit X 0: LTE CC X Rx need not to block WIFI Tx */
851 kal_uint16 rsvd;
852}idc_lte_int_detect_ind_struct;
853
854typedef struct _idc_lte_int_detect_ind_ilm_struct
855{
856 LOCAL_PARA_HDR
857 idc_lte_int_detect_ind_struct lteIntDetectInd;
858}idc_lte_int_detect_ind_ilm_struct;
859
860typedef struct _idc_nr_int_detect_ind_struct
861{
862 idc_sw_msg_header msg_header;
863 kal_uint16 tdmOnCellBmp; /* bit X 1: NR CC X Rx need to block WIFI Tx */
864 /* bit X 0: NR CC X Rx need not to block WIFI Tx */
865 kal_uint16 rsvd;
866}idc_nr_int_detect_ind_struct;
867
868typedef struct _idc_nr_int_detect_ind_ilm_struct
869{
870 LOCAL_PARA_HDR
871 idc_nr_int_detect_ind_struct nrIntDetectInd;
872}idc_nr_int_detect_ind_ilm_struct;
873#endif
874#endif