Commit a28b088e authored by Mariano Abad's avatar Mariano Abad Committed by Guenter Roeck
Browse files

hwmon: Add LattePanda Sigma EC driver



Add hardware monitoring support for the LattePanda Sigma SBC
(DFRobot, ITE IT8613E EC). The driver reads fan speed and
temperatures via direct port I/O, as the BIOS disables the
ACPI EC interface.

Signed-off-by: default avatarMariano Abad <weimaraner@gmail.com>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent afc6c4ae
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -110,6 +110,7 @@ Hardware Monitoring Kernel Drivers
   kbatt
   kfan
   lan966x
   lattepanda-sigma-ec
   lineage-pem
   lm25066
   lm63
+61 −0
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0-or-later

Kernel driver lattepanda-sigma-ec
=================================

Supported systems:

  * LattePanda Sigma (Intel 13th Gen i5-1340P)

    DMI vendor: LattePanda

    DMI product: LattePanda Sigma

    BIOS version: 5.27 (verified)

    Datasheet: Not available (EC registers discovered empirically)

Author: Mariano Abad <weimaraner@gmail.com>

Description
-----------

This driver provides hardware monitoring for the LattePanda Sigma
single-board computer made by DFRobot. The board uses an ITE IT8613E
Embedded Controller to manage a CPU cooling fan and thermal sensors.

The BIOS declares the ACPI Embedded Controller (``PNP0C09``) with
``_STA`` returning 0, preventing the kernel's ACPI EC subsystem from
initializing. This driver reads the EC directly via the standard ACPI
EC I/O ports (``0x62`` data, ``0x66`` command/status).

Sysfs attributes
----------------

======================= ===============================================
``fan1_input``          Fan speed in RPM (EC registers 0x2E:0x2F,
                        16-bit big-endian)
``fan1_label``          "CPU Fan"
``temp1_input``         Board/ambient temperature in millidegrees
                        Celsius (EC register 0x60, unsigned)
``temp1_label``         "Board Temp"
``temp2_input``         CPU proximity temperature in millidegrees
                        Celsius (EC register 0x70, unsigned)
``temp2_label``         "CPU Temp"
======================= ===============================================

Module parameters
-----------------

``force`` (bool, default false)
    Force loading on BIOS versions other than 5.27. The driver still
    requires DMI vendor and product name matching.

Known limitations
-----------------

* Fan speed control is not supported. The fan is always under EC
  automatic control.
* The EC register map was verified only on BIOS version 5.27.
  Other versions may use different register offsets; use the ``force``
  parameter at your own risk.
+7 −0
Original line number Diff line number Diff line
@@ -14421,6 +14421,13 @@ F: drivers/net/wan/framer/
F:	drivers/pinctrl/pinctrl-pef2256.c
F:	include/linux/framer/
LATTEPANDA SIGMA EC HARDWARE MONITOR DRIVER
M:	Mariano Abad <weimaraner@gmail.com>
L:	linux-hwmon@vger.kernel.org
S:	Maintained
F:	Documentation/hwmon/lattepanda-sigma-ec.rst
F:	drivers/hwmon/lattepanda-sigma-ec.c
LASI 53c700 driver for PARISC
M:	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
L:	linux-scsi@vger.kernel.org
+17 −0
Original line number Diff line number Diff line
@@ -964,6 +964,23 @@ config SENSORS_LAN966X
	  This driver can also be built as a module. If so, the module
	  will be called lan966x-hwmon.

config SENSORS_LATTEPANDA_SIGMA_EC
	tristate "LattePanda Sigma EC hardware monitoring"
	depends on X86
	depends on DMI
	depends on HAS_IOPORT
	help
	  If you say yes here you get support for the hardware monitoring
	  features of the Embedded Controller on LattePanda Sigma
	  single-board computers, including CPU fan speed (RPM) and
	  board and CPU temperatures.

	  The driver reads the EC directly via ACPI EC I/O ports and
	  uses DMI matching to ensure it only loads on supported hardware.

	  This driver can also be built as a module. If so, the module
	  will be called lattepanda-sigma-ec.

config SENSORS_LENOVO_EC
        tristate "Sensor reader for Lenovo ThinkStations"
        depends on X86
+1 −0
Original line number Diff line number Diff line
@@ -113,6 +113,7 @@ obj-$(CONFIG_SENSORS_K10TEMP) += k10temp.o
obj-$(CONFIG_SENSORS_KBATT)	+= kbatt.o
obj-$(CONFIG_SENSORS_KFAN)	+= kfan.o
obj-$(CONFIG_SENSORS_LAN966X)	+= lan966x-hwmon.o
obj-$(CONFIG_SENSORS_LATTEPANDA_SIGMA_EC) += lattepanda-sigma-ec.o
obj-$(CONFIG_SENSORS_LENOVO_EC)	+= lenovo-ec-sensors.o
obj-$(CONFIG_SENSORS_LINEAGE)	+= lineage-pem.o
obj-$(CONFIG_SENSORS_LOCHNAGAR)	+= lochnagar-hwmon.o
Loading