fan-sensors: add optional pwm name override

Problem: pwm sensors created by FanSensors have a naming scheme that is
hard coded. There are systems that need to have pwm sensors
named differently.

Solution: In a fan connector configuration the PwmName property will now
attempt to be detected. If this property exists then the name in PwmName
will be used; otherwise the pwm sensor name will be generated using the
old method.

Tested:
Entity-Manager json configuration fragment used:

        {
            "Name": "fan0_connector",
            "Pwm": 0,
            "PwmName": "fan0_pwm",
            "Status": "enabled",
            "Tachs": [0],
            "Type": "FanConnector"
        },
        {
            "Name": "fan1_connector",
            "Pwm": 1,
            "PwmName": "fan1_pwm",
            "Status": "enabled",
            "Tachs": [1],
            "Type": "FanConnector"
        },
        {
            "Name": "fan2_connector",
            "Pwm": 2,
            "Status": "enabled",
            "Tachs": [2],
            "Type": "FanConnector"
        },

results when running ipmitool sdr list on BMC:

Pwm_3            | 99.96 unspecifi   | ok
fan0_pwm         | 99.96 unspecifi   | ok
fan1_pwm         | 99.96 unspecifi   | ok
fan0_tach        | 0 RPM             | ok
fan1_tach        | 0 RPM             | ok
fan2_tach        | 0 RPM             | ok

Signed-off-by: Jason Ling <jasonling@google.com>
Change-Id: I780c4f377e2e4f23567e1196ae420bf3c57c05f2
1 file changed
tree: e8e881c58eb7d0b0441ded15c301fa9890026466
  1. cmake/
  2. include/
  3. service_files/
  4. src/
  5. tests/
  6. .clang-format
  7. .clang-ignore
  8. .gitignore
  9. cmake-format.json
  10. CMakeLists.txt
  11. Jenkinsfile
  12. LICENSE
  13. MAINTAINERS
  14. README.md
README.md

dbus-sensors

dbus-sensors is a collection of sensor applications that provide the xyz.openbmc_project.Sensor collection of interfaces. They read sensor values from hwmon, d-bus, or direct driver access to provide readings. Some advance non-sensor features such as fan presence, pwm control, and automatic cpu detection (x86) are also supported.

key features

  • runtime re-configurable from d-bus (entity-manager or the like)

  • isolated: each sensor type is isolated into its own daemon, so a bug in one sensor is unlikely to affect another, and single sensor modifications are possible

  • async single-threaded: uses sdbusplus/asio bindings

  • multiple data inputs: hwmon, d-bus, direct driver access