Power_Ip_InstallNotificationsCallback (void (*Power_Ip_ReportErrorsCallbackType) (Power_Ip_ReportErrorType, uint8) ReportErrorsCallback)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  Power_Ip_pfReportErrorsCallback = ReportErrorsCallback;
  return;

}


Power_Ip_Init (const struct Power_Ip_HwIPsConfigType * HwIPsConfigPtr)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = HwIPsConfigPtr->McRgmConfigPtr;
  Power_Ip_MC_RGM_ResetInit (_1);
  # DEBUG BEGIN_STMT
  _2 = HwIPsConfigPtr->PMCConfigPtr;
  Power_Ip_PMC_PowerInit (_2);
  return;

}


Power_Ip_GetResetRawValue ()
{
  Power_Ip_RawResetType ResetReason;
  Power_Ip_RawResetType D.6599;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ResetReason = Power_Ip_MC_RGM_GetResetRawValue ();
  # DEBUG BEGIN_STMT
  D.6599 = ResetReason;
  return D.6599;

}


Power_Ip_GetResetReason ()
{
  Power_Ip_ResetType ResetReason;
  Power_Ip_ResetType D.6597;

  <bb 2> :
  # DEBUG BEGIN_STMT
  ResetReason = 28;
  # DEBUG BEGIN_STMT
  ResetReason = Power_Ip_MC_RGM_GetResetReason ();
  # DEBUG BEGIN_STMT
  D.6597 = ResetReason;
  return D.6597;

}


Power_Ip_SetMode (const struct Power_Ip_ModeConfigType * ModeConfigPtr)
{
  Power_Ip_MSCM_CpxType McuCpxType;
  Power_Ip_PowerModeType PowerMode;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  PowerMode = ModeConfigPtr->PowerMode;
  # DEBUG BEGIN_STMT
  Power_Ip_OnOffPartCoreCofb (ModeConfigPtr);
  # DEBUG BEGIN_STMT
  if (PowerMode <= 1)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  Power_Ip_MC_ME_SocTriggerResetEvent (PowerMode);
  goto <bb 7>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  if (PowerMode == 3)
    goto <bb 5>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  McuCpxType = Power_Ip_MSCM_GetPersonality ();
  # DEBUG BEGIN_STMT
  _1 = (int) McuCpxType;
  if (_1 == 2)
    goto <bb 6>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 6> :
<L3>:
  # DEBUG BEGIN_STMT
  Power_Ip_CortexM_WarmReset ();
  # DEBUG BEGIN_STMT

  <bb 7> :
  # DEBUG BEGIN_STMT
  return;

}


Power_Ip_OnOffPartCoreCofb (const struct Power_Ip_ModeConfigType * ModeConfigPtr)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = ModeConfigPtr->McMeModeConfigPtr;
  Power_Ip_MC_ME_EnablePartitionClock (_1);
  # DEBUG BEGIN_STMT
  _2 = ModeConfigPtr->McRgmModeConfigPtr;
  Power_Ip_MC_RGM_EnableResetDomain (_2);
  # DEBUG BEGIN_STMT
  _3 = ModeConfigPtr->McMeModeConfigPtr;
  Power_Ip_MC_ME_DisablePartitionOutputSafe (_3);
  # DEBUG BEGIN_STMT
  _4 = ModeConfigPtr->McMeModeConfigPtr;
  Power_Ip_MC_ME_ConfigCoreCOFBClock (_4);
  # DEBUG BEGIN_STMT
  Power_Ip_ConfigPartCoreCofbReset (ModeConfigPtr);
  # DEBUG BEGIN_STMT
  _5 = ModeConfigPtr->McRgmModeConfigPtr;
  Power_Ip_MC_RGM_DisableResetDomain (_5);
  # DEBUG BEGIN_STMT
  _6 = ModeConfigPtr->McMeModeConfigPtr;
  Power_Ip_MC_ME_DisablePartitionClock (_6);
  # DEBUG BEGIN_STMT
  _7 = ModeConfigPtr->McMeModeConfigPtr;
  Power_Ip_MC_ME_EnablePartitionOutputSafe (_7);
  return;

}


Power_Ip_ConfigPartCoreCofbReset (const struct Power_Ip_ModeConfigType * ModeConfigPtr)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = ModeConfigPtr->McRgmModeConfigPtr;
  Power_Ip_MC_RGM_ModeConfig (_1);
  # DEBUG BEGIN_STMT
  _2 = ModeConfigPtr->McRgmModeConfigPtr;
  Power_Ip_MC_RGM_CheckModeConfig (_2);
  return;

}


