summaryrefslogtreecommitdiffstats
path: root/monitor/tach_sensor.hpp
diff options
context:
space:
mode:
authorLei YU <mine260309@gmail.com>2018-01-31 15:24:46 +0800
committerLei YU <mine260309@gmail.com>2018-02-26 10:34:36 +0800
commit80f271b296488e12d4edd29b5bb908a407fbda1f (patch)
tree9009dca91bfa4fd5335a809a52746d02674c8078 /monitor/tach_sensor.hpp
parent8e5d197b840d4498dcb714b60cc1d38202a7a7a7 (diff)
downloadphosphor-fan-presence-80f271b296488e12d4edd29b5bb908a407fbda1f.tar.gz
phosphor-fan-presence-80f271b296488e12d4edd29b5bb908a407fbda1f.zip
Add target interface for fan monitor
Current fan monitor assumes the use of the FanSpeed interface for fan targets. For fans controlled by pwm, FanPwm interface is added. This commit adds a "target_interface" config parameter, so that user can specify the interface for the fan targets. E.g. - name: fan0 has_target: true target_interface: xyz.openbmc_project.Control.FanPwm This config is optional and defaults to FanSpeed, so the current code will not be affected. Tested: Use this config on Romulus, ensures fan monitor gets fan target from FanPwm interface and works OK. Change-Id: I262a486c335b2b43a46af7abdd0e71e95a133b98 Signed-off-by: Lei YU <mine260309@gmail.com>
Diffstat (limited to 'monitor/tach_sensor.hpp')
-rw-r--r--monitor/tach_sensor.hpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/monitor/tach_sensor.hpp b/monitor/tach_sensor.hpp
index 50951cd..2cd0f4a 100644
--- a/monitor/tach_sensor.hpp
+++ b/monitor/tach_sensor.hpp
@@ -62,6 +62,7 @@ class TachSensor
* @param[in] id - the id of the sensor
* @param[in] hasTarget - if the sensor supports
* setting the speed
+ * @param[in] interface - the interface of the target
* @param[in] factor - the factor of the sensor target
* @param[in] offset - the offset of the sensor target
* @param[in] timeout - Normal timeout value to use
@@ -72,6 +73,7 @@ class TachSensor
Fan& fan,
const std::string& id,
bool hasTarget,
+ const std::string& interface,
size_t factor,
size_t offset,
size_t timeout,
@@ -99,6 +101,14 @@ class TachSensor
}
/**
+ * @brief Returns the interface of the sensor target
+ */
+ inline std::string getInterface() const
+ {
+ return _interface;
+ }
+
+ /**
* @brief Returns the factor of the sensor target
*/
inline size_t getFactor() const
@@ -237,6 +247,11 @@ class TachSensor
const bool _hasTarget;
/**
+ * @brief The interface that the target implements
+ */
+ const std::string _interface;
+
+ /**
* @brief The factor of target to get fan rpm
*/
const size_t _factor;
OpenPOWER on IntegriCloud