pseq: Add support for UCD90160 device
Refactor power sequencer class hierarchy to add support for the UCD90160
device.
Tested:
* Verify UCD information is obtained successfully from EntityManager
* Verify JSON configuration file is found and parsed successfully
* Test where no pgood error occurs
* During power on
* Verify power on continues
* Verify no error is logged
* After chassis is powered on
* Verify chassis remains powered on
* Verify no error is logged
* Test where pgood error occurs
* During power on
* Verify power on stops and chassis is powered off
* Verify correct error is logged
* Verify callouts and additional data in error log are correct
* Detected via rail
* Detected via pin
* After chassis is powered on
* Verify chassis is powered off
* Verify correct error is logged
* Verify callouts and additional data in error log are correct
* Detected via rail
* Detected via pin
Signed-off-by: Jim Wright <jlwright@us.ibm.com>
Change-Id: Ib00bc1ea34b504c245a4f0cb3979a86e51507f3c
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
diff --git a/phosphor-power-sequencer/src/ucd90160_monitor.hpp b/phosphor-power-sequencer/src/ucd90160_monitor.hpp
new file mode 100644
index 0000000..31d4567
--- /dev/null
+++ b/phosphor-power-sequencer/src/ucd90160_monitor.hpp
@@ -0,0 +1,37 @@
+#pragma once
+
+#include "ucd90x_monitor.hpp"
+
+#include <sdbusplus/bus.hpp>
+
+#include <cstdint>
+
+namespace phosphor::power::sequencer
+{
+
+/**
+ * @class UCD90160Monitor
+ * This class implements fault analysis for the UCD90160
+ * power sequencer device.
+ */
+class UCD90160Monitor : public UCD90xMonitor
+{
+ public:
+ UCD90160Monitor() = delete;
+ UCD90160Monitor(const UCD90160Monitor&) = delete;
+ UCD90160Monitor& operator=(const UCD90160Monitor&) = delete;
+ UCD90160Monitor(UCD90160Monitor&&) = delete;
+ UCD90160Monitor& operator=(UCD90160Monitor&&) = delete;
+ virtual ~UCD90160Monitor() = default;
+
+ /**
+ * Create a device object for UCD90160 monitoring.
+ * @param bus D-Bus bus object
+ * @param i2cBus The bus number of the power sequencer device
+ * @param i2cAddress The I2C address of the power sequencer device
+ */
+ UCD90160Monitor(sdbusplus::bus_t& bus, std::uint8_t i2cBus,
+ std::uint16_t i2cAddress);
+};
+
+} // namespace phosphor::power::sequencer