| #include "pt5161l.hpp" | 
 |  | 
 | #include <phosphor-logging/lg2.hpp> | 
 |  | 
 | #include <algorithm> | 
 | #include <fstream> | 
 | #include <iomanip> | 
 | #include <sstream> | 
 |  | 
 | PHOSPHOR_LOG2_USING; | 
 |  | 
 | std::string PT5161LDeviceVersion::getVersion() | 
 | { | 
 |     std::string version; | 
 |     std::ostringstream busOss; | 
 |     std::ostringstream addrOss; | 
 |  | 
 |     busOss << std::setw(2) << std::setfill('0') << static_cast<int>(bus); | 
 |     addrOss << std::setw(4) << std::setfill('0') << std::hex << std::nouppercase | 
 |             << static_cast<int>(address); | 
 |  | 
 |     // The PT5161L driver exposes the firmware version through the fw_ver node | 
 |     std::string path = "/sys/kernel/debug/pt5161l/" + busOss.str() + "-" + | 
 |                        addrOss.str() + "/fw_ver"; | 
 |  | 
 |     std::ifstream file(path); | 
 |     if (!file) | 
 |     { | 
 |         error("Failed to get version: unable to open file: {PATH}", "PATH", | 
 |               path); | 
 |         return version; | 
 |     } | 
 |  | 
 |     if (!std::getline(file, version) || version.empty()) | 
 |     { | 
 |         error("Failed to read version from file: {PATH}", "PATH", path); | 
 |     } | 
 |  | 
 |     return version; | 
 | } | 
 |  | 
 | std::optional<HostPowerInf::HostState> | 
 |     PT5161LDeviceVersion::getHostStateToQueryVersion() | 
 | { | 
 |     return HostPowerInf::HostState::Running; | 
 | } |