/* This is a generated file. */

#include "ucd90160.hpp"

namespace witherspoon
{
namespace power
{

using namespace ucd90160;
using namespace std::string_literals;

const DeviceMap UCD90160::deviceMap{
    {0,
     DeviceDefinition{
         "/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/"
         "1e78a400.i2c-bus/i2c-11/11-0064",

         RailNames{"5.0VCS"s, "12.0V"s, "3.3V"s, "1.8V"s, "1.1V"s, "1.0V"s,
                   "0.9V"s, "VDN-A"s, "VDN-B"s, "AVDD"s, "VIO-A"s, "VIO-B"s,
                   "VDD-A"s, "VDD-B"s, "VCS-A"s, "VCS-B"s},

         GPIConfigs{
             GPIConfig{1, 8, "PGOOD_5P0V"s, false, extraAnalysisType::none},
             GPIConfig{2, 9, "MEM_GOOD0"s, false, extraAnalysisType::none},
             GPIConfig{3, 10, "MEM_GOOD1"s, false, extraAnalysisType::none},
             GPIConfig{4, 14, "GPU_PGOOD"s, false, extraAnalysisType::gpuPGOOD},
             GPIConfig{5, 17, "GPU_TH_OVERT"s, true,
                       extraAnalysisType::gpuOverTemp},
             GPIConfig{6, 11, "SOFTWARE_PGOOD"s, false,
                       extraAnalysisType::none}},

         GPIOAnalysis{
             {extraAnalysisType::gpuPGOOD,
              GPIOGroup{
                  "/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@"
                  "1e78a000/1e78a400.i2c-bus/i2c-11/11-0060",
                  gpio::Value::low,
                  [](auto& ucd, const auto& callout) {
                      ucd.gpuPGOODError(callout);
                  },
                  optionFlags::none,
                  GPIODefinitions{
                      GPIODefinition{8,
                                     "/system/chassis/motherboard/gv100card0"s},
                      GPIODefinition{9,
                                     "/system/chassis/motherboard/gv100card1"s},
                      GPIODefinition{10,
                                     "/system/chassis/motherboard/gv100card2"s},
                      GPIODefinition{11,
                                     "/system/chassis/motherboard/gv100card3"s},
                      GPIODefinition{12,
                                     "/system/chassis/motherboard/gv100card4"s},
                      GPIODefinition{
                          13, "/system/chassis/motherboard/gv100card5"s}}}},

             {extraAnalysisType::gpuOverTemp,
              GPIOGroup{
                  "/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@"
                  "1e78a000/1e78a400.i2c-bus/i2c-11/11-0060",
                  gpio::Value::low,
                  [](auto& ucd,
                     const auto& callout) { ucd.gpuOverTempError(callout); },
                  optionFlags::shutdownOnFault,
                  GPIODefinitions{
                      GPIODefinition{2,
                                     "/system/chassis/motherboard/gv100card0"s},
                      GPIODefinition{3,
                                     "/system/chassis/motherboard/gv100card1"s},
                      GPIODefinition{4,
                                     "/system/chassis/motherboard/gv100card2"s},
                      GPIODefinition{5,
                                     "/system/chassis/motherboard/gv100card3"s},
                      GPIODefinition{6,
                                     "/system/chassis/motherboard/gv100card4"s},
                      GPIODefinition{
                          7, "/system/chassis/motherboard/gv100card5"s}}}}}}}};

} // namespace power
} // namespace witherspoon
