diff --git a/pmbus.hpp b/pmbus.hpp
index 4946829..82e2ffc 100644
--- a/pmbus.hpp
+++ b/pmbus.hpp
@@ -61,7 +61,7 @@
          *
          * @param[in] name - path concatenated to
          *                   basePath to read
-         * @param[in] type - one of Base, Hwmon, or Debug
+         * @param[in] type - one of Base, Hwmon, or Debug (path type)
          *
          * @return bool - false if result was 0, else true
          */
@@ -75,13 +75,22 @@
          * @param[in] name - path concatenated to
          *                   basePath to read
          * @param[in] page - page number
-         * @param[in] type - one of Base, Hwmon, or Debug
+         * @param[in] type - one of Base, Hwmon, or Debug (path type)
          *
          * @return bool - false if result was 0, else true
          */
         bool readBitInPage(const std::string& name,
                            size_t page,
                            Type type);
+        /**
+         * Read byte(s) from file in sysfs.
+         *
+         * @param[in] name   - path concatenated to basePath to read
+         * @param[in] type   - one of Base, Hwmon, or Debug (path type)
+         *
+         * @return uint64_t - Up to 8 bytes of data read from file.
+         */
+        uint64_t read(const std::string& name, Type type);
 
         /**
          * Writes an integer value to the file, therefore doing
@@ -90,7 +99,7 @@
          * @param[in] name - path concatenated to
          *                   basePath to write
          * @param[in] value - the value to write
-         * @param[in] type - one of Base, Hwmon, or Debug
+         * @param[in] type - one of Base, Hwmon, or Debug (path type)
          */
         void write(const std::string& name, int value, Type type);
 
@@ -127,7 +136,7 @@
         /**
          * Returns the path to use for the passed in type.
          *
-         * @param[in] type - one of Base, Hwmon, or Debug
+         * @param[in] type - one of Base, Hwmon, or Debug (path type)
          *
          * @return fs::path - the full path to Base, Hwmon, or Debug path
          */
