diff --git a/.gitignore b/.gitignore
index 0aa8e6b..77b0c3e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,5 +27,5 @@
 stamp-h1
 witherspoon-pseq-monitor
 witherspoon-psu-monitor
-xyz/openbmc_project/Power/Fault/
+org/open_power/Witherspoon/Fault/
 test-driver
diff --git a/Makefile.am b/Makefile.am
index a3330fd..ff49c2a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -16,21 +16,21 @@
 	pmbus.cpp \
 	timer.cpp \
 	utility.cpp \
-	xyz/openbmc_project/Power/Fault/error.cpp
+	org/open_power/Witherspoon/Fault/error.cpp
 
 nobase_nodist_include_HEADERS = \
-	xyz/openbmc_project/Power/Fault/error.hpp
+	org/open_power/Witherspoon/Fault/error.hpp
 
 BUILT_SOURCES = \
-	xyz/openbmc_project/Power/Fault/error.cpp \
-	xyz/openbmc_project/Power/Fault/error.hpp
+	org/open_power/Witherspoon/Fault/error.cpp \
+	org/open_power/Witherspoon/Fault/error.hpp
 
-xyz/openbmc_project/Power/Fault/error.hpp: ${srcdir}/xyz/openbmc_project/Power/Fault.errors.yaml
+org/open_power/Witherspoon/Fault/error.hpp: ${srcdir}/org/open_power/Witherspoon/Fault.errors.yaml
 	@mkdir -p `dirname $@`
-	$(SDBUSPLUSPLUS) -r $(srcdir) error exception-header xyz.openbmc_project.Power.Fault > $@
+	$(SDBUSPLUSPLUS) -r $(srcdir) error exception-header org.open_power.Witherspoon.Fault > $@
 
-xyz/openbmc_project/Power/Fault/error.cpp: ${srcdir}/xyz/openbmc_project/Power/Fault.errors.yaml
+org/open_power/Witherspoon/Fault/error.cpp: ${srcdir}/org/open_power/Witherspoon/Fault.errors.yaml
 	@mkdir -p `dirname $@`
-	$(SDBUSPLUSPLUS) -r $(srcdir) error exception-cpp xyz.openbmc_project.Power.Fault > $@
+	$(SDBUSPLUSPLUS) -r $(srcdir) error exception-cpp org.open_power.Witherspoon.Fault > $@
 
 SUBDIRS = . power-sequencer power-supply test
diff --git a/elog-errors.hpp b/elog-errors.hpp
index d0c5500..e71aa5f 100644
--- a/elog-errors.hpp
+++ b/elog-errors.hpp
@@ -11,42 +11,22 @@
 
 namespace sdbusplus
 {
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
 namespace Error
 {
-    struct PowerOnFailure;
+    struct PowerSequencerPGOODFault;
 } // namespace Error
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
-} // namespace sdbusplus
-
-namespace sdbusplus
-{
-namespace xyz
-{
-namespace openbmc_project
-{
-namespace Power
-{
-namespace Fault
-{
-namespace Error
-{
-    struct PowerSequencerFault;
-} // namespace Error
-} // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 } // namespace sdbusplus
 
 namespace sdbusplus
@@ -71,22 +51,22 @@
 
 namespace sdbusplus
 {
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
 namespace Error
 {
-    struct PowerSupplyTemperatureFault;
+    struct PowerOnFailure;
 } // namespace Error
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 } // namespace sdbusplus
 
 namespace sdbusplus
@@ -131,42 +111,62 @@
 
 namespace sdbusplus
 {
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
 namespace Error
 {
-    struct PowerSequencerPGOODFault;
+    struct GPUPowerFault;
 } // namespace Error
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 } // namespace sdbusplus
 
 namespace sdbusplus
 {
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
 namespace Error
 {
-    struct PowerSupplyShouldBeOn;
+    struct Shutdown;
 } // namespace Error
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
+} // namespace sdbusplus
+
+namespace sdbusplus
+{
+namespace org
+{
+namespace open_power
+{
+namespace Witherspoon
+{
+namespace Fault
+{
+namespace Error
+{
+    struct PowerSupplyInputFault;
+} // namespace Error
+} // namespace Fault
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 } // namespace sdbusplus
 
 namespace sdbusplus
@@ -191,111 +191,31 @@
 
 namespace sdbusplus
 {
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
 namespace Error
 {
-    struct PowerSupplyUnderVoltageFault;
+    struct PowerSequencerFault;
 } // namespace Error
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 } // namespace sdbusplus
 
 namespace sdbusplus
 {
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
-{
-namespace Fault
-{
-namespace Error
-{
-    struct PowerSupplyFanFault;
-} // namespace Error
-} // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
-} // namespace sdbusplus
-
-namespace sdbusplus
-{
-namespace xyz
-{
-namespace openbmc_project
-{
-namespace Power
-{
-namespace Fault
-{
-namespace Error
-{
-    struct PowerSupplyInputFault;
-} // namespace Error
-} // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
-} // namespace sdbusplus
-
-namespace sdbusplus
-{
-namespace xyz
-{
-namespace openbmc_project
-{
-namespace Power
-{
-namespace Fault
-{
-namespace Error
-{
-    struct GPUPowerFault;
-} // namespace Error
-} // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
-} // namespace sdbusplus
-
-namespace sdbusplus
-{
-namespace xyz
-{
-namespace openbmc_project
-{
-namespace Power
-{
-namespace Fault
-{
-namespace Error
-{
-    struct PowerSupplyOutputOvervoltage;
-} // namespace Error
-} // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
-} // namespace sdbusplus
-
-namespace sdbusplus
-{
-namespace xyz
-{
-namespace openbmc_project
-{
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
@@ -304,29 +224,89 @@
     struct PowerSupplyOutputOvercurrent;
 } // namespace Error
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 } // namespace sdbusplus
 
 namespace sdbusplus
 {
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
 namespace Error
 {
-    struct GPUOverTemp;
+    struct PowerSupplyOutputOvervoltage;
 } // namespace Error
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
+} // namespace sdbusplus
+
+namespace sdbusplus
+{
+namespace org
+{
+namespace open_power
+{
+namespace Witherspoon
+{
+namespace Fault
+{
+namespace Error
+{
+    struct PowerSupplyFanFault;
+} // namespace Error
+} // namespace Fault
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
+} // namespace sdbusplus
+
+namespace sdbusplus
+{
+namespace org
+{
+namespace open_power
+{
+namespace Witherspoon
+{
+namespace Fault
+{
+namespace Error
+{
+    struct PowerSequencerVoltageFault;
+} // namespace Error
+} // namespace Fault
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
+} // namespace sdbusplus
+
+namespace sdbusplus
+{
+namespace org
+{
+namespace open_power
+{
+namespace Witherspoon
+{
+namespace Fault
+{
+namespace Error
+{
+    struct PowerSupplyUnderVoltageFault;
+} // namespace Error
+} // namespace Fault
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 } // namespace sdbusplus
 
 namespace sdbusplus
@@ -351,42 +331,62 @@
 
 namespace sdbusplus
 {
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
 namespace Error
 {
-    struct PowerSequencerVoltageFault;
+    struct PowerSupplyTemperatureFault;
 } // namespace Error
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 } // namespace sdbusplus
 
 namespace sdbusplus
 {
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
 namespace Error
 {
-    struct Shutdown;
+    struct PowerSupplyShouldBeOn;
 } // namespace Error
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
+} // namespace sdbusplus
+
+namespace sdbusplus
+{
+namespace org
+{
+namespace open_power
+{
+namespace Witherspoon
+{
+namespace Fault
+{
+namespace Error
+{
+    struct GPUOverTemp;
+} // namespace Error
+} // namespace Fault
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 } // namespace sdbusplus
 
 
@@ -653,11 +653,11 @@
 
 }
 
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
@@ -684,27 +684,27 @@
 };
 
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 
 
 namespace details
 {
 
 template <>
-struct map_exception_type<sdbusplus::xyz::openbmc_project::Power::Fault::Error::PowerSupplyUnderVoltageFault>
+struct map_exception_type<sdbusplus::org::open_power::Witherspoon::Fault::Error::PowerSupplyUnderVoltageFault>
 {
-    using type = xyz::openbmc_project::Power::Fault::PowerSupplyUnderVoltageFault;
+    using type = org::open_power::Witherspoon::Fault::PowerSupplyUnderVoltageFault;
 };
 
 }
 
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
@@ -731,27 +731,27 @@
 };
 
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 
 
 namespace details
 {
 
 template <>
-struct map_exception_type<sdbusplus::xyz::openbmc_project::Power::Fault::Error::PowerSupplyInputFault>
+struct map_exception_type<sdbusplus::org::open_power::Witherspoon::Fault::Error::PowerSupplyInputFault>
 {
-    using type = xyz::openbmc_project::Power::Fault::PowerSupplyInputFault;
+    using type = org::open_power::Witherspoon::Fault::PowerSupplyInputFault;
 };
 
 }
 
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
@@ -779,27 +779,27 @@
 };
 
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 
 
 namespace details
 {
 
 template <>
-struct map_exception_type<sdbusplus::xyz::openbmc_project::Power::Fault::Error::PowerSupplyShouldBeOn>
+struct map_exception_type<sdbusplus::org::open_power::Witherspoon::Fault::Error::PowerSupplyShouldBeOn>
 {
-    using type = xyz::openbmc_project::Power::Fault::PowerSupplyShouldBeOn;
+    using type = org::open_power::Witherspoon::Fault::PowerSupplyShouldBeOn;
 };
 
 }
 
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
@@ -827,27 +827,27 @@
 };
 
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 
 
 namespace details
 {
 
 template <>
-struct map_exception_type<sdbusplus::xyz::openbmc_project::Power::Fault::Error::PowerSupplyOutputOvercurrent>
+struct map_exception_type<sdbusplus::org::open_power::Witherspoon::Fault::Error::PowerSupplyOutputOvercurrent>
 {
-    using type = xyz::openbmc_project::Power::Fault::PowerSupplyOutputOvercurrent;
+    using type = org::open_power::Witherspoon::Fault::PowerSupplyOutputOvercurrent;
 };
 
 }
 
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
@@ -875,27 +875,27 @@
 };
 
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 
 
 namespace details
 {
 
 template <>
-struct map_exception_type<sdbusplus::xyz::openbmc_project::Power::Fault::Error::PowerSupplyOutputOvervoltage>
+struct map_exception_type<sdbusplus::org::open_power::Witherspoon::Fault::Error::PowerSupplyOutputOvervoltage>
 {
-    using type = xyz::openbmc_project::Power::Fault::PowerSupplyOutputOvervoltage;
+    using type = org::open_power::Witherspoon::Fault::PowerSupplyOutputOvervoltage;
 };
 
 }
 
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
@@ -923,27 +923,27 @@
 };
 
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 
 
 namespace details
 {
 
 template <>
-struct map_exception_type<sdbusplus::xyz::openbmc_project::Power::Fault::Error::PowerSupplyFanFault>
+struct map_exception_type<sdbusplus::org::open_power::Witherspoon::Fault::Error::PowerSupplyFanFault>
 {
-    using type = xyz::openbmc_project::Power::Fault::PowerSupplyFanFault;
+    using type = org::open_power::Witherspoon::Fault::PowerSupplyFanFault;
 };
 
 }
 
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
@@ -971,27 +971,27 @@
 };
 
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 
 
 namespace details
 {
 
 template <>
-struct map_exception_type<sdbusplus::xyz::openbmc_project::Power::Fault::Error::PowerSupplyTemperatureFault>
+struct map_exception_type<sdbusplus::org::open_power::Witherspoon::Fault::Error::PowerSupplyTemperatureFault>
 {
-    using type = xyz::openbmc_project::Power::Fault::PowerSupplyTemperatureFault;
+    using type = org::open_power::Witherspoon::Fault::PowerSupplyTemperatureFault;
 };
 
 }
 
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
@@ -1009,27 +1009,27 @@
 };
 
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 
 
 namespace details
 {
 
 template <>
-struct map_exception_type<sdbusplus::xyz::openbmc_project::Power::Fault::Error::Shutdown>
+struct map_exception_type<sdbusplus::org::open_power::Witherspoon::Fault::Error::Shutdown>
 {
-    using type = xyz::openbmc_project::Power::Fault::Shutdown;
+    using type = org::open_power::Witherspoon::Fault::Shutdown;
 };
 
 }
 
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
@@ -1047,27 +1047,27 @@
 };
 
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 
 
 namespace details
 {
 
 template <>
-struct map_exception_type<sdbusplus::xyz::openbmc_project::Power::Fault::Error::PowerOnFailure>
+struct map_exception_type<sdbusplus::org::open_power::Witherspoon::Fault::Error::PowerOnFailure>
 {
-    using type = xyz::openbmc_project::Power::Fault::PowerOnFailure;
+    using type = org::open_power::Witherspoon::Fault::PowerOnFailure;
 };
 
 }
 
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
@@ -1112,27 +1112,27 @@
 };
 
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 
 
 namespace details
 {
 
 template <>
-struct map_exception_type<sdbusplus::xyz::openbmc_project::Power::Fault::Error::PowerSequencerVoltageFault>
+struct map_exception_type<sdbusplus::org::open_power::Witherspoon::Fault::Error::PowerSequencerVoltageFault>
 {
-    using type = xyz::openbmc_project::Power::Fault::PowerSequencerVoltageFault;
+    using type = org::open_power::Witherspoon::Fault::PowerSequencerVoltageFault;
 };
 
 }
 
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
@@ -1177,27 +1177,27 @@
 };
 
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 
 
 namespace details
 {
 
 template <>
-struct map_exception_type<sdbusplus::xyz::openbmc_project::Power::Fault::Error::PowerSequencerPGOODFault>
+struct map_exception_type<sdbusplus::org::open_power::Witherspoon::Fault::Error::PowerSequencerPGOODFault>
 {
-    using type = xyz::openbmc_project::Power::Fault::PowerSequencerPGOODFault;
+    using type = org::open_power::Witherspoon::Fault::PowerSequencerPGOODFault;
 };
 
 }
 
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
@@ -1224,27 +1224,27 @@
 };
 
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 
 
 namespace details
 {
 
 template <>
-struct map_exception_type<sdbusplus::xyz::openbmc_project::Power::Fault::Error::PowerSequencerFault>
+struct map_exception_type<sdbusplus::org::open_power::Witherspoon::Fault::Error::PowerSequencerFault>
 {
-    using type = xyz::openbmc_project::Power::Fault::PowerSequencerFault;
+    using type = org::open_power::Witherspoon::Fault::PowerSequencerFault;
 };
 
 }
 
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
@@ -1280,27 +1280,27 @@
 };
 
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 
 
 namespace details
 {
 
 template <>
-struct map_exception_type<sdbusplus::xyz::openbmc_project::Power::Fault::Error::GPUPowerFault>
+struct map_exception_type<sdbusplus::org::open_power::Witherspoon::Fault::Error::GPUPowerFault>
 {
-    using type = xyz::openbmc_project::Power::Fault::GPUPowerFault;
+    using type = org::open_power::Witherspoon::Fault::GPUPowerFault;
 };
 
 }
 
-namespace xyz
+namespace org
 {
-namespace openbmc_project
+namespace open_power
 {
-namespace Power
+namespace Witherspoon
 {
 namespace Fault
 {
@@ -1336,18 +1336,18 @@
 };
 
 } // namespace Fault
-} // namespace Power
-} // namespace openbmc_project
-} // namespace xyz
+} // namespace Witherspoon
+} // namespace open_power
+} // namespace org
 
 
 namespace details
 {
 
 template <>
-struct map_exception_type<sdbusplus::xyz::openbmc_project::Power::Fault::Error::GPUOverTemp>
+struct map_exception_type<sdbusplus::org::open_power::Witherspoon::Fault::Error::GPUOverTemp>
 {
-    using type = xyz::openbmc_project::Power::Fault::GPUOverTemp;
+    using type = org::open_power::Witherspoon::Fault::GPUOverTemp;
 };
 
 }
diff --git a/xyz/openbmc_project/Power/Fault.errors.yaml b/org/open_power/Witherspoon/Fault.errors.yaml
similarity index 100%
rename from xyz/openbmc_project/Power/Fault.errors.yaml
rename to org/open_power/Witherspoon/Fault.errors.yaml
diff --git a/xyz/openbmc_project/Power/Fault.metadata.yaml b/org/open_power/Witherspoon/Fault.metadata.yaml
similarity index 100%
rename from xyz/openbmc_project/Power/Fault.metadata.yaml
rename to org/open_power/Witherspoon/Fault.metadata.yaml
diff --git a/power-sequencer/pgood_monitor.cpp b/power-sequencer/pgood_monitor.cpp
index 9e8abba..02f1725 100644
--- a/power-sequencer/pgood_monitor.cpp
+++ b/power-sequencer/pgood_monitor.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 #include <phosphor-logging/log.hpp>
-#include <xyz/openbmc_project/Power/Fault/error.hpp>
+#include <org/open_power/Witherspoon/Fault/error.hpp>
 #include "config.h"
 #include "elog-errors.hpp"
 #include "pgood_monitor.hpp"
@@ -29,7 +29,7 @@
 constexpr auto POWER_INTERFACE = "org.openbmc.control.Power";
 
 using namespace phosphor::logging;
-using namespace sdbusplus::xyz::openbmc_project::Power::Fault::Error;
+using namespace sdbusplus::org::open_power::Witherspoon::Fault::Error;
 
 bool PGOODMonitor::pgoodPending()
 {
diff --git a/power-sequencer/ucd90160.cpp b/power-sequencer/ucd90160.cpp
index 2e2578f..e7fc8cf 100644
--- a/power-sequencer/ucd90160.cpp
+++ b/power-sequencer/ucd90160.cpp
@@ -20,7 +20,7 @@
 #include <elog-errors.hpp>
 #include <xyz/openbmc_project/Sensor/Device/error.hpp>
 #include <xyz/openbmc_project/Control/Device/error.hpp>
-#include <xyz/openbmc_project/Power/Fault/error.hpp>
+#include <org/open_power/Witherspoon/Fault/error.hpp>
 #include "names_values.hpp"
 #include "ucd90160.hpp"
 #include "utility.hpp"
@@ -44,7 +44,7 @@
 using namespace phosphor::logging;
 using namespace sdbusplus::xyz::openbmc_project::Control::Device::Error;
 using namespace sdbusplus::xyz::openbmc_project::Sensor::Device::Error;
-using namespace sdbusplus::xyz::openbmc_project::Power::Fault::Error;
+using namespace sdbusplus::org::open_power::Witherspoon::Fault::Error;
 
 UCD90160::UCD90160(size_t instance, sdbusplus::bus::bus& bus) :
         Device(DEVICE_NAME, instance),
@@ -145,7 +145,7 @@
             nv.add("STATUS_VOUT", vout);
             nv.add("MFR_STATUS", readMFRStatus());
 
-            using metadata = xyz::openbmc_project::Power::Fault::
+            using metadata = org::open_power::Witherspoon::Fault::
                     PowerSequencerVoltageFault;
 
             report<PowerSequencerVoltageFault>(
@@ -237,7 +237,7 @@
             nv.add("MFR_STATUS", readMFRStatus());
             nv.add("INPUT_STATUS", status);
 
-            using metadata =  xyz::openbmc_project::Power::Fault::
+            using metadata =  org::open_power::Witherspoon::Fault::
                     PowerSequencerPGOODFault;
 
             report<PowerSequencerPGOODFault>(
@@ -259,7 +259,7 @@
     nv.add("STATUS_WORD", readStatusWord());
     nv.add("MFR_STATUS", readMFRStatus());
 
-    using metadata = xyz::openbmc_project::Power::Fault::
+    using metadata = org::open_power::Witherspoon::Fault::
         PowerSequencerFault;
 
     report<PowerSequencerFault>(
@@ -409,7 +409,7 @@
     nv.add("STATUS_WORD", readStatusWord());
     nv.add("MFR_STATUS", readMFRStatus());
 
-    using metadata = xyz::openbmc_project::Power::Fault::GPUPowerFault;
+    using metadata = org::open_power::Witherspoon::Fault::GPUPowerFault;
 
     report<GPUPowerFault>(
             metadata::RAW_STATUS(nv.get().c_str()),
@@ -422,7 +422,7 @@
     nv.add("STATUS_WORD", readStatusWord());
     nv.add("MFR_STATUS", readMFRStatus());
 
-    using metadata = xyz::openbmc_project::Power::Fault::GPUOverTemp;
+    using metadata = org::open_power::Witherspoon::Fault::GPUOverTemp;
 
     report<GPUOverTemp>(
             metadata::RAW_STATUS(nv.get().c_str()),
diff --git a/power-supply/power_supply.cpp b/power-supply/power_supply.cpp
index 379aa46..7fd9d4e 100644
--- a/power-supply/power_supply.cpp
+++ b/power-supply/power_supply.cpp
@@ -17,7 +17,7 @@
 #include <phosphor-logging/elog.hpp>
 #include <xyz/openbmc_project/Sensor/Device/error.hpp>
 #include <xyz/openbmc_project/Control/Device/error.hpp>
-#include <xyz/openbmc_project/Power/Fault/error.hpp>
+#include <org/open_power/Witherspoon/Fault/error.hpp>
 #include "elog-errors.hpp"
 #include "names_values.hpp"
 #include "power_supply.hpp"
@@ -27,7 +27,7 @@
 using namespace phosphor::logging;
 using namespace sdbusplus::xyz::openbmc_project::Control::Device::Error;
 using namespace sdbusplus::xyz::openbmc_project::Sensor::Device::Error;
-using namespace sdbusplus::xyz::openbmc_project::Power::Fault::Error;
+using namespace sdbusplus::org::open_power::Witherspoon::Fault::Error;
 
 namespace witherspoon
 {
@@ -277,7 +277,7 @@
         util::NamesValues nv;
         nv.add("STATUS_WORD", statusWord);
 
-        using metadata = xyz::openbmc_project::Power::Fault::
+        using metadata = org::open_power::Witherspoon::Fault::
                 PowerSupplyUnderVoltageFault;
 
         report<PowerSupplyUnderVoltageFault>(metadata::RAW_STATUS(
@@ -302,7 +302,7 @@
         nv.add("STATUS_WORD", statusWord);
         captureCmd(nv, STATUS_INPUT, Type::Debug);
 
-        using metadata = xyz::openbmc_project::Power::Fault::
+        using metadata = org::open_power::Witherspoon::Fault::
                 PowerSupplyInputFault;
 
         report<PowerSupplyInputFault>(
@@ -341,7 +341,7 @@
         captureCmd(nv, STATUS_IOUT, Type::Debug);
         captureCmd(nv, STATUS_MFR, Type::Debug);
 
-        using metadata = xyz::openbmc_project::Power::Fault::
+        using metadata = org::open_power::Witherspoon::Fault::
                 PowerSupplyShouldBeOn;
 
         // A power supply is OFF (or pgood low) but should be on.
@@ -370,7 +370,7 @@
         captureCmd(nv, STATUS_IOUT, Type::Debug);
         captureCmd(nv, STATUS_MFR, Type::Debug);
 
-        using metadata = xyz::openbmc_project::Power::Fault::
+        using metadata = org::open_power::Witherspoon::Fault::
                 PowerSupplyOutputOvercurrent;
 
         report<PowerSupplyOutputOvercurrent>(metadata::RAW_STATUS(
@@ -398,7 +398,7 @@
         captureCmd(nv, STATUS_IOUT, Type::Debug);
         captureCmd(nv, STATUS_MFR, Type::Debug);
 
-        using metadata = xyz::openbmc_project::Power::Fault::
+        using metadata = org::open_power::Witherspoon::Fault::
                 PowerSupplyOutputOvervoltage;
 
         report<PowerSupplyOutputOvervoltage>(metadata::RAW_STATUS(
@@ -424,7 +424,7 @@
         captureCmd(nv, STATUS_TEMPERATURE, Type::Debug);
         captureCmd(nv, STATUS_FANS_1_2, Type::Debug);
 
-        using metadata = xyz::openbmc_project::Power::Fault::
+        using metadata = org::open_power::Witherspoon::Fault::
                 PowerSupplyFanFault;
 
         report<PowerSupplyFanFault>(
@@ -465,7 +465,7 @@
         nv.add("STATUS_TEMPERATURE", statusTemperature);
         captureCmd(nv, STATUS_FANS_1_2, Type::Debug);
 
-        using metadata = xyz::openbmc_project::Power::Fault::
+        using metadata = org::open_power::Witherspoon::Fault::
                 PowerSupplyTemperatureFault;
 
         report<PowerSupplyTemperatureFault>(
diff --git a/utility.cpp b/utility.cpp
index 25e401d..e54f839 100644
--- a/utility.cpp
+++ b/utility.cpp
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include <xyz/openbmc_project/Power/Fault/error.hpp>
+#include <org/open_power/Witherspoon/Fault/error.hpp>
 #include "elog-errors.hpp"
 #include "utility.hpp"
 
@@ -33,7 +33,7 @@
 constexpr auto POWEROFF_TARGET   = "obmc-chassis-hard-poweroff@0.target";
 
 using namespace phosphor::logging;
-using namespace sdbusplus::xyz::openbmc_project::Power::Fault::Error;
+using namespace sdbusplus::org::open_power::Witherspoon::Fault::Error;
 
 
 std::string getService(const std::string& path,
