diff --git a/mainloop.cpp b/mainloop.cpp
index 9af3053..cfa5483 100644
--- a/mainloop.cpp
+++ b/mainloop.cpp
@@ -171,7 +171,8 @@
 auto addValue(const SensorSet::key_type& sensor,
               const std::string& devPath,
               sysfs::hwmonio::HwmonIO& ioAccess,
-              ObjectInfo& info)
+              ObjectInfo& info,
+              bool isOCC = false)
 {
     static constexpr bool deferSignals = true;
 
@@ -190,7 +191,8 @@
                 sensor.second,
                 hwmon::entry::cinput,
                 sysfs::hwmonio::retries,
-                sysfs::hwmonio::delay);
+                sysfs::hwmonio::delay,
+                isOCC);
     }
     catch (const std::system_error& e)
     {
@@ -269,6 +271,11 @@
       state(),
       ioAccess(path)
 {
+    if (path.find("occ") != std::string::npos)
+    {
+        _isOCC = true;
+    }
+
     std::string p = path;
     while (!p.empty() && p.back() == '/')
     {
@@ -371,7 +378,8 @@
         objectPath.append(label);
 
         ObjectInfo info(&_bus, std::move(objectPath), Object());
-        auto valueInterface = addValue(i.first, _devPath, ioAccess, info);
+        auto valueInterface = addValue(i.first, _devPath, ioAccess, info,
+                _isOCC);
         if (!valueInterface)
         {
 #ifdef REMOVE_ON_FAIL
@@ -469,7 +477,8 @@
                             i.first.second,
                             input,
                             sysfs::hwmonio::retries,
-                            sysfs::hwmonio::delay);
+                            sysfs::hwmonio::delay,
+                            _isOCC);
 
                     value = adjustValue(i.first, value);
 
