|  | #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 |