diff --git a/pid/README b/pid/README
index 7c3f919..7613530 100644
--- a/pid/README
+++ b/pid/README
@@ -3,7 +3,7 @@
 what was published in the Chrome OS source.
 
 One has any number of ThermalControllers that run through a PID step to
-generate a set-point RPM to reach its thermal set-point.  The maximum output
+generate a setpoint RPM to reach its thermal setpoint.  The maximum output
 from the set of ThermalControllers is taken as the input to all the
 FanController PID loops.
 
diff --git a/pid/builderconfig.cpp b/pid/builderconfig.cpp
index 732d9fc..ad62c85 100644
--- a/pid/builderconfig.cpp
+++ b/pid/builderconfig.cpp
@@ -99,9 +99,9 @@
                  */
                 name = pid.lookup("name").c_str();
                 info.type = pid.lookup("type").c_str();
-                /* set-point is only required to be set for thermal. */
+                /* setpoint is only required to be set for thermal. */
                 /* TODO(venture): Verify this works optionally here. */
-                info.setpoint = pid.lookup("set-point");
+                info.setpoint = pid.lookup("setpoint");
                 info.pidInfo.ts = pid.lookup("pid.samplePeriod");
                 info.pidInfo.proportionalCoeff =
                     pid.lookup("pid.proportionalCoeff");
diff --git a/pid/pidthread.cpp b/pid/pidthread.cpp
index 7d27e42..44c5e86 100644
--- a/pid/pidthread.cpp
+++ b/pid/pidthread.cpp
@@ -33,7 +33,7 @@
     zone->clearRPMSetPoints();
     // Run the margin PIDs.
     zone->processThermals();
-    // Get the maximum RPM set-point.
+    // Get the maximum RPM setpoint.
     zone->determineMaxRPMRequest();
 }
 
diff --git a/pid/thermalcontroller.hpp b/pid/thermalcontroller.hpp
index 1a602a2..fa5aa4d 100644
--- a/pid/thermalcontroller.hpp
+++ b/pid/thermalcontroller.hpp
@@ -9,7 +9,7 @@
 
 /*
  * A ThermalController is a PID controller that reads a number of sensors and
- * provides the set-points for the fans.
+ * provides the setpoints for the fans.
  */
 
 enum class ThermalType
diff --git a/pid/zone.cpp b/pid/zone.cpp
index cc135bf..b6bdba0 100644
--- a/pid/zone.cpp
+++ b/pid/zone.cpp
@@ -118,18 +118,18 @@
     }
 
     /*
-     * If the maximum RPM set-point output is below the minimum RPM
-     * set-point, set it to the minimum.
+     * If the maximum RPM setpoint output is below the minimum RPM
+     * setpoint, set it to the minimum.
      */
     max = std::max(getMinThermalRPMSetpoint(), max);
 
 #ifdef __TUNING_LOGGING__
     /*
-     * We received no set-points from thermal sensors.
+     * We received no setpoints from thermal sensors.
      * This is a case experienced during tuning where they only specify
      * fan sensors and one large fan PID for all the fans.
      */
-    static constexpr auto setpointpath = "/etc/thermal.d/set-point";
+    static constexpr auto setpointpath = "/etc/thermal.d/setpoint";
     try
     {
         std::ifstream ifs;
@@ -139,7 +139,7 @@
             int value;
             ifs >> value;
 
-            /* expecting RPM set-point, not pwm% */
+            /* expecting RPM setpoint, not pwm% */
             max = static_cast<double>(value);
         }
     }
