hwmon: Introduce 64-bit energy attribute support
authorGuenter Roeck <linux@roeck-us.net>
Thu, 29 Aug 2024 04:56:57 +0000 (21:56 -0700)
committerGuenter Roeck <linux@roeck-us.net>
Sun, 7 Sep 2025 23:33:48 +0000 (16:33 -0700)
commit0bcd01f757bc06471c82a137eafee281ef1b6e38
tree9f1ebce6d49ebda7f25c52bcc140291ca30aa7cd
parentda0a3cc73a2bffe8faef6227a74e5a2de2e79a0c
hwmon: Introduce 64-bit energy attribute support

Many chips require 64-bit variables to display the accumulated energy,
even more so since the energy units are micro-Joule. Add new sensor type
"energy64" to support reporting the chip energy as 64-bit values.

Changing the entire hardware monitoring API is not feasible, and it is only
really necessary to support reading 64-bit values for the "energyX_input"
attribute. For this reason, keep the API as-is and use type casts on both
ends to pass 64-bit pointers when reading the accumulated energy. On the
write side (which is only useful for the energyX_enable attribute), keep
passing the written value as long.

Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Tested-by: Chris Packham <chris.packham@alliedtelesis.co.nz> # INA780
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Documentation/hwmon/hwmon-kernel-api.rst
drivers/hwmon/hwmon.c
include/linux/hwmon.h
include/trace/events/hwmon.h