Commit 0772a640 authored by Hans de Goede's avatar Hans de Goede Committed by Jean Delvare

hwmon: New driver sch5636

This patch adds a new driver for SMSC SCH5636 Super I/O chips.
The chips include an embedded microcontroller for hardware monitoring
solutions, allowing motherboard manufacturers to create their own
custom hwmon solution based upon the SCH5636.

Currently the sch5636 driver only supports the Fujitsu Theseus SCH5636
based hwmon solution. The sch5636 driver runs a sanity check on
loading to ensure it is dealing with a Fujitsu Theseus and not with
another custom SCH5636 based hwmon solution.
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
parent 28ff2f7a
Kernel driver sch5636
=====================
Supported chips:
* SMSC SCH5636
Prefix: 'sch5636'
Addresses scanned: none, address read from Super I/O config space
Author: Hans de Goede <hdegoede@redhat.com>
Description
-----------
SMSC SCH5636 Super I/O chips include an embedded microcontroller for
hardware monitoring solutions, allowing motherboard manufacturers to create
their own custom hwmon solution based upon the SCH5636.
Currently the sch5636 driver only supports the Fujitsu Theseus SCH5636 based
hwmon solution. The sch5636 driver runs a sanity check on loading to ensure
it is dealing with a Fujitsu Theseus and not with another custom SCH5636 based
hwmon solution.
The Fujitsu Theseus can monitor up to 5 voltages, 8 fans and 16
temperatures. Note that the driver detects how many fan headers /
temperature sensors are actually implemented on the motherboard, so you will
likely see fewer temperature and fan inputs.
An application note describing the Theseus' registers, as well as an
application note describing the protocol for communicating with the
microcontroller is available upon request. Please mail me if you want a copy.
...@@ -1055,6 +1055,21 @@ config SENSORS_SCH5627 ...@@ -1055,6 +1055,21 @@ config SENSORS_SCH5627
This driver can also be built as a module. If so, the module This driver can also be built as a module. If so, the module
will be called sch5627. will be called sch5627.
config SENSORS_SCH5636
tristate "SMSC SCH5636"
select SENSORS_SCH56XX_COMMON
help
SMSC SCH5636 Super I/O chips include an embedded microcontroller for
hardware monitoring solutions, allowing motherboard manufacturers to
create their own custom hwmon solution based upon the SCH5636.
Currently this driver only supports the Fujitsu Theseus SCH5636 based
hwmon solution. Say yes here if you want support for the Fujitsu
Theseus' hardware monitoring features.
This driver can also be built as a module. If so, the module
will be called sch5636.
config SENSORS_ADS1015 config SENSORS_ADS1015
tristate "Texas Instruments ADS1015" tristate "Texas Instruments ADS1015"
depends on I2C depends on I2C
......
...@@ -97,6 +97,7 @@ obj-$(CONFIG_SENSORS_PCF8591) += pcf8591.o ...@@ -97,6 +97,7 @@ obj-$(CONFIG_SENSORS_PCF8591) += pcf8591.o
obj-$(CONFIG_SENSORS_S3C) += s3c-hwmon.o obj-$(CONFIG_SENSORS_S3C) += s3c-hwmon.o
obj-$(CONFIG_SENSORS_SCH56XX_COMMON)+= sch56xx-common.o obj-$(CONFIG_SENSORS_SCH56XX_COMMON)+= sch56xx-common.o
obj-$(CONFIG_SENSORS_SCH5627) += sch5627.o obj-$(CONFIG_SENSORS_SCH5627) += sch5627.o
obj-$(CONFIG_SENSORS_SCH5636) += sch5636.o
obj-$(CONFIG_SENSORS_SHT15) += sht15.o obj-$(CONFIG_SENSORS_SHT15) += sht15.o
obj-$(CONFIG_SENSORS_SHT21) += sht21.o obj-$(CONFIG_SENSORS_SHT21) += sht21.o
obj-$(CONFIG_SENSORS_SIS5595) += sis5595.o obj-$(CONFIG_SENSORS_SIS5595) += sis5595.o
......
This diff is collapsed.
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
#define SIO_REG_ADDR 0x66 /* Logical device address (2 bytes) */ #define SIO_REG_ADDR 0x66 /* Logical device address (2 bytes) */
#define SIO_SCH5627_ID 0xC6 /* Chipset ID */ #define SIO_SCH5627_ID 0xC6 /* Chipset ID */
#define SIO_SCH5636_ID 0xC7 /* Chipset ID */
#define REGION_LENGTH 9 #define REGION_LENGTH 9
...@@ -238,6 +239,9 @@ static int __init sch56xx_find(int sioaddr, unsigned short *address, ...@@ -238,6 +239,9 @@ static int __init sch56xx_find(int sioaddr, unsigned short *address,
case SIO_SCH5627_ID: case SIO_SCH5627_ID:
*name = "sch5627"; *name = "sch5627";
break; break;
case SIO_SCH5636_ID:
*name = "sch5636";
break;
default: default:
pr_debug("Unsupported device id: 0x%02x\n", pr_debug("Unsupported device id: 0x%02x\n",
(unsigned int)devid); (unsigned int)devid);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment