pseq: Remove deprecated files

Remove C++ and JSON files that are no longer needed by the
phosphor-power-sequencer application.

Over the past few months, several large enhancements have been
implemented in this application:
* New JSON file format that merges pin and rail elements, defines power
  on sequence order of rails, defines PMBus PAGEs, and provides an
  additional type of pgood fault checking based on output voltage.
* New pgood fault detection algorithm that is device independent, checks
  rails in power on sequence order, ignores PAGEs that are not voltage
  rails, and checks for faults using new output voltage method.
* New Device class hierarchy and Rail class that support automated
  testing.

Remove the old C++ classes that are no longer used.  Also remove the
configuration files that use the old JSON format.

Tested:
* Verified repository builds without errors
* Verified automated tests run without errors
* Verified application can successfully power the system on and off
  without errors

Change-Id: I4473c01a30cfd898ffd11c75d537c2c3c95e945f
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
diff --git a/phosphor-power-sequencer/config_files/UCD90160Monitor_ibm,bonnell.json b/phosphor-power-sequencer/config_files/UCD90160Monitor_ibm,bonnell.json
deleted file mode 100644
index 2df270a..0000000
--- a/phosphor-power-sequencer/config_files/UCD90160Monitor_ibm,bonnell.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-    "rails": [
-        { "name": "12.0VA" },
-        { "name": "5.0VCS" },
-        { "name": "1.8V" },
-        { "name": "0.9V" },
-        { "name": "3.3V" },
-        { "name": "1.5V_AVDD" },
-        { "name": "0.65V_VDN" },
-        { "name": "0.7VA_VDD" },
-        { "name": "0.7VB_VDD" },
-        { "name": "0.75V_VCS" },
-        { "name": "0.9V_VIO" },
-        { "name": "0.85V_VPCIE" },
-        { "name": "PMIC2_PG" },
-        { "name": "PMIC3_PG" },
-        { "name": "VDDR_1.2VB" },
-        { "name": "VDDR_1.2VA" }
-    ],
-
-    "pins": []
-}
diff --git a/phosphor-power-sequencer/config_files/UCD90320Monitor_ibm,blueridge.json b/phosphor-power-sequencer/config_files/UCD90320Monitor_ibm,blueridge.json
deleted file mode 100644
index d8b4f60..0000000
--- a/phosphor-power-sequencer/config_files/UCD90320Monitor_ibm,blueridge.json
+++ /dev/null
@@ -1,107 +0,0 @@
-{
-    "rails": [
-        { "name": "12.0V" },
-        { "name": "5.0V_USB" },
-        { "name": "5.0V_DASD" },
-        { "name": "3.3VA" },
-        { "name": "3.3VB" },
-        { "name": "1.5V" },
-        { "name": "1.1V" },
-        { "name": "VDDA_DCM0" },
-        { "name": "VDDB_DCM0" },
-        { "name": "VDDA_DCM1" },
-        { "name": "VDDB_DCM1" },
-        { "name": "12.0VCS" },
-        { "name": "3.3VCS" },
-        { "name": "1.1V_Current" },
-        { "name": "5.0V_USB_Current" },
-        { "name": "5.0V_DASD_Current" },
-        { "name": "12.0VN" },
-        { "name": "12.0VP" },
-        { "name": "12.0VQ" },
-        { "name": "12.0VR" },
-        { "name": "ThermalDiode1" },
-        { "name": "ThermalDiode2" },
-        { "name": "ThermalDiode3" },
-        { "name": "ThermalDiode4" },
-        { "name": "VDN_DCM0" },
-        { "name": "VDN_DCM1" },
-        { "name": "VCS_DCM0" },
-        { "name": "VCS_DCM1" },
-        { "name": "VIO_DCM0" },
-        { "name": "VIO_DCM1" },
-        { "name": "VPCIE_DCM0" },
-        { "name": "VPCIE_DCM1" }
-    ],
-
-    "pins": [
-        {
-            "name": "PGOOD_12A",
-            "line": 56
-        },
-        {
-            "name": "PGOOD_12B",
-            "line": 57
-        },
-        {
-            "name": "PGOOD_12C",
-            "line": 58
-        },
-        {
-            "name": "PGOOD_12D",
-            "line": 59
-        },
-        {
-            "name": "PGOOD_12L",
-            "line": 60
-        },
-        {
-            "name": "PGOOD_12M",
-            "line": 61
-        },
-        {
-            "name": "PGOOD_12N",
-            "line": 62
-        },
-        {
-            "name": "PGOOD_12PCIE",
-            "line": 64
-        },
-        {
-            "name": "PGOOD_12Q",
-            "line": 65
-        },
-        {
-            "name": "PGOOD_VDN_DCM0",
-            "line": 72
-        },
-        {
-            "name": "PGOOD_VDN_DCM1",
-            "line": 73
-        },
-        {
-            "name": "PGOOD_VCS_DCM0",
-            "line": 74
-        },
-        {
-            "name": "PGOOD_VCS_DCM1",
-            "line": 75
-        },
-        {
-            "name": "PGOOD_VIO_DCM0",
-            "line": 76
-        },
-        {
-            "name": "PGOOD_VIO_DCM1",
-            "line": 77
-        },
-        {
-            "name": "PGOOD_VPCIE_DCM0",
-            "line": 78
-        },
-        {
-            "name": "PGOOD_VPCIE_DCM1",
-            "line": 79
-        }
-    ]
-}
diff --git a/phosphor-power-sequencer/config_files/UCD90320Monitor_ibm,everest.json b/phosphor-power-sequencer/config_files/UCD90320Monitor_ibm,everest.json
deleted file mode 100644
index 9b45ba8..0000000
--- a/phosphor-power-sequencer/config_files/UCD90320Monitor_ibm,everest.json
+++ /dev/null
@@ -1,100 +0,0 @@
-{
-    "rails": [
-        { "name": "12.0V" },
-        { "name": "3V3IO" },
-        { "name": "CP0_VDD0" },
-        { "name": "CP0_VDD1" },
-        { "name": "CP1_VDD0" },
-        { "name": "CP1_VDD1" },
-        { "name": "CP2_VDD0" },
-        { "name": "CP2_VDD1" },
-        { "name": "CP3_VDD0" },
-        { "name": "CP3_VDD1" },
-        { "name": "CP0_VCS0" },
-        { "name": "CP0_VCS1" },
-        { "name": "CP1_VCS0" },
-        { "name": "CP1_VCS1" },
-        { "name": "CP2_VCS0" },
-        {
-            "name": "CP2_VCS1",
-            "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dcm2/cpu0"
-        },
-        { "name": "CP3_VCS0" },
-        { "name": "CP3_VCS1" },
-        { "name": "CP03_AVDD" },
-        { "name": "CP12_AVDD" },
-        { "name": "CP0_VDN" },
-        { "name": "CP1_VDN" },
-        { "name": "CP2_VDN" },
-        { "name": "CP3_VDN" },
-        { "name": "CP0_VIO" },
-        { "name": "CP1_VIO" },
-        { "name": "CP2_VIO" },
-        { "name": "CP3_VIO" },
-        { "name": "CP0_VPCIE" },
-        { "name": "CP1_VPCIE" },
-        { "name": "CP2_VPCIE" },
-        { "name": "CP3_VPCIE" }
-    ],
-
-    "pins": [
-        {
-            "name": "CP0_VPCIE",
-            "line": 59
-        },
-        {
-            "name": "CP1_VPCIE",
-            "line": 60
-        },
-        {
-            "name": "CP2_VPCIE",
-            "line": 61,
-            "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dcm2/cpu0"
-        },
-        {
-            "name": "CP3_VPCIE",
-            "line": 62,
-            "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dcm3/cpu0"
-        },
-        {
-            "name": "5.0V_USB_front",
-            "line": 67
-        },
-        {
-            "name": "CP0_VDN",
-            "line": 72
-        },
-        {
-            "name": "CP1_VDN",
-            "line": 73
-        },
-        {
-            "name": "CP2_VDN",
-            "line": 74,
-            "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dcm2/cpu0"
-        },
-        {
-            "name": "CP3_VDN",
-            "line": 75,
-            "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dcm3/cpu0"
-        },
-        {
-            "name": "CP0_VIO",
-            "line": 76
-        },
-        {
-            "name": "CP1_VIO",
-            "line": 77
-        },
-        {
-            "name": "CP2_VIO",
-            "line": 78,
-            "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dcm2/cpu0"
-        },
-        {
-            "name": "CP3_VIO",
-            "line": 79,
-            "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dcm3/cpu0"
-        }
-    ]
-}
diff --git a/phosphor-power-sequencer/config_files/UCD90320Monitor_ibm,fuji.json b/phosphor-power-sequencer/config_files/UCD90320Monitor_ibm,fuji.json
deleted file mode 100644
index 9b45ba8..0000000
--- a/phosphor-power-sequencer/config_files/UCD90320Monitor_ibm,fuji.json
+++ /dev/null
@@ -1,100 +0,0 @@
-{
-    "rails": [
-        { "name": "12.0V" },
-        { "name": "3V3IO" },
-        { "name": "CP0_VDD0" },
-        { "name": "CP0_VDD1" },
-        { "name": "CP1_VDD0" },
-        { "name": "CP1_VDD1" },
-        { "name": "CP2_VDD0" },
-        { "name": "CP2_VDD1" },
-        { "name": "CP3_VDD0" },
-        { "name": "CP3_VDD1" },
-        { "name": "CP0_VCS0" },
-        { "name": "CP0_VCS1" },
-        { "name": "CP1_VCS0" },
-        { "name": "CP1_VCS1" },
-        { "name": "CP2_VCS0" },
-        {
-            "name": "CP2_VCS1",
-            "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dcm2/cpu0"
-        },
-        { "name": "CP3_VCS0" },
-        { "name": "CP3_VCS1" },
-        { "name": "CP03_AVDD" },
-        { "name": "CP12_AVDD" },
-        { "name": "CP0_VDN" },
-        { "name": "CP1_VDN" },
-        { "name": "CP2_VDN" },
-        { "name": "CP3_VDN" },
-        { "name": "CP0_VIO" },
-        { "name": "CP1_VIO" },
-        { "name": "CP2_VIO" },
-        { "name": "CP3_VIO" },
-        { "name": "CP0_VPCIE" },
-        { "name": "CP1_VPCIE" },
-        { "name": "CP2_VPCIE" },
-        { "name": "CP3_VPCIE" }
-    ],
-
-    "pins": [
-        {
-            "name": "CP0_VPCIE",
-            "line": 59
-        },
-        {
-            "name": "CP1_VPCIE",
-            "line": 60
-        },
-        {
-            "name": "CP2_VPCIE",
-            "line": 61,
-            "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dcm2/cpu0"
-        },
-        {
-            "name": "CP3_VPCIE",
-            "line": 62,
-            "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dcm3/cpu0"
-        },
-        {
-            "name": "5.0V_USB_front",
-            "line": 67
-        },
-        {
-            "name": "CP0_VDN",
-            "line": 72
-        },
-        {
-            "name": "CP1_VDN",
-            "line": 73
-        },
-        {
-            "name": "CP2_VDN",
-            "line": 74,
-            "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dcm2/cpu0"
-        },
-        {
-            "name": "CP3_VDN",
-            "line": 75,
-            "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dcm3/cpu0"
-        },
-        {
-            "name": "CP0_VIO",
-            "line": 76
-        },
-        {
-            "name": "CP1_VIO",
-            "line": 77
-        },
-        {
-            "name": "CP2_VIO",
-            "line": 78,
-            "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dcm2/cpu0"
-        },
-        {
-            "name": "CP3_VIO",
-            "line": 79,
-            "presence": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dcm3/cpu0"
-        }
-    ]
-}
diff --git a/phosphor-power-sequencer/config_files/UCD90320Monitor_ibm,rainier.json b/phosphor-power-sequencer/config_files/UCD90320Monitor_ibm,rainier.json
deleted file mode 100644
index d8b4f60..0000000
--- a/phosphor-power-sequencer/config_files/UCD90320Monitor_ibm,rainier.json
+++ /dev/null
@@ -1,107 +0,0 @@
-{
-    "rails": [
-        { "name": "12.0V" },
-        { "name": "5.0V_USB" },
-        { "name": "5.0V_DASD" },
-        { "name": "3.3VA" },
-        { "name": "3.3VB" },
-        { "name": "1.5V" },
-        { "name": "1.1V" },
-        { "name": "VDDA_DCM0" },
-        { "name": "VDDB_DCM0" },
-        { "name": "VDDA_DCM1" },
-        { "name": "VDDB_DCM1" },
-        { "name": "12.0VCS" },
-        { "name": "3.3VCS" },
-        { "name": "1.1V_Current" },
-        { "name": "5.0V_USB_Current" },
-        { "name": "5.0V_DASD_Current" },
-        { "name": "12.0VN" },
-        { "name": "12.0VP" },
-        { "name": "12.0VQ" },
-        { "name": "12.0VR" },
-        { "name": "ThermalDiode1" },
-        { "name": "ThermalDiode2" },
-        { "name": "ThermalDiode3" },
-        { "name": "ThermalDiode4" },
-        { "name": "VDN_DCM0" },
-        { "name": "VDN_DCM1" },
-        { "name": "VCS_DCM0" },
-        { "name": "VCS_DCM1" },
-        { "name": "VIO_DCM0" },
-        { "name": "VIO_DCM1" },
-        { "name": "VPCIE_DCM0" },
-        { "name": "VPCIE_DCM1" }
-    ],
-
-    "pins": [
-        {
-            "name": "PGOOD_12A",
-            "line": 56
-        },
-        {
-            "name": "PGOOD_12B",
-            "line": 57
-        },
-        {
-            "name": "PGOOD_12C",
-            "line": 58
-        },
-        {
-            "name": "PGOOD_12D",
-            "line": 59
-        },
-        {
-            "name": "PGOOD_12L",
-            "line": 60
-        },
-        {
-            "name": "PGOOD_12M",
-            "line": 61
-        },
-        {
-            "name": "PGOOD_12N",
-            "line": 62
-        },
-        {
-            "name": "PGOOD_12PCIE",
-            "line": 64
-        },
-        {
-            "name": "PGOOD_12Q",
-            "line": 65
-        },
-        {
-            "name": "PGOOD_VDN_DCM0",
-            "line": 72
-        },
-        {
-            "name": "PGOOD_VDN_DCM1",
-            "line": 73
-        },
-        {
-            "name": "PGOOD_VCS_DCM0",
-            "line": 74
-        },
-        {
-            "name": "PGOOD_VCS_DCM1",
-            "line": 75
-        },
-        {
-            "name": "PGOOD_VIO_DCM0",
-            "line": 76
-        },
-        {
-            "name": "PGOOD_VIO_DCM1",
-            "line": 77
-        },
-        {
-            "name": "PGOOD_VPCIE_DCM0",
-            "line": 78
-        },
-        {
-            "name": "PGOOD_VPCIE_DCM1",
-            "line": 79
-        }
-    ]
-}
diff --git a/phosphor-power-sequencer/src/power_sequencer_monitor.cpp b/phosphor-power-sequencer/src/power_sequencer_monitor.cpp
deleted file mode 100644
index 3c8f999..0000000
--- a/phosphor-power-sequencer/src/power_sequencer_monitor.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * Copyright © 2021 IBM Corporation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "power_sequencer_monitor.hpp"
-
-#include <fmt/format.h>
-
-#include <phosphor-logging/elog.hpp>
-#include <phosphor-logging/log.hpp>
-
-#include <exception>
-
-namespace phosphor::power::sequencer
-{
-
-using namespace phosphor::logging;
-
-PowerSequencerMonitor::PowerSequencerMonitor(sdbusplus::bus_t& bus) : bus(bus)
-{}
-
-void PowerSequencerMonitor::createBmcDump()
-{
-    try
-    {
-        auto method = bus.new_method_call(
-            "xyz.openbmc_project.Dump.Manager", "/xyz/openbmc_project/dump/bmc",
-            "xyz.openbmc_project.Dump.Create", "CreateDump");
-        method.append(
-            std::vector<
-                std::pair<std::string, std::variant<std::string, uint64_t>>>());
-        bus.call_noreply(method);
-    }
-    catch (const std::exception& e)
-    {
-        log<level::ERR>(
-            fmt::format("Unable to create dump, error: {}", e.what()).c_str());
-    }
-}
-
-void PowerSequencerMonitor::logError(
-    const std::string& message,
-    std::map<std::string, std::string>& additionalData)
-{
-    try
-    {
-        auto method = bus.new_method_call(
-            "xyz.openbmc_project.Logging", "/xyz/openbmc_project/logging",
-            "xyz.openbmc_project.Logging.Create", "Create");
-
-        // Add PID to AdditionalData
-        additionalData.emplace("_PID", std::to_string(getpid()));
-        // Set as system terminating
-        additionalData.emplace("SEVERITY_DETAIL", "SYSTEM_TERM");
-
-        method.append(message,
-                      sdbusplus::xyz::openbmc_project::Logging::server::Entry::
-                          Level::Critical,
-                      additionalData);
-        bus.call_noreply(method);
-    }
-    catch (const std::exception& e)
-    {
-        log<level::ERR>(
-            fmt::format("Unable to log error, message: {}, error: {}", message,
-                        e.what())
-                .c_str());
-    }
-}
-
-void PowerSequencerMonitor::onFailure(bool timeout,
-                                      const std::string& powerSupplyError)
-{
-    std::map<std::string, std::string> additionalData{};
-    if (!powerSupplyError.empty())
-    {
-        // Default to power supply error
-        logError(powerSupplyError, additionalData);
-    }
-    else if (timeout)
-    {
-        // Default to timeout error
-        logError(powerOnTimeoutError, additionalData);
-    }
-    else
-    {
-        // Default to generic pgood error
-        logError(shutdownError, additionalData);
-    }
-    if (!timeout)
-    {
-        createBmcDump();
-    }
-}
-
-} // namespace phosphor::power::sequencer
diff --git a/phosphor-power-sequencer/src/power_sequencer_monitor.hpp b/phosphor-power-sequencer/src/power_sequencer_monitor.hpp
deleted file mode 100644
index 740b0cd..0000000
--- a/phosphor-power-sequencer/src/power_sequencer_monitor.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-#pragma once
-
-#include <sdbusplus/bus.hpp>
-
-#include <map>
-#include <string>
-
-namespace phosphor::power::sequencer
-{
-
-constexpr auto powerOnTimeoutError =
-    "xyz.openbmc_project.Power.Error.PowerOnTimeout";
-constexpr auto shutdownError = "xyz.openbmc_project.Power.Error.Shutdown";
-
-/**
- * @class PowerSequencerMonitor
- * Define a base class for monitoring a power sequencer device.
- */
-class PowerSequencerMonitor
-{
-  public:
-    PowerSequencerMonitor() = delete;
-    PowerSequencerMonitor(const PowerSequencerMonitor&) = delete;
-    PowerSequencerMonitor& operator=(const PowerSequencerMonitor&) = delete;
-    PowerSequencerMonitor(PowerSequencerMonitor&&) = delete;
-    PowerSequencerMonitor& operator=(PowerSequencerMonitor&&) = delete;
-    virtual ~PowerSequencerMonitor() = default;
-
-    /**
-     * Create a base device object for power sequence monitoring.
-     * @param bus D-Bus bus object
-     */
-    explicit PowerSequencerMonitor(sdbusplus::bus_t& bus);
-
-    /**
-     * Logs an error using the D-Bus Create method.
-     * @param message Message property of the error log entry
-     * @param additionalData AdditionalData property of the error log entry
-     */
-    void logError(const std::string& message,
-                  std::map<std::string, std::string>& additionalData);
-
-    /**
-     * Analyzes the device for errors when the device is
-     * known to be in an error state.  A log will be created.
-     * @param timeout if the failure state was determined by timing out
-     * @param powerSupplyError The power supply error to log. A default
-     * std:string, i.e. empty string (""), is passed when there is no power
-     * supply error to log.
-     */
-    virtual void onFailure(bool timeout, const std::string& powerSupplyError);
-
-  protected:
-    /**
-     * The D-Bus bus object
-     */
-    sdbusplus::bus_t& bus;
-
-    /**
-     * Create a BMC Dump
-     */
-    void createBmcDump();
-};
-
-} // namespace phosphor::power::sequencer
diff --git a/phosphor-power-sequencer/src/ucd90160_monitor.cpp b/phosphor-power-sequencer/src/ucd90160_monitor.cpp
deleted file mode 100644
index a75a6fc..0000000
--- a/phosphor-power-sequencer/src/ucd90160_monitor.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * Copyright © 2022 IBM Corporation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "ucd90160_monitor.hpp"
-
-#include <fmt/format.h>
-#include <fmt/ranges.h>
-
-#include <phosphor-logging/log.hpp>
-
-#include <algorithm>
-#include <array>
-#include <span>
-
-namespace phosphor::power::sequencer
-{
-
-using namespace phosphor::logging;
-
-// Names of the UCD90160 GPIOs.  The array indices correspond to the Pin IDs
-// defined in the UCD90160 PMBus interface documentation.  These Pin IDs are the
-// same as the libgpiod line offsets used to obtain the GPIO values.
-static constexpr std::array<const char*, 26> gpioNames = {
-    "FPWM1_GPIO5", "FPWM2_GPIO6",  "FPWM3_GPIO7",  "FPWM4_GPIO8",
-    "FPWM5_GPIO9", "FPWM6_GPIO10", "FPWM7_GPIO11", "FPWM8_GPIO12",
-    "GPI1_PWM1",   "GPI2_PWM2",    "GPI3_PWM3",    "GPI4_PWM4",
-    "GPIO14",      "GPIO15",       "TDO_GPIO20",   "TCK_GPIO19",
-    "TMS_GPIO22",  "TDI_GPIO21",   "GPIO1",        "GPIO2",
-    "GPIO3",       "GPIO4",        "GPIO13",       "GPIO16",
-    "GPIO17",      "GPIO18"};
-
-UCD90160Monitor::UCD90160Monitor(sdbusplus::bus_t& bus, std::uint8_t i2cBus,
-                                 std::uint16_t i2cAddress) :
-    UCD90xMonitor(bus, i2cBus, i2cAddress, "UCD90160", 16)
-{}
-
-void UCD90160Monitor::formatGpioValues(
-    const std::vector<int>& values, unsigned int numberLines,
-    std::map<std::string, std::string>& additionalData) const
-{
-    // Verify the expected number of GPIO values were passed in
-    if ((values.size() == gpioNames.size()) &&
-        (numberLines == gpioNames.size()))
-    {
-        // Store GPIO names and values in additional data and journal.
-        // Use groups of GPIOs in journal to minimize number of entries.
-        unsigned int groupSize{4};
-        for (unsigned int i = 0; i < gpioNames.size(); ++i)
-        {
-            additionalData.emplace(gpioNames[i], std::to_string(values[i]));
-            if ((i % groupSize) == 0)
-            {
-                unsigned int gpiosLeft = gpioNames.size() - i;
-                unsigned int count = std::min(groupSize, gpiosLeft);
-                log<level::INFO>(
-                    fmt::format("GPIO values: {}: {}",
-                                std::span{gpioNames.begin() + i, count},
-                                std::span{values.begin() + i, count})
-                        .c_str());
-            }
-        }
-    }
-    else
-    {
-        // Unexpected number of GPIO values.  Store without names.
-        additionalData.emplace("GPIO_VALUES", fmt::format("{}", values));
-        log<level::INFO>(fmt::format("GPIO values: {}", values).c_str());
-    }
-}
-
-} // namespace phosphor::power::sequencer
diff --git a/phosphor-power-sequencer/src/ucd90160_monitor.hpp b/phosphor-power-sequencer/src/ucd90160_monitor.hpp
deleted file mode 100644
index 00a3cd8..0000000
--- a/phosphor-power-sequencer/src/ucd90160_monitor.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#pragma once
-
-#include "ucd90x_monitor.hpp"
-
-#include <sdbusplus/bus.hpp>
-
-#include <cstdint>
-#include <map>
-#include <string>
-#include <vector>
-
-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);
-
-  protected:
-    /** @copydoc UCD90xMonitor::formatGpioValues() */
-    void formatGpioValues(
-        const std::vector<int>& values, unsigned int numberLines,
-        std::map<std::string, std::string>& additionalData) const override;
-};
-
-} // namespace phosphor::power::sequencer
diff --git a/phosphor-power-sequencer/src/ucd90320_monitor.cpp b/phosphor-power-sequencer/src/ucd90320_monitor.cpp
deleted file mode 100644
index 818977b..0000000
--- a/phosphor-power-sequencer/src/ucd90320_monitor.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
- * Copyright © 2021 IBM Corporation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "ucd90320_monitor.hpp"
-
-#include <fmt/format.h>
-#include <fmt/ranges.h>
-
-#include <phosphor-logging/log.hpp>
-
-#include <span>
-
-namespace phosphor::power::sequencer
-{
-
-using namespace phosphor::logging;
-
-UCD90320Monitor::UCD90320Monitor(sdbusplus::bus_t& bus, std::uint8_t i2cBus,
-                                 std::uint16_t i2cAddress) :
-    UCD90xMonitor(bus, i2cBus, i2cAddress, "UCD90320", 32)
-{}
-
-void UCD90320Monitor::formatGpioValues(
-    const std::vector<int>& values, unsigned int numberLines,
-    std::map<std::string, std::string>& additionalData) const
-{
-    // Device has 84 GPIO pins so that value is expected
-    if (numberLines == 84 && values.size() >= 84)
-    {
-        log<level::INFO>(fmt::format("MAR01-24 GPIO values: {}",
-                                     std::span{values}.subspan(0, 24))
-                             .c_str());
-        additionalData.emplace(
-            "MAR01_24_GPIO_VALUES",
-            fmt::format("{}", std::span{values}.subspan(0, 24)));
-        log<level::INFO>(fmt::format("EN1-32 GPIO values: {}",
-                                     std::span{values}.subspan(24, 32))
-                             .c_str());
-        additionalData.emplace(
-            "EN1_32_GPIO_VALUES",
-            fmt::format("{}", std::span{values}.subspan(24, 32)));
-        log<level::INFO>(fmt::format("LGP01-16 GPIO values: {}",
-                                     std::span{values}.subspan(56, 16))
-                             .c_str());
-        additionalData.emplace(
-            "LGP01_16_GPIO_VALUES",
-            fmt::format("{}", std::span{values}.subspan(56, 16)));
-        log<level::INFO>(fmt::format("DMON1-8 GPIO values: {}",
-                                     std::span{values}.subspan(72, 8))
-                             .c_str());
-        additionalData.emplace(
-            "DMON1_8_GPIO_VALUES",
-            fmt::format("{}", std::span{values}.subspan(72, 8)));
-        log<level::INFO>(fmt::format("GPIO1-4 GPIO values: {}",
-                                     std::span{values}.subspan(80, 4))
-                             .c_str());
-        additionalData.emplace(
-            "GPIO1_4_GPIO_VALUES",
-            fmt::format("{}", std::span{values}.subspan(80, 4)));
-    }
-    else
-    {
-        log<level::INFO>(fmt::format("GPIO values: {}", values).c_str());
-        additionalData.emplace("GPIO_VALUES", fmt::format("{}", values));
-    }
-}
-
-} // namespace phosphor::power::sequencer
diff --git a/phosphor-power-sequencer/src/ucd90320_monitor.hpp b/phosphor-power-sequencer/src/ucd90320_monitor.hpp
deleted file mode 100644
index a40456d..0000000
--- a/phosphor-power-sequencer/src/ucd90320_monitor.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#pragma once
-
-#include "ucd90x_monitor.hpp"
-
-#include <sdbusplus/bus.hpp>
-
-#include <cstdint>
-#include <map>
-#include <string>
-#include <vector>
-
-namespace phosphor::power::sequencer
-{
-
-/**
- * @class UCD90320Monitor
- * This class implements fault analysis for the UCD90320
- * power sequencer device.
- */
-class UCD90320Monitor : public UCD90xMonitor
-{
-  public:
-    UCD90320Monitor() = delete;
-    UCD90320Monitor(const UCD90320Monitor&) = delete;
-    UCD90320Monitor& operator=(const UCD90320Monitor&) = delete;
-    UCD90320Monitor(UCD90320Monitor&&) = delete;
-    UCD90320Monitor& operator=(UCD90320Monitor&&) = delete;
-    virtual ~UCD90320Monitor() = default;
-
-    /**
-     * Create a device object for UCD90320 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
-     */
-    UCD90320Monitor(sdbusplus::bus_t& bus, std::uint8_t i2cBus,
-                    std::uint16_t i2cAddress);
-
-  protected:
-    /** @copydoc UCD90xMonitor::formatGpioValues() */
-    void formatGpioValues(
-        const std::vector<int>& values, unsigned int numberLines,
-        std::map<std::string, std::string>& additionalData) const override;
-};
-
-} // namespace phosphor::power::sequencer
diff --git a/phosphor-power-sequencer/src/ucd90x_monitor.cpp b/phosphor-power-sequencer/src/ucd90x_monitor.cpp
deleted file mode 100644
index f36d734..0000000
--- a/phosphor-power-sequencer/src/ucd90x_monitor.cpp
+++ /dev/null
@@ -1,568 +0,0 @@
-/**
- * Copyright © 2022 IBM Corporation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "ucd90x_monitor.hpp"
-
-#include "types.hpp"
-#include "utility.hpp"
-
-#include <fmt/format.h>
-#include <fmt/ranges.h>
-
-#include <gpiod.hpp>
-#include <nlohmann/json.hpp>
-#include <phosphor-logging/log.hpp>
-
-#include <algorithm>
-#include <chrono>
-#include <exception>
-#include <fstream>
-
-namespace phosphor::power::sequencer
-{
-
-using json = nlohmann::json;
-using namespace pmbus;
-using namespace phosphor::logging;
-
-const std::string compatibleInterface =
-    "xyz.openbmc_project.Configuration.IBMCompatibleSystem";
-const std::string compatibleNamesProperty = "Names";
-
-UCD90xMonitor::UCD90xMonitor(sdbusplus::bus_t& bus, std::uint8_t i2cBus,
-                             std::uint16_t i2cAddress,
-                             const std::string& deviceName,
-                             size_t numberPages) :
-    PowerSequencerMonitor(bus),
-    deviceName{deviceName},
-    match{bus,
-          sdbusplus::bus::match::rules::interfacesAdded() +
-              sdbusplus::bus::match::rules::sender(
-                  "xyz.openbmc_project.EntityManager"),
-          std::bind(&UCD90xMonitor::interfacesAddedHandler, this,
-                    std::placeholders::_1)},
-    numberPages{numberPages},
-    pmbusInterface{
-        fmt::format("/sys/bus/i2c/devices/{}-{:04x}", i2cBus, i2cAddress)
-            .c_str(),
-        "ucd9000", 0}
-{
-    log<level::DEBUG>(
-        fmt::format("Device path: {}", pmbusInterface.path().string()).c_str());
-    log<level::DEBUG>(fmt::format("Hwmon path: {}",
-                                  pmbusInterface.getPath(Type::Hwmon).string())
-                          .c_str());
-    log<level::DEBUG>(fmt::format("Debug path: {}",
-                                  pmbusInterface.getPath(Type::Debug).string())
-                          .c_str());
-    log<level::DEBUG>(
-        fmt::format("Device debug path: {}",
-                    pmbusInterface.getPath(Type::DeviceDebug).string())
-            .c_str());
-    log<level::DEBUG>(
-        fmt::format("Hwmon device debug path: {}",
-                    pmbusInterface.getPath(Type::HwmonDeviceDebug).string())
-            .c_str());
-
-    // Use the compatible system types information, if already available, to
-    // load the configuration file
-    findCompatibleSystemTypes();
-}
-
-void UCD90xMonitor::findCompatibleSystemTypes()
-{
-    try
-    {
-        auto subTree = util::getSubTree(bus, "/xyz/openbmc_project/inventory",
-                                        compatibleInterface, 0);
-
-        auto objectIt = subTree.cbegin();
-        if (objectIt != subTree.cend())
-        {
-            const auto& objPath = objectIt->first;
-
-            // Get the first service name
-            auto serviceIt = objectIt->second.cbegin();
-            if (serviceIt != objectIt->second.cend())
-            {
-                std::string service = serviceIt->first;
-                if (!service.empty())
-                {
-                    std::vector<std::string> compatibleSystemTypes;
-
-                    // Get compatible system types property value
-                    util::getProperty(compatibleInterface,
-                                      compatibleNamesProperty, objPath, service,
-                                      bus, compatibleSystemTypes);
-
-                    log<level::DEBUG>(
-                        fmt::format("Found compatible systems: {}",
-                                    compatibleSystemTypes)
-                            .c_str());
-                    // Use compatible systems information to find config file
-                    findConfigFile(compatibleSystemTypes);
-                }
-            }
-        }
-    }
-    catch (const std::exception&)
-    {
-        // Compatible system types information is not available.
-    }
-}
-
-void UCD90xMonitor::findConfigFile(
-    const std::vector<std::string>& compatibleSystemTypes)
-{
-    // Expected config file path name:
-    // /usr/share/phosphor-power-sequencer/<deviceName>Monitor_<systemType>.json
-
-    // Add possible file names based on compatible system types (if any)
-    for (const std::string& systemType : compatibleSystemTypes)
-    {
-        // Check if file exists
-        std::filesystem::path pathName{"/usr/share/phosphor-power-sequencer/" +
-                                       deviceName + "Monitor_" + systemType +
-                                       ".json"};
-        log<level::DEBUG>(
-            fmt::format("Attempting config file path: {}", pathName.string())
-                .c_str());
-        if (std::filesystem::exists(pathName))
-        {
-            log<level::INFO>(
-                fmt::format("Config file path: {}", pathName.string()).c_str());
-            parseConfigFile(pathName);
-            break;
-        }
-    }
-}
-
-void UCD90xMonitor::interfacesAddedHandler(sdbusplus::message_t& msg)
-{
-    // Only continue if message is valid and rails / pins have not already been
-    // found
-    if (!msg || !rails.empty())
-    {
-        return;
-    }
-
-    try
-    {
-        // Read the dbus message
-        sdbusplus::message::object_path objPath;
-        std::map<std::string,
-                 std::map<std::string, std::variant<std::vector<std::string>>>>
-            interfaces;
-        msg.read(objPath, interfaces);
-
-        // Find the compatible interface, if present
-        auto itIntf = interfaces.find(compatibleInterface);
-        if (itIntf != interfaces.cend())
-        {
-            // Find the Names property of the compatible interface, if present
-            auto itProp = itIntf->second.find(compatibleNamesProperty);
-            if (itProp != itIntf->second.cend())
-            {
-                // Get value of Names property
-                const auto& propValue = std::get<0>(itProp->second);
-                if (!propValue.empty())
-                {
-                    log<level::INFO>(
-                        fmt::format(
-                            "InterfacesAdded for compatible systems: {}",
-                            propValue)
-                            .c_str());
-
-                    // Use compatible systems information to find config file
-                    findConfigFile(propValue);
-                }
-            }
-        }
-    }
-    catch (const std::exception&)
-    {
-        // Error trying to read interfacesAdded message.
-    }
-}
-
-bool UCD90xMonitor::isPresent(const std::string& inventoryPath)
-{
-    // Empty path indicates no presence check is needed
-    if (inventoryPath.empty())
-    {
-        return true;
-    }
-
-    // Get presence from D-Bus interface/property
-    try
-    {
-        bool present{true};
-        util::getProperty(INVENTORY_IFACE, PRESENT_PROP, inventoryPath,
-                          INVENTORY_MGR_IFACE, bus, present);
-        log<level::INFO>(
-            fmt::format("Presence, path: {}, value: {}", inventoryPath, present)
-                .c_str());
-        return present;
-    }
-    catch (const std::exception& e)
-    {
-        log<level::INFO>(
-            fmt::format("Error getting presence property, path: {}, error: {}",
-                        inventoryPath, e.what())
-                .c_str());
-        return false;
-    }
-}
-
-void UCD90xMonitor::formatGpioValues(
-    const std::vector<int>& values, unsigned int /*numberLines*/,
-    std::map<std::string, std::string>& additionalData) const
-{
-    log<level::INFO>(fmt::format("GPIO values: {}", values).c_str());
-    additionalData.emplace("GPIO_VALUES", fmt::format("{}", values));
-}
-
-void UCD90xMonitor::onFailure(bool timeout, const std::string& powerSupplyError)
-{
-    std::string message;
-    std::map<std::string, std::string> additionalData{};
-
-    try
-    {
-        onFailureCheckRails(message, additionalData, powerSupplyError);
-        log<level::DEBUG>(
-            fmt::format("After onFailureCheckRails, message: {}", message)
-                .c_str());
-        onFailureCheckPins(message, additionalData);
-        log<level::DEBUG>(
-            fmt::format("After onFailureCheckPins, message: {}", message)
-                .c_str());
-    }
-    catch (const std::exception& e)
-    {
-        log<level::ERR>(
-            fmt::format("Error when collecting metadata, error: {}", e.what())
-                .c_str());
-        additionalData.emplace("ERROR", e.what());
-    }
-
-    if (message.empty())
-    {
-        // Could not isolate, but we know something failed, so issue a timeout
-        // or generic power good error
-        message = timeout ? powerOnTimeoutError : shutdownError;
-    }
-    logError(message, additionalData);
-    if (!timeout)
-    {
-        createBmcDump();
-    }
-}
-
-void UCD90xMonitor::onFailureCheckPins(
-    std::string& message, std::map<std::string, std::string>& additionalData)
-{
-    // Create a lower case version of device name to use as label in libgpiod
-    std::string label{deviceName};
-    std::transform(label.begin(), label.end(), label.begin(), ::tolower);
-
-    // Setup a list of all the GPIOs on the chip
-    gpiod::chip chip{label, gpiod::chip::OPEN_BY_LABEL};
-    log<level::INFO>(fmt::format("GPIO chip name: {}", chip.name()).c_str());
-    log<level::INFO>(fmt::format("GPIO chip label: {}", chip.label()).c_str());
-    unsigned int numberLines = chip.num_lines();
-    log<level::INFO>(
-        fmt::format("GPIO chip number of lines: {}", numberLines).c_str());
-
-    // Read GPIO values.  Work around libgpiod bulk line maximum by getting
-    // values from individual lines.  The libgpiod line offsets are the same as
-    // the Pin IDs defined in the UCD90xxx PMBus interface documentation.  These
-    // Pin IDs are different from the pin numbers on the chip.  For example, on
-    // the UCD90160, "FPWM1/GPIO5" is Pin ID/line offset 0, but it is pin number
-    // 17 on the chip.
-    std::vector<int> values;
-    try
-    {
-        for (unsigned int offset = 0; offset < numberLines; ++offset)
-        {
-            gpiod::line line = chip.get_line(offset);
-            line.request({"phosphor-power-control",
-                          gpiod::line_request::DIRECTION_INPUT, 0});
-            values.push_back(line.get_value());
-            line.release();
-        }
-    }
-    catch (const std::exception& e)
-    {
-        log<level::ERR>(
-            fmt::format("Error reading device GPIOs, error: {}", e.what())
-                .c_str());
-        additionalData.emplace("GPIO_ERROR", e.what());
-    }
-
-    formatGpioValues(values, numberLines, additionalData);
-
-    // Only check GPIOs if no rail fail was found
-    if (message.empty())
-    {
-        for (size_t pin = 0; pin < pins.size(); ++pin)
-        {
-            unsigned int line = pins[pin].line;
-            if (line < values.size())
-            {
-                int value = values[line];
-
-                if ((value == 0) && isPresent(pins[pin].presence))
-                {
-                    additionalData.emplace("INPUT_NUM",
-                                           fmt::format("{}", line));
-                    additionalData.emplace("INPUT_NAME", pins[pin].name);
-                    message =
-                        "xyz.openbmc_project.Power.Error.PowerSequencerPGOODFault";
-                    return;
-                }
-            }
-        }
-    }
-}
-
-void UCD90xMonitor::onFailureCheckRails(
-    std::string& message, std::map<std::string, std::string>& additionalData,
-    const std::string& powerSupplyError)
-{
-    auto statusWord = readStatusWord();
-    additionalData.emplace("STATUS_WORD", fmt::format("{:#06x}", statusWord));
-    try
-    {
-        additionalData.emplace("MFR_STATUS",
-                               fmt::format("{:#014x}", readMFRStatus()));
-    }
-    catch (const std::exception& e)
-    {
-        log<level::ERR>(
-            fmt::format("Error when collecting MFR_STATUS, error: {}", e.what())
-                .c_str());
-        additionalData.emplace("ERROR", e.what());
-    }
-
-    // The status_word register has a summary bit to tell us if each page even
-    // needs to be checked
-    if (statusWord & status_word::VOUT_FAULT)
-    {
-        for (size_t page = 0; page < numberPages; page++)
-        {
-            auto statusVout = pmbusInterface.insertPageNum(STATUS_VOUT, page);
-            if (pmbusInterface.exists(statusVout, Type::Debug))
-            {
-                uint8_t vout = pmbusInterface.read(statusVout, Type::Debug);
-
-                if (vout)
-                {
-                    // If any bits are on log them, though some are just
-                    // warnings so they won't cause errors
-                    log<level::INFO>(
-                        fmt::format("{}, value: {:#04x}", statusVout, vout)
-                            .c_str());
-
-                    // Log errors if any non-warning bits on
-                    if (vout & ~status_vout::WARNING_MASK)
-                    {
-                        additionalData.emplace(
-                            fmt::format("STATUS{}_VOUT", page),
-                            fmt::format("{:#04x}", vout));
-
-                        // Base the callouts on the first present vout failure
-                        // found
-                        if (message.empty() && (page < rails.size()) &&
-                            isPresent(rails[page].presence))
-                        {
-                            additionalData.emplace("RAIL_NAME",
-                                                   rails[page].name);
-
-                            // Use power supply error if set and 12v rail has
-                            // failed, else use voltage error
-                            message =
-                                ((page == 0) && !powerSupplyError.empty())
-                                    ? powerSupplyError
-                                    : "xyz.openbmc_project.Power.Error.PowerSequencerVoltageFault";
-                        }
-                    }
-                }
-            }
-        }
-    }
-    // If no vout failure found, but power supply error is set, use power supply
-    // error
-    if (message.empty())
-    {
-        message = powerSupplyError;
-    }
-}
-
-void UCD90xMonitor::parseConfigFile(const std::filesystem::path& pathName)
-{
-    try
-    {
-        log<level::DEBUG>(
-            std::string("Loading configuration file " + pathName.string())
-                .c_str());
-
-        std::ifstream file{pathName};
-        json rootElement = json::parse(file);
-        log<level::DEBUG>(fmt::format("Parsed, root element is_object: {}",
-                                      rootElement.is_object())
-                              .c_str());
-
-        // Parse rail information from config file
-        auto railsIterator = rootElement.find("rails");
-        if (railsIterator != rootElement.end())
-        {
-            for (const auto& railElement : *railsIterator)
-            {
-                log<level::DEBUG>(fmt::format("Rail element is_object: {}",
-                                              railElement.is_object())
-                                      .c_str());
-
-                auto nameIterator = railElement.find("name");
-                if (nameIterator != railElement.end())
-                {
-                    log<level::DEBUG>(fmt::format("Name element is_string: {}",
-                                                  (*nameIterator).is_string())
-                                          .c_str());
-                    Rail rail;
-                    rail.name = (*nameIterator).get<std::string>();
-
-                    // Presence element is optional
-                    auto presenceIterator = railElement.find("presence");
-                    if (presenceIterator != railElement.end())
-                    {
-                        log<level::DEBUG>(
-                            fmt::format("Presence element is_string: {}",
-                                        (*presenceIterator).is_string())
-                                .c_str());
-
-                        rail.presence = (*presenceIterator).get<std::string>();
-                    }
-
-                    log<level::DEBUG>(
-                        fmt::format("Adding rail, name: {}, presence: {}",
-                                    rail.name, rail.presence)
-                            .c_str());
-                    rails.emplace_back(std::move(rail));
-                }
-                else
-                {
-                    log<level::ERR>(
-                        fmt::format(
-                            "No name found within rail in configuration file: {}",
-                            pathName.string())
-                            .c_str());
-                }
-            }
-        }
-        else
-        {
-            log<level::ERR>(
-                fmt::format("No rails found in configuration file: {}",
-                            pathName.string())
-                    .c_str());
-        }
-        log<level::DEBUG>(
-            fmt::format("Found number of rails: {}", rails.size()).c_str());
-
-        // Parse pin information from config file
-        auto pinsIterator = rootElement.find("pins");
-        if (pinsIterator != rootElement.end())
-        {
-            for (const auto& pinElement : *pinsIterator)
-            {
-                log<level::DEBUG>(fmt::format("Pin element is_object: {}",
-                                              pinElement.is_object())
-                                      .c_str());
-                auto nameIterator = pinElement.find("name");
-                auto lineIterator = pinElement.find("line");
-                if (nameIterator != pinElement.end() &&
-                    lineIterator != pinElement.end())
-                {
-                    log<level::DEBUG>(fmt::format("Name element is_string: {}",
-                                                  (*nameIterator).is_string())
-                                          .c_str());
-                    log<level::DEBUG>(
-                        fmt::format("Line element is_number_integer: {}",
-                                    (*lineIterator).is_number_integer())
-                            .c_str());
-                    Pin pin;
-                    pin.name = (*nameIterator).get<std::string>();
-                    pin.line = (*lineIterator).get<unsigned int>();
-
-                    // Presence element is optional
-                    auto presenceIterator = pinElement.find("presence");
-                    if (presenceIterator != pinElement.end())
-                    {
-                        log<level::DEBUG>(
-                            fmt::format("Presence element is_string: {}",
-                                        (*presenceIterator).is_string())
-                                .c_str());
-                        pin.presence = (*presenceIterator).get<std::string>();
-                    }
-
-                    log<level::DEBUG>(
-                        fmt::format(
-                            "Adding pin, name: {}, line: {}, presence: {}",
-                            pin.name, pin.line, pin.presence)
-                            .c_str());
-                    pins.emplace_back(std::move(pin));
-                }
-                else
-                {
-                    log<level::ERR>(
-                        fmt::format(
-                            "No name or line found within pin in configuration file: {}",
-                            pathName.string())
-                            .c_str());
-                }
-            }
-        }
-        else
-        {
-            log<level::ERR>(
-                fmt::format("No pins found in configuration file: {}",
-                            pathName.string())
-                    .c_str());
-        }
-        log<level::DEBUG>(
-            fmt::format("Found number of pins: {}", pins.size()).c_str());
-    }
-    catch (const std::exception& e)
-    {
-        log<level::ERR>(
-            fmt::format("Error parsing configuration file, error: {}", e.what())
-                .c_str());
-    }
-}
-
-uint16_t UCD90xMonitor::readStatusWord()
-{
-    return pmbusInterface.read(STATUS_WORD, Type::Debug);
-}
-
-uint64_t UCD90xMonitor::readMFRStatus()
-{
-    const std::string mfrStatus = "mfr_status";
-    return pmbusInterface.read(mfrStatus, Type::HwmonDeviceDebug);
-}
-
-} // namespace phosphor::power::sequencer
diff --git a/phosphor-power-sequencer/src/ucd90x_monitor.hpp b/phosphor-power-sequencer/src/ucd90x_monitor.hpp
deleted file mode 100644
index f52046c..0000000
--- a/phosphor-power-sequencer/src/ucd90x_monitor.hpp
+++ /dev/null
@@ -1,178 +0,0 @@
-#pragma once
-
-#include "pmbus.hpp"
-#include "power_sequencer_monitor.hpp"
-
-#include <sdbusplus/bus.hpp>
-#include <sdbusplus/bus/match.hpp>
-
-#include <cstdint>
-#include <filesystem>
-#include <map>
-#include <string>
-#include <vector>
-
-namespace phosphor::power::sequencer
-{
-
-struct Pin
-{
-    std::string name;
-    unsigned int line;
-    std::string presence;
-};
-
-struct Rail
-{
-    std::string name;
-    std::string presence;
-};
-
-/**
- * @class UCD90xMonitor
- * Define a base class for monitoring the UCD90* family of power sequencer
- * devices.
- */
-class UCD90xMonitor : public PowerSequencerMonitor
-{
-  public:
-    UCD90xMonitor() = delete;
-    UCD90xMonitor(const UCD90xMonitor&) = delete;
-    UCD90xMonitor& operator=(const UCD90xMonitor&) = delete;
-    UCD90xMonitor(UCD90xMonitor&&) = delete;
-    UCD90xMonitor& operator=(UCD90xMonitor&&) = delete;
-    virtual ~UCD90xMonitor() = default;
-
-    /**
-     * Create a base object for UCD90* 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
-     * @param deviceName The name of the device
-     * @param numberPages The number of pages the PMBus device supports
-     */
-    UCD90xMonitor(sdbusplus::bus_t& bus, std::uint8_t i2cBus,
-                  std::uint16_t i2cAddress, const std::string& deviceName,
-                  size_t numberPages);
-
-    /**
-     * Callback function to handle interfacesAdded D-Bus signals
-     * @param msg Expanded sdbusplus message data
-     */
-    void interfacesAddedHandler(sdbusplus::message_t& msg);
-
-    /** @copydoc PowerSequencerMonitor::onFailure() */
-    void onFailure(bool timeout, const std::string& powerSupplyError) override;
-
-  protected:
-    /**
-     * Formats the GPIO values read from the device.
-     * @param values List of GPIO values
-     * @param numberLines Number of GPIO lines
-     * @param additionalData AdditionalData property of the error log entry
-     */
-    virtual void formatGpioValues(
-        const std::vector<int>& values, unsigned int numberLines,
-        std::map<std::string, std::string>& additionalData) const;
-
-  private:
-    /**
-     * Device name
-     */
-    std::string deviceName;
-
-    /**
-     * The match to Entity Manager interfaces added.
-     */
-    sdbusplus::bus::match_t match;
-
-    /**
-     * The number of pages the PMBus device supports
-     */
-    size_t numberPages;
-
-    /**
-     * List of pins
-     */
-    std::vector<Pin> pins;
-
-    /**
-     * The read/write interface to this hardware
-     */
-    pmbus::PMBus pmbusInterface;
-
-    /**
-     * List of rails
-     */
-    std::vector<Rail> rails;
-
-    /**
-     * Finds the list of compatible system types using D-Bus methods.
-     * This list is used to find the correct JSON configuration file for the
-     * current system.
-     */
-    void findCompatibleSystemTypes();
-
-    /**
-     * Finds the JSON configuration file.
-     * Looks for a configuration file based on the list of compatible system
-     * types.
-     * Throws an exception if an operating system error occurs while checking
-     * for the existance of a file.
-     * @param compatibleSystemTypes List of compatible system types
-     */
-    void findConfigFile(const std::vector<std::string>& compatibleSystemTypes);
-
-    /**
-     * Returns whether the hardware with the specified inventory path is
-     * present.
-     * If an error occurs while obtaining the presence value, presence is
-     * assumed to be false. An empty string path indicates no presence check is
-     * needed.
-     * @param inventoryPath D-Bus inventory path of the hardware
-     * @return true if hardware is present, false otherwise
-     */
-    bool isPresent(const std::string& inventoryPath);
-
-    /**
-     * Analyzes the device pins for errors when the device is known to be in an
-     * error state.
-     * @param message Message property of the error log entry
-     * @param additionalData AdditionalData property of the error log entry
-     */
-    void onFailureCheckPins(std::string& message,
-                            std::map<std::string, std::string>& additionalData);
-
-    /**
-     * Analyzes the device rails for errors when the device is known to be in an
-     * error state.
-     * @param message Message property of the error log entry
-     * @param additionalData AdditionalData property of the error log entry
-     * @param powerSupplyError The power supply error to log. A default
-     * std:string, i.e. empty string (""), is passed when there is no power
-     * supply error to log.
-     */
-    void onFailureCheckRails(std::string& message,
-                             std::map<std::string, std::string>& additionalData,
-                             const std::string& powerSupplyError);
-
-    /**
-     * Parse the JSON configuration file.
-     * @param pathName the path name
-     */
-    void parseConfigFile(const std::filesystem::path& pathName);
-
-    /**
-     * Reads the mfr_status register
-     * @return the register contents
-     */
-    uint64_t readMFRStatus();
-
-    /**
-     * Reads the status_word register
-     * @return the register contents
-     */
-    uint16_t readStatusWord();
-};
-
-} // namespace phosphor::power::sequencer