hwmon: add HP WMI Sensors driver
authorJames Seo <james@equiv.tech>
Mon, 22 May 2023 11:56:46 +0000 (04:56 -0700)
committerGuenter Roeck <linux@roeck-us.net>
Thu, 8 Jun 2023 13:41:19 +0000 (06:41 -0700)
commit23902f98f8d4811ab84dde6419569a5b374f8122
tree55625acd5156a4d080a3a3b7deafc118bf801fcb
parent7590e659e063dc45a5743bb4e5eb4a21ee1fd651
hwmon: add HP WMI Sensors driver

Hewlett-Packard (and some HP Compaq) business-class computers report
hardware monitoring information via WMI. This driver exposes that
information to hwmon.

Initial support is provided for temperature, fan speed, and intrusion
sensor types. Provisional support is provided for voltage and current
sensor types.

HP's WMI implementation permits many other types of numeric sensors.
Therefore, a debugfs interface is also provided to enumerate and
inspect all numeric sensors visible on the WMI side. This should
facilitate adding support for other sensor types in the future.

Tested on a HP Z420, a HP EliteOne 800 G1, and a HP Compaq Elite 8300
SFF.

Note that provisionally supported sensor types are untested and seem
to be rare-to-nonexistent in the wild, having been encountered
neither on test systems nor in ACPI dumps from the Linux Hardware
Database. They are included because their popularity in general makes
their presence on past or future HP systems plausible and because no
doubt exists as to how the sensors themselves would be represented in
WMI (alarm attributes will need to wait for hardware to be located).
A 2005 HP whitepaper gives the relevant sensor object MOF definition
and sensor value scaling calculation, and both this driver and the
official HP Performance Advisor utility comply with them (confirmed
in the latter case by reverse engineering).

Link: https://h20331.www2.hp.com/hpsub/downloads/cmi_whitepaper.pdf
Signed-off-by: James Seo <james@equiv.tech>
Link: https://lore.kernel.org/r/20230522115645.509701-1-james@equiv.tech
[groeck: Set error return value for intrusion writes to -EINVAL.
 Always accept writes of 0 even if there was no intrusion. ]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Documentation/hwmon/hp-wmi-sensors.rst [new file with mode: 0644]
Documentation/hwmon/index.rst
MAINTAINERS
drivers/hwmon/Kconfig
drivers/hwmon/Makefile
drivers/hwmon/hp-wmi-sensors.c [new file with mode: 0644]