[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251031163651.1465981-1-lkml@antheas.dev>
Date: Fri, 31 Oct 2025 17:36:45 +0100
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 v3 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
---
V3: https://lore.kernel.org/all/20251015084414.1391595-1-lkml@antheas.dev/
V2: https://lore.kernel.org/all/20251015084414.1391595-1-lkml@antheas.dev/
V1: https://lore.kernel.org/all/20250820160628.99678-1-lkml@antheas.dev/
Changes since V3:
- Fix various non-functional nits
- On hibernation restore, use restore instead of thaw, switch to bools,
and restore fan pwm mode, but only after the first pwm write after
hibernation. Also, release pwm when entering hibernation.
Changes since V2:
- Remove i counter from suspend hook by hardcoding the index
(we already allocate the maximum size for the cache anyway)
- Rename quirks to end in quirks
- Add missing includes to controller sysfs patch, use switch statement
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-ec | 19 +
MAINTAINERS | 7 +
drivers/platform/x86/Kconfig | 16 +-
drivers/platform/x86/Makefile | 3 +
drivers/platform/x86/ayaneo-ec.c | 582 ++++++++++++++++++
drivers/platform/x86/oxpec.c | 115 +---
6 files changed, 625 insertions(+), 117 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-platform-ayaneo-ec
create mode 100644 drivers/platform/x86/ayaneo-ec.c
base-commit: 211ddde0823f1442e4ad052a2f30f050145ccada
--
2.51.1
Powered by blists - more mailing lists