Add a hwmon driver that reports fan and temperature readings from the
ChromeOS Embedded controller.
There was an earlier effort in 2017 to add such a driver [0], but there
was no followup after v1.
The new driver is complete reimplementation based on newer APIs and with
more features (temp sensor names).
It only works on LPC-connected ECs, as only those implement direct
memory-map access.
For other busses the data would need to be read with a command.
Adding some helpers was discussed in the previous patchset [1].
The EC protocols also support reading and writing fan curves but that is
not implemented.
Tested on a Framework 13 AMD, Firmware 3.05.
[0] https://lore.kernel.org/all/[email protected]/
[1] https://lore.kernel.org/all/[email protected]/
Signed-off-by: Thomas Weißschuh <[email protected]>
---
Changes in v2:
- drop unnecessary range checks (Guenter)
- only validate thermal_version during probing
- reorder some variable declarations
- validate thermal_version directly in cros_ec_hwmon_probe (Mario)
- drop return value from probe_temp_sensors as it can't fail anymore
- fail with -ENODEV if cmd_readmem is missing to avoid spurious warnings
- Link to v1: https://lore.kernel.org/r/[email protected]
---
Thomas Weißschuh (2):
hwmon: add ChromeOS EC driver
mfd: cros_ec: Register hardware monitoring subdevice
Documentation/hwmon/cros_ec_hwmon.rst | 26 ++++
Documentation/hwmon/index.rst | 1 +
MAINTAINERS | 8 +
drivers/hwmon/Kconfig | 11 ++
drivers/hwmon/Makefile | 1 +
drivers/hwmon/cros_ec_hwmon.c | 269 ++++++++++++++++++++++++++++++++++
drivers/mfd/cros_ec_dev.c | 1 +
7 files changed, 317 insertions(+)
---
base-commit: 2fbe479c0024e1c6b992184a799055e19932aa48
change-id: 20240506-cros_ec-hwmon-24634b07cf6f
Best regards,
--
Thomas Weißschuh <[email protected]>
On 5/7/2024 11:29, Thomas Weißschuh wrote:
> Add a hwmon driver that reports fan and temperature readings from the
> ChromeOS Embedded controller.
>
> There was an earlier effort in 2017 to add such a driver [0], but there
> was no followup after v1.
> The new driver is complete reimplementation based on newer APIs and with
> more features (temp sensor names).
>
> It only works on LPC-connected ECs, as only those implement direct
> memory-map access.
> For other busses the data would need to be read with a command.
> Adding some helpers was discussed in the previous patchset [1].
>
> The EC protocols also support reading and writing fan curves but that is
> not implemented.
>
> Tested on a Framework 13 AMD, Firmware 3.05.
>
> [0] https://lore.kernel.org/all/[email protected]/
> [1] https://lore.kernel.org/all/[email protected]/
>
> Signed-off-by: Thomas Weißschuh <[email protected]>
> ---
> Changes in v2:
> - drop unnecessary range checks (Guenter)
> - only validate thermal_version during probing
> - reorder some variable declarations
> - validate thermal_version directly in cros_ec_hwmon_probe (Mario)
> - drop return value from probe_temp_sensors as it can't fail anymore
> - fail with -ENODEV if cmd_readmem is missing to avoid spurious warnings
> - Link to v1: https://lore.kernel.org/r/[email protected]
>
> ---
> Thomas Weißschuh (2):
> hwmon: add ChromeOS EC driver
> mfd: cros_ec: Register hardware monitoring subdevice
>
> Documentation/hwmon/cros_ec_hwmon.rst | 26 ++++
> Documentation/hwmon/index.rst | 1 +
> MAINTAINERS | 8 +
> drivers/hwmon/Kconfig | 11 ++
> drivers/hwmon/Makefile | 1 +
> drivers/hwmon/cros_ec_hwmon.c | 269 ++++++++++++++++++++++++++++++++++
> drivers/mfd/cros_ec_dev.c | 1 +
> 7 files changed, 317 insertions(+)
> ---
> base-commit: 2fbe479c0024e1c6b992184a799055e19932aa48
> change-id: 20240506-cros_ec-hwmon-24634b07cf6f
>
> Best regards,
That was fast! The series looks good to me, thanks.
Reviewed-by: Mario Limonciello <[email protected]>