blob: 7280f917ee9b3da7b6b37150d788c494cefee9e8 [file] [log] [blame] [edit]
#include "vr.hpp"
#include "isl69269/isl69269.hpp"
#include "xdpe1x2xx/xdpe1x2xx.hpp"
#include <map>
namespace phosphor::software::VR
{
std::unique_ptr<VoltageRegulator> create(sdbusplus::async::context& ctx,
enum VRType vrType, uint16_t bus,
uint16_t address)
{
std::unique_ptr<VoltageRegulator> ret;
switch (vrType)
{
case VRType::XDPE1X2XX:
ret = std::make_unique<XDPE1X2XX>(ctx, bus, address);
break;
case VRType::ISL69269:
ret = std::make_unique<ISL69269>(ctx, bus, address);
break;
default:
return NULL;
}
return ret;
}
bool stringToEnum(std::string& vrStr, VRType& vrType)
{
std::map<std::string, enum VRType> VRTypeToString{
{"XDPE1X2XXFirmware", VRType::XDPE1X2XX},
{"ISL69269Firmware", VRType::ISL69269},
};
if (VRTypeToString.contains(vrStr))
{
vrType = VRTypeToString[vrStr];
return true;
}
return false;
}
} // namespace phosphor::software::VR