Files
banban/ql-kernel/threadx/common/lib_1606/hop-pm.pp
T

252 lines
9.4 KiBLFS
ObjectPascal

//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;