| #pragma once |
| |
| #include "common/include/device.hpp" |
| #include "common/include/software_config.hpp" |
| #include "common/include/software_manager.hpp" |
| #include "vr.hpp" |
| |
| namespace SoftwareInf = phosphor::software; |
| namespace ManagerInf = SoftwareInf::manager; |
| namespace DeviceInf = SoftwareInf::device; |
| namespace ConfigInf = SoftwareInf::config; |
| |
| namespace VRInf = SoftwareInf::VR; |
| |
| namespace SDBusPlusSoftware = sdbusplus::common::xyz::openbmc_project::software; |
| |
| namespace phosphor::software::i2c_vr::device |
| { |
| |
| class I2CVRDevice : public DeviceInf::Device |
| { |
| public: |
| using DeviceInf::Device::softwareCurrent; |
| I2CVRDevice(sdbusplus::async::context& ctx, enum VRInf::VRType vrType, |
| const uint16_t& bus, const uint8_t& address, |
| ConfigInf::SoftwareConfig& config, |
| ManagerInf::SoftwareManager* parent) : |
| DeviceInf::Device( |
| ctx, config, parent, |
| {SDBusPlusSoftware::ApplyTime::RequestedApplyTimes::Immediate, |
| SDBusPlusSoftware::ApplyTime::RequestedApplyTimes::OnReset}), |
| vrInterface(VRInf::create(ctx, vrType, bus, address)) |
| {} |
| |
| std::unique_ptr<VRInf::VoltageRegulator> vrInterface; |
| |
| sdbusplus::async::task<bool> updateDevice(const uint8_t* image, |
| size_t image_size) final; |
| |
| sdbusplus::async::task<bool> getVersion(uint32_t* sum) const; |
| }; |
| |
| } // namespace phosphor::software::i2c_vr::device |