//PPC Version : V2.1.9.30 //PPL Source File Name : X:\tavor\Arbel\obj_PMD2NONE\prepass_results\pm.ppp //PPL Source File Name : X:\\hop\\pm\\src\\pm.c typedef unsigned char BOOL ; typedef unsigned char UINT8 ; typedef unsigned short UINT16 ; typedef unsigned long UINT32 ; typedef char CHAR ; typedef signed char INT8 ; typedef signed short INT16 ; typedef signed long INT32 ; typedef unsigned char Bool ; typedef UINT8 BYTE ; typedef UINT8 UBYTE ; typedef UINT16 UWORD ; typedef UINT16 WORD ; typedef INT16 SWORD ; typedef UINT32 DWORD ; typedef unsigned long long UINT64 ; typedef void* VOID_PTR ; typedef volatile UINT8 *V_UINT8_PTR ; typedef volatile UINT16 *V_UINT16_PTR ; typedef volatile UINT32 *V_UINT32_PTR ; typedef unsigned int U32Bits ; typedef BOOL BOOLEAN ; typedef const char * SwVersion ; //ICAT EXPORTED ENUM typedef enum { PM_RC_OK = 0 , PM_RC_FAIL , // General Failure PM_RC_ALREADY_EXISTS // Exit function since required target alrteady exists } PM_ReturnCodeE; typedef void ( *PM_CallbackFuncDDRstateT ) ( BOOL b_DDR_ready ) ; //ICAT EXPORTED ENUM typedef enum { COMMPM_PP_NOTSET , COMMPM_PP_1 , COMMPM_PP_2 , COMMPM_PP_3 , COMMPM_PP_4 , COMMPM_NUMBER_OF_PP = 4 } CommPM_PPE; typedef void ( *COMMPM_DDRAckNotificationT ) ( CommPM_DDRAckE ackType ) ; typedef void ( *COMMPM_DDRDVFMNotificationT ) ( CommPM_PPE PPType ) ; //ICAT EXPORTED ENUM typedef enum { Service_UART = 0x01 , Enable_TCU_clock= 0x02 , Service_HSPDA = 0x04 , Service_ICAT = 0x08 , Service_client5 = 0x10 , Service_client6 = 0x20 , Service_client7 = 0x40 , Service_client8 = 0x80 } CommPM_servicesD1E; //ICAT EXPORTED ENUM typedef enum { COMMPM_MODEM_ENABLE = 0 , COMMPM_MODEM_DISABLE , COMMPM_INVALID_STATE } PM_Modem_StateE; //ICAT EXPORTED STRUCT typedef struct { UINT32 D2mode ; // 0 - no D2 , 1 - D2 alike , 2 - full D2 UINT32 D2Variation ; // 0 Stay in D0 , 1 , go to C1 , 2 Full D2 UINT32 LPTsleepTicks ; // how many ticks the LPT should sleep // temp solution for L1 Standalone. UINT32 LPTdebugBusyWait ; // to enable time to enter commands when // waking up ( since currently ( Sep 6 ) at C1 / D2 // we can not submit commands ) UINT32 DDRFunctionalityIsOn ; // 0 -regular work without DDR / 1 -DDR functionality is open for debug / 2 -DDR full functionality UINT32 endlessLoopAfterD2nExit ; UINT32 endlessLoopAfterDDRgrantnTimes ; UINT32 kickWDTonD2Exit ; UINT16 ServiceD1control ; // word that indicates service controlling D1 , if bit is set , D1 should be prevented // ( the bit position is set by the enum CommPM_servicesD1E ) UINT8 AppsCommSyncActivated ; BOOL allowC1 ; // when set real C1 from HW ( if D2 set , also C1 ? ) BOOL notifyMSA ; // if set - we work with L1 , and should notify them // otherwise we are in ' D2 standalone ' - only us BOOL LPTidle ; // LPT does nothing BOOL LPTdecisionOnly ; // do only decision no setting to HW , no prepare // ( means no real D2 , no C1 ) ( not relevant in LPTidle ) // if not set - we have full LPT functionality BOOL L1isRegister ; // to synchronize D2 decisions on L1 registration BOOL PmDebugTaskEnalbe ; // to enable / disable comm pm debug task } CommPM_workModeS; //ICAT EXPORTED STRUCT typedef struct { UINT32 DdrHfRequestTS ; // current client request TS ( maybe DDR in HF already ) UINT32 DdrHfRequestFirstClientTS ; // signifies the first client request ( the one we wait for its ack ) UINT32 DdrRegRequestTS ; UINT32 DdrRegMaxResponseTime ; UINT32 DdrHfClientTabResponseTime [ 30 ] ; UINT32 DdrRegClientTabResponseTime [ 30 ] ; UINT32 DdrHfMaxResponseTime ; } CommPM_DDRtimingS; //ICAT EXPORTED ENUM typedef enum { CommPM_Active , CommPM_Idle , COMMPM_NUMBER_OF_CPU_STATES , } CommPM_CPUStateE; typedef int ( *MMIC1PrepareFunc ) ( void ) ; typedef int ( *MMIC1RecoverFunc ) ( void ) ; typedef int ( *MMID2PrepareFunc ) ( void ) ; typedef int ( *MMID2RecoverFunc ) ( BOOL ExitFromD2 ) ; typedef int ( *MMIStatusFunc ) ( void ) ; typedef UINT32 PM_TimeIn32KHzUnitsT ; //ICAT EXPORTED ENUM typedef enum { PM_EXT_DBG_EVENT_EMPTY = 0 , PM_EXT_DBG_EVENT_GENERAL_PURPOSE = 99 , // for debug purposes , general event to // track something while debug ( not to be left in code permanently ) ! PM_EXT_DBG_EVENT_D2_EXIT =100 , // 100 PM_EXT_DBG_EVENT_C1_EXIT , // 101 PM_EXT_DBG_EVENT_C1_GATED_EXIT , // 102 PM_EXT_DBG_EVENT_TM_GET_NEAREST , // 103 PM_EXT_DBG_EVENT_TM_SUSPEND , // 104 PM_EXT_DBG_EVENT_TM_SYNCH_AFTER , // 105 PM_EXT_DBG_EVENT_TM_NU_TICK , // 106 PM_EXT_DBG_EVENT_TM_EXT_TICK , // 107 PM_EXT_DBG_EVENT_TM_SKIP_OS_TICK , // 108 PM_EXT_DBG_EVENT_TM_SUSPEND_ENABLE , // 109 PM_EXT_DBG_EVENT_TM_SUSPEND_DISABLE , // 110 PM_EXT_DBG_EVENT_TM_TRIGGER_ERROR , // 111 PM_EXT_DBG_EVENT_TICK_FROM_SYNCH , // 112 PM_EXT_DBG_EVENT_TICK_FROM_TRIGGER , // 113 PM_EXT_DBG_EVENT_TM_HW_TIMER_SET , // 114 PM_EXT_DBG_EVENT_OS_TIMER_EXPIRE , // 115 PM_EXT_DBG_EVENT_TM_TICK_SUSPENDED , // 116 PM_EXT_DBG_EVENT_ACTIVATE_NU_HISR , // 117 PM_EXT_DBG_EVENT_ACTIVATE_GKI_HISR , // 118 PM_EXT_DBG_EVENT_TIMER_DEACTIVATE , // 119 PM_EXT_DBG_EVENT_TIMER_CONFIGURE , // 120 PM_EXT_DBG_EVENT_TIMER_ACTIVATE , // 121 PM_EXT_DBG_EVENT_TIMER_STATUS_CLEAR , // 122 PM_EXT_DBG_EVENT_TIMER_TCMR_SET , // 123 PM_EXT_DBG_EVENT_TIMER_STATUS_READ , // 124 PM_EXT_DBG_EVENT_TIMER_TIER_CLEAR , // 125 PM_EXT_DBG_EVENT_TIMER_TMR_SET , // 126 PM_EXT_DBG_EVENT_TIMER_TCCR_SET , // 127 PM_EXT_DBG_EVENT_TIMER_TIER_SET , // 128 PM_EXT_DBG_EVENT_RM_PREVENT_D2 , // 129 PM_EXT_DBG_EVENT_AAM_PREVENT_D2 , // 130 PM_EXT_DBG_EVENT_GP_FLAG_1 , // 131 PM_EXT_DBG_EVENT_AAM_D2_TIMER_WAKEUP , // 132 PM_EXT_DBG_EVENT_AAM_D2_OWN_WAKEUP , // 133 PM_EXT_DBG_EVENT_AAM_MANAGE_BUSY , // 134 PM_EXT_DBG_EVENT_AAM_MANAGE_FREE , // 135 PM_EXT_DBG_EVENT_AAM_ALLOW_D2 , // 136 PM_EXT_DBG_EVENT_AAM_AA_FORBID_D2 , // 137 PM_EXT_DBG_EVENT_AAM_TM_FORBID_D2 , // 138 PM_EXT_DBG_EVENT_AAM_APP_TM_D2 , // 139 PM_EXT_DBG_EVENT_AAM_OST_TM_D2 , // 140 PM_EXT_DBG_EVENT_RM_TCU_ALLOC , // 141 PM_EXT_DBG_EVENT_RM_TCU_FREE , // 142 PM_EXT_DBG_EVENT_RM_SCK_ALLOC , // 143 PM_EXT_DBG_EVENT_RM_SCK_FREE , // 144 PM_EXT_DBG_EVENT_RM_ALLOW_D2 , // 145 PM_EXT_DBG_EVENT_RM_FORBID_D2 , // 146 PM_EXT_DBG_EVENT_RM_ALLOW_C1_GATED , // 147 PM_EXT_DBG_EVENT_TCU_D2_PREPARE , // 148 PM_EXT_DBG_EVENT_TCU_D2_RECOVER , // 149 PM_EXT_DBG_EVENT_CPA_D2_PREPARE , // 150 PM_EXT_DBG_EVENT_CPA_D2_RECOVER , // 151 PM_EXT_DBG_EVENT_CPA_D2_WAKEUP , // 152 PM_EXT_DBG_EVENT_D2_WAKEUP_TIMER , // 153 PM_EXT_DBG_EVENT_GSM_WAKEUP_SWI , // 154 PM_EXT_DBG_EVENT_GSM_SLEEP_SWI , // 155 ////////////////////////////////////////////// DDR PM_EXT_DBG_EVENT_CHANGED_TO_WAIT_FOR_DDR_HIGH_FREQ_ACK_WHILE_RELINQUISH_HIGH_IS_PENDING , PM_EXT_DBG_EVENT_CHANGED_TO_WAIT_FOR_DDR_REQUEST_ACK , PM_EXT_DBG_EVENT_CHANGED_TO_SYSTEM_IN_REG_RUNNING_MODE_AND_SEND_REQ , PM_EXT_DBG_EVENT_CHANGED_TO_WAIT_FOR_DDR_REQUEST_ACK_WHILE_HIGH_IS_PENDING , PM_EXT_DBG_EVENT_CHANGED_TO_WAIT_FOR_DDR_HIGH_FREQ_ACK , PM_EXT_DBG_EVENT_CHANGED_TO_WAIT_FOR_DDR_HIGH_FREQ_ACK_AND_SEND_REQ , PM_EXT_DBG_EVENT_CHANGED_TO_SYSTEM_IN_REG_RUNNING_MODE , PM_EXT_DBG_EVENT_AC_IPC_INTERRUPT_HANDLER , PM_EXT_DBG_EVENT_260_REL_ACK , PM_EXT_DBG_EVENT_CHANGED_SYSTEM_IN_HIGH_FREQ_MODE , PM_EXT_DBG_EVENT_DDR_REG_REQ , PM_EXT_DBG_EVENT_DDR_REG_RELINQUISH , PM_EXT_DBG_EVENT_DDR_REG_REQ_AND_RELINQUISH , PM_EXT_DBG_EVENT_DDR_HF_REQ , PM_EXT_DBG_EVENT_DDR_HF_RELINQUISH , PM_EXT_DBG_EVENT_DDR_HF_REQ_AND_RELINQUISH , PM_EXT_DBG_EVENT_DDR_STATUS_FORBID_D2 , ////////////////////////////////////////////// DDR PM_EXT_DBG_EVENT_RM_ALLOC , PM_EXT_DBG_EVENT_RM_FREE , PM_EXT_DBG_EVENT_D2_ENTRY , PM_EXT_DBG_EVENT_C1_ENTRY , PM_EXT_DBG_EVENT_C1_GATED_ENTRY , PM_EXT_DBG_EVENT_D0CS_ENTRY , PM_EXT_DBG_EVENT_D0CS_EXIT , // BRN PM_EXT_DBG_EVENT_VCTCXO_RELINQUISH , PM_EXT_DBG_EVENT_VCTCXO_REQUEST , PM_EXT_DBG_EVENT_DDR_LPM_DONE , PM_EXT_DBG_EVENT_POUT_DISABLE , PM_EXT_DBG_EVENT_POUT_ENABLE , PM_EXT_DBG_EVENT_FREQ_CHANGE_HIGH , PM_EXT_DBG_EVENT_FREQ_CHANGE_LOW , PM_EXT_DBG_EVENT_FREQ_CHANGE_USER , PM_EXT_DBG_EVENT_FREQ_CHANGE_START , PM_EXT_DBG_EVENT_FREQ_CHANGE_DONE , PM_EXT_DBG_EVENT_FREQ_CHANGE_GET_FREQ , PM_EXT_DBG_EVENT_DVFM_TABLE_UPDATE , PM_EXT_DBG_EVENT_LPM_DECISION , PM_EXT_DBG_EVENT_SRAM_MEMORY_ERRORS_COUNT , PM_EXT_DBG_WAKEUP_SRC , PM_EXT_DBG_WAKEUP_SRC_NOTREGISTER , PM_EXT_DBG_EVENT_NO_DATA = 1500 , /* indicates that no data is send with the event ( and forces the enum to be treated as UINT32 ) */ PM_EXT_DBG_DATA_FAKE_D2 =0x2000000 , // PM_EXT_DBG_DATA_REAL_D2 =0x4000000 // we add to this bit hte wakeup event register // - relevant bits are 0 -19 } PM_EventTypeE; //ICAT EXPORTED STRUCT typedef struct { PM_TimeIn32KHzUnitsT timeStamp ; PM_EventTypeE event ; UINT32 data ; } PM_TimeStampLogEnteryS; //ICAT EXPORTED STRUCT typedef struct { UINT32 nextEntryIndex ; PM_TimeStampLogEnteryS eventLog [ 256 ] ; BOOL logEnabled ; BOOL cyclic ; } PM_EventLogS;