[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251015084414.1391595-1-lkml@antheas.dev>
Date: Wed, 15 Oct 2025 10:44:08 +0200
From: Antheas Kapenekakis <lkml@...heas.dev>
To: platform-driver-x86@...r.kernel.org
Cc: linux-kernel@...r.kernel.org,
linux-hwmon@...r.kernel.org,
Hans de Goede <hansg@...nel.org>,
Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>,
Derek John Clark <derekjohn.clark@...il.com>,
Joaquín Ignacio Aramendía <samsagax@...il.com>,
Jean Delvare <jdelvare@...e.com>,
Guenter Roeck <linux@...ck-us.net>,
Antheas Kapenekakis <lkml@...heas.dev>
Subject: [PATCH v2 0/6] platform/x86: ayaneo-ec: Add Ayaneo Embedded
Controller platform driver
This series introduces a platform driver for Ayaneo devices, ayaneo-ec.
This driver provides hwmon support, power management, and module management
(for the new Ayaneo 3 device). Module management is done through the new
firmware attributes sysfs interface.
Luckily, all Ayaneo devices with an ACPI mapped EC use the same registers.
Older devices also use a memory mapped region for RGB[1], but that is
replaced by HID in the new Ayaneo 3. Therefore, this allows for a simple
driver design that provides robust future support. The memory mapped region
can be upstreamed as a different RGB driver in the future or remain
out-of-tree[1].
This change also allows cleaning up the oxpec driver, by removing Ayaneo
devices from it. In parallel, charge limiting is added for these devices.
[1] https://github.com/ShadowBlip/ayaneo-platform
---
V1: https://lore.kernel.org/all/20250820160628.99678-1-lkml@antheas.dev/
Changes since V1:
- Use plain sysfs attrs for magic module attributes
- Combine quirk for power and modules, so attribute tree is simpler
- Use switch statement in hwmon
- Add hibernation hook for charge bypass in last patch
- Restoring fan speed is a liability so it is omitted, see patch notes
Note that for EC managed fan curves, it would be acceptable
- Regmap comment: Using regmap is unprecedented for ACPI mapped ECs
and overkill for one value (> 100 LOC)
- fixp_linear_interpolate() comment: it requires importing an extra header,
is not used for static parameters in other modules, and expands to the
same equation for parameters used, so it is omitted
Antheas Kapenekakis (6):
platform/x86: ayaneo-ec: Add Ayaneo Embedded Controller platform
driver
platform/x86: ayaneo-ec: Add hwmon support
platform/x86: ayaneo-ec: Add charge control support
platform/x86: ayaneo-ec: Add controller power and modules attributes
platform/x86: ayaneo-ec: Move Ayaneo devices from oxpec to ayaneo-ec
platform/x86: ayaneo-ec: Add suspend hook
.../ABI/testing/sysfs-platform-ayaneo | 19 +
MAINTAINERS | 7 +
drivers/platform/x86/Kconfig | 17 +-
drivers/platform/x86/Makefile | 3 +
drivers/platform/x86/ayaneo-ec.c | 541 ++++++++++++++++++
drivers/platform/x86/oxpec.c | 115 +---
6 files changed, 585 insertions(+), 117 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-platform-ayaneo
create mode 100644 drivers/platform/x86/ayaneo-ec.c
base-commit: 3a8660878839faadb4f1a6dd72c3179c1df56787
--
2.51.0
Powered by blists - more mailing lists