blob: c6cda781fd50355ef2d069f4e2b386cbd332db19 [file] [log] [blame]
yu.dongc33b3072024-08-21 23:14:49 -07001/*****************************************************************************
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) 2016
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* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
38*
39* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
40*
41* Copyright (c) 2002-2010 VIA Telecom, Inc. All rights reserved.
42*
43*************************************************************/
44#ifndef _HSCAPI_H_
45#define _HSCAPI_H_
46/*****************************************************************************
47*
48* FILE NAME : hscapi.h
49*
50* DESCRIPTION :
51*
52*
53* HISTORY :
54* See Log at end of file
55*
56*****************************************************************************/
57
58/*----------------------------------------------------------------------------
59* Include Files
60----------------------------------------------------------------------------*/
61#include "sysapi.h"
62#include "pswapi.h"
63
64
65/*----------------------------------------------------------------------------
66* Message IDs for signals and commands sent to HSC
67*----------------------------------------------------------------------------*/
68#include "hscmsg.h"
69
70/*----------------------------------------------------------------------------
71* Definitions
72*----------------------------------------------------------------------------*/
73#define HSC_NUM_APPS (SYS_MODE_EVDO+1)
74/* The maximum mini-acq error, in tc8, where the 32K calibration will be applied.
75 If the mini-acq error is greater than or equal to this threshold,
76 the error will not be used for adjusting 32k clock calibration. */
77#define SP_MINI_ACQ_TC8_CAL_ADJUST_MAX (8*5) /* Threshold for mini-acq error for SCI=0 */
78
79
80#define HSC_FM_FREQUENCY 208000000 /*208MHz*/
81#define HSC_FM_DURATION 1 /*1s*/
82#define HSC_32K_CNTS_PER_SEC 32768 /*HWD_CLK_FREQ_32KHZ TBD*/
83
84#define CL1_IF_EVDO_RC_REQ_TXOFF_DELAY (7) /* 7ms, about 1.666*(3+1), for L3 use, 1 slot more than RC Tx off slot is for marge */
85#define CL1_IF_1XRTT_RC_REQ_TXOFF_DELAY (5) /* 5ms, about 1.250*(3+1), for L3 use, 1 slot more than RC Tx off slot is for marge */
86
87
88/* MPA Release reasons, to be shared with SYS */
89typedef enum
90{
91 HSC_SSM_MPA_REL_PREEMPT,
92 HSC_SSM_MPA_REL_SLEEP,
93 HSC_SSM_MPA_REL_RESET,
94 HSC_SSM_PREP_MAX
95} HscSsmMpaReasonT;
96
97/* 32k Clk Cal Settle Speeds */
98typedef enum
99{
100 SETTLE_NORMAL,
101 SETTLE_FAST,
102 SETTLE_MAX
103} HscClkCalSpeedT;
104
105typedef enum
106{
107 CONFID_HIGH,
108 CONFID_MED,
109 CONFID_MIN,
110 CONFID_MAX
111} HscClkCalThreshT;
112
113typedef enum
114{
115 SIM2_GSM_SUSPEND,
116 SIM2_GSM_RESUME,
117 SIM1_1xRTT_SUSPEND,
118 SIM1_1xRTT_RESUME,
119 SIM1_1xRTT_CANCEL,
120 SIM1_LTE_RESUME
121} HscCssSupendResumeT;
122
123typedef enum
124{
125 UNKNOWN_STATE = 0,
126 WAITING_STATE,
127 OFFERED_STATE,
128 INVALID_STATE
129} HscSib8TimingStateT;
130
131typedef enum
132{
133 HSC_CSS_RAT_FLIGHT,
134 HSC_CSS_RAT_STANDBY,
135 HSC_CSS_RAT_ACTIVE
136}HscCssRatTypeT;
137
138typedef enum
139{
140 FH,
141 PCG,
142 SLOT,
143 FH_INPCGSLOT,
144 FH_inPCGIRQ,
145 FH_inSLOTIRQ
146} TimeProfileModeT;
147
148typedef SysAirInterfaceT HscSysAirInterfaceT;
149
150/*----------------------------------------------------------------------------
151 Message Formats structure
152----------------------------------------------------------------------------*/
153/* MSG_ID_HSC_CLK_CAL_START_MSG, HSC_ETS_CLK_CAL_START_MSG */
154typedef struct
155{
156 HscSysAirInterfaceT Owner; /* SYS_MODE_1xRTT or SYS_MODE_EVDO */
157} HscClkCalStartMsgT;
158
159
160/* HSC_IDP_SLEEP_CMD_MSG */
161typedef struct
162{
163 FrameRecT PchWakeSystemTimeFrame;
164 kal_uint8 SyncCapsuleOffset;
165} HscIdpSleepCmdMsgT;
166
167
168/* MSG_ID_HSC_IDP_ENABLE_DO_SLOTTED_MSG */
169typedef struct
170{
171 kal_uint16 PageSlot; /* assigned slot to monitor */
172 kal_uint16 SlotCycleIndex; /* selected slot cycle index */
173} HscIdpSPageParmsMsgT;
174
175
176/* MSG_ID_HSC_RMC_ACTIVATE_RSP_MSG */
177typedef struct
178{
179 kal_int16 PilotPN;
180 kal_int16 RxTxOffsetTc2;
181 kal_int16 MiniAcqErrTc2;
182 kal_uint16 PwrEst;
183} HscRmcMiniAcqErrMsgT;
184
185#ifdef MTK_DEV_C2K_IRAT
186/* HSC_CLC_SIB8_INFO_CFG_MSG */
187typedef struct
188{
189 kal_bool is_update; /* 0 = Clear, 1 = Update*/
190 sys_time_info_c2k_struct sib8_sys_time_info;
191} HscClcSib8InfoCfgMsgT;
192
193/* HSC_SIB8_TIMING_SYNC_REQ */
194typedef struct
195{
196 SysAirInterfaceT Mode; /* 0 = 1xRTT, 1 = EvDO*/
197} HscSib8TimingSyncReqMsgT;
198
199/* HSC_SIB8_TIMING_SYNC_CNF */
200typedef struct
201{
202 SysAirInterfaceT Mode; /* 0 = 1xRTT, 1 = EvDO*/
203 kal_bool result; /* Indicate the time sync info in this message is valid or invalid. */
204} HscSib8TimingSyncCnfMsgT;
205#endif
206
207/* MSG_ID_HSC_CLC_OOSA_SLEEP_CMD_MSG */
208typedef struct
209{
210 kal_uint32 SleepDuration; /* Sleep duration in 1/10 seconds */
211} HscClcOosaSleepCmdMsgT;
212
213typedef struct
214{
215 HscSysAirInterfaceT Mode; /* 0 = 1xRTT, 1 = EvDO*/
216 kal_bool IsFlightMode; /* TRUE - Fligh mode; FALSE - other mode */
217} HscInfiniteSleepReqMsgT;
218
219
220/* MSG_ID_HSC_CSS_SUSPEND_RESUME_CMD_MSG */
221typedef struct
222{
223 HscCssSupendResumeT CssCmdType;
224 HscCssRatTypeT RatType;
225} HscCssSuspendResumeCmdMsgT;
226
227/* LL1A_CLC_LTE_SCAN_C2K_ACTIVE_PARAMS_IND */
228typedef struct
229{
230 kal_uint16 LTE_scan_active_duration_1xRTT; /* unit in milisecond, value range [1..10000], 0xFFFF means invalid (feature off) */
231 kal_uint16 LTE_scan_active_duration_DO; /* unit in milisecond, value range [1..1000], 0xFFFF means invalid (feature off) */
232} Ll1aClcLteScanC2kActiveParamsIndT;
233
234/* LL1A_IDP_SIGNAL_PROTECT_STATUS_IND */
235typedef struct
236{
237 kal_bool bSignalProtectStatus;/* KAL_TRUE,means signal interation is started and need be protected; */
238 /* KAL_FALSE,means signal interation is ended and protection can be canceled. */
239} Ll1aIdpSignalProtectStatusIndT;
240
241/* LL1A_PSW_SIGNAL_PROTECT_STATUS_IND */
242typedef struct
243{
244 kal_bool bSignalProtectStatus;/* KAL_TRUE,means signal interation is started and need be protected; */
245 /* KAL_FALSE,means signal interation is ended and protection can be canceled. */
246} Ll1aPswSignalProtectStatusIndT;
247
248/* HSC_ETS_CAL_SETTLE_TIME_SET_MSG */
249typedef struct
250{
251 kal_uint8 SettleTime[SETTLE_MAX][CONFID_MAX];
252 kal_uint16 FastSettlePeriodInSeconds;
253} HscClkCalParmsT;
254
255/* MSG_ID_HSC_ALTERNATE_AFC_MSG */
256typedef struct
257{
258 kal_uint8 Enable;
259} HscAlternateAfcMsgT;
260
261/* HSC_IDP_WAKE_CMD_MSG */
262typedef struct
263{
264 kal_uint8 Req;
265} HscIdpWakeCmdMsgT;
266
267typedef struct
268{
269 TimeProfileModeT Mode;
270 kal_uint8 startidx;
271 kal_uint8 endidx;
272} HscTimeProfileMsgT;
273
274typedef struct
275{
276 kal_uint8 Owner;
277} HscSleepOverCompMsgT;
278
279/* MSG_ID_HSC_SET_SHDR_SVDO_OP_MODE_MSG */
280typedef struct
281{
282 kal_uint8 ShdrEnabled;
283 kal_uint8 SvdoEnabled;
284} HscSetShdrSvdoOpModeT;
285
286#if defined (MTK_DEV_C2K_IRAT) && defined (MTK_DEV_C2K_SRLTE_L1)
287
288typedef struct
289{
290 kal_bool C2kInSim2;
291} HscC2kSimIndexInfoMsgT;
292
293typedef struct
294{
295 kal_uint32 MmoGapStartTime;
296 kal_int32 GapLength;
297} HscC2kMmoGapPatternIndMsgT;
298
299/* HSC_1X_PRIORITY_BOOST_MSG
300 * This message is sent by PSW, to modify 1X priority for preemption */
301typedef struct
302{
303 kal_bool control; /* True: raise priority, False: decrease priority */
304} Hsc1xPriorityBoostMsgT;
305
306typedef struct
307{
308 kal_bool control; /* True: raise priority, False: decrease priority */
309} HscDoPriorityBoostMsgT;
310
311#endif
312
313
314typedef struct
315{
316 SysAirInterfaceT Mode; /* 0 = 1xRTT, 1 = EvDO*/
317} HscFrcSyncInfoReptMsgT;
318
319/* MSG_ID_HSC_CSS_PSEUDO_SET_RAT_IND */
320typedef struct
321{
322 HscCssRatTypeT RatType;
323 kal_bool IsC2kOnSim2;
324} HscCssPseudoSetRatIndT;
325
326
327/*----------------------------------------------------------------------------
328* Hsc global
329*----------------------------------------------------------------------------*/
330extern kal_bool HscClkCalFastSettleEnabled;
331/*----------------------------------------------------------------------------
332* Hsc global APIs
333*----------------------------------------------------------------------------*/
334/*****************************************************************************
335
336 FUNCTION NAME: HscSsmFrameCntEst
337
338 DESCRIPTION: Estimates frame count during slotted paging
339
340 PARAMETERS:
341
342 RETURNED VALUES: FrameRecT
343
344*****************************************************************************/
345extern FrameRecT HscSsmFrameCntEst(HscSysAirInterfaceT Owner);
346
347
348/*****************************************************************************
349
350 FUNCTION NAME: HscSysDoPchBackoffTotalFrames
351
352 DESCRIPTION:
353
354 PARAMETERS:
355
356 RETURNED VALUES: Returns Total Backoff Time in DO Frames
357 (including RF backoff, Calibration, and MiniAcqErr Adjust)
358
359*****************************************************************************/
360extern kal_uint8 HscSysDoPchBackoffTotalFrames(HscSysAirInterfaceT Owner, kal_int32 backoff);
361
362
363/*****************************************************************************
364
365 FUNCTION NAME: HscClkCalSettleTimeGet
366
367 DESCRIPTION: Returns the 32KHz calibration settling time
368
369 PARAMETERS: SettleSpeed = SETTLE_NORMAL or SETTLE_FAST;
370 ThresholdZone = CONFID_HIGH, CONFID_MED, or CONFID_MIN;
371
372 RETURNED VALUES: 32KHz Calibration settling time
373
374*****************************************************************************/
375extern kal_uint8 HscClkCalSettleTimeGet(kal_uint8 SettleSpeed, kal_uint8 ThresholdZone);
376
377/*****************************************************************************
378
379 FUNCTION NAME: HscClkCalFastSettle
380
381 DESCRIPTION: Send HSC Transmitter State for 32k clock calibration
382
383 PARAMETERS: None
384
385 RETURNS: None
386
387*****************************************************************************/
388extern void HscClkCalFastSettle(kal_bool TxOn);
389
390/*****************************************************************************
391
392 FUNCTION NAME: HscSetAfcStatus
393
394 DESCRIPTION: Validates Afc for the given interface.
395
396 PARAMETERS: HscSysAirInterfaceT Interface
397 SysCdmaBandT Band
398 kal_bool Valid
399
400 RETURNS: None
401
402*****************************************************************************/
403extern void HscSetAfcStatus(SysAirInterfaceT Interface, SysCdmaBandT Band, kal_bool Valid);
404
405/*****************************************************************************
406
407 FUNCTION NAME: HscSsmSpecial1xPreemption
408
409 DESCRIPTION: Enables 1x PS to force high priorty for 1X antenna request
410
411 PARAMETERS: KAL_TRUE/KAL_FALSE
412
413 RETURNED VALUES: None
414
415*****************************************************************************/
416extern void HscSsmSpecial1xPreemption(kal_bool Control);
417
418/*****************************************************************************
419
420 FUNCTION NAME: HscSsmSpecialDoProtectPreemption
421
422 DESCRIPTION: Used to raise Do's priority and protect DO from being HSC preempt by 1xRTT
423
424 PARAMETERS: Control - Enable Do special protect from HSC preemption or not
425
426 RETURNED VALUES: None
427
428*****************************************************************************/
429extern void HscSsmSpecialDoProtectPreemption(kal_bool Control);
430
431/*****************************************************************************
432
433 FUNCTION NAME: HscSsmDoRxAgcSettleLong
434
435 DESCRIPTION:
436
437 PARAMETERS:
438
439 RETURNED VALUES: 1/KAL_TRUE : Long RxAgc Fast Settle Time
440 : 0/KAL_FALSE: Short RxAgc Fast Settle Time
441
442*****************************************************************************/
443extern kal_bool HscSsmDoRxAgcSettleLong(void);
444
445/*****************************************************************************
446
447 FUNCTION NAME: HscShdrEnabled
448
449 DESCRIPTION:
450
451 PARAMETERS:
452
453 RETURNED VALUES: 1/KAL_TRUE : SHDR is enabled
454 : 0/KAL_FALSE: SHDR is not enabled
455
456*****************************************************************************/
457extern kal_bool HscShdrEnabled(void);
458
459
460/*****************************************************************************
461
462 FUNCTION NAME: HscCurrentWakeupInShdr
463
464 DESCRIPTION: Returns the current (dynamic) state
465
466 PARAMETERS: None
467
468 RETURNED VALUES: 1/KAL_TRUE : SHDR is enabled
469 : 0/KAL_FALSE: SHDR is not enabled
470
471*****************************************************************************/
472extern kal_uint8 HscL1dSPageWakeStatus(void);
473extern void HscSpDisable(HscSysAirInterfaceT Owner);
474extern kal_uint16 HscSpHistory(HscSysAirInterfaceT Owner);
475extern kal_uint16 HscL1dSPageGetNumOfFrames4Wakeup(void);
476extern kal_bool HscSsmDoInSuspendQueue(void);
477#ifdef MTK_CBP
478extern void HscSsmRmcAntennaRelease(kal_uint8 RfPaths, kal_bool releaseFlag);
479extern void HscSsmResyncCancel(HscSysAirInterfaceT Owner);
480extern kal_bool HscSsmInWakeQueue(HscSysAirInterfaceT Owner);
481extern void HscSsmReset(HscSysAirInterfaceT Owner);
482extern kal_uint8 HscSpEnabled(HscSysAirInterfaceT Owner);
483#endif
484
485#if defined (MTK_DEV_C2K_IRAT) && defined (MTK_DEV_C2K_SRLTE_L1)
486extern kal_bool HscSsmIs1xAvailableforAutoGap( void );
487extern kal_bool HscSsmCloseToResync(void);
488extern kal_bool HscSsmResyncTimeQuery(HscSysAirInterfaceT Owner, kal_uint32 *Frc);
489extern kal_bool HscSsmResyncShdrGet(HscSysAirInterfaceT Owner);
490extern void HscSsmEvstandbyTimeCopyProhibit(kal_bool Prohibit);
491extern void HscOosaStateUpdateEvStandby();
492extern void HscOosaStateUpdate();
493extern void HscOosaSendWakeInd();
494extern void HscLl1aGapOfferReq(kal_bool Enable);
495extern kal_bool HscSsmDoPchPrioBoostTrigQuery(void);
496#endif
497
498
499extern void HscSsmResumeWakeCmdMsg(void);
500extern kal_bool MpaCheckSecondPathSupport(void);
501
502#ifdef SYS_OPTION_TX_TAS_ENABLE
503/* used for TAS only */
504extern kal_bool HscSsmCheckDoPreemptForTas(void);
505extern kal_bool HscSsmCheckShdrModeForTas(void);
506#endif
507
508/*****************************************************************************
509 * removed!
510*****************************************************************************/
511
512/*****************************************************************************
513* End of File
514*****************************************************************************/
515#endif
516
517/**Log information: \main\Trophy\Trophy_ylxiao_href22033\1 2013-03-18 14:15:26 GMT ylxiao
518** HREF#22033, merge 4.6.0**/
519/**Log information: \main\Trophy\1 2013-03-19 05:19:47 GMT hzhang
520** HREF#22033 to merge 0.4.6 code from SD.**/
521/**Log information: \main\Trophy\Trophy_jluo_href22084\1 2013-04-03 04:13:29 GMT jluo
522** HREF#22084:HANDROID#1723**/
523/**Log information: \main\Trophy\2 2013-04-03 06:37:55 GMT czhang
524** HREF#22084**/
525/**Log information: \main\Trophy\Trophy_yanliu_handroid2028\1 2013-08-30 07:03:10 GMT yanliu
526** HANDROID#2028: check in SD's MT slotted optimization**/
527/**Log information: \main\Trophy\3 2013-08-30 07:05:25 GMT yanliu
528** HANDROID#2028 merged: check in SD's MT slotted optimization**/
529/**Log information: \main\Trophy\Trophy_xding_href22331\1 2013-12-10 07:17:45 GMT xding
530** HREF#22331, ºÏ²¢MMCÏà¹Ø¹¦Äܵ½Trophy baselineÉÏ**/
531/**Log information: \main\Trophy\4 2013-12-10 08:33:12 GMT jzwang
532** href#22331:Merge MMC latest implementation from Qilian branch.**/
533