diff --git a/.clang-tidy b/.clang-tidy
index da409a3..07f1356 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -232,6 +232,7 @@
 modernize-make-shared,
 modernize-make-unique,
 modernize-raw-string-literal,
+modernize-redundant-void-arg,
 modernize-replace-auto-ptr,
 modernize-replace-random-shuffle,
 modernize-return-braced-init-list,
diff --git a/src/entity_manager.hpp b/src/entity_manager.hpp
index a4c7511..0fbef79 100644
--- a/src/entity_manager.hpp
+++ b/src/entity_manager.hpp
@@ -72,7 +72,7 @@
     void updateSystemConfiguration(const nlohmann::json& recordRef,
                                    const std::string& probeName,
                                    FoundDevices& foundDevices);
-    void run(void);
+    void run();
     virtual ~PerformScan();
     nlohmann::json& _systemConfiguration;
     nlohmann::json& _missingConfigurations;
diff --git a/src/fru_device.cpp b/src/fru_device.cpp
index 138568c..134d355 100644
--- a/src/fru_device.cpp
+++ b/src/fru_device.cpp
@@ -728,7 +728,7 @@
     FindDevicesWithCallback(const std::vector<fs::path>& i2cBuses,
                             BusMap& busmap, const bool& powerIsOn,
                             sdbusplus::asio::object_server& objServer,
-                            std::function<void(void)>&& callback) :
+                            std::function<void()>&& callback) :
         _i2cBuses(i2cBuses),
         _busMap(busmap), _powerIsOn(powerIsOn), _objServer(objServer),
         _callback(std::move(callback))
@@ -746,7 +746,7 @@
     BusMap& _busMap;
     const bool& _powerIsOn;
     sdbusplus::asio::object_server& _objServer;
-    std::function<void(void)> _callback;
+    std::function<void()> _callback;
 };
 
 void addFruObjectToDbus(
diff --git a/src/fru_utils.cpp b/src/fru_utils.cpp
index ee04ecb..e18d55b 100644
--- a/src/fru_utils.cpp
+++ b/src/fru_utils.cpp
@@ -38,7 +38,7 @@
 static constexpr bool debug = false;
 constexpr size_t fruVersion = 1; // Current FRU spec version number is 1
 
-std::tm intelEpoch(void)
+std::tm intelEpoch()
 {
     std::tm val = {};
     val.tm_year = 1996 - 1900;
diff --git a/src/fru_utils.hpp b/src/fru_utils.hpp
index c2b81cc..d6c2f6e 100644
--- a/src/fru_utils.hpp
+++ b/src/fru_utils.hpp
@@ -101,7 +101,7 @@
     return fruAreaNames[static_cast<unsigned int>(area)];
 }
 
-std::tm intelEpoch(void);
+std::tm intelEpoch();
 
 char sixBitToChar(uint8_t val);
 
diff --git a/src/overlay.hpp b/src/overlay.hpp
index 8e818c2..3bc6eb7 100644
--- a/src/overlay.hpp
+++ b/src/overlay.hpp
@@ -18,5 +18,5 @@
 #pragma once
 #include <nlohmann/json.hpp>
 
-void unloadAllOverlays(void);
+void unloadAllOverlays();
 bool loadOverlays(const nlohmann::json& systemConfiguration);
diff --git a/src/utils.cpp b/src/utils.cpp
index c0b3d20..bac2a4b 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -139,7 +139,7 @@
     return validator.validate(schema, targetAdapter, nullptr);
 }
 
-bool isPowerOn(void)
+bool isPowerOn()
 {
     if (!powerMatch)
     {
diff --git a/src/utils.hpp b/src/utils.hpp
index 746bc25..dec8508 100644
--- a/src/utils.hpp
+++ b/src/utils.hpp
@@ -68,7 +68,7 @@
 bool validateJson(const nlohmann::json& schemaFile,
                   const nlohmann::json& input);
 
-bool isPowerOn(void);
+bool isPowerOn();
 void setupPowerMatch(const std::shared_ptr<sdbusplus::asio::connection>& conn);
 struct DBusInternalError final : public sdbusplus::exception_t
 {
@@ -92,7 +92,7 @@
     }
 };
 
-inline bool fwVersionIsSame(void)
+inline bool fwVersionIsSame()
 {
     std::ifstream version(versionFile);
     if (!version.good())
