diff --git a/phosphor-power-supply/psu_manager.cpp b/phosphor-power-supply/psu_manager.cpp
index ee21a81..1afdfd2 100644
--- a/phosphor-power-supply/psu_manager.cpp
+++ b/phosphor-power-supply/psu_manager.cpp
@@ -44,6 +44,9 @@
     timer = std::make_unique<utility::Timer<ClockId::Monotonic>>(
         e, std::bind(&PSUManager::analyze, this), interval);
 
+    validationTimer = std::make_unique<utility::Timer<ClockId::Monotonic>>(
+        e, std::bind(&PSUManager::validateConfig, this));
+
     // Subscribe to power state changes
     powerService = util::getService(POWER_OBJ_PATH, POWER_IFACE, bus);
     powerOnMatch = std::make_unique<sdbusplus::bus::match_t>(
@@ -285,7 +288,7 @@
         // processed
         if (powerOn && !psus.empty() && !supportedConfigs.empty())
         {
-            validateConfig();
+            validationTimer->restartOnce(validationTimeout);
         }
     }
     catch (const std::exception& e)
@@ -311,7 +314,7 @@
         if (state)
         {
             powerOn = true;
-            validateConfig();
+            validationTimer->restartOnce(validationTimeout);
             clearFaults();
         }
         else
diff --git a/phosphor-power-supply/psu_manager.hpp b/phosphor-power-supply/psu_manager.hpp
index d95caa3..9a94b64 100644
--- a/phosphor-power-supply/psu_manager.hpp
+++ b/phosphor-power-supply/psu_manager.hpp
@@ -21,6 +21,10 @@
 namespace phosphor::power::manager
 {
 
+// Validation timeout. The EM interfaces are added about every second or less,
+// so double that time to 2s for the timeout value.
+constexpr auto validationTimeout = std::chrono::milliseconds(2000);
+
 /**
  * @class PSUManager
  *
@@ -84,7 +88,7 @@
             if (state)
             {
                 powerOn = true;
-                validateConfig();
+                validationTimer->restartOnce(validationTimeout);
             }
             else
             {
@@ -154,6 +158,14 @@
         timer;
 
     /**
+     * The timer that performs power supply validation as the entity manager
+     * interfaces show up in d-bus.
+     */
+    std::unique_ptr<
+        sdeventplus::utility::Timer<sdeventplus::ClockId::Monotonic>>
+        validationTimer;
+
+    /**
      * Create an error
      *
      * @param[in] faultName - 'name' message for the BMC error log entry
