mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-01-25 14:29:22 -05:00
54 lines
1.2 KiB
C++
54 lines
1.2 KiB
C++
/*
|
|
* @file PowerManager.cpp
|
|
* @author Mateusz Piesta (mateusz.piesta@mudita.com)
|
|
* @date 12.09.19
|
|
* @brief
|
|
* @copyright Copyright (C) 2019 mudita.com
|
|
* @details
|
|
*/
|
|
|
|
#include <log/log.hpp>
|
|
|
|
#include "PowerManager.hpp"
|
|
|
|
namespace sys
|
|
{
|
|
|
|
PowerManager::PowerManager()
|
|
{
|
|
lowPowerControl = bsp::LowPowerMode::Create().value_or(nullptr);
|
|
}
|
|
|
|
PowerManager::~PowerManager()
|
|
{}
|
|
|
|
int32_t PowerManager::Switch(const sys::PowerManager::Mode mode)
|
|
{
|
|
|
|
int32_t ret = 0;
|
|
switch (mode) {
|
|
case Mode::FullSpeed:
|
|
ret = lowPowerControl->Switch(bsp::LowPowerMode::Mode::FullSpeed);
|
|
break;
|
|
case Mode::LowPowerIdle:
|
|
case Mode::LowPowerRun:
|
|
case Mode::Suspend:
|
|
LOG_FATAL("LowPowerIdle temporary disabled!");
|
|
// Low power is temporary disabled it was breaking i.e. GSM
|
|
// ret = lowPowerControl->Switch(bsp::LowPowerMode::Mode::LowPowerIdle);
|
|
break;
|
|
}
|
|
|
|
if (ret == 0) {
|
|
currentPowerMode = mode;
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
int32_t PowerManager::PowerOff()
|
|
{
|
|
return lowPowerControl->PowerOff();
|
|
}
|
|
|
|
} // namespace sys
|