diff --git a/sysfs.cpp b/sysfs.cpp
index 4ea32b2..0eb7863 100644
--- a/sysfs.cpp
+++ b/sysfs.cpp
@@ -19,6 +19,7 @@
 #include <experimental/filesystem>
 #include <fstream>
 #include <memory>
+#include <phosphor-logging/log.hpp>
 #include <thread>
 #include "sysfs.hpp"
 
@@ -238,6 +239,43 @@
     return emptyString;
 }
 
+std::string findHwmonFromDevPath(const std::string& devPath)
+{
+    fs::path p{"/sys"};
+    p /= devPath;
+    p /= "hwmon";
+
+    try
+    {
+        //This path is also used as a filesystem path to an environment
+        //file, and that has issues with ':'s in the path so they've
+        //been converted to '--'s.  Convert them back now.
+        size_t pos = 0;
+        std::string path = p;
+        while ((pos = path.find("--")) != std::string::npos)
+        {
+            path.replace(pos, 2, ":");
+        }
+
+        for (const auto& hwmonInst : fs::directory_iterator(path))
+        {
+            if ((hwmonInst.path().filename().string().find("hwmon") !=
+                   std::string::npos))
+            {
+                return hwmonInst.path();
+            }
+        }
+    }
+    catch (const std::exception& e)
+    {
+        using namespace phosphor::logging;
+        log<level::ERR>(
+                "Unable to find hwmon directory from the dev path",
+                entry("PATH=%s", devPath.c_str()));
+    }
+    return emptyString;
+}
+
 namespace hwmonio
 {
 
diff --git a/sysfs.hpp b/sysfs.hpp
index e673205..70568cd 100644
--- a/sysfs.hpp
+++ b/sysfs.hpp
@@ -51,6 +51,19 @@
  */
 std::string findHwmonFromOFPath(const std::string& ofNode);
 
+/** @brief Find hwmon instances from a device path
+ *
+ *  Look for a matching hwmon instance given a device path that
+ *  starts with /devices.  This path is the DEVPATH udev attribute
+ *  for the device except it has the '/hwmon/hwmonN' stripped off.
+ *
+ *  @param[in] devPath - The device path.
+ *
+ *  @return - The hwmon instance path or an empty
+ *            string if no match is found.
+ */
+std::string findHwmonFromDevPath(const std::string& devPath);
+
 /** @brief Return the path to use for a call out.
  *
  *  Return an empty string if a callout path cannot be
diff --git a/test/Makefile.am b/test/Makefile.am
index 0825659..a52a992 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -11,6 +11,8 @@
 	-static
 find_callout_path_LDADD = \
 	-lstdc++fs \
+	$(SDBUSPLUS_LIBS) \
+	$(PHOSPHOR_LOGGING_LIBS) \
 	${top_builddir}/sysfs.o
 
 find_callout_path_CXXFLAGS =
@@ -21,6 +23,8 @@
 	-static
 find_hwmon_LDADD = \
 	-lstdc++fs \
+	$(SDBUSPLUS_LIBS) \
+	$(PHOSPHOR_LOGGING_LIBS) \
 	${top_builddir}/sysfs.o
 
 find_hwmon_CXXFLAGS =
@@ -31,6 +35,8 @@
 	-static
 hwmonio_LDADD = \
 	-lstdc++fs \
+	$(SDBUSPLUS_LIBS) \
+	$(PHOSPHOR_LOGGING_LIBS) \
 	${top_builddir}/sysfs.o
 
 hwmonio_CXXFLAGS =
