Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
f71882fg.c File Reference
#include <linux/module.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/jiffies.h>
#include <linux/platform_device.h>
#include <linux/hwmon.h>
#include <linux/hwmon-sysfs.h>
#include <linux/err.h>
#include <linux/mutex.h>
#include <linux/io.h>
#include <linux/acpi.h>

Go to the source code of this file.

Data Structures

struct  f71882fg_sio_data
 
struct  f71882fg_data
 

Macros

#define pr_fmt(fmt)   KBUILD_MODNAME ": " fmt
 
#define DRVNAME   "f71882fg"
 
#define SIO_F71858FG_LD_HWM   0x02 /* Hardware monitor logical device */
 
#define SIO_F71882FG_LD_HWM   0x04 /* Hardware monitor logical device */
 
#define SIO_UNLOCK_KEY   0x87 /* Key to enable Super-I/O */
 
#define SIO_LOCK_KEY   0xAA /* Key to disable Super-I/O */
 
#define SIO_REG_LDSEL   0x07 /* Logical device select */
 
#define SIO_REG_DEVID   0x20 /* Device ID (2 bytes) */
 
#define SIO_REG_DEVREV   0x22 /* Device revision */
 
#define SIO_REG_MANID   0x23 /* Fintek ID (2 bytes) */
 
#define SIO_REG_ENABLE   0x30 /* Logical device enable */
 
#define SIO_REG_ADDR   0x60 /* Logical device address (2 bytes) */
 
#define SIO_FINTEK_ID   0x1934 /* Manufacturers ID */
 
#define SIO_F71808E_ID   0x0901 /* Chipset ID */
 
#define SIO_F71808A_ID   0x1001 /* Chipset ID */
 
#define SIO_F71858_ID   0x0507 /* Chipset ID */
 
#define SIO_F71862_ID   0x0601 /* Chipset ID */
 
#define SIO_F71869_ID   0x0814 /* Chipset ID */
 
#define SIO_F71869A_ID   0x1007 /* Chipset ID */
 
#define SIO_F71882_ID   0x0541 /* Chipset ID */
 
#define SIO_F71889_ID   0x0723 /* Chipset ID */
 
#define SIO_F71889E_ID   0x0909 /* Chipset ID */
 
#define SIO_F71889A_ID   0x1005 /* Chipset ID */
 
#define SIO_F8000_ID   0x0581 /* Chipset ID */
 
#define SIO_F81865_ID   0x0704 /* Chipset ID */
 
#define REGION_LENGTH   8
 
#define ADDR_REG_OFFSET   5
 
#define DATA_REG_OFFSET   6
 
#define F71882FG_REG_IN_STATUS   0x12 /* f7188x only */
 
#define F71882FG_REG_IN_BEEP   0x13 /* f7188x only */
 
#define F71882FG_REG_IN(nr)   (0x20 + (nr))
 
#define F71882FG_REG_IN1_HIGH   0x32 /* f7188x only */
 
#define F71882FG_REG_FAN(nr)   (0xA0 + (16 * (nr)))
 
#define F71882FG_REG_FAN_TARGET(nr)   (0xA2 + (16 * (nr)))
 
#define F71882FG_REG_FAN_FULL_SPEED(nr)   (0xA4 + (16 * (nr)))
 
#define F71882FG_REG_FAN_STATUS   0x92
 
#define F71882FG_REG_FAN_BEEP   0x93
 
#define F71882FG_REG_TEMP(nr)   (0x70 + 2 * (nr))
 
#define F71882FG_REG_TEMP_OVT(nr)   (0x80 + 2 * (nr))
 
#define F71882FG_REG_TEMP_HIGH(nr)   (0x81 + 2 * (nr))
 
#define F71882FG_REG_TEMP_STATUS   0x62
 
#define F71882FG_REG_TEMP_BEEP   0x63
 
#define F71882FG_REG_TEMP_CONFIG   0x69
 
#define F71882FG_REG_TEMP_HYST(nr)   (0x6C + (nr))
 
#define F71882FG_REG_TEMP_TYPE   0x6B
 
#define F71882FG_REG_TEMP_DIODE_OPEN   0x6F
 
#define F71882FG_REG_PWM(nr)   (0xA3 + (16 * (nr)))
 
#define F71882FG_REG_PWM_TYPE   0x94
 
#define F71882FG_REG_PWM_ENABLE   0x96
 
#define F71882FG_REG_FAN_HYST(nr)   (0x98 + (nr))
 
#define F71882FG_REG_FAN_FAULT_T   0x9F
 
#define F71882FG_FAN_NEG_TEMP_EN   0x20
 
#define F71882FG_FAN_PROG_SEL   0x80
 
#define F71882FG_REG_POINT_PWM(pwm, point)   (0xAA + (point) + (16 * (pwm)))
 
#define F71882FG_REG_POINT_TEMP(pwm, point)   (0xA6 + (point) + (16 * (pwm)))
 
#define F71882FG_REG_POINT_MAPPING(nr)   (0xAF + 16 * (nr))
 
#define F71882FG_REG_START   0x01
 
#define F71882FG_MAX_INS   9
 
#define FAN_MIN_DETECT   366 /* Lowest detectable fanspeed */
 

Enumerations

enum  chips {
  ad7416, ad7417, ad7418, adm1021,
  adm1023, max1617, max1617a, thmc10,
  lm84, gl523sm, mc1066, adm1025,
  ne1619, adm1030, adm1031, adm9240,
  ds1780, lm81, adt7473, adt7475,
  adt7476, adt7490, amc6821, dme1737,
  sch5027, sch311x, sch5127, f71808e,
  f71808a, f71858fg, f71862fg, f71869,
  f71869a, f71882fg, f71889fg, f71889ed,
  f71889a, f8000, f81865f, f75373,
  f75375, f75387, fscpos, fscher,
  fscscy, fschrc, fschmd, fschds,
  fscsyl, gl518sm_r00, gl518sm_r80, it87,
  it8712, it8716, it8718, it8720,
  it8721, it8728, it8782, it8783,
  lm63, lm64, lm96163, lm78,
  lm79, lm83, lm82, any_chip,
  lm85b, lm85c, adm1027, adt7463,
  adt7468, emc6d100, emc6d102, emc6d103,
  emc6d103s, lm87, adm1024, lm90,
  adm1032, lm99, lm86, max6657,
  max6659, adt7461, max6680, max6646,
  w83l771, max6696, sa56004, g781,
  max1110, max1111, max1112, max1113,
  max16065, max16066, max16067, max16068,
  max16070, max16071, max1668, max1805,
  max1989, mcp3021, mcp3221, adm1075,
  adm1275, adm1276, lm25066, lm5064,
  lm5066, ltc2978, ltc3880, max34440,
  max34441, max34446, ucd9000, ucd90120,
  ucd90124, ucd9090, ucd90910, ucd9200,
  ucd9220, ucd9222, ucd9224, ucd9240,
  ucd9244, ucd9246, ucd9248, zl2004,
  zl2005, zl2006, zl2008, zl2105,
  zl2106, zl6100, zl6105, zl9101,
  zl9117, smm465, smm665, smm665c,
  smm764, smm766, smsc47m1, smsc47m2,
  thmc50, adm1022, tmp401, tmp411,
  tmp421, tmp422, tmp423, w83627hf,
  w83627thf, w83697hf, w83637hf, w83687thf,
  w83781d, w83782d, w83783s, as99127f,
  DC21040 = 0, DC21041 = 1, DC21140 = 2, DC21142 = 3,
  DC21143 = 3, LC82C168, MX98713, MX98715,
  MX98725, AX88140, PNIC2, COMET,
  COMPEX9881, I21145, DM910X, CONEXANT,
  TPS62360, TPS62361, TPS62362, TPS62363,
  sc18is602, sc18is602b, sc18is603, f71808fg,
  f71858fg, f71862fg, f71869, f71882fg,
  f71889fg
}
 

Functions

 module_param (force_id, ushort, 0)
 
 MODULE_PARM_DESC (force_id,"Override the detected device ID")
 
 MODULE_DESCRIPTION ("F71882FG Hardware Monitoring Driver")
 
 MODULE_AUTHOR ("Hans Edgington, Hans de Goede <[email protected]>")
 
 MODULE_LICENSE ("GPL")
 
 module_init (f71882fg_init)
 
 module_exit (f71882fg_exit)
 

Macro Definition Documentation

#define ADDR_REG_OFFSET   5

Definition at line 64 of file f71882fg.c.

#define DATA_REG_OFFSET   6

Definition at line 65 of file f71882fg.c.

#define DRVNAME   "f71882fg"

Definition at line 35 of file f71882fg.c.

#define F71882FG_FAN_NEG_TEMP_EN   0x20

Definition at line 95 of file f71882fg.c.

#define F71882FG_FAN_PROG_SEL   0x80

Definition at line 96 of file f71882fg.c.

#define F71882FG_MAX_INS   9

Definition at line 104 of file f71882fg.c.

#define F71882FG_REG_FAN (   nr)    (0xA0 + (16 * (nr)))

Definition at line 72 of file f71882fg.c.

#define F71882FG_REG_FAN_BEEP   0x93

Definition at line 76 of file f71882fg.c.

#define F71882FG_REG_FAN_FAULT_T   0x9F

Definition at line 94 of file f71882fg.c.

#define F71882FG_REG_FAN_FULL_SPEED (   nr)    (0xA4 + (16 * (nr)))

Definition at line 74 of file f71882fg.c.

#define F71882FG_REG_FAN_HYST (   nr)    (0x98 + (nr))

Definition at line 92 of file f71882fg.c.

#define F71882FG_REG_FAN_STATUS   0x92

Definition at line 75 of file f71882fg.c.

#define F71882FG_REG_FAN_TARGET (   nr)    (0xA2 + (16 * (nr)))

Definition at line 73 of file f71882fg.c.

#define F71882FG_REG_IN (   nr)    (0x20 + (nr))

Definition at line 69 of file f71882fg.c.

#define F71882FG_REG_IN1_HIGH   0x32 /* f7188x only */

Definition at line 70 of file f71882fg.c.

#define F71882FG_REG_IN_BEEP   0x13 /* f7188x only */

Definition at line 68 of file f71882fg.c.

#define F71882FG_REG_IN_STATUS   0x12 /* f7188x only */

Definition at line 67 of file f71882fg.c.

#define F71882FG_REG_POINT_MAPPING (   nr)    (0xAF + 16 * (nr))

Definition at line 100 of file f71882fg.c.

#define F71882FG_REG_POINT_PWM (   pwm,
  point 
)    (0xAA + (point) + (16 * (pwm)))

Definition at line 98 of file f71882fg.c.

#define F71882FG_REG_POINT_TEMP (   pwm,
  point 
)    (0xA6 + (point) + (16 * (pwm)))

Definition at line 99 of file f71882fg.c.

#define F71882FG_REG_PWM (   nr)    (0xA3 + (16 * (nr)))

Definition at line 88 of file f71882fg.c.

#define F71882FG_REG_PWM_ENABLE   0x96

Definition at line 90 of file f71882fg.c.

#define F71882FG_REG_PWM_TYPE   0x94

Definition at line 89 of file f71882fg.c.

#define F71882FG_REG_START   0x01

Definition at line 102 of file f71882fg.c.

#define F71882FG_REG_TEMP (   nr)    (0x70 + 2 * (nr))

Definition at line 78 of file f71882fg.c.

#define F71882FG_REG_TEMP_BEEP   0x63

Definition at line 82 of file f71882fg.c.

#define F71882FG_REG_TEMP_CONFIG   0x69

Definition at line 83 of file f71882fg.c.

#define F71882FG_REG_TEMP_DIODE_OPEN   0x6F

Definition at line 86 of file f71882fg.c.

#define F71882FG_REG_TEMP_HIGH (   nr)    (0x81 + 2 * (nr))

Definition at line 80 of file f71882fg.c.

#define F71882FG_REG_TEMP_HYST (   nr)    (0x6C + (nr))

Definition at line 84 of file f71882fg.c.

#define F71882FG_REG_TEMP_OVT (   nr)    (0x80 + 2 * (nr))

Definition at line 79 of file f71882fg.c.

#define F71882FG_REG_TEMP_STATUS   0x62

Definition at line 81 of file f71882fg.c.

#define F71882FG_REG_TEMP_TYPE   0x6B

Definition at line 85 of file f71882fg.c.

#define FAN_MIN_DETECT   366 /* Lowest detectable fanspeed */

Definition at line 106 of file f71882fg.c.

#define pr_fmt (   fmt)    KBUILD_MODNAME ": " fmt

Definition at line 21 of file f71882fg.c.

#define REGION_LENGTH   8

Definition at line 63 of file f71882fg.c.

#define SIO_F71808A_ID   0x1001 /* Chipset ID */

Definition at line 51 of file f71882fg.c.

#define SIO_F71808E_ID   0x0901 /* Chipset ID */

Definition at line 50 of file f71882fg.c.

#define SIO_F71858_ID   0x0507 /* Chipset ID */

Definition at line 52 of file f71882fg.c.

#define SIO_F71858FG_LD_HWM   0x02 /* Hardware monitor logical device */

Definition at line 37 of file f71882fg.c.

#define SIO_F71862_ID   0x0601 /* Chipset ID */

Definition at line 53 of file f71882fg.c.

#define SIO_F71869_ID   0x0814 /* Chipset ID */

Definition at line 54 of file f71882fg.c.

#define SIO_F71869A_ID   0x1007 /* Chipset ID */

Definition at line 55 of file f71882fg.c.

#define SIO_F71882_ID   0x0541 /* Chipset ID */

Definition at line 56 of file f71882fg.c.

#define SIO_F71882FG_LD_HWM   0x04 /* Hardware monitor logical device */

Definition at line 38 of file f71882fg.c.

#define SIO_F71889_ID   0x0723 /* Chipset ID */

Definition at line 57 of file f71882fg.c.

#define SIO_F71889A_ID   0x1005 /* Chipset ID */

Definition at line 59 of file f71882fg.c.

#define SIO_F71889E_ID   0x0909 /* Chipset ID */

Definition at line 58 of file f71882fg.c.

#define SIO_F8000_ID   0x0581 /* Chipset ID */

Definition at line 60 of file f71882fg.c.

#define SIO_F81865_ID   0x0704 /* Chipset ID */

Definition at line 61 of file f71882fg.c.

#define SIO_FINTEK_ID   0x1934 /* Manufacturers ID */

Definition at line 49 of file f71882fg.c.

#define SIO_LOCK_KEY   0xAA /* Key to disable Super-I/O */

Definition at line 40 of file f71882fg.c.

#define SIO_REG_ADDR   0x60 /* Logical device address (2 bytes) */

Definition at line 47 of file f71882fg.c.

#define SIO_REG_DEVID   0x20 /* Device ID (2 bytes) */

Definition at line 43 of file f71882fg.c.

#define SIO_REG_DEVREV   0x22 /* Device revision */

Definition at line 44 of file f71882fg.c.

#define SIO_REG_ENABLE   0x30 /* Logical device enable */

Definition at line 46 of file f71882fg.c.

#define SIO_REG_LDSEL   0x07 /* Logical device select */

Definition at line 42 of file f71882fg.c.

#define SIO_REG_MANID   0x23 /* Fintek ID (2 bytes) */

Definition at line 45 of file f71882fg.c.

#define SIO_UNLOCK_KEY   0x87 /* Key to enable Super-I/O */

Definition at line 39 of file f71882fg.c.

Enumeration Type Documentation

enum chips
Enumerator:
ad7416 
ad7417 
ad7418 
adm1021 
adm1023 
max1617 
max1617a 
thmc10 
lm84 
gl523sm 
mc1066 
adm1025 
ne1619 
adm1030 
adm1031 
adm9240 
ds1780 
lm81 
adt7473 
adt7475 
adt7476 
adt7490 
amc6821 
dme1737 
sch5027 
sch311x 
sch5127 
f71808e 
f71808a 
f71858fg 
f71862fg 
f71869 
f71869a 
f71882fg 
f71889fg 
f71889ed 
f71889a 
f8000 
f81865f 
f75373 
f75375 
f75387 
fscpos 
fscher 
fscscy 
fschrc 
fschmd 
fschds 
fscsyl 
gl518sm_r00 
gl518sm_r80 
it87 
it8712 
it8716 
it8718 
it8720 
it8721 
it8728 
it8782 
it8783 
lm63 
lm64 
lm96163 
lm78 
lm79 
lm83 
lm82 
any_chip 
lm85b 
lm85c 
adm1027 
adt7463 
adt7468 
emc6d100 
emc6d102 
emc6d103 
emc6d103s 
lm87 
adm1024 
lm90 
adm1032 
lm99 
lm86 
max6657 
max6659 
adt7461 
max6680 
max6646 
w83l771 
max6696 
sa56004 
g781 
max1110 
max1111 
max1112 
max1113 
max16065 
max16066 
max16067 
max16068 
max16070 
max16071 
max1668 
max1805 
max1989 
mcp3021 
mcp3221 
adm1075 
adm1275 
adm1276 
lm25066 
lm5064 
lm5066 
ltc2978 
ltc3880 
max34440 
max34441 
max34446 
ucd9000 
ucd90120 
ucd90124 
ucd9090 
ucd90910 
ucd9200 
ucd9220 
ucd9222 
ucd9224 
ucd9240 
ucd9244 
ucd9246 
ucd9248 
zl2004 
zl2005 
zl2006 
zl2008 
zl2105 
zl2106 
zl6100 
zl6105 
zl9101 
zl9117 
smm465 
smm665 
smm665c 
smm764 
smm766 
smsc47m1 
smsc47m2 
thmc50 
adm1022 
tmp401 
tmp411 
tmp421 
tmp422 
tmp423 
w83627hf 
w83627thf 
w83697hf 
w83637hf 
w83687thf 
w83781d 
w83782d 
w83783s 
as99127f 
DC21040 
DC21041 
DC21140 
DC21142 
DC21143 
LC82C168 
MX98713 
MX98715 
MX98725 
AX88140 
PNIC2 
COMET 
COMPEX9881 
I21145 
DM910X 
CONEXANT 
TPS62360 
TPS62361 
TPS62362 
TPS62363 
sc18is602 
sc18is602b 
sc18is603 
f71808fg 
f71858fg 
f71862fg 
f71869 
f71882fg 
f71889fg 

Definition at line 112 of file f71882fg.c.

Function Documentation

MODULE_AUTHOR ( "Hans  Edgington,
Hans de Goede< hdegoede @redhat.com >"   
)
MODULE_DESCRIPTION ( "F71882FG Hardware Monitoring Driver"  )
module_exit ( f71882fg_exit  )
module_init ( f71882fg_init  )
MODULE_LICENSE ( "GPL"  )
module_param ( force_id  ,
ushort  ,
 
)
MODULE_PARM_DESC ( force_id  ,
"Override the detected device ID  
)