diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%.bbappend b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%.bbappend
new file mode 100644
index 0000000..9b01712
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%.bbappend
@@ -0,0 +1 @@
+inherit phosphor-hwmon-mrw
diff --git a/meta-phosphor/classes/phosphor-hwmon-mrw.bbclass b/meta-phosphor/classes/phosphor-hwmon-mrw.bbclass
new file mode 100644
index 0000000..0821a22
--- /dev/null
+++ b/meta-phosphor/classes/phosphor-hwmon-mrw.bbclass
@@ -0,0 +1,41 @@
+#Common code to generate the hwmon conf files from the MRW.
+#Can be pulled in on a per system basis.
+
+DEPENDS += "mrw-perl-tools-native mrw-native"
+
+do_compile_append() {
+    ${STAGING_BINDIR_NATIVE}/perl-native/perl \
+        ${STAGING_BINDIR_NATIVE}/hwmon.pl \
+        -x ${STAGING_DATADIR_NATIVE}/obmc-mrw/${MACHINE}.xml
+}
+
+def find_conf_files():
+    from fnmatch import fnmatch
+    myfiles = []
+
+    #These conf files generated by hwmon.pl are in
+    #subdirectories which we need to preserve the path to.
+    for root, dirs, files in os.walk("./"):
+        for name in files:
+            if fnmatch(name, "*.conf"):
+                myfiles.append(os.path.join(root, name))
+
+    return  myfiles
+
+python install_conf_files() {
+    from shutil import copy
+
+    files = find_conf_files()
+
+    install_dir = os.path.join(d.getVar("D", True),
+                               "etc", "default", "obmc", "hwmon")
+    for f in files:
+        dest = os.path.join(install_dir, f)
+        parent = os.path.dirname(dest)
+        if not os.path.exists(parent):
+            os.makedirs(parent)
+
+        copy(f, dest)
+}
+
+do_install[postfuncs] += "install_conf_files"
