Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3e56d493 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
  hwmon: (ltc4245) Clear faults at startup
  hwmon: (ltc4215) Clear faults at startup
  hwmon: (coretemp) Add Lynnfield CPU
  hwmon: (coretemp) Add support for Penryn mobile CPUs
  hwmon: (coretemp) Fix Atom CPUs support
  hwmon: Delete deprecated FSC drivers
  hwmon: (adm1031) Add sysfs files for temperature offsets
parents c82ffab9 58f055e5
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -354,14 +354,6 @@ Who: Krzysztof Piotr Oledzki <ole@ans.pl>

---------------------------

What:	fscher and fscpos drivers
When:	June 2009
Why:	Deprecated by the new fschmd driver.
Who:	Hans de Goede <hdegoede@redhat.com>
	Jean Delvare <khali@linux-fr.org>

---------------------------

What:	sysfs ui for changing p4-clockmod parameters
When:	September 2009
Why:	See commits 129f8ae9b1b5be94517da76009ea956e89104ce8 and
+3 −1
Original line number Diff line number Diff line
@@ -4,7 +4,9 @@ Kernel driver coretemp
Supported chips:
  * All Intel Core family
    Prefix: 'coretemp'
    CPUID: family 0x6, models 0xe, 0xf, 0x16, 0x17
    CPUID: family 0x6, models 0xe (Pentium M DC), 0xf (Core 2 DC 65nm),
                              0x16 (Core 2 SC 65nm), 0x17 (Penryn 45nm),
                              0x1a (Nehalem), 0x1c (Atom), 0x1e (Lynnfield)
    Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual
               Volume 3A: System Programming Guide
               http://softwarecommunity.intel.com/Wiki/Mobility/720.htm

Documentation/hwmon/fscher

deleted100644 → 0
+0 −169
Original line number Diff line number Diff line
Kernel driver fscher
====================

Supported chips:
  * Fujitsu-Siemens Hermes chip
    Prefix: 'fscher'
    Addresses scanned: I2C 0x73

Authors:
        Reinhard Nissl <rnissl@gmx.de> based on work
        from Hermann Jung <hej@odn.de>,
        Frodo Looijaard <frodol@dds.nl>,
        Philip Edelbrock <phil@netroedge.com>

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

This driver implements support for the Fujitsu-Siemens Hermes chip. It is
described in the 'Register Set Specification BMC Hermes based Systemboard'
from Fujitsu-Siemens.

The Hermes chip implements a hardware-based system management, e.g. for
controlling fan speed and core voltage. There is also a watchdog counter on
the chip which can trigger an alarm and even shut the system down.

The chip provides three temperature values (CPU, motherboard and
auxiliary), three voltage values (+12V, +5V and battery) and three fans
(power supply, CPU and auxiliary).

Temperatures are measured in degrees Celsius. The resolution is 1 degree.

Fan rotation speeds are reported in RPM (rotations per minute). The value
can be divided by a programmable divider (1, 2 or 4) which is stored on
the chip.

Voltage sensors (also known as "in" sensors) report their values in volts.

All values are reported as final values from the driver. There is no need
for further calculations.


Detailed description
--------------------

Below you'll find a single line description of all the bit values. With
this information, you're able to decode e. g. alarms, wdog, etc. To make
use of the watchdog, you'll need to set the watchdog time and enable the
watchdog. After that it is necessary to restart the watchdog time within
the specified period of time, or a system reset will occur.

* revision
  READING & 0xff = 0x??: HERMES revision identification

* alarms
  READING & 0x80 = 0x80: CPU throttling active
  READING & 0x80 = 0x00: CPU running at full speed

  READING & 0x10 = 0x10: software event (see control:1)
  READING & 0x10 = 0x00: no software event

  READING & 0x08 = 0x08: watchdog event (see wdog:2)
  READING & 0x08 = 0x00: no watchdog event

  READING & 0x02 = 0x02: thermal event (see temp*:1)
  READING & 0x02 = 0x00: no thermal event

  READING & 0x01 = 0x01: fan event (see fan*:1)
  READING & 0x01 = 0x00: no fan event

  READING & 0x13 ! 0x00: ALERT LED is flashing

* control
  READING & 0x01 = 0x01: software event
  READING & 0x01 = 0x00: no software event

  WRITING & 0x01 = 0x01: set software event
  WRITING & 0x01 = 0x00: clear software event

* watchdog_control
  READING & 0x80 = 0x80: power off on watchdog event while thermal event
  READING & 0x80 = 0x00: watchdog power off disabled (just system reset enabled)

  READING & 0x40 = 0x40: watchdog timebase 60 seconds (see also wdog:1)
  READING & 0x40 = 0x00: watchdog timebase  2 seconds

  READING & 0x10 = 0x10: watchdog enabled
  READING & 0x10 = 0x00: watchdog disabled

  WRITING & 0x80 = 0x80: enable "power off on watchdog event while thermal event"
  WRITING & 0x80 = 0x00: disable "power off on watchdog event while thermal event"

  WRITING & 0x40 = 0x40: set watchdog timebase to 60 seconds
  WRITING & 0x40 = 0x00: set watchdog timebase to  2 seconds

  WRITING & 0x20 = 0x20: disable watchdog

  WRITING & 0x10 = 0x10: enable watchdog / restart watchdog time

* watchdog_state
  READING & 0x02 = 0x02: watchdog system reset occurred
  READING & 0x02 = 0x00: no watchdog system reset occurred

  WRITING & 0x02 = 0x02: clear watchdog event

* watchdog_preset
  READING & 0xff = 0x??: configured watch dog time in units (see wdog:3 0x40)

  WRITING & 0xff = 0x??: configure watch dog time in units

* in*     (0: +5V, 1: +12V, 2: onboard 3V battery)
  READING: actual voltage value

* temp*_status   (1: CPU sensor, 2: onboard sensor, 3: auxiliary sensor)
  READING & 0x02 = 0x02: thermal event (overtemperature)
  READING & 0x02 = 0x00: no thermal event

  READING & 0x01 = 0x01: sensor is working
  READING & 0x01 = 0x00: sensor is faulty

  WRITING & 0x02 = 0x02: clear thermal event

* temp*_input   (1: CPU sensor, 2: onboard sensor, 3: auxiliary sensor)
  READING: actual temperature value

* fan*_status   (1: power supply fan, 2: CPU fan, 3: auxiliary fan)
  READING & 0x04 = 0x04: fan event (fan fault)
  READING & 0x04 = 0x00: no fan event

  WRITING & 0x04 = 0x04: clear fan event

* fan*_div (1: power supply fan, 2: CPU fan, 3: auxiliary fan)
  	Divisors 2,4 and 8 are supported, both for reading and writing

* fan*_pwm   (1: power supply fan, 2: CPU fan, 3: auxiliary fan)
  READING & 0xff = 0x00: fan may be switched off
  READING & 0xff = 0x01: fan must run at least at minimum speed (supply: 6V)
  READING & 0xff = 0xff: fan must run at maximum speed (supply: 12V)
  READING & 0xff = 0x??: fan must run at least at given speed (supply: 6V..12V)

  WRITING & 0xff = 0x00: fan may be switched off
  WRITING & 0xff = 0x01: fan must run at least at minimum speed (supply: 6V)
  WRITING & 0xff = 0xff: fan must run at maximum speed (supply: 12V)
  WRITING & 0xff = 0x??: fan must run at least at given speed (supply: 6V..12V)

* fan*_input   (1: power supply fan, 2: CPU fan, 3: auxiliary fan)
  READING: actual RPM value


Limitations
-----------

* Measuring fan speed
It seems that the chip counts "ripples" (typical fans produce 2 ripples per
rotation while VERAX fans produce 18) in a 9-bit register. This register is
read out every second, then the ripple prescaler (2, 4 or 8) is applied and
the result is stored in the 8 bit output register. Due to the limitation of
the counting register to 9 bits, it is impossible to measure a VERAX fan
properly (even with a prescaler of 8). At its maximum speed of 3500 RPM the
fan produces 1080 ripples per second which causes the counting register to
overflow twice, leading to only 186 RPM.

* Measuring input voltages
in2 ("battery") reports the voltage of the onboard lithium battery and not
+3.3V from the power supply.

* Undocumented features
Fujitsu-Siemens Computers has not documented all features of the chip so
far. Their software, System Guard, shows that there are a still some
features which cannot be controlled by this implementation.
+3 −31
Original line number Diff line number Diff line
@@ -325,34 +325,6 @@ config SENSORS_F75375S
	  This driver can also be built as a module.  If so, the module
	  will be called f75375s.

config SENSORS_FSCHER
	tristate "FSC Hermes (DEPRECATED)"
	depends on X86 && I2C
	help
	  This driver is DEPRECATED please use the new merged fschmd
	  ("FSC Poseidon, Scylla, Hermes, Heimdall and Heracles") driver
	  instead.

	  If you say yes here you get support for Fujitsu Siemens
	  Computers Hermes sensor chips.

	  This driver can also be built as a module.  If so, the module
	  will be called fscher.

config SENSORS_FSCPOS
	tristate "FSC Poseidon (DEPRECATED)"
	depends on X86 && I2C
	help
	  This driver is DEPRECATED please use the new merged fschmd
	  ("FSC Poseidon, Scylla, Hermes, Heimdall and Heracles") driver
	  instead.

	  If you say yes here you get support for Fujitsu Siemens
	  Computers Poseidon sensor chips.

	  This driver can also be built as a module.  If so, the module
	  will be called fscpos.

config SENSORS_FSCHMD
	tristate "Fujitsu Siemens Computers sensor chips"
	depends on X86 && I2C
@@ -401,12 +373,12 @@ config SENSORS_GL520SM
	  will be called gl520sm.

config SENSORS_CORETEMP
	tristate "Intel Core (2) Duo/Solo temperature sensor"
	tristate "Intel Core/Core2/Atom temperature sensor"
	depends on X86 && EXPERIMENTAL
	help
	  If you say yes here you get support for the temperature
	  sensor inside your CPU. Supported all are all known variants
	  of Intel Core family.
	  sensor inside your CPU. Most of the family 6 CPUs
	  are supported. Check documentation/driver for details.

config SENSORS_IBMAEM
	tristate "IBM Active Energy Manager temperature/power sensors and control"
+0 −2
Original line number Diff line number Diff line
@@ -42,9 +42,7 @@ obj-$(CONFIG_SENSORS_DS1621) += ds1621.o
obj-$(CONFIG_SENSORS_F71805F)	+= f71805f.o
obj-$(CONFIG_SENSORS_F71882FG)	+= f71882fg.o
obj-$(CONFIG_SENSORS_F75375S)	+= f75375s.o
obj-$(CONFIG_SENSORS_FSCHER)	+= fscher.o
obj-$(CONFIG_SENSORS_FSCHMD)	+= fschmd.o
obj-$(CONFIG_SENSORS_FSCPOS)	+= fscpos.o
obj-$(CONFIG_SENSORS_G760A)	+= g760a.o
obj-$(CONFIG_SENSORS_GL518SM)	+= gl518sm.o
obj-$(CONFIG_SENSORS_GL520SM)	+= gl520sm.o
Loading