]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
platform/x86: oxpec: Move hwmon/oxp-sensors to platform/x86
authorAntheas Kapenekakis <lkml@antheas.dev>
Fri, 25 Apr 2025 11:18:08 +0000 (13:18 +0200)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Wed, 30 Apr 2025 11:04:56 +0000 (14:04 +0300)
The EC of OneXPlayer devices used to only control the fan. This is no
longer the case, with the EC of OneXPlayer gaining additional
functionality (turbo button, turbo led, battery controls).

As it will be beneficial from a complexity perspective to retain this
driver as a single unit, move it out of hwmon, and into platform/x86.
Also, remove the hwmon documentation to prepare moving it to
Documentation/ABI/.

While at it, add myself to the maintainer's file.

Acked-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
Reviewed-by: Derek J. Clark <derekjohn.clark@gmail.com>
Signed-off-by: Antheas Kapenekakis <lkml@antheas.dev>
Link: https://lore.kernel.org/r/20250425111821.88746-4-lkml@antheas.dev
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Documentation/hwmon/index.rst
Documentation/hwmon/oxp-sensors.rst [deleted file]
MAINTAINERS
drivers/hwmon/Kconfig
drivers/hwmon/Makefile
drivers/platform/x86/Kconfig
drivers/platform/x86/Makefile
drivers/platform/x86/oxpec.c [moved from drivers/hwmon/oxp-sensors.c with 98% similarity]

index f0ddf6222c44d454bde2690ec8306b175f6fbd3a..ffe1a756a4f910128ea22b21f02967a1b7a1efbd 100644 (file)
@@ -189,7 +189,6 @@ Hardware Monitoring Kernel Drivers
    nzxt-kraken3
    nzxt-smart2
    occ
-   oxp-sensors
    pc87360
    pc87427
    pcf8591
diff --git a/Documentation/hwmon/oxp-sensors.rst b/Documentation/hwmon/oxp-sensors.rst
deleted file mode 100644 (file)
index 581c4da..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0-or-later
-
-Kernel driver oxp-sensors
-=========================
-
-Authors:
-    - Derek John Clark <derekjohn.clark@gmail.com>
-    - Joaquín Ignacio Aramendía <samsagax@gmail.com>
-
-Description:
-------------
-
-Handheld devices from OneNetbook, AOKZOE, AYANEO, And OrangePi provide fan
-readings and fan control through their embedded controllers.
-
-Currently supports OneXPlayer devices, AOKZOE, AYANEO, and OrangePi
-handheld devices. AYANEO devices preceding the AIR and OneXPlayer devices
-preceding the Mini A07 are not supportable as the EC model is different
-and do not have manual control capabilities.
-
-Some OneXPlayer and AOKZOE models have a toggle for changing the behaviour
-of the "Turbo/Silent" button of the device. It will change the key event
-that it triggers with a flip of the `tt_toggle` attribute. See below for
-boards that support this function.
-
-Supported devices
------------------
-
-Currently the driver supports the following handhelds:
-
- - AOKZOE A1
- - AOKZOE A1 PRO
- - AYANEO 2
- - AYANEO 2S
- - AYANEO AIR
- - AYANEO AIR 1S
- - AYANEO AIR Plus (Mendocino)
- - AYANEO AIR Pro
- - AYANEO Flip DS
- - AYANEO Flip KB
- - AYANEO Geek
- - AYANEO Geek 1S
- - AYANEO KUN
- - OneXPlayer 2
- - OneXPlayer 2 Pro
- - OneXPlayer AMD
- - OneXPlayer mini AMD
- - OneXPlayer mini AMD PRO
- - OneXPlayer OneXFly
- - OneXPlayer X1 A
- - OneXPlayer X1 i
- - OneXPlayer X1 mini
- - OrangePi NEO-01
-
-"Turbo/Silent" button behaviour toggle is only supported on:
- - AOK ZOE A1
- - AOK ZOE A1 PRO
- - OneXPlayer 2
- - OneXPlayer 2 Pro
- - OneXPlayer mini AMD (only with updated alpha BIOS)
- - OneXPlayer mini AMD PRO
- - OneXPlayer OneXFly
- - OneXPlayer X1 A
- - OneXPlayer X1 i
- - OneXPlayer X1 mini
-
-Sysfs entries
--------------
-
-The following attributes are supported:
-
-fan1_input
-  Read Only. Reads current fan RPM.
-
-pwm1_enable
-  Read Write. Enable manual fan control. Write "1" to set to manual, write "0"
-  to let the EC control de fan speed. Read this attribute to see current status.
-
-pwm1
-  Read Write. Read this attribute to see current duty cycle in the range [0-255].
-  When pwm1_enable is set to "1" (manual) write any value in the range [0-255]
-  to set fan speed.
-
-tt_toggle
-  Read Write. Read this attribute to check the status of the turbo/silent
-  button behaviour function. Write "1" to activate the switch and "0" to
-  deactivate it. The specific keycodes and behaviour is specific to the device
-  both with this function on and off. This attribute is attached to the platform
-  driver and not to the hwmon driver (/sys/devices/platform/oxp-platform/tt_toggle)
index 08b7a6b36b7b44cb9103788029e0ca05dbba1812..e1754eee9dc7709d5acf910f6e5c77778590c2fd 100644 (file)
@@ -18014,12 +18014,13 @@ S:    Maintained
 F:     drivers/mtd/nand/onenand/
 F:     include/linux/mtd/onenand*.h
 
-ONEXPLAYER FAN DRIVER
+ONEXPLAYER PLATFORM EC DRIVER
+M:     Antheas Kapenekakis <lkml@antheas.dev>
 M:     Derek John Clark <derekjohn.clark@gmail.com>
 M:     Joaquín Ignacio Aramendía <samsagax@gmail.com>
-L:     linux-hwmon@vger.kernel.org
+L:     platform-driver-x86@vger.kernel.org
 S:     Maintained
-F:     drivers/hwmon/oxp-sensors.c
+F:     drivers/platform/x86/oxpec.c
 
 ONIE TLV NVMEM LAYOUT DRIVER
 M:     Miquel Raynal <miquel.raynal@bootlin.com>
index f91f713b0105d7bdca51b362ab9cbad523bb568c..5fd93aad2d6dfc5ae30b495838ebdd90d974c4d4 100644 (file)
@@ -1795,17 +1795,6 @@ config SENSORS_NZXT_SMART2
 
 source "drivers/hwmon/occ/Kconfig"
 
-config SENSORS_OXP
-       tristate "OneXPlayer EC fan control"
-       depends on ACPI_EC
-       depends on X86
-       help
-               If you say yes here you get support for fan readings and control over
-               OneXPlayer handheld devices. Only OneXPlayer mini AMD handheld variant
-               boards are supported.
-
-               Can also be built as a module. In that case it will be called oxp-sensors.
-
 config SENSORS_PCF8591
        tristate "Philips PCF8591 ADC/DAC"
        depends on I2C
index 766c652ef22bebf40bd4fba45b417f3c473ed5ef..e3468d024ff393ad1ffc8e8933cc4619726cba0a 100644 (file)
@@ -183,7 +183,6 @@ obj-$(CONFIG_SENSORS_NTC_THERMISTOR)        += ntc_thermistor.o
 obj-$(CONFIG_SENSORS_NZXT_KRAKEN2) += nzxt-kraken2.o
 obj-$(CONFIG_SENSORS_NZXT_KRAKEN3) += nzxt-kraken3.o
 obj-$(CONFIG_SENSORS_NZXT_SMART2) += nzxt-smart2.o
-obj-$(CONFIG_SENSORS_OXP) += oxp-sensors.o
 obj-$(CONFIG_SENSORS_PC87360)  += pc87360.o
 obj-$(CONFIG_SENSORS_PC87427)  += pc87427.o
 obj-$(CONFIG_SENSORS_PCF8591)  += pcf8591.o
index 43407e76476b5552b62219cf0638ad3b3dfd73df..739740c4bb535855c3b6d692a9bc405960add8e5 100644 (file)
@@ -1201,6 +1201,18 @@ config SEL3350_PLATFORM
          To compile this driver as a module, choose M here: the module
          will be called sel3350-platform.
 
+config OXP_EC
+       tristate "OneXPlayer EC platform control"
+       depends on ACPI_EC
+       depends on HWMON
+       depends on X86
+       help
+               Enables support for the platform EC of OneXPlayer and AOKZOE
+               handheld devices. This includes fan speed, fan controls, and
+               disabling the default TDP behavior of the device. Due to legacy
+               reasons, this driver also provides hwmon functionality to Ayaneo
+               devices and the OrangePi Neo.
+
 endif # X86_PLATFORM_DEVICES
 
 config P2SB
index 650dfbebb6c8cc5b6627064ab159f52a09db53f6..38ffc4c98e786d19a80dc1468441d5adb51a594e 100644 (file)
@@ -154,3 +154,6 @@ obj-$(CONFIG_WINMATE_FM07_KEYS)             += winmate-fm07-keys.o
 
 # SEL
 obj-$(CONFIG_SEL3350_PLATFORM)         += sel3350-platform.o
+
+# OneXPlayer
+obj-$(CONFIG_OXP_EC)                   += oxpec.o
similarity index 98%
rename from drivers/hwmon/oxp-sensors.c
rename to drivers/platform/x86/oxpec.c
index f7a64fbc8f33e4bbfcc90ef17b9e670a7b17e217..dc3a0871809cdc7c8e675983bea7735c7e610d08 100644 (file)
@@ -1,11 +1,8 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Platform driver for OneXPlayer, AOKZOE, AYANEO, and OrangePi Handhelds
- * that expose fan reading and control via hwmon sysfs.
- *
- * Old OXP boards have the same DMI strings and they are told apart by
- * the boot cpu vendor (Intel/AMD). Of these older models only AMD is
- * supported.
+ * Platform driver for OneXPlayer and AOKZOE devices. For the time being,
+ * it also exposes fan controls for AYANEO, and OrangePi Handhelds via
+ * hwmon sysfs.
  *
  * Fan control is provided via pwm interface in the range [0-255].
  * Old AMD boards use [0-100] as range in the EC, the written value is
@@ -16,6 +13,7 @@
  *
  * Copyright (C) 2022 Joaquín I. Aramendía <samsagax@gmail.com>
  * Copyright (C) 2024 Derek J. Clark <derekjohn.clark@gmail.com>
+ * Copyright (C) 2025 Antheas Kapenekakis <lkml@antheas.dev>
  */
 
 #include <linux/acpi.h>