adcsensor: make BridgeGpio setup time configurable

On some voltage-monitoring lines there may be enough capacitance that
the hard-coded 20ms enable time is insufficient to allow the signal to
fully stabilize (a case in point being the battery voltage line on the
ASRock Rack E3C246D4I), leading to inaccurate readings.  It would be
unfortunate to penalize all systems and make them unconditionally wait
longer by simply upping the global enable time, however, so instead we
allow it to be configured as an additional BridgeGpio parameter
"SetupTime", the (float) number of seconds to wait after enabling the
bridge GPIO before sampling the sensor.  (The default setup time if
unspecified remains 20ms.)

Tested: with a corresponding entity-manager configuration adjustment to
add a longer SetupTime setting, achieved much more accurate battery
voltage readings on E3C246D4I.

Signed-off-by: Zev Weiss <zweiss@equinix.com>
Change-Id: I17f0ffa603fbbaa3bf929502bbdf02394719b3a4
3 files changed
tree: e495b161398607d2f762f0fabd4c616679edbc2f
  1. include/
  2. service_files/
  3. src/
  4. subprojects/
  5. tests/
  6. .clang-format
  7. .clang-ignore
  8. .clang-tidy
  9. .gitignore
  10. Jenkinsfile
  11. LICENSE
  12. MAINTAINERS
  13. meson.build
  14. meson_options.txt
  15. 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

sensor documentation