Commit ed264e8a authored by Joaquín Ignacio Aramendía's avatar Joaquín Ignacio Aramendía Committed by Guenter Roeck
Browse files

hwmon: add OneXPlayer mini AMD sensors driver



Sensors driver for OXP Handhelds from One-Netbook that expose fan reading
and control via hwmon sysfs.

As far as I could gather all OXP boards have the same DMI strings and
they can be told appart only by the boot cpu vendor (Intel/AMD).
Currently only AMD boards are supported since Intel have different EC
registers and values to read/write.

Fan control is provided via pwm interface in the range [0-255]. AMD
boards have [0-100] as range in the EC, the written value is scaled to
accommodate for that.

Signed-off-by: default avatarJoaquín Ignacio Aramendía <samsagax@gmail.com>
Link: https://lore.kernel.org/r/20221104140659.593608-1-samsagax@gmail.com


[groeck: Removed misleading comment about module_platform_driver()]
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent d5d896b8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -160,6 +160,7 @@ Hardware Monitoring Kernel Drivers
   nzxt-kraken2
   nzxt-smart2
   occ
   oxp-sensors
   pc87360
   pc87427
   pcf8591
+34 −0
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0-or-later

Kernel driver oxp-sensors
=========================

Author:
    - Joaquín Ignacio Aramendía <samsagax@gmail.com>

Description:
------------

One X Player devices from One Netbook provide fan readings and fan control
through its Embedded Controller.

Currently only supports AMD boards from the One X Player lineup. Intel boards
could be supported if we could figure out the EC registers and values to write
to since the EC layout and model is different.

Sysfs entries
-------------

The following attributes are supported:

fan1_input
  Read Only. Reads current fan RMP.

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.
+6 −0
Original line number Diff line number Diff line
@@ -15345,6 +15345,12 @@ S: Maintained
F:	drivers/mtd/nand/onenand/
F:	include/linux/mtd/onenand*.h
ONEXPLAYER FAN DRIVER
M:	Joaquín Ignacio Aramendía <samsagax@gmail.com>
L:	linux-hwmon@vger.kernel.org
S:	Maintained
F:	drivers/hwmon/oxp-sensors.c
ONION OMEGA2+ BOARD
M:	Harvey Hunt <harveyhuntnexus@gmail.com>
L:	linux-mips@vger.kernel.org
+11 −0
Original line number Diff line number Diff line
@@ -1616,6 +1616,17 @@ config SENSORS_NZXT_SMART2

source "drivers/hwmon/occ/Kconfig"

config SENSORS_OXP
	tristate "OneXPlayer EC fan control"
	depends on ACPI
	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
+1 −0
Original line number Diff line number Diff line
@@ -167,6 +167,7 @@ obj-$(CONFIG_SENSORS_NSA320) += nsa320-hwmon.o
obj-$(CONFIG_SENSORS_NTC_THERMISTOR)	+= ntc_thermistor.o
obj-$(CONFIG_SENSORS_NZXT_KRAKEN2) += nzxt-kraken2.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
Loading