rjw | 6c1fd8f | 2022-11-30 14:33:01 +0800 | [diff] [blame] | 1 | /***************************************************************************** |
| 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) 2005 |
| 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 | * sleepdrv_interface.h |
| 41 | * |
| 42 | * Project: |
| 43 | * -------- |
| 44 | * Maui_Software |
| 45 | * |
| 46 | * Description: |
| 47 | * ------------ |
| 48 | * This file is for the public access for sleep mode operation. |
| 49 | * |
| 50 | * Author: |
| 51 | * ------- |
| 52 | * ------- |
| 53 | * |
| 54 | *============================================================================ |
| 55 | * HISTORY |
| 56 | * Below this line, this part is controlled by ClearCase. DO NOT MODIFY!! |
| 57 | *------------------------------------------------------------------------------ |
| 58 | * $Log$ |
| 59 | * |
| 60 | * 02 11 2022 yuhao.ye |
| 61 | * [MOLY00764790] [FBC][FM350-GL][NA][NA][USB]fm350 iot USB suspend and resume problem |
| 62 | * |
| 63 | * . |
| 64 | * |
| 65 | * 08 11 2021 pj.chen |
| 66 | * [MOLY00681687] [FM350-GL][FM350-GL][Nick Zhang][memory dump][NA][NA][NA]md_self_detect_by_hmu_long_time_no_response modem dump |
| 67 | * Add MCF lock sleep enum |
| 68 | * |
| 69 | * 11 10 2020 pj.chen |
| 70 | * [MOLY00528192] [Colgin][Sleep Mode]Driver development |
| 71 | * Add lock sleep enum for LVTS whole system reset |
| 72 | * |
| 73 | * 04 15 2020 guo-huei.chang |
| 74 | * [MOLY00509323] [Gen97] Power Model |
| 75 | * Power model (Sleep Driver Part) |
| 76 | * global variable from UnCache to Cache |
| 77 | * |
| 78 | * 04 06 2020 guo-huei.chang |
| 79 | * [MOLY00509323] [Gen97] Power Model |
| 80 | * |
| 81 | * Power model (Sleep Driver Part) |
| 82 | * |
| 83 | * 12 02 2019 jack.tung |
| 84 | * [MOLY00462428] [VMOLY][Gen97 Petrus] Structure Reordering in Sleep Driver |
| 85 | * |
| 86 | * . |
| 87 | * |
| 88 | * 10 24 2019 lian-li.tsai |
| 89 | * [MOLY00452393] For Low power monitor, raw data modify |
| 90 | * [EWSP0000054581_R1] |
| 91 | * [EWSP0000054581] |
| 92 | * |
| 93 | * 08 08 2019 guo-huei.chang |
| 94 | * [MOLY00421978] [VMOLY]Sleep and low power modify |
| 95 | * add md low power monitor (OSTD part) |
| 96 | * |
| 97 | * 08 06 2019 owen.ho |
| 98 | * [MOLY00312416] [Gen97][Need Patch]Sleep driver development |
| 99 | * Solve build error for Mercury |
| 100 | * |
| 101 | * 07 18 2019 owen.ho |
| 102 | * [MOLY00312416] [Gen97][Need Patch]Sleep driver development |
| 103 | * Add compile option for MD97P |
| 104 | * |
| 105 | * 04 15 2019 owen.ho |
| 106 | * [MOLY00312416] [Gen97][Need Patch]Sleep driver development |
| 107 | * Add sleep control enum |
| 108 | * |
| 109 | * 04 11 2019 owen.ho |
| 110 | * [MOLY00312416] [Gen97][Need Patch]Sleep driver development |
| 111 | * 1.Add sleep comtrol enum |
| 112 | * 2.DDr_en settings |
| 113 | * 3.Wakeup event settings |
| 114 | * 4.Add wallclk define |
| 115 | * 5.Force on IA for early csys_req |
| 116 | * 6.Modify AT command |
| 117 | * |
| 118 | * 03 11 2019 che-wei.chang |
| 119 | * [MOLY00389209] [MT6297] topsm/ost for apollo dram power index |
| 120 | * |
| 121 | * 01 31 2019 guo-huei.chang |
| 122 | * [MOLY00353483] [GEN95] MD Low Power Monitor |
| 123 | * fix build error for GEN95 |
| 124 | * |
| 125 | * 01 31 2019 guo-huei.chang |
| 126 | * [MOLY00353483] [GEN95] MD Low Power Monitor |
| 127 | * |
| 128 | * merge MD Low Power Monitor from UMOLYE (OSTD & Sleep Driver Part) |
| 129 | * |
| 130 | * 11 22 2018 guo-huei.chang |
| 131 | * [MOLY00366073] [Lafite] MD part of OPPO P80 sleep information |
| 132 | * 1.add MD sleep time and sleep count to share memory |
| 133 | * 2.add iA idle time to MD low power monitor |
| 134 | * |
| 135 | * 10 30 2018 leon.yeh |
| 136 | * [MOLY00356811] [GEN95] MD Low Power Monitor L1 modulo fill data |
| 137 | * - add debug data |
| 138 | * . |
| 139 | * |
| 140 | * 10 15 2018 leon.yeh |
| 141 | * [MOLY00356811] [GEN95] MD Low Power Monitor L1 modulo fill data |
| 142 | * - 4G TX/RX path interface modify. |
| 143 | * |
| 144 | * 09 14 2018 jack.tung |
| 145 | * [MOLY00351968] [DFR][Gen95] Assertion Removal |
| 146 | * |
| 147 | * . |
| 148 | * |
| 149 | * 09 04 2018 ej.farn |
| 150 | * [MOLY00332776] [Gen95] MD Low Power Montior Development |
| 151 | * [Gen95] MD Low Power Monitor |
| 152 | * |
| 153 | * 08 30 2018 ej.farn |
| 154 | * [MOLY00332776] [Gen95] MD Low Power Montior Development |
| 155 | * [Gen95] MD Low Power Monitor |
| 156 | * |
| 157 | * 08 28 2018 ej.farn |
| 158 | * [MOLY00332776] [Gen95] MD Low Power Montior Development |
| 159 | * [Gen95] MD Low Power Monitor |
| 160 | * |
| 161 | * 01 08 2019 owen.ho |
| 162 | * [MOLY00312416] [Gen97][Need Patch]Sleep driver development |
| 163 | * Add SLEEP_CTL_MML1 for MD95. |
| 164 | * |
| 165 | * 01 07 2019 owen.ho |
| 166 | * [MOLY00312416] [Gen97][Need Patch]Sleep driver development |
| 167 | * Modify lock 26m interface |
| 168 | * |
| 169 | * 01 02 2019 owen.ho |
| 170 | * [MOLY00312416] [Gen97][Need Patch]Sleep driver development |
| 171 | * Add lock sleep control enum for 97 |
| 172 | * |
| 173 | * 09 18 2018 owen.ho |
| 174 | * [MOLY00312416] [Gen97][Need Patch]Sleep driver development |
| 175 | * Add enum for 5G NL1 |
| 176 | * |
| 177 | * 08 17 2018 owen.ho |
| 178 | * [MOLY00312416] [Gen97][Need Patch]Sleep driver development |
| 179 | * Integrate Gen97 driver from UMOYE.Gen97.DEV |
| 180 | * |
| 181 | * 05 18 2018 owen.ho |
| 182 | * [MOLY00312416] [Gen97] Sleep driver development |
| 183 | * Gen97 sleep driver |
| 184 | * Solve build error for Gen97 |
| 185 | * 06 14 2018 che-wei.chang |
| 186 | * [MOLY00333397] [TOPSM/OST] remove legacy code and log reduction |
| 187 | * |
| 188 | * 05 29 2018 guo-huei.chang |
| 189 | * [MOLY00327413] [UMOLYE]Low power monitor patch sync |
| 190 | * md low power monitor (ostd part) |
| 191 | * |
| 192 | * 04 26 2018 che-wei.chang |
| 193 | * [MOLY00318930] [Eiger] topsm/ost - add lock sleep enum id for sim3/sim4 |
| 194 | * |
| 195 | * 04 02 2018 leon.yeh |
| 196 | * [MOLY00316801] for legacy chips option and feature options cleanup |
| 197 | * |
| 198 | * . |
| 199 | * |
| 200 | * 09 28 2017 che-wei.chang |
| 201 | * [MOLY00281049] [93/95 re-arch] MD topsm/ost |
| 202 | * |
| 203 | * 09 08 2017 jack.tung |
| 204 | * [MOLY00274378] [MD Platform Low-Power] Check Flight Mode Condition on HW Status |
| 205 | * |
| 206 | * 08 15 2017 owen.ho |
| 207 | * [MOLY00266818] [BIANCO][MT6763][MTBF][C2K][SIM1:CTC][SIM2:CU][ASSERT] file:mcu/common/driver/devdrv/log_seq/src/logseq_drv.c line:1195 |
| 208 | * Force on usip API |
| 209 | * |
| 210 | * 06 28 2017 jack.tung |
| 211 | * [MOLY00257950] [Gen93] Flight Mode Debugging Information Improvement |
| 212 | * |
| 213 | * <saved by Perforce> |
| 214 | * |
| 215 | * 06 20 2017 owen.ho |
| 216 | * [MOLY00258341] [MT6763][Bianco][N1][E2][MD issue][TW] Assert on ulsp_mod_function with PLS mode |
| 217 | * |
| 218 | * Add sleep control enum for PLS |
| 219 | * |
| 220 | * 06 12 2017 jack.tung |
| 221 | * [MOLY00256211] [Gen93][UMOLYA][SleepDrv] Step-Logging Feature |
| 222 | * |
| 223 | * <saved by Perforce> |
| 224 | * |
| 225 | * 05 08 2017 owen.ho |
| 226 | * [MOLY00247811] [Bianco] Fatal Error (0xb34, 0x90f9c520, 0xcccccccc) - SQN_EL1 when enabling ostd sleep |
| 227 | * |
| 228 | * 05 05 2017 owen.ho |
| 229 | * [MOLY00246118] [BIANCO]Assert fail: wuldch.c 1439 0x0 0x0 0x0 - (LISR)UL1D_HISR_LISR |
| 230 | * |
| 231 | * Add sleep controller enumeration |
| 232 | * |
| 233 | * 03 31 2017 guo-huei.chang |
| 234 | * [MOLY00238980] [DHL] MET timer for sync between MET & ELT |
| 235 | * add SleepDrv_GetWallClk function |
| 236 | * |
| 237 | * 03 08 2017 owen.ho |
| 238 | * [MOLY00171832] [UMOLYA] |
| 239 | * |
| 240 | * 1.Update sleep_ctl_user enum |
| 241 | * 2.Porting EMM debug info function |
| 242 | * 3.Correct sleepDisable variable index |
| 243 | * |
| 244 | * 01 19 2017 kevin-kh.liu |
| 245 | * [MOLY00173902] [MT6293][Sleep Mode]sleep mode modification |
| 246 | * xL1SIM 2G Fixed AFC support - SM part |
| 247 | * |
| 248 | * 12 30 2016 owen.ho |
| 249 | * [MOLY00171832] [UMOLYA] |
| 250 | * Update SLEEP_CTL enum list |
| 251 | * |
| 252 | * 12 20 2016 owen.ho |
| 253 | * [MOLY00171832] [UMOLYA][Bianco] Update SLEEP_CTL enum list |
| 254 | * |
| 255 | * 12 19 2016 owen.ho |
| 256 | * [MOLY00171832] [UMOLYA] |
| 257 | * Update sleep_ctl enum and md power domain enum |
| 258 | * |
| 259 | * 12 14 2016 owen.ho |
| 260 | * [MOLY00171832] [UMOLYA] |
| 261 | * |
| 262 | * Update SLEEP_CTL enum |
| 263 | * |
| 264 | * 12 12 2016 owen.ho |
| 265 | * [MOLY00171832] [UMOLYA] |
| 266 | * |
| 267 | * Update SLEEP_CTL user enum |
| 268 | * |
| 269 | * 12 09 2016 owen.ho |
| 270 | * [MOLY00171832] [UMOLYA] |
| 271 | * |
| 272 | * Add SLEEP control user enum |
| 273 | * |
| 274 | * 12 02 2016 owen.ho |
| 275 | * [MOLY00171832] [UMOLYA] |
| 276 | * |
| 277 | * Update lock/unlock core sleep control user list |
| 278 | * |
| 279 | * 11 23 2016 owen.ho |
| 280 | * [MOLY00171832] [UMOLYA] |
| 281 | * |
| 282 | * 6293 sleep driver development (Modoify Lock/Unlock Sleep API) |
| 283 | * |
| 284 | * 11 09 2016 owen.ho |
| 285 | * [MOLY00171832] [UMOLYA] |
| 286 | * |
| 287 | * Solve build error |
| 288 | * |
| 289 | * 07 20 2016 owen.ho |
| 290 | * [MOLY00171832] [UMOLYA] |
| 291 | * |
| 292 | * Gen93 topsm/ostd driver develpement |
| 293 | * |
| 294 | * 07 06 2016 owen.ho |
| 295 | * [MOLY00171832] [UMOLYA] |
| 296 | * 6293 topsm/ostd driver development |
| 297 | * |
| 298 | * 06 24 2016 owen.ho |
| 299 | * [MOLY00171832] [UMOLYA] |
| 300 | * GEN93 md topsm/ostd driver development |
| 301 | * |
| 302 | * 03 31 2016 vmick.lin |
| 303 | * [MOLY00171891] [6293] sleep driver development |
| 304 | * |
| 305 | * . |
| 306 | * |
| 307 | * 03 30 2016 vmick.lin |
| 308 | * [MOLY00171891] [6293] sleep driver development |
| 309 | * |
| 310 | * . |
| 311 | * |
| 312 | * 03 15 2016 james.pan |
| 313 | * [MOLY00166205] [6292][Sleep Mode][EL1SM] development and validation |
| 314 | * EL1-EL2 lock LMAC power Sleep Driver for EL1 part (without trigger CCIRQ) |
| 315 | * |
| 316 | * 03 14 2016 james.pan |
| 317 | * [MOLY00166205] [6292][Sleep Mode][EL1SM] development and validation |
| 318 | * 1. MSBB Violation |
| 319 | * 2. Remove EL1D DVFS avtive window check |
| 320 | * 3. 4G sleep mode locker for DVFS drivers |
| 321 | * 4. Add Data Sync Barrier |
| 322 | * 5. Rename global veriable |
| 323 | * 6. LMAC locker API implement |
| 324 | * 7. EL1D Backup functions relocated |
| 325 | * |
| 326 | * 03 11 2016 james.pan |
| 327 | * [MOLY00166205] [6292][Sleep Mode][EL1SM] development and validation |
| 328 | * Rollback CL2258329 CL2158833 CL2159108 |
| 329 | * |
| 330 | * 03 07 2016 james.pan |
| 331 | * [MOLY00166205] [6292][Sleep Mode][EL1SM] development and validation |
| 332 | * md_sm sleep_drv MSBB violation |
| 333 | * |
| 334 | * 02 23 2016 kevin-kh.liu |
| 335 | * [MOLY00163589] [6292][sleep mode] code merge from LR11 to UMOLY |
| 336 | * |
| 337 | * Sleep Mode Debug Shared Memory Mechanism |
| 338 | * |
| 339 | * 02 18 2016 leon.yeh |
| 340 | * [MOLY00165273] [6292][sleep mode] code merge from LR11 to UMOLY (fixAFC & 32K-less) - fix build error: INVALID_FREQ_OFF define changed to sleepdrv_interface.h |
| 341 | * |
| 342 | * 02 16 2016 dennis.chueh |
| 343 | * [MOLY00141188] [ELBRUS][FPGA] Add new features. |
| 344 | * Share memory debug functions: |
| 345 | * void SleepDrv_UpdatePSSlpDbgShmFixBuf(SLP_DBG_SHM_FIX_REG_INDEX index, kal_uint32 value); |
| 346 | * void SleepDrv_UpdateL1SlpDbgShmFixBuf(SLP_DBG_SHM_FIX_REG_INDEX index, kal_uint32 value); |
| 347 | * void SleepDrv_SlpDbgShmRingBufAdd(SLP_DBG_SHM_RING_BUFFER_INDEX index, kal_uint32 status, kal_uint32 dbg_info); |
| 348 | * |
| 349 | * 01 29 2016 jack.tung |
| 350 | * [MOLY00163331] MD-TOPSM API Atomicity Access Implementation |
| 351 | * Atomicity Operation Test and Implementation for TOPSM Software Force-On Control |
| 352 | * |
| 353 | * 01 20 2016 shengfu.tsai |
| 354 | * [MOLY00124310] [6291 plus][sleep mode] code merge from UMOLY to 91plus |
| 355 | * |
| 356 | * .fixed xl1sm build issue |
| 357 | * |
| 358 | * 01 19 2016 shengfu.tsai |
| 359 | * [MOLY00124310] [6291 plus][sleep mode] code merge from UMOLY to 91plus |
| 360 | * |
| 361 | * . modify l1sm\ul1sm include file to meet MSBB rule |
| 362 | * |
| 363 | * 11 03 2015 dennis.chueh |
| 364 | * [MOLY00141188] [ELBRUS][FPGA] Add new features. |
| 365 | * |
| 366 | * Add ENUM define for drvtest. |
| 367 | * Add Power down API. |
| 368 | * |
| 369 | * 11 02 2015 dennis.chueh |
| 370 | * [MOLY00141188] [ELBRUS][FPGA] Add new features. |
| 371 | * |
| 372 | * add MIPS_CPC_PowerOn to sleepdrv_interface.h. |
| 373 | * |
| 374 | * 10 30 2015 shengfu.tsai |
| 375 | * [MOLY00124310] [6291 plus][sleep mode] code merge from UMOLY to 91plus |
| 376 | * |
| 377 | * .merge some change from XL1SM branch |
| 378 | * |
| 379 | * 08 17 2015 dennis.chueh |
| 380 | * [MOLY00070771] [6291][FPGA]solve build error |
| 381 | * Solve build error after applying ELBRUS_FPGA. |
| 382 | * |
| 383 | * 08 16 2015 dennis.chueh |
| 384 | * [MOLY00070771] [6291][FPGA]solve build error |
| 385 | * Solve build error after applying ELBRUS make file. |
| 386 | * |
| 387 | * 08 13 2015 dennis.chueh |
| 388 | * [MOLY00070771] [6291][FPGA]solve build error |
| 389 | * Solve build error after merging back to UMOLY trunk. |
| 390 | * |
| 391 | * 08 13 2015 dennis.chueh |
| 392 | * [MOLY00070771] [6291][FPGA]solve build error |
| 393 | * Solve build error after merging back. |
| 394 | * |
| 395 | * 08 12 2015 shengfu.tsai |
| 396 | * [MOLY00124310] [6291 plus][sleep mode] code merge from UMOLY to 91plus |
| 397 | * .add SleepDrv_LockPcoreSleepMode and SleepDrv_LockLMACPower |
| 398 | * but these function need to modify in the future |
| 399 | * |
| 400 | * 08 04 2015 dennis.chueh |
| 401 | * [MOLY00070771] [6291][FPGA]solve build error |
| 402 | * SleepDrv_GetHandle() --> SleepDrv_GetHandle(SMP). |
| 403 | * |
| 404 | * 07 23 2015 guo-huei.chang |
| 405 | * [MOLY00131103] Sleep Mode Debug Shared Memory Mechanism Improvement |
| 406 | * 1. add CCIRQ CMD for L1core querying shared memory address |
| 407 | * 2. add fix pat API for PScore and L1core and ring buffer API for L1core |
| 408 | * 3. add fix pat in CheckSleep function |
| 409 | * 4. add declarion for DBM and PTPOD shared memory |
| 410 | * |
| 411 | * 06 11 2015 che-wei.chang |
| 412 | * [MOLY00089700] [TK6291][UMOLY] |
| 413 | * 1.add MT6755 flag for Jade |
| 414 | * 2.update ostd elt log |
| 415 | * 3.update SleepDrv_GetHandle return value for assert |
| 416 | * |
| 417 | * 05 05 2015 che-wei.chang |
| 418 | * [MOLY00089700] [TK6291][UMOLY] add enum PS_PLL_FORCEON_USER_SIB to PS_PLL_FORCEON_USER for SIB |
| 419 | * |
| 420 | * 04 29 2015 che-wei.chang |
| 421 | * [MOLY00089700] [TK6291][UMOLY] add a new API MD_TOPSM_PLL_SW_Control for force on PS side PLLs |
| 422 | * |
| 423 | * 04 29 2015 che-wei.chang |
| 424 | * [MOLY00089700] [TK6291][UMOLY] Sync vmick Cbr (Ccirq) |
| 425 | * |
| 426 | * 02 26 2015 che-wei.chang |
| 427 | * [MOLY00089700] [TK6291][UMOLY] Sync MT6291_DEV branch |
| 428 | * |
| 429 | * 02 10 2015 yu-hung.huang |
| 430 | * [MOLY00095165] [TK6291] Check in LITE GPT Driver and New Sleep API |
| 431 | * [UMOLY] 2-leve GPT solution: refine SRCLK (26M) force on/off API interface for multiple user |
| 432 | * |
| 433 | * 09 05 2014 yu-hung.huang |
| 434 | * [MOLY00078094] [UMOLY] Sleep Codes Sync from MOLY TRUNK to UMOLY TK6291_DEV |
| 435 | * [TK6291_DEV] Sync SD3 Sleep Driver Codes from MOLY TRUNK to UMOLY (Changelists before 2014/9/4 in MOLY TRUNK) |
| 436 | * |
| 437 | * 08 27 2014 vmick.lin |
| 438 | * [MOLY00075930] [MT6582LTE][CSFB DSDS][HQ][Ericsson][lwg bin] [ASSERT] file:rf_conflict_check.c line:97 |
| 439 | * . |
| 440 | * |
| 441 | * 08 27 2014 vmick.lin |
| 442 | * [MOLY00075930] [MT6582LTE][CSFB DSDS][HQ][Ericsson][lwg bin] [ASSERT] file:rf_conflict_check.c line:97 |
| 443 | * . |
| 444 | * |
| 445 | * 08 26 2014 vmick.lin |
| 446 | * [MOLY00075930] [MT6582LTE][CSFB DSDS][HQ][Ericsson][lwg bin] [ASSERT] file:rf_conflict_check.c line:97 |
| 447 | * . |
| 448 | * Add 99T 32K period while OST struggle in SETTLE state |
| 449 | * |
| 450 | * 10 25 2013 alvin.chen |
| 451 | * [MOLY00043719] [MT6290][MDTOPSM] Patch for Phone Field trial activity |
| 452 | * Integration change. |
| 453 | * |
| 454 | * 10 03 2013 alvin.chen |
| 455 | * [MOLY00040177] [MT6290][MD_TOPSM] Add FRC enable API for Early Stage Debug |
| 456 | * <saved by Perforce> |
| 457 | * |
| 458 | * 07 26 2013 barry.hong |
| 459 | * [MOLY00030921] [MT6290]Low Power Feature patch back from CBr |
| 460 | * Low Power Feature patch back from CBr |
| 461 | * |
| 462 | * 02 26 2013 jeff.lee |
| 463 | * reorg. header file. |
| 464 | * |
| 465 | * |
| 466 | * |
| 467 | *------------------------------------------------------------------------------ |
| 468 | * Upper this line, this part is controlled by ClearCase. DO NOT MODIFY!! |
| 469 | *============================================================================ |
| 470 | ****************************************************************************/ |
| 471 | |
| 472 | |
| 473 | |
| 474 | #ifndef __SLEEPDRV_INTERFACE_H__ |
| 475 | #define __SLEEPDRV_INTERFACE_H__ |
| 476 | |
| 477 | #include "kal_public_api.h" //MSBB change #include "kal_release.h" |
| 478 | #include "sleepdrv_common.h" |
| 479 | |
| 480 | |
| 481 | #if defined(__SMART_PHONE_MODEM__) && defined(__MODEM_CCCI_EXIST__) && defined(__HIF_SDIO_SUPPORT__) |
| 482 | #define PHONE_TYPE_FOR_HQA |
| 483 | #endif |
| 484 | |
| 485 | #define BIG_DAC_CHANGE_RECALIBRATION /* This compiler option is default defined in Moly branch to enable this feature */ |
| 486 | |
| 487 | #ifdef BIG_DAC_CHANGE_RECALIBRATION |
| 488 | #define FREQ_OFF_THR 11700 /* 13ppm freqeuncy offset based on 900MHz */ |
| 489 | #define FREQ_OFF_VALID 65528 /* Valid DAC frequency offset shall be below 8191x8=65528(Hz) */ |
| 490 | #define INVALID_FREQ_OFF 0x7FFFFFFF /* When L1D/UL1D detect the frequency error is unreliable, return 0x7FFFFFFF to sleep mode */ |
| 491 | #endif //BIG_DAC_CHANGE_RECALIBRATION |
| 492 | |
| 493 | typedef enum |
| 494 | { |
| 495 | PS_USIP_FORCEON_USER_AUDIO = 0, |
| 496 | PS_USIP_FORCEON_USER_LOG, |
| 497 | NUM_OF_USIP_FORCEON_USER |
| 498 | } PS_USIP_FORCEON_USER; |
| 499 | |
| 500 | typedef enum |
| 501 | { |
| 502 | SRCLK_FORCEON_USER_SIM = 0, |
| 503 | SRCLK_FORCEON_USER_USB, |
| 504 | #if defined(__MD97__) && defined(__MTK_TARGET__) && defined(MT6297) |
| 505 | SRCLK_FORCEON_USER_DRAM, |
| 506 | #endif |
| 507 | NUM_OF_SRCLK_FORCEON_USER |
| 508 | } SRCLK_FORCEON_USER; |
| 509 | |
| 510 | typedef enum |
| 511 | { |
| 512 | PS_PLL_FORCEON_USER_CTI = 0, |
| 513 | PS_PLL_FORCEON_USER_SIB, |
| 514 | NUM_OF_PLL_FORCEON_USER |
| 515 | } PS_PLL_FORCEON_USER; |
| 516 | |
| 517 | typedef enum |
| 518 | { |
| 519 | #if defined(__MD93__) |
| 520 | PS_TOPSM_MDCORE_PLL = 0, |
| 521 | PS_TOPSM_BUS2X_PLL, |
| 522 | PS_TOPSM_F208M_PLL, |
| 523 | PS_TOPSM_DBG_PLL, |
| 524 | PS_TOPSM_LOG_PLL, |
| 525 | PS_TOPSM_SDF_ATB_PLL, |
| 526 | NUM_OF_PS_TOPSM_PLL, |
| 527 | #elif defined(__MD95__) |
| 528 | PS_TOPSM_MDCORE_PLL = 0, |
| 529 | PS_TOPSM_BUS2X_PLL = 1, |
| 530 | PS_TOPSM_F208M_PLL = 2, |
| 531 | PS_TOPSM_DBG_PLL = 3, |
| 532 | PS_TOPSM_LOG_PLL = 4, |
| 533 | PS_TOPSM_SDF_ATB_PLL = 5, |
| 534 | PS_TOPSM_MML2_PLL = 6, |
| 535 | NUM_OF_PS_TOPSM_PLL = 7, |
| 536 | #elif defined(__MD97__) || defined(__MD97P__) |
| 537 | PS_TOPSM_MDCORE_PLL = 0, |
| 538 | PS_TOPSM_BUS4X_PLL = 1, |
| 539 | PS_TOPSM_F208M_PLL = 2, |
| 540 | PS_TOPSM_DBG_PLL = 3, |
| 541 | PS_TOPSM_LOG_PLL = 4, |
| 542 | PS_TOPSM_SDF_ATB_PLL = 5, |
| 543 | PS_TOPSM_MML2_PLL = 6, |
| 544 | PS_TOPSM_SHAOLIN_PLL = 7, |
| 545 | PS_TOPSM_IA_PLL = 8, |
| 546 | NUM_OF_PS_TOPSM_PLL = 9, |
| 547 | #else |
| 548 | #error "no chip match" |
| 549 | #endif |
| 550 | } PS_TOPSM_PLL; |
| 551 | |
| 552 | typedef enum |
| 553 | { |
| 554 | #if defined(__MD93__) |
| 555 | SLEEP_CTL_SLEEP_DRV = 0, // 0x00, Allow AT cmd to control cores' sleep function |
| 556 | SLEEP_CTL_SCC = 1, // 0x01, Disable sleep for PHY capture debug usage |
| 557 | SLEEP_CTL_MML2 = 2, // 0x02, For MML2 force on period, IA cannot sleep |
| 558 | SLEEP_CTL_LHIF = 3, // 0x03, For CLDMA uplink scenario |
| 559 | SLEEP_CTL_DVFS = 4, // 0x04, Keep MD awake while debugging gear changing and PLL ready interrupt |
| 560 | SLEEP_CTL_3G_FDD_UL1D = 5, // 0x05, L1 lock CORE1 sleep before sending L2P CCIRQ to core1 |
| 561 | SLEEP_CTL_USB = 6, // 0x06, To lock sleep when driver get rx gpd done event |
| 562 | SLEEP_CTL_ADT = 7, // 0x07, DL data by GDMA to ISPRAM0, we need to avoid power down core0 |
| 563 | SLEEP_CTL_L4 = 8, // 0x08, AT+ESLP to control sleep mode |
| 564 | SLEEP_CTL_3G_TDD_TL1 = 9, // 0x09, TL1 lock core0 sleep in TL1C/TL1D wake up state and unlock core0 sleep in TL1C/TL1D sleep state |
| 565 | SLEEP_CTL_USIM0 = 10, // 0x0A, |
| 566 | SLEEP_CTL_USIM1 = 11, // 0x0B, |
| 567 | SLEEP_CTL_USIM2 = 12, // 0x0C, |
| 568 | SLEEP_CTL_USIM3 = 13, // 0x0D, |
| 569 | SLEEP_CTL_C2K_1X = 14, // 0x0E, |
| 570 | SLEEP_CTL_C2K_DO = 15, // 0x0F, |
| 571 | SLEEP_CTL_C2K_SS = 16, // 0x10, |
| 572 | SLEEP_CTL_2G_TDD_MPAL = 17, // 0x11, GAS lock CORE1 sleep before sending msg to core1 |
| 573 | SLEEP_CTL_FM = 18, // 0x12, Lock sleep while do calibration |
| 574 | SLEEP_CTL_EL1SM = 19, // 0x13, To lock core0/core1 sleep when LTE timer wakeup |
| 575 | SLEEP_CTL_EL1SM_DEBUG = 20, // 0x14, Debug for LTE sleep mode verify |
| 576 | SLEEP_CTL_UL1SM = 21, // 0x15, To lock core0 sleep when 3G FDD timer wakeup |
| 577 | SLEEP_CTL_L1SM = 22, // 0x16, To lock core0 sleep when 2G timer wakeup |
| 578 | SLEEP_CTL_GCU = 23, // 0x17, |
| 579 | SLEEP_CTL_IDC = 24, // 0x18, Lock core until idc_uart tx confirms last two bytes of data was sent |
| 580 | SLEEP_CTL_SPEECH = 25, // 0x19, Lock core while MD speech is working |
| 581 | SLEEP_CTL_MTD_NAND = 26, // 0x1A, Not used in 93, but owner request to perserve for future use |
| 582 | SLEEP_CTL_RR_FDD = 27, // 0x1B, To Lock/Unlock MPAL sleep |
| 583 | SLEEP_CTL_2G_SMM_DPS = 28, // 0x1C, To Lock/Unlock 2G SMM in Dummy PS TASK |
| 584 | SLEEP_CTL_3G_SMM_DPS = 29, // 0x1D, To Lock/Unlock 3G SMM in Dummy PS TASK |
| 585 | SLEEP_CTL_3G_FDD_SLCE = 30, // 0x1E, To Lock CORE1 sleep when in 3G connected mode for stack 1 |
| 586 | SLEEP_CTL_3G_FDD_SLCE2 = 31, // 0x1F, To Lock CORE1 sleep when in 3G connected mode for stack 2 |
| 587 | SLEEP_CTL_3G_FDD_SLCE3 = 32, // 0x20, To Lock CORE1 sleep when in 3G connected mode for stack 3 |
| 588 | SLEEP_CTL_EL2 = 33, // 0x21, To ensure mcu awake until EL2 polling complete |
| 589 | SLEEP_CTL_ERRC = 34, // 0x22, Lock current core for avoiding delay when lower layer control |
| 590 | SLEEP_CTL_ERRC2 = 35, // 0x23, Because in the L+L architecture, ERRC1 and ERRC2 are in the same task, both has sleep mode control requirement |
| 591 | SLEEP_CTL_PLS = 36, // 0x24, Lock sleep to make sure the user's tag will succeed in the PLS logging mode. |
| 592 | SLEEP_CTL_SIM1 = 37, // 0x25, For SIM Task will preempt OS for seconds, use it to notify OSTD it is running |
| 593 | SLEEP_CTL_SIM2 = 38, // 0x26, For SIM Task will preempt OS for seconds, use it to notify OSTD it is running |
| 594 | SLEEP_CTL_SIM3 = 39, // 0x27, For SIM Task will preempt OS for seconds, use it to notify OSTD it is running |
| 595 | SLEEP_CTL_SIM4 = 40, // 0x28, For SIM Task will preempt OS for seconds, use it to notify OSTD it is running |
| 596 | MAX_SLEEP_HANDLE = 46 |
| 597 | #elif defined(__MD95__) |
| 598 | SLEEP_CTL_SLEEP_DRV = 0, // 0x00, Allow AT cmd to control cores' sleep function |
| 599 | SLEEP_CTL_SCC = 1, // 0x01, Disable sleep for PHY capture debug usage |
| 600 | SLEEP_CTL_MML2 = 2, // 0x02, For MML2 force on period, IA cannot sleep |
| 601 | SLEEP_CTL_LHIF = 3, // 0x03, For CLDMA uplink scenario |
| 602 | SLEEP_CTL_DVFS = 4, // 0x04, Keep MD awake while debugging gear changing and PLL ready interrupt |
| 603 | SLEEP_CTL_USB = 5, // 0x05, To lock sleep when driver get rx gpd done event |
| 604 | SLEEP_CTL_L4 = 6, // 0x06, AT+ESLP to control sleep mode |
| 605 | SLEEP_CTL_3G_TDD_TL1 = 7, // 0x07, TL1 lock core0 sleep in TL1C/TL1D wake up state and unlock core0 sleep in TL1C/TL1D sleep state |
| 606 | SLEEP_CTL_USIM0 = 8, // 0x08, |
| 607 | SLEEP_CTL_USIM1 = 9, // 0x09, |
| 608 | SLEEP_CTL_USIM2 = 10, // 0x0A, |
| 609 | SLEEP_CTL_USIM3 = 11, // 0x0B, |
| 610 | SLEEP_CTL_C2K_1X = 12, // 0x0C, |
| 611 | SLEEP_CTL_C2K_DO = 13, // 0x0D, |
| 612 | SLEEP_CTL_C2K_SS = 14, // 0x0E, |
| 613 | SLEEP_CTL_2G_TDD_MPAL = 15, // 0x0F, GAS lock CORE1 sleep before sending msg to core1 |
| 614 | SLEEP_CTL_FM = 16, // 0x10, Lock sleep while do calibration |
| 615 | SLEEP_CTL_EL1SM = 17, // 0x11, To lock core0/core1 sleep when LTE timer wakeup |
| 616 | SLEEP_CTL_EL1SM_DEBUG = 18, // 0x12, Debug for LTE sleep mode verify |
| 617 | SLEEP_CTL_UL1SM = 19, // 0x13, To lock core0 sleep when 3G FDD timer wakeup |
| 618 | SLEEP_CTL_L1SM = 20, // 0x14, To lock core0 sleep when 2G timer wakeup |
| 619 | SLEEP_CTL_IDC = 21, // 0x15, Lock core until idc_uart tx confirms last two bytes of data was sent |
| 620 | SLEEP_CTL_MTD_NAND = 22, // 0x16, Not used in 93, but owner request to perserve for future use |
| 621 | SLEEP_CTL_RR_FDD = 23, // 0x17, To Lock/Unlock MPAL sleep |
| 622 | SLEEP_CTL_2G_SMM_DPS = 24, // 0x18, To Lock/Unlock 2G SMM in Dummy PS TASK |
| 623 | SLEEP_CTL_3G_SMM_DPS = 25, // 0x19, To Lock/Unlock 3G SMM in Dummy PS TASK |
| 624 | SLEEP_CTL_3G_FDD_SLCE = 26, // 0x1A, To Lock CORE1 sleep when in 3G connected mode for stack 1 |
| 625 | SLEEP_CTL_3G_FDD_SLCE2 = 27, // 0x1B, To Lock CORE1 sleep when in 3G connected mode for stack 2 |
| 626 | SLEEP_CTL_3G_FDD_SLCE3 = 28, // 0x1C, To Lock CORE1 sleep when in 3G connected mode for stack 3 |
| 627 | SLEEP_CTL_ERRC = 29, // 0x1D, Lock current core for avoiding delay when lower layer control |
| 628 | SLEEP_CTL_ERRC2 = 30, // 0x1E, because in the L+L architecture, ERRC1 and ERRC2 are in the same task, both has sleep mode control requirement |
| 629 | SLEEP_CTL_PLS = 31, // 0x1F, lock sleep to make sure the user's tag will successd in PLS logging mode |
| 630 | SLEEP_CTL_SS = 32, // 0x20, for performance profiling |
| 631 | SLEEP_CTL_SOE = 33, // 0x21, lock CPU when using SOE |
| 632 | SLEEP_CTL_SPEECH = 34, // 0x22, reserved enum for speech |
| 633 | SLEEP_CTL_SIM1 = 35, // 0x23, For SIM Task will preempt OS for seconds, use it to notify OSTD it is running |
| 634 | SLEEP_CTL_SIM2 = 36, // 0x24, For SIM Task will preempt OS for seconds, use it to notify OSTD it is running |
| 635 | SLEEP_CTL_SIM3 = 37, // 0x25, For SIM Task will preempt OS for seconds, use it to notify OSTD it is running |
| 636 | SLEEP_CTL_SIM4 = 38, // 0x26, For SIM Task will preempt OS for seconds, use it to notify OSTD it is running |
| 637 | SLEEP_CTL_MML1 = 39, |
| 638 | MAX_SLEEP_HANDLE = 40 |
| 639 | #elif defined(__MD97__) || defined(__MD97P__) |
| 640 | SLEEP_CTL_SLEEP_DRV = 0, // 0x00, Allow AT cmd to control cores' sleep function |
| 641 | SLEEP_CTL_SCC = 1, // 0x01, Disable sleep for PHY capture debug usage |
| 642 | SLEEP_CTL_MML2 = 2, // 0x02, For MML2 force on period, IA cannot sleep |
| 643 | SLEEP_CTL_LHIF = 3, // 0x03, For CLDMA uplink scenario |
| 644 | SLEEP_CTL_DVFS = 4, // 0x04, Keep MD awake while debugging gear changing and PLL ready interrupt |
| 645 | SLEEP_CTL_USB = 5, // 0x05, To lock sleep when driver get rx gpd done event |
| 646 | SLEEP_CTL_L4 = 6, // 0x06, AT+ESLP to control sleep mode |
| 647 | SLEEP_CTL_3G_TDD_TL1 = 7, // 0x07, TL1 lock core0 sleep in TL1C/TL1D wake up state and unlock core0 sleep in TL1C/TL1D sleep state |
| 648 | SLEEP_CTL_USIM0 = 8, // 0x08 |
| 649 | SLEEP_CTL_USIM1 = 9, // 0x09 |
| 650 | SLEEP_CTL_USIM2 = 10, // 0x0A |
| 651 | SLEEP_CTL_USIM3 = 11, // 0x0B |
| 652 | SLEEP_CTL_C2K_1X = 12, // 0x0C |
| 653 | SLEEP_CTL_C2K_DO = 13, // 0x0D |
| 654 | SLEEP_CTL_C2K_SS = 14, // 0x0E |
| 655 | SLEEP_CTL_2G_TDD_MPAL = 15, // 0x0F, GAS lock CORE1 sleep before sending msg to core1 |
| 656 | SLEEP_CTL_FM = 16, // 0x10, Lock sleep while do calibration |
| 657 | SLEEP_CTL_EL1SM = 17, // 0x11, To lock core0/core1 sleep when LTE timer wakeup |
| 658 | SLEEP_CTL_EL1SM_DEBUG = 18, // 0x12, Debug for LTE sleep mode verify |
| 659 | SLEEP_CTL_UL1SM = 19, // 0x13, To lock core0 sleep when 3G FDD timer wakeup |
| 660 | SLEEP_CTL_L1SM = 20, // 0x14, To lock core0 sleep when 2G timer wakeup |
| 661 | SLEEP_CTL_IDC = 21, // 0x15, Lock core until idc_uart tx confirms last two bytes of data was sent |
| 662 | SLEEP_CTL_MTD_NAND = 22, // 0x16, Not used in 93, but owner request to perserve for future use |
| 663 | SLEEP_CTL_RR_FDD = 23, // 0x17, To Lock/Unlock MPAL sleep |
| 664 | SLEEP_CTL_2G_SMM_DPS = 24, // 0x18, To Lock/Unlock 2G SMM in Dummy PS TASK |
| 665 | SLEEP_CTL_3G_SMM_DPS = 25, // 0x19, To Lock/Unlock 3G SMM in Dummy PS TASK |
| 666 | SLEEP_CTL_3G_FDD_SLCE = 26, // 0x1A, To Lock CORE1 sleep when in 3G connected mode for stack 1 |
| 667 | SLEEP_CTL_3G_FDD_SLCE2 = 27, // 0x1B, To Lock CORE1 sleep when in 3G connected mode for stack 2 |
| 668 | SLEEP_CTL_3G_FDD_SLCE3 = 28, // 0x1C, To Lock CORE1 sleep when in 3G connected mode for stack 3 |
| 669 | SLEEP_CTL_ERRC = 29, // 0x1D, Lock current core for avoiding delay when lower layer control |
| 670 | SLEEP_CTL_ERRC2 = 30, // 0x1E, Because in the L+L architecture, ERRC1 and ERRC2 are in the same task, both has sleep mode control requirement |
| 671 | SLEEP_CTL_PLS = 31, // 0x1F, lock sleep to make sure the user's tag will successd in PLS logging mode |
| 672 | SLEEP_CTL_SS = 32, // 0x20, for performance profiling |
| 673 | SLEEP_CTL_SOE = 33, // 0x21, lock CPU when using SOE |
| 674 | SLEEP_CTL_SPEECH = 34, // 0x22, reserved enum for speech |
| 675 | SLEEP_CTL_SIM1 = 35, // 0x23, For SIM Task will preempt OS for seconds, use it to notify OSTD it is running |
| 676 | SLEEP_CTL_SIM2 = 36, // 0x24, For SIM Task will preempt OS for seconds, use it to notify OSTD it is running |
| 677 | SLEEP_CTL_SIM3 = 37, // 0x25, For SIM Task will preempt OS for seconds, use it to notify OSTD it is running |
| 678 | SLEEP_CTL_SIM4 = 38, // 0x26, For SIM Task will preempt OS for seconds, use it to notify OSTD it is running |
| 679 | SLEEP_CTL_NL1SM = 39, // 0x27 |
| 680 | SLEEP_CTL_NL1SM_DEBUG = 40, // 0x28 |
| 681 | SLEEP_CTL_MML1 = 41, // 0x29 |
| 682 | SLEEP_CTL_USB_2 = 42, // 0x2A |
| 683 | SLEEP_CTL_CLDMA = 43, // 0x2B |
| 684 | SLEEP_CTL_LVTS_RESET = 44, // 0x2C |
| 685 | SLEEP_CTL_MCF = 45, // 0x2D |
| 686 | SLEEP_CTL_USBCORE = 46, // 0x2E |
| 687 | MAX_SLEEP_HANDLE = 47 |
| 688 | #else |
| 689 | #error "no chip match" |
| 690 | #endif |
| 691 | |
| 692 | } SLEEP_CTL_USER; |
| 693 | |
| 694 | |
| 695 | typedef enum |
| 696 | { |
| 697 | MDLPM_VERSION = 0, //MDLPM_VERSION |
| 698 | MDLPM_REC_INDEX = 1, //MD RECORD INDEX |
| 699 | MDLPM_UTC_0 = 2, //UTC 0~31 bits |
| 700 | MDLPM_UTC_1 = 3, //UTC 32~63 bits |
| 701 | MDLPM_FRC = 4, //MD Free RUN Counter |
| 702 | MDLPM_TIMESTAMP = 5, //MD UTC Timestamp |
| 703 | MDLPM_WALL_CLK_0 = 6, //MD Wall Clock 0~31 bits |
| 704 | MDLPM_WALL_CLK_1 = 7, //MD Wall Clock 32~63 bits |
| 705 | MDLPM_MD_SLEEP_DUR = 8, //MD 26M Off tick |
| 706 | MDLPM_SOC_SLEEP_DUR = 9, //SOC 26M off tick |
| 707 | MDLPM_MD_TOPSM_PWR_RDY = 10, //MD_TOPSM PWR READY |
| 708 | MDLPM_MD_SW_LOCK_0 = 11, //SW Lock 0~31 bit |
| 709 | MDLPM_MD_SW_LOCK_1 = 12, //SW Lock 32~64 bit |
| 710 | MDLPM_MD_DATA13 = 13, //unused |
| 711 | MDLPM_MD_DATA14 = 14, //unused |
| 712 | MDLPM_MD_OST_F32_WAKEUP_0 = 15, //32k wakeup event 0~31 bit |
| 713 | MDLPM_MD_OST_F32_WAKEUP_1 = 16, //32k wakeup event 32~63 bit |
| 714 | MDLPM_MD_OST_26M_WAKEUP_0 = 17, //26m wakeup event 0~31 bit |
| 715 | MDLPM_MD_OST_26M_WAKEUP_1 = 18, //26m wakeup event 32~63 bit |
| 716 | MDLPM_MD_TOPSM_SLV_REQ_STA = 19, //MD_TOPSM SLV_REQ |
| 717 | MDLPM_MD_TOPSM_DBG_REQ_STA = 20, //MD_TOPSM DBG_REQ |
| 718 | MDLPM_MDMCU_IDLE_TIME = 21, //Reserve for MD_TOPSM extend |
| 719 | MDLPM_USIP_IDLE_TIME = 22, //Reserve for MD_TOPSM extend |
| 720 | MDLPM_DATA23 = 23, //Reserve for MD_TOPSM extend |
| 721 | |
| 722 | // AMIF & MD DVFS |
| 723 | MDLPM_AMIF_GROUP_0 = 24, //unused |
| 724 | MDLPM_AMIF_GROUP_1 = 25, //unused |
| 725 | MDLPM_AMIF_GROUP_2 = 26, //unused |
| 726 | MDLPM_AMIF_GROUP_3 = 27, //unused |
| 727 | MDLPM_AMIF_GROUP_4 = 28, //unused |
| 728 | MDLPM_AMIF_GROUP_5 = 29, //unused |
| 729 | MDLPM_AMIF_GROUP_6 = 30, //unused |
| 730 | MDLPM_AMIF_GROUP_7 = 31, //unused |
| 731 | MDLPM_MD_DVFS_GEAR_0 = 32, //MD DVFS |
| 732 | MDLPM_MD_DVFS_GEAR_1 = 33, //MD DVFS |
| 733 | MDLPM_MD_DVFS_GEAR_2 = 34, //MD DVFS |
| 734 | MDLPM_MD_DVFS_GEAR_3 = 35, //MD DVFS |
| 735 | MDLPM_MD_DVFS_GEAR_4 = 36, //MD DVFS |
| 736 | MDLPM_MD_DVFS_GEAR_5 = 37, //MD DVFS |
| 737 | MDLPM_MD_DVFS_GEAR_6 = 38, //MD DVFS |
| 738 | MDLPM_MD_DVFS_GEAR_7 = 39, //MD DVFS |
| 739 | |
| 740 | //Others |
| 741 | MDLPM_DATA40 = 40, //unused |
| 742 | MDLPM_DATA41 = 41, //unused |
| 743 | MDLPM_DATA42 = 42, //unused |
| 744 | MDLPM_DATA43 = 43, //unused |
| 745 | MDLPM_VOLTE_UL = 44, //VOLTE UL |
| 746 | MDLPM_VOLTE_DL = 45, //VOLTE DL |
| 747 | MDLPM_VOLTE_CODEC = 46, //VOLTE CODEC |
| 748 | MDLPM_DATA47 = 47, //unsued |
| 749 | |
| 750 | /* debug info in 93 adding */ |
| 751 | MDLPM_GL1_SLEEP_ACTIVE_DUR = 48, //2G acc sleep info. |
| 752 | MDLPM_GL1_SLEEP_STATUS = 49, //2G sleep status info. |
| 753 | MDLPM_UL1_SLEEP_ACTIVE_DUR = 50, //3G acc sleep info. |
| 754 | MDLPM_UL1_SLEEP_STATUS = 51, //2G sleep status info. |
| 755 | MDLPM_EL1_SLEEP_ACTIVE_DUR = 52, //3G acc sleep info. |
| 756 | MDLPM_EL1_SLEEP_STATUS = 53, //2G sleep status info. |
| 757 | MDLPM_MODEM_TOPSM_SM_TOPSM_APP_OUTCR_SET = 54, |
| 758 | MDLPM_MODEM_TOPSM_SM_DBG_REQ_STA = 55, |
| 759 | MDLPM_MODEM_TOPSM_DEBUG = 56, |
| 760 | /* debug info in 93 adding end */ |
| 761 | /* 2G L1 behavior list */ |
| 762 | MDLPM_GL1_BCCH = 57, |
| 763 | MDLPM_GL1_PAGING = 58, |
| 764 | MDLPM_GL1_CBCH = 59, |
| 765 | MDLPM_GL1_POWER_SCAN = 60, |
| 766 | MDLPM_GL1_BSIC_READ = 61, //FB/SB |
| 767 | MDLPM_GL1_STANDBY_GAP = 62, |
| 768 | MDLPM_GL1_ACCESS = 63, //Access mode is RACH in UL and listening AGCH/CCCH in DL |
| 769 | MDLPM_GL1_CS = 64, //dedicated mode circuit-switch |
| 770 | MDLPM_GL1_PS = 65, //dedicated mode packet-switch |
| 771 | /* 3G L1 behavior list */ |
| 772 | MDLPM_UL1_BCH = 66, //BCH channel such as SIB/SFN |
| 773 | MDLPM_UL1_PCH = 67, //PCH channel |
| 774 | MDLPM_UL1_CTCH = 68, //CTCH channel |
| 775 | MDLPM_UL1_FS = 69, //frequency scan or power scan |
| 776 | MDLPM_UL1_CS = 70, //cell search |
| 777 | MDLPM_UL1_CM = 71, //cell measurement |
| 778 | MDLPM_UL1_TAS = 72, //TAS/RAS feature |
| 779 | MDLPM_UL1_ACTIVE_GAP = 73, //active gap assignment |
| 780 | MDLPM_UL1_STANDBY_GAP = 74, //receive standby gap |
| 781 | MDLPM_UL1_FACH = 75, //FACH/RACH channel |
| 782 | MDLPM_UL1_DCH = 76, //DCH channel |
| 783 | MDLPM_UL1_R5R6 = 77, //R5/R6 channel |
| 784 | MDLPM_UL1_R7R8 = 78, //R7/R8 channel |
| 785 | MDLPM_UL1_OTHERS = 79, |
| 786 | MDLPM_UL1_RESOURCE = 80, //RTB or Inter-SIM resource |
| 787 | MDLPM_UL1_CC = 81, //channel/mode change |
| 788 | MDLPM_UL1_DDL = 82, //DDL |
| 789 | MDLPM_UL1_EM = 83, //EM |
| 790 | /* 4G L1 behavior list */ |
| 791 | MDLPM_EL1_MIB_SIB = 84, |
| 792 | MDLPM_EL1_PAGE = 85, |
| 793 | MDLPM_EL1_CSR = 86, |
| 794 | MDLPM_EL1_INTRA_CS = 87, |
| 795 | MDLPM_EL1_INTER_CS = 88, |
| 796 | MDLPM_EL1_INTRA_CM = 89, |
| 797 | MDLPM_EL1_INTER_CM = 90, |
| 798 | MDLPM_EL1_INTRA_POS = 91, |
| 799 | MDLPM_EL1_INTER_POS = 92, |
| 800 | MDLPM_EL1_MBMS = 93, |
| 801 | MDLPM_EL1_ACTIVE_GAP = 94, //active gap assignment |
| 802 | MDLPM_EL1_STANDBY_GAP = 95, //receive standby gap |
| 803 | MDLPM_EL1_CONNECT_START = 96, |
| 804 | MDLPM_EL1_CONNECT_END = 97, |
| 805 | MDLPM_EL1_CONNECT_DUR = 98, //accumulated connection duration |
| 806 | /* RAT L1 behavior list end */ |
| 807 | /* MLL1 activate RAT monitor data start*/ |
| 808 | MDLPM_SIM1_ACTIVATE_RAT = 99, //SIM1 activate RAT |
| 809 | MDLPM_SIM1_RAT_DRX = 100, //SIM1 activate RAT drx |
| 810 | MDLPM_SIM1_UPDATE_FRC = 101, //SIM1 info. update FRC |
| 811 | MDLPM_SIM2_ACTIVATE_RAT = 102, //SIM2 activate RAT |
| 812 | MDLPM_SIM2_RAT_DRX = 103, //SIM2 activate RAT drx |
| 813 | MDLPM_SIM2_UPDATE_FRC = 104, //SIM2 info. update FRC |
| 814 | MDLPM_SIM3_ACTIVATE_RAT = 105, //SIM3 activate RAT |
| 815 | MDLPM_SIM3_RAT_DRX = 106, //SIM3 activate RAT drx |
| 816 | MDLPM_SIM3_UPDATE_FRC = 107, //SIM3 info. update FRC |
| 817 | /* 2G monitor data start*/ |
| 818 | MDLPM_GL1_RX_WINDOW_DUR = 108, //2G RX window open duration |
| 819 | MDLPM_GL1_TX_WINDOW_DUR = 109, //2G TX window open duration |
| 820 | MDLPM_GL1_TX_POWER_REG1 = 110, //2G TX power region 1: 0 ~ 5dBm; [0, 5] |
| 821 | MDLPM_GL1_TX_POWER_REG2 = 111, //2G TX power region 2: 5 ~ 10dBm; (5, 10] |
| 822 | MDLPM_GL1_TX_POWER_REG3 = 112, //2G TX power region 3: 10 ~ 15dBm; (10, 15] |
| 823 | MDLPM_GL1_TX_POWER_REG4 = 113, //2G TX power region 4: 15 ~ 20dBm; (15, 20] |
| 824 | MDLPM_GL1_TX_POWER_REG5 = 114, //2G TX power region 5: 20 ~ 25dBm; (20, 25] |
| 825 | MDLPM_GL1_TX_POWER_REG6 = 115, //2G TX power region 6: 25 ~ 30dBm; (25, 30] |
| 826 | MDLPM_GL1_TX_POWER_REG7 = 116, //2G TX power region 7: 30 ~ 33dBm; (30, 33] |
| 827 | /* 2G monitor data end */ |
| 828 | /* 3G monitor data start */ |
| 829 | MDLPM_UL1_RX_WINDOW_START = 117, //3G RX window open start frc |
| 830 | MDLPM_UL1_TX_WINDOW_START = 118, //3G TX window open start frc |
| 831 | MDLPM_UL1_RX_PATH_USED = 119, //3G RX path used flag |
| 832 | MDLPM_UL1_TX_PATH_USED = 120, //3G TX path used flag |
| 833 | MDLPM_UL1_RX_PATH1_CNT = 121, //3G use RX path 1 used cnt |
| 834 | MDLPM_UL1_RX_PATH2_CNT = 122, //3G use RX path 2 used cnt |
| 835 | MDLPM_UL1_RX_PATH3_CNT = 123, //3G use RX path 3 used cnt |
| 836 | MDLPM_UL1_RX_PATH4_CNT = 124, //3G use RX path 4 used cnt |
| 837 | MDLPM_UL1_RX_PATH5_CNT = 125, //3G use RX path 5 used cnt |
| 838 | MDLPM_UL1_RX_PATH6_CNT = 126, //3G use RX path 6 used cnt |
| 839 | MDLPM_UL1_TX_PATH1_CNT = 127, //3G use TX path 1 used cnt |
| 840 | MDLPM_UL1_TX_PATH2_CNT = 128, //3G use TX path 2 used cnt |
| 841 | MDLPM_UL1_RX_WINDOW_DUR = 129, //3G RX window open duration |
| 842 | MDLPM_UL1_TX_WINDOW_DUR = 130, //3G TX window open duration |
| 843 | MDLPM_UL1_TX_POWER_REG1 = 131, //3G TX power region 1: <= -5dBm |
| 844 | MDLPM_UL1_TX_POWER_REG2 = 132, //3G TX power region 2: -5 ~ 1dBm; (-5, 1] |
| 845 | MDLPM_UL1_TX_POWER_REG3 = 133, //3G TX power region 3: 1 ~ 5dBm; (1,5] |
| 846 | MDLPM_UL1_TX_POWER_REG4 = 134, //3G TX power region 4: 5 ~ 10dBm; (5,10] |
| 847 | MDLPM_UL1_TX_POWER_REG5 = 135, //3G TX power region 5: 10 ~ 15dBm; (10,15] |
| 848 | MDLPM_UL1_TX_POWER_REG6 = 136, //3G TX power region 6: 15 ~ 20dBm; (15,20] |
| 849 | MDLPM_UL1_TX_POWER_REG7 = 137, //3G TX power region 7: 20 ~ 24dBm; (20,24] |
| 850 | MDLPM_UL1_LORX_MODE0 = 138, //3G LoRX mode 0 (LORX_OFF) cnt |
| 851 | MDLPM_UL1_LORX_MODE1 = 139, //3G LoRX mode 1 (LORX_ON) cnt |
| 852 | MDLPM_UL1_LORX_TRIG_FALSE = 140, //3G LoRX triger is false |
| 853 | MDLPM_UL1_LORX_TRIG_TRUE = 141, //3G LoRX triger is true |
| 854 | MDLPM_UL1_ARX_HPM = 142, //3G ARX mode 0 (HPM) cnt |
| 855 | MDLPM_UL1_ARX_LPM_VOICE = 143, //3G ARX mode 1 (LPM_VOICE) cnt |
| 856 | MDLPM_UL1_ARX_LPM_DATA = 144, //3G ARX mode 2 (LPM_DATA) cnt |
| 857 | MDLPM_UL1_RAS_1RX_INVALID = 145, //3G RAS mode 0 (1RX_INVALID) cnt |
| 858 | MDLPM_UL1_RAS_1RX_PATH_MAIN = 146, //3G RAS mode 1 (1RX_PATH_MAIN) cnt |
| 859 | MDLPM_UL1_RAS_2RX_PATH_BOTH = 147, //3G RAS mode 2 (2RX_PATH_BOTH) cnt |
| 860 | /* 3G monitor data end */ |
| 861 | /* 4G monitor data start */ |
| 862 | MDLPM_EL1_ACTIVE_1CC = 148, //active 1CC (Pcell only) cnt |
| 863 | MDLPM_EL1_ACTIVE_2CC = 149, //active 2CC cnt |
| 864 | MDLPM_EL1_ACTIVE_3CC = 150, //active 3CC cnt |
| 865 | MDLPM_EL1_ACTIVE_4CC = 151, //active 4CC cnt |
| 866 | MDLPM_EL1_ACTIVE_5CC = 152, //active 5CC cnt |
| 867 | MDLPM_EL1_CC_LAST = 153, //last active CC number |
| 868 | MDLPM_EL1_CC_LAST_FRC = 154, //last active CC number |
| 869 | MDLPM_EL1_RX_WINDOW_START = 155, //4G RX window open start frc |
| 870 | MDLPM_EL1_TX_WINDOW_START = 156, //4G TX window open start frc |
| 871 | MDLPM_EL1_RX_PATH_USED = 157, //4G RX path used flag |
| 872 | MDLPM_EL1_TX_PATH_USED = 158, //4G TX path used flag |
| 873 | MDLPM_EL1_RX_PATH1_CNT = 159, //4G use RX path 1 used cnt |
| 874 | MDLPM_EL1_RX_PATH2_CNT = 160, //4G use RX path 2 used cnt |
| 875 | MDLPM_EL1_RX_PATH3_CNT = 161, //4G use RX path 3 used cnt |
| 876 | MDLPM_EL1_RX_PATH4_CNT = 162, //4G use RX path 4 used cnt |
| 877 | MDLPM_EL1_RX_PATH5_CNT = 163, //4G use RX path 5 used cnt |
| 878 | MDLPM_EL1_TX_PATH1_CNT = 164, //4G use TX path 1 used cnt |
| 879 | MDLPM_EL1_TX_PATH2_CNT = 165, //4G use TX path 2 used cnt |
| 880 | MDLPM_EL1_RX_WINDOW_DUR = 166, //4G RX window open duration |
| 881 | MDLPM_EL1_TX_WINDOW_DUR = 167, //4G TX window open duration |
| 882 | MDLPM_EL1_TX_POWER_CC0_REG1 = 168, //4G CC0 TX power region 1: <= -5dBm |
| 883 | MDLPM_EL1_TX_POWER_CC0_REG2 = 169, //4G CC0 TX power region 2: -5 ~ 1dBm; (-5, 1] |
| 884 | MDLPM_EL1_TX_POWER_CC0_REG3 = 170, //4G CC0 TX power region 3: 1 ~ 5dBm; (1,5] |
| 885 | MDLPM_EL1_TX_POWER_CC0_REG4 = 171, //4G CC0 TX power region 4: 5 ~ 10dBm; (5,10] |
| 886 | MDLPM_EL1_TX_POWER_CC0_REG5 = 172, //4G CC0 TX power region 5: 10 ~ 15dBm; (10,15] |
| 887 | MDLPM_EL1_TX_POWER_CC0_REG6 = 173, //4G CC0 TX power region 6: 15 ~ 20dBm; (15,20] |
| 888 | MDLPM_EL1_TX_POWER_CC0_REG7 = 174, //4G CC0 TX power region 7: 20 ~ 23dBm; (20,23] |
| 889 | MDLPM_EL1_TX_POWER_CC0_REG8 = 175, //4G CC0 TX power region 8: 23 ~ 26dBm; (23,26] |
| 890 | MDLPM_EL1_TX_POWER_CC1_REG1 = 176, //4G CC1 TX power region 1: <= -5dBm |
| 891 | MDLPM_EL1_TX_POWER_CC1_REG2 = 177, //4G CC1 TX power region 2: -5 ~ 1dBm; (-5, 1] |
| 892 | MDLPM_EL1_TX_POWER_CC1_REG3 = 178, //4G CC1 TX power region 3: 1 ~ 5dBm; (1,5] |
| 893 | MDLPM_EL1_TX_POWER_CC1_REG4 = 179, //4G CC1 TX power region 4: 5 ~ 10dBm; (5,10] |
| 894 | MDLPM_EL1_TX_POWER_CC1_REG5 = 180, //4G CC1 TX power region 5: 10 ~ 15dBm; (10,15] |
| 895 | MDLPM_EL1_TX_POWER_CC1_REG6 = 181, //4G CC1 TX power region 6: 15 ~ 20dBm; (15,20] |
| 896 | MDLPM_EL1_TX_POWER_CC1_REG7 = 182, //4G CC1 TX power region 7: 20 ~ 23dBm; (20,23] |
| 897 | MDLPM_EL1_TX_POWER_CC1_REG8 = 183, //4G CC1 TX power region 8: 23 ~ 26dBm; (23,26] |
| 898 | MDLPM_EL1_TX_POWER_CC2_REG1 = 184, //4G CC2 TX power region 1: <= -5dBm |
| 899 | MDLPM_EL1_TX_POWER_CC2_REG2 = 185, //4G CC2 TX power region 2: -5 ~ 1dBm; (-5, 1] |
| 900 | MDLPM_EL1_TX_POWER_CC2_REG3 = 186, //4G CC2 TX power region 3: 1 ~ 5dBm; (1,5] |
| 901 | MDLPM_EL1_TX_POWER_CC2_REG4 = 187, //4G CC2 TX power region 4: 5 ~ 10dBm; (5,10] |
| 902 | MDLPM_EL1_TX_POWER_CC2_REG5 = 188, //4G CC2 TX power region 5: 10 ~ 15dBm; (10,15] |
| 903 | MDLPM_EL1_TX_POWER_CC2_REG6 = 189, //4G CC2 TX power region 6: 15 ~ 20dBm; (15,20] |
| 904 | MDLPM_EL1_TX_POWER_CC2_REG7 = 190, //4G CC2 TX power region 7: 20 ~ 23dBm; (20,23] |
| 905 | MDLPM_EL1_TX_POWER_CC2_REG8 = 191, //4G CC2 TX power region 8: 23 ~ 26dBm; (23,26] |
| 906 | MDLPM_EL1_TX_POWER_ALL_REG1 = 192, //4G total TX power region 1: <= -5dBm |
| 907 | MDLPM_EL1_TX_POWER_ALL_REG2 = 193, //4G total TX power region 2: -5 ~ 1dBm; (-5, 1] |
| 908 | MDLPM_EL1_TX_POWER_ALL_REG3 = 194, //4G total TX power region 3: 1 ~ 5dBm; (1,5] |
| 909 | MDLPM_EL1_TX_POWER_ALL_REG4 = 195, //4G total TX power region 4: 5 ~ 10dBm; (5,10] |
| 910 | MDLPM_EL1_TX_POWER_ALL_REG5 = 196, //4G total TX power region 5: 10 ~ 15dBm; (10,15] |
| 911 | MDLPM_EL1_TX_POWER_ALL_REG6 = 197, //4G total TX power region 6: 15 ~ 20dBm; (15,20] |
| 912 | MDLPM_EL1_TX_POWER_ALL_REG7 = 198, //4G total TX power region 7: 20 ~ 23dBm; (20,23] |
| 913 | MDLPM_EL1_TX_POWER_ALL_REG8 = 199, //4G total TX power region 8: 23 ~ 26dBm; (23,26] |
| 914 | MDLPM_EL1_LORX_MODE0 = 200, //4G LoRX mode 0 (LORX_OFF) cnt |
| 915 | MDLPM_EL1_LORX_MODE1 = 201, //4G LoRX mode 1 (LORX_TYPE1, symobol mode) cnt |
| 916 | MDLPM_EL1_LORX_MODE2 = 202, //4G LoRX mode 2 (LORX_TYPE2, PDCCH early stop) cnt |
| 917 | MDLPM_EL1_LORX_MODE3 = 203, //4G LoRX mode 3 (LORX_TYPE3, PDCCH early stop with sync) cnt |
| 918 | MDLPM_EL1_LOSX_CC0_ENABLE = 204, //4G LoSX CC0 enable cnt |
| 919 | MDLPM_EL1_LOSX_CC1_ENABLE = 205, //4G LoSX CC1 enable cnt |
| 920 | MDLPM_EL1_LOSX_CC2_ENABLE = 206, //4G LoSX CC2 enable cnt |
| 921 | MDLPM_EL1_LOSX_CC3_ENABLE = 207, //4G LoSX CC3 enable cnt |
| 922 | MDLPM_EL1_LOSX_CC4_ENABLE = 208, //4G LoSX CC4 enable cnt |
| 923 | MDLPM_EL1_LORX_TRIG_FALSE = 209, //4G LoRX triger is false |
| 924 | MDLPM_EL1_LORX_TRIG_TRUE = 210, //4G LoRX triger is true |
| 925 | MDLPM_EL1_LOSX_CC0_TRIG = 211, //4G LoSX CC0 triger cnt |
| 926 | MDLPM_EL1_LOSX_CC1_TRIG = 212, //4G LoSX CC1 triger cnt |
| 927 | MDLPM_EL1_LOSX_CC2_TRIG = 213, //4G LoSX CC2 triger cnt |
| 928 | MDLPM_EL1_LOSX_CC3_TRIG = 214, //4G LoSX CC3 triger cnt |
| 929 | MDLPM_EL1_LOSX_CC4_TRIG = 215, //4G LoSX CC4 triger cnt |
| 930 | MDLPM_EL1_CC0_ARX_HPM = 216, //4G ARX CC0 mode 0 (HPM) cnt |
| 931 | MDLPM_EL1_CC0_ARX_LPM_DATA = 217, //4G ARX CC0 mode 1 (LPM_DATA) cnt |
| 932 | MDLPM_EL1_CC0_ARX_LPM_LMCS = 218, //4G ARX CC0 mode 2 (LPM_LMCS) cnt |
| 933 | MDLPM_EL1_CC0_ARX_LPM_VOICE = 219, //4G ARX CC0 mode 3 (LPM_VOICE) cnt |
| 934 | MDLPM_EL1_CC0_ARX_LPM_HMCS = 220, //4G ARX CC0 mode 4 (LPM_HMCS) cnt |
| 935 | MDLPM_EL1_CC1_ARX_HPM = 221, //4G ARX CC1 mode 0 (HPM) cnt |
| 936 | MDLPM_EL1_CC1_ARX_LPM_DATA = 222, //4G ARX CC1 mode 1 (LPM_DATA) cnt |
| 937 | MDLPM_EL1_CC1_ARX_LPM_LMCS = 223, //4G ARX CC1 mode 2 (LPM_LMCS) cnt |
| 938 | MDLPM_EL1_CC1_ARX_LPM_VOICE = 224, //4G ARX CC1 mode 3 (LPM_VOICE) cnt |
| 939 | MDLPM_EL1_CC1_ARX_LPM_HMCS = 225, //4G ARX CC1 mode 4 (LPM_HMCS) cnt |
| 940 | MDLPM_EL1_CC2_ARX_HPM = 226, //4G ARX CC2 mode 0 (HPM) cnt |
| 941 | MDLPM_EL1_CC2_ARX_LPM_DATA = 227, //4G ARX CC2 mode 1 (LPM_DATA) cnt |
| 942 | MDLPM_EL1_CC2_ARX_LPM_LMCS = 228, //4G ARX CC2 mode 2 (LPM_LMCS) cnt |
| 943 | MDLPM_EL1_CC2_ARX_LPM_VOICE = 229, //4G ARX CC2 mode 3 (LPM_VOICE) cnt |
| 944 | MDLPM_EL1_CC2_ARX_LPM_HMCS = 230, //4G ARX CC2 mode 4 (LPM_HMCS) cnt |
| 945 | MDLPM_EL1_CC3_ARX_HPM = 231, //4G ARX CC3 mode 0 (HPM) cnt |
| 946 | MDLPM_EL1_CC3_ARX_LPM_DATA = 232, //4G ARX CC3 mode 1 (LPM_DATA) cnt |
| 947 | MDLPM_EL1_CC3_ARX_LPM_LMCS = 233, //4G ARX CC3 mode 2 (LPM_LMCS) cnt |
| 948 | MDLPM_EL1_CC3_ARX_LPM_VOICE = 234, //4G ARX CC3 mode 3 (LPM_VOICE) cnt |
| 949 | MDLPM_EL1_CC3_ARX_LPM_HMCS = 235, //4G ARX CC3 mode 4 (LPM_HMCS) cnt |
| 950 | MDLPM_EL1_CC4_ARX_HPM = 236, //4G ARX CC4 mode 0 (HPM) cnt |
| 951 | MDLPM_EL1_CC4_ARX_LPM_DATA = 237, //4G ARX CC4 mode 1 (LPM_DATA) cnt |
| 952 | MDLPM_EL1_CC4_ARX_LPM_LMCS = 238, //4G ARX CC4 mode 2 (LPM_LMCS) cnt |
| 953 | MDLPM_EL1_CC4_ARX_LPM_VOICE = 239, //4G ARX CC4 mode 3 (LPM_VOICE) cnt |
| 954 | MDLPM_EL1_CC4_ARX_LPM_HMCS = 240, //4G ARX CC4 mode 4 (LPM_HMCS) cnt |
| 955 | MDLPM_EL1_CC0_RAS_1RX = 241, //4G RAS CC0 mode 0 (1RX) cnt |
| 956 | MDLPM_EL1_CC0_RAS_2RX = 242, //4G RAS CC0 mode 1 (2RX) cnt |
| 957 | MDLPM_EL1_CC0_RAS_4RX = 243, //4G RAS CC0 mode 2 (4RX) cnt |
| 958 | MDLPM_EL1_CC1_RAS_1RX = 244, //4G RAS CC1 mode 0 (1RX) cnt |
| 959 | MDLPM_EL1_CC1_RAS_2RX = 245, //4G RAS CC1 mode 1 (2RX) cnt |
| 960 | MDLPM_EL1_CC1_RAS_4RX = 246, //4G RAS CC1 mode 2 (4RX) cnt |
| 961 | MDLPM_EL1_CC2_RAS_1RX = 247, //4G RAS CC2 mode 0 (1RX) cnt |
| 962 | MDLPM_EL1_CC2_RAS_2RX = 248, //4G RAS CC2 mode 1 (2RX) cnt |
| 963 | MDLPM_EL1_CC2_RAS_4RX = 249, //4G RAS CC2 mode 2 (4RX) cnt |
| 964 | MDLPM_EL1_CC3_RAS_1RX = 250, //4G RAS CC3 mode 0 (1RX) cnt |
| 965 | MDLPM_EL1_CC3_RAS_2RX = 251, //4G RAS CC3 mode 1 (2RX) cnt |
| 966 | MDLPM_EL1_CC3_RAS_4RX = 252, //4G RAS CC3 mode 2 (4RX) cnt |
| 967 | MDLPM_EL1_CC4_RAS_1RX = 253, //4G RAS CC4 mode 0 (1RX) cnt |
| 968 | MDLPM_EL1_CC4_RAS_2RX = 254, //4G RAS CC4 mode 1 (2RX) cnt |
| 969 | MDLPM_EL1_CC4_RAS_4RX = 255, //4G RAS CC4 mode 2 (4RX) cnt |
| 970 | /* 4G monitor data end */ |
| 971 | |
| 972 | /* 5G monitor data start */ |
| 973 | MDLPM_NL1_SLEEP_ACTIVE_DUR = 256, //5G acc sleep info. |
| 974 | MDLPM_NL1_SLEEP_STATUS = 257, //5G sleep status info. |
| 975 | MDLPM_NL1_MMW_SLEEP_ACTIVE_DUR = 258, //5G mmW acc sleep info. |
| 976 | MDLPM_NL1_MMW_SLEEP_STATUS = 259, //5G mmW sleep status info. |
| 977 | // RX/TX window related |
| 978 | MDLPM_NL1_RX_WINDOW_DUR = 260, //5G RX window acc. open duration |
| 979 | MDLPM_NL1_TX_WINDOW_DUR = 261, //5G TX window acc. open duration |
| 980 | MDLPM_NL1_CONNECT_DUR = 262, //5G connection duration |
| 981 | MDLPM_NL1_TX_POWER_TG0_CC0 = 263, //5G TX power info, 0=> below -5 , 1=>-5~1, 2=>1~5, 3=>5~10,4=>10~15,5=>15~20,6=>20~23,7=>23~26 |
| 982 | MDLPM_NL1_TX_POWER_TG1_CC0 = 264, //5G TX power info, 0=> below -5 , 1=>-5~1, 2=>1~5, 3=>5~10,4=>10~15,5=>15~20,6=>20~23,7=>23~26 |
| 983 | MDLPM_NL1_TX_POWER_TG2_CC0 = 265, //5G TX power info, 0=> below -5 , 1=>-5~1, 2=>1~5, 3=>5~10,4=>10~15,5=>15~20,6=>20~23,7=>23~26 |
| 984 | MDLPM_NL1_ARX_TG0_CC0 = 266, //5G ARX info, 0=>HPM, 1=>DATA, 2=>LOW_MCS, 4=>H_MCS |
| 985 | MDLPM_NL1_ARX_TG1_CC0 = 267, //5G ARX info, 0=>HPM, 1=>DATA, 2=>LOW_MCS, 4=>H_MCS |
| 986 | MDLPM_NL1_ARX_TG2_CC0 = 268, //5G ARX info, 0=>HPM, 1=>DATA, 2=>LOW_MCS, 4=>H_MCS |
| 987 | MDLPM_NL1_ARX_TG0_CC1 = 269, //5G ARX info, 0=>HPM, 1=>DATA, 2=>LOW_MCS, 4=>H_MCS |
| 988 | MDLPM_NL1_ARX_TG1_CC1 = 270, //5G ARX info, 0=>HPM, 1=>DATA, 2=>LOW_MCS, 4=>H_MCS |
| 989 | MDLPM_NL1_ARX_TG2_CC1 = 271, //5G ARX info, 0=>HPM, 1=>DATA, 2=>LOW_MCS, 4=>H_MCS |
| 990 | MDLPM_NL1_ARX_TG0_CC0_CNT = 272, //5G ARX change counter info |
| 991 | MDLPM_NL1_ARX_TG1_CC0_CNT = 273, //5G ARX change counter info |
| 992 | MDLPM_NL1_ARX_TG2_CC0_CNT = 274, //5G ARX change counter info |
| 993 | MDLPM_NL1_ARX_TG0_CC1_CNT = 275, //5G ARX change counter info |
| 994 | MDLPM_NL1_ARX_TG1_CC1_CNT = 276, //5G ARX change counter info |
| 995 | MDLPM_NL1_ARX_TG2_CC1_CNT = 277, //5G ARX change counter info |
| 996 | MDLPM_NL1_RAS_TG0_CC0 = 278, //5G RAS info, 1=>1RX, 2=>2RX, 4=>4RX |
| 997 | MDLPM_NL1_RAS_TG1_CC0 = 279, //5G RAS info, 1=>1RX, 2=>2RX, 4=>4RX |
| 998 | MDLPM_NL1_RAS_TG2_CC0 = 280, //5G RAS info, 1=>1RX, 2=>2RX, 4=>4RX |
| 999 | MDLPM_NL1_RAS_TG0_CC1 = 281, //5G RAS info, 1=>1RX, 2=>2RX, 4=>4RX |
| 1000 | MDLPM_NL1_RAS_TG1_CC1 = 282, //5G RAS info, 1=>1RX, 2=>2RX, 4=>4RX |
| 1001 | MDLPM_NL1_RAS_TG2_CC1 = 283, //5G RAS info, 1=>1RX, 2=>2RX, 4=>4RX |
| 1002 | MDLPM_NL1_RAS_TG0_CC0_CNT = 284, //5G RAS change counter info |
| 1003 | MDLPM_NL1_RAS_TG1_CC0_CNT = 285, //5G RAS change counter info |
| 1004 | MDLPM_NL1_RAS_TG2_CC0_CNT = 286, //5G RAS change counter info |
| 1005 | MDLPM_NL1_RAS_TG0_CC1_CNT = 287, //5G RAS change counter info |
| 1006 | MDLPM_NL1_RAS_TG1_CC1_CNT = 288, //5G RAS change counter info |
| 1007 | MDLPM_NL1_RAS_TG2_CC1_CNT = 289, //5G RAS change counter info |
| 1008 | MDLPM_NL1_SLEEP_ACTIVE_DUR_TG0 = 290, //5G acc sleep info. |
| 1009 | MDLPM_NL1_SLEEP_STATUS_TG0 = 291, //5G sleep status info. |
| 1010 | MDLPM_NL1_SLEEP_ACTIVE_DUR_TG1 = 292, //5G acc sleep info. |
| 1011 | MDLPM_NL1_SLEEP_STATUS_TG1 = 293, //5G sleep status info. |
| 1012 | /* 5G monitor data end */ |
| 1013 | MDLPM_MAX_ITEMS = 512 |
| 1014 | } MDLPM_INDEX; |
| 1015 | |
| 1016 | #ifdef SMP |
| 1017 | #undef SMP |
| 1018 | #endif |
| 1019 | |
| 1020 | typedef enum |
| 1021 | { |
| 1022 | SMP = 0, |
| 1023 | CORE0 = 0, |
| 1024 | CORE1, |
| 1025 | CORE2, |
| 1026 | CORE3 |
| 1027 | } SLPDRV_CORE_e; |
| 1028 | |
| 1029 | //#ifdef BIG_DAC_CHANGE_RECALIBRATION |
| 1030 | |
| 1031 | typedef enum |
| 1032 | { |
| 1033 | MODEM_TOPSM_INPUT_2G = 0, /* Input module is 2G */ |
| 1034 | MODEM_TOPSM_INPUT_3G /* Input module is 3G */ |
| 1035 | } MODEM_TOPSM_INPUT_MODULE; |
| 1036 | |
| 1037 | typedef enum |
| 1038 | { |
| 1039 | MODEM_TOPSM_RF1 = 0, |
| 1040 | MODEM_TOPSM_RF2, |
| 1041 | NUM_OF_CLOCK_SOURCE |
| 1042 | } CLOCK_INPUT_SOURCE; |
| 1043 | |
| 1044 | //#endif |
| 1045 | typedef enum{ |
| 1046 | #if defined(__MD93__) |
| 1047 | SLP_EMM_CORE0_SLP_SW_LOCK = 0, |
| 1048 | SLP_EMM_CORE0_SLP_SW_EXT_LOCK, |
| 1049 | SLP_EMM_CORE1_SLP_SW_LOCK, |
| 1050 | SLP_EMM_CORE1_SLP_SW_EXT_LOCK, |
| 1051 | SLP_EMM_CORE0_SLP_SW_LOCK_TIME, |
| 1052 | SLP_EMM_CORE1_SLP_SW_LOCK_TIME, |
| 1053 | SLP_EMM_CORE0_SLP_SW_UNLOCK_TIME, |
| 1054 | SLP_EMM_CORE1_SLP_SW_UNLOCK_TIME, |
| 1055 | SLP_EMM_SLP_INIFINITE_ENTER, |
| 1056 | #elif defined(__MD95__) |
| 1057 | SLP_EMM_CORE0_SLP_SW_LOCK = 0, |
| 1058 | SLP_EMM_CORE0_SLP_SW_EXT_LOCK, |
| 1059 | SLP_EMM_CORE1_SLP_SW_LOCK, |
| 1060 | SLP_EMM_CORE1_SLP_SW_EXT_LOCK, |
| 1061 | SLP_EMM_CORE2_SLP_SW_LOCK, |
| 1062 | SLP_EMM_CORE2_SLP_SW_EXT_LOCK, |
| 1063 | SLP_EMM_CORE0_SLP_SW_LOCK_TIME, |
| 1064 | SLP_EMM_CORE1_SLP_SW_LOCK_TIME, |
| 1065 | SLP_EMM_CORE2_SLP_SW_LOCK_TIME, |
| 1066 | SLP_EMM_CORE0_SLP_SW_UNLOCK_TIME, |
| 1067 | SLP_EMM_CORE1_SLP_SW_UNLOCK_TIME, |
| 1068 | SLP_EMM_CORE2_SLP_SW_UNLOCK_TIME, |
| 1069 | SLP_EMM_SLP_INIFINITE_ENTER, |
| 1070 | #elif defined(__MD97__) || defined(__MD97P__) |
| 1071 | SLP_EMM_CORE0_SLP_SW_LOCK = 0, |
| 1072 | SLP_EMM_CORE0_SLP_SW_EXT_LOCK, |
| 1073 | SLP_EMM_CORE1_SLP_SW_LOCK, |
| 1074 | SLP_EMM_CORE1_SLP_SW_EXT_LOCK, |
| 1075 | SLP_EMM_CORE2_SLP_SW_LOCK, |
| 1076 | SLP_EMM_CORE2_SLP_SW_EXT_LOCK, |
| 1077 | SLP_EMM_CORE3_SLP_SW_LOCK, |
| 1078 | SLP_EMM_CORE3_SLP_SW_EXT_LOCK, |
| 1079 | SLP_EMM_CORE0_SLP_SW_LOCK_TIME, |
| 1080 | SLP_EMM_CORE1_SLP_SW_LOCK_TIME, |
| 1081 | SLP_EMM_CORE2_SLP_SW_LOCK_TIME, |
| 1082 | SLP_EMM_CORE3_SLP_SW_LOCK_TIME, |
| 1083 | SLP_EMM_CORE0_SLP_SW_UNLOCK_TIME, |
| 1084 | SLP_EMM_CORE1_SLP_SW_UNLOCK_TIME, |
| 1085 | SLP_EMM_CORE2_SLP_SW_UNLOCK_TIME, |
| 1086 | SLP_EMM_CORE3_SLP_SW_UNLOCK_TIME, |
| 1087 | SLP_EMM_SLP_INIFINITE_ENTER, |
| 1088 | #else |
| 1089 | #error "no chip match" |
| 1090 | #endif |
| 1091 | }SLP_EMM_LOG_INDEX; |
| 1092 | |
| 1093 | void SleepDrv_LockSleep( SLEEP_CTL_USER user, kal_uint8 target_core); |
| 1094 | void SleepDrv_UnlockSleep( SLEEP_CTL_USER user, kal_uint8 target_core); |
| 1095 | |
| 1096 | void Sleep_DrvLowPowerMonitorInit(void); |
| 1097 | |
| 1098 | void SleepDrv_LowPowerMonitorFlushCheck( void ); |
| 1099 | void SleepDrv_LowPowerMonitorDelete(void); |
| 1100 | void SleepDrv_LowPowerMonitorCreate(void); |
| 1101 | void SleepDrv_LowPowerMonitorStart(void); |
| 1102 | void SleepDrv_LowPowerMonitorStop(void); |
| 1103 | kal_bool SleepDrv_LowPowerMonitorSetParameter(kal_uint32 data_len, kal_uint8 *data_str); |
| 1104 | |
| 1105 | void SleepDrv_UpdatePSSlpDbgShmFixBuf(SLP_DBG_SHM_FIX_REG_INDEX index, kal_uint32 value); |
| 1106 | void SleepDrv_UpdateL1SlpDbgShmFixBuf(SLP_DBG_SHM_FIX_REG_INDEX index, kal_uint32 value); |
| 1107 | void SleepDrv_SlpDbgShmRingBufAdd(SLP_DBG_SHM_RING_BUFFER_INDEX index, kal_uint32 status, kal_uint32 dbg_info); |
| 1108 | |
| 1109 | extern kal_bool MD_TOPSM_StartLPM(kal_uint8 data_str0, kal_uint8 data_str1, kal_uint8 data_str2); |
| 1110 | extern kal_bool MD_TOPSM_DumpLPM(void); |
| 1111 | |
| 1112 | |
| 1113 | /* MDTOPSM Public API */ |
| 1114 | extern kal_uint32 SleepDrv_GetWallClk(void); |
| 1115 | extern kal_uint32 SleepDrv_GetWallClk_H(void); |
| 1116 | extern void MD_TOPSM_EnableFRC(void); /* Enable FRC API for exception handling */ |
| 1117 | extern kal_uint8 MD_TOPSM_SRCLK_SW_Control_GetHandle( kal_char* module_name ); /* Register the module as a SRCLK force on user */ |
| 1118 | extern void MD_TOPSM_SRCLK_SW_Control( SRCLK_FORCEON_USER user, kal_bool fOn ); /* SW lock or unlock 26M */ |
| 1119 | extern void MD_TOPSM_PLL_SW_Control(PS_PLL_FORCEON_USER USER,PS_TOPSM_PLL PLL, kal_bool fOn); |
| 1120 | extern void MD_TOPSM_USIP_SW_Control(PS_USIP_FORCEON_USER USER, kal_bool fOn); |
| 1121 | |
| 1122 | #include "reg_base.h" |
| 1123 | |
| 1124 | |
| 1125 | #define GET_TOPSM_FRC_VAL_R() (*(volatile kal_uint32 *)(BASE_ADDR_MDTOPSM+0x830)) |
| 1126 | #define GET_TOPSM_FRC_SYNC_VAL_2G_US() |
| 1127 | #define GET_TOPSM_FRC_SYNC_VAL_2G_26M() |
| 1128 | #define GET_TOPSM_FRC_SYNC_VAL_3G_US() |
| 1129 | #define GET_TOPSM_FRC_SYNC_VAL_3G_26M() |
| 1130 | #define GET_TOPSM_FRC_SYNC_VAL_TDD_US() |
| 1131 | #define GET_TOPSM_FRC_SYNC_VAL_TDD_26M() |
| 1132 | #define SET_GPS_SYNC_TIME(_val) |
| 1133 | |
| 1134 | |
| 1135 | |
| 1136 | #ifdef BIG_DAC_CHANGE_RECALIBRATION |
| 1137 | extern void MODEM_TOPSM_SetCurrentFreqOffset( kal_int32 freq_offset, MODEM_TOPSM_INPUT_MODULE module, CLOCK_INPUT_SOURCE clockSource ); |
| 1138 | extern void MODEM_TOPSM_SetFreqOffsetBase( kal_int32 freq_offset, MODEM_TOPSM_INPUT_MODULE module, CLOCK_INPUT_SOURCE clockSource ); |
| 1139 | #endif |
| 1140 | |
| 1141 | extern kal_uint32 MODEM_TOPSM_GetSSTA0(void); |
| 1142 | extern kal_uint32 MODEM_TOPSM_GetSSTA1(void); |
| 1143 | |
| 1144 | extern kal_bool OSTD_Is3gEnabled (void); |
| 1145 | |
| 1146 | |
| 1147 | #endif |