xref: /openbmc/phosphor-bmc-code-mgmt/cpld/lattice/interface.hpp (revision f6470b5e95618fa0eeb8b03b37c53a311dfc1ef3)
1*f6470b5eSDaniel Hsu #include "cpld/cpld_interface.hpp"
2*f6470b5eSDaniel Hsu 
3*f6470b5eSDaniel Hsu namespace phosphor::software::cpld
4*f6470b5eSDaniel Hsu {
5*f6470b5eSDaniel Hsu 
6*f6470b5eSDaniel Hsu class LatticeCPLD : public CPLDInterface
7*f6470b5eSDaniel Hsu {
8*f6470b5eSDaniel Hsu   public:
LatticeCPLD(sdbusplus::async::context & ctx,const std::string & chipname,uint16_t bus,uint8_t address)9*f6470b5eSDaniel Hsu     LatticeCPLD(sdbusplus::async::context& ctx, const std::string& chipname,
10*f6470b5eSDaniel Hsu                 uint16_t bus, uint8_t address) :
11*f6470b5eSDaniel Hsu         CPLDInterface(ctx, chipname, bus, address)
12*f6470b5eSDaniel Hsu     {}
13*f6470b5eSDaniel Hsu 
14*f6470b5eSDaniel Hsu     sdbusplus::async::task<bool> updateFirmware(
15*f6470b5eSDaniel Hsu         bool force, const uint8_t* image, size_t imageSize,
16*f6470b5eSDaniel Hsu         std::function<bool(int)> progress) final;
17*f6470b5eSDaniel Hsu 
18*f6470b5eSDaniel Hsu     sdbusplus::async::task<bool> getVersion(std::string& version) final;
19*f6470b5eSDaniel Hsu };
20*f6470b5eSDaniel Hsu 
21*f6470b5eSDaniel Hsu } // namespace phosphor::software::cpld
22