diff --git a/utility.cpp b/utility.cpp
index 74ee75b..a14dec0 100644
--- a/utility.cpp
+++ b/utility.cpp
@@ -90,11 +90,18 @@
 DbusSubtree getSubTree(sdbusplus::bus_t& bus, const std::string& path,
                        const std::string& interface, int32_t depth)
 {
+    return getSubTree(bus, path, std::vector<std::string>({interface}), depth);
+}
+
+DbusSubtree getSubTree(sdbusplus::bus_t& bus, const std::string& path,
+                       const std::vector<std::string>& interfaces,
+                       int32_t depth)
+{
     auto mapperCall = bus.new_method_call(MAPPER_BUSNAME, MAPPER_PATH,
                                           MAPPER_INTERFACE, "GetSubTree");
     mapperCall.append(path);
     mapperCall.append(depth);
-    mapperCall.append(std::vector<std::string>({interface}));
+    mapperCall.append(interfaces);
 
     auto reply = bus.call(mapperCall);
 
diff --git a/utility.hpp b/utility.hpp
index 043c3c0..ad6be99 100644
--- a/utility.hpp
+++ b/utility.hpp
@@ -8,6 +8,7 @@
 #include <sdbusplus/bus.hpp>
 
 #include <string>
+#include <vector>
 
 namespace phosphor
 {
@@ -130,6 +131,24 @@
 DbusSubtree getSubTree(sdbusplus::bus_t& bus, const std::string& path,
                        const std::string& interface, int32_t depth);
 
+/** @brief Get subtree from the object mapper.
+ *
+ * Helper function to find objects, services, and interfaces.
+ * See:
+ * https://github.com/openbmc/docs/blob/master/architecture/object-mapper.md
+ *
+ * @param[in] bus - The D-Bus object.
+ * @param[in] path - The root of the tree to search.
+ * @param[in] interfaces - Interfaces in the subtree to search for.
+ * @param[in] depth - The number of path elements to descend.
+ *
+ * @return DbusSubtree - Map of object paths to a map of service names to their
+ *                       interfaces.
+ */
+DbusSubtree getSubTree(sdbusplus::bus_t& bus, const std::string& path,
+                       const std::vector<std::string>& interfaces,
+                       int32_t depth);
+
 /** @brief GetAssociatedSubTreePaths wrapper from the object mapper.
  *
  * Helper function to find object paths that implement a certain
