Use YAML for UCD definitions
Use a Python script to generate the UCD power sequencer information
needed for the pseq-monitor application.
Change-Id: I51f4b61bb4f22705584b73ba599b517780fa9adc
Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
diff --git a/power-sequencer/templates/ucd90160_defs.mako.cpp b/power-sequencer/templates/ucd90160_defs.mako.cpp
new file mode 100644
index 0000000..3aea9a6
--- /dev/null
+++ b/power-sequencer/templates/ucd90160_defs.mako.cpp
@@ -0,0 +1,80 @@
+/* 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