linux/drivers/hwmon
Fenghua Yu cb84b19474 x86, hwmon: Package Level Thermal/Power: pkgtemp hwmon driver
This patch adds a hwmon driver for package level thermal control. The driver
dumps package level thermal information through sysfs interface so that upper
level application (e.g. lm_sensor) can retrive the information.

Instead of having the package level hwmon code in coretemp, I write a seperate
driver pkgtemp because:

First, package level thermal sensors include not only sensors for each core,
but also sensors for uncore, memory controller or other components in the
package. Logically it will be clear to have a seperate hwmon driver for package
level hwmon to monitor wider range of sensors in a package. Merging package
thermal driver into core thermal driver doesn't make sense and may mislead.

Secondly, merging the two drivers together may cause coding mess. It's easier
to include various package level sensors info if more sensor information is
implemented. Coretemp code needs to consider a lot of legacy machine cases.
Pkgtemp code only considers platform starting from Sandy Bridge.

On a 1Sx4Cx2T Sandy Bridge platform, lm-sensors dumps the pkgtemp and coretemp:

pkgtemp-isa-0000
Adapter: ISA adapter
physical id 0: +33.0°C  (high = +79.0°C, crit = +99.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +32.0°C  (high = +79.0°C, crit = +99.0°C)

coretemp-isa-0001
Adapter: ISA adapter
Core 1:      +32.0°C  (high = +79.0°C, crit = +99.0°C)

coretemp-isa-0002
Adapter: ISA adapter
Core 2:      +32.0°C  (high = +79.0°C, crit = +99.0°C)

coretemp-isa-0003
Adapter: ISA adapter
Core 3:      +32.0°C  (high = +79.0°C, crit = +99.0°C)

[ hpa: folded v3 patch removing improper global variable "SHOW" ]

Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
LKML-Reference: <1280448826-12004-3-git-send-email-fenghua.yu@intel.com>
Reviewed-by: Len Brown <len.brown@intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
2010-08-03 15:58:07 -07:00
..
ams macintosh/hwmon/ams: Fix device removal sequence 2010-02-03 17:39:49 +11:00
abituguru3.c hwmon: Include <linux/io.h> instead of <asm/io.h> 2009-09-15 17:18:13 +02:00
abituguru.c hwmon: Include <linux/io.h> instead of <asm/io.h> 2009-09-15 17:18:13 +02:00
ad7414.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ad7418.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
adcxx.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
adm1021.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
adm1025.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
adm1026.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
adm1029.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
adm1031.c hwmon: (adm1031) Allow setting update rate 2010-05-27 19:58:46 +02:00
adm9240.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
ads7828.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
ads7871.c hwmon: add TI ads7871 a/d converter driver 2010-05-25 08:07:07 -07:00
adt7411.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
adt7462.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
adt7470.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
adt7475.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
amc6821.c hwmon: (amc6821) Double unlock bug 2010-01-25 15:00:49 +01:00
applesmc.c hwmon: (applesmc) Add temperature sensor labels to sysfs interface 2010-05-27 19:58:54 +02:00
asb100.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
asc7621.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
asus_atk0110.c hwmon: (asus_atk0110) Don't load if ACPI resources aren't enforced 2010-05-27 19:58:37 +02:00
atxp1.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
coretemp.c hwmon: (coretemp) Properly label the sensors 2010-07-09 16:22:51 +02:00
dme1737.c hwmon: (dme1737) Add SCH5127 support 2010-05-27 19:59:01 +02:00
ds1621.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
emc1403.c hwmon: EMC1403 thermal sensor support 2010-05-27 19:58:56 +02:00
f71805f.c hwmon: Include <linux/io.h> instead of <asm/io.h> 2009-09-15 17:18:13 +02:00
f71882fg.c hwmon: (f71882fg) Acquire I/O regions while we're working with them 2010-05-27 19:58:43 +02:00
f75375s.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
fschmd.c drivers: Push down BKL into various drivers 2010-05-17 05:27:41 +02:00
g760a.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
gl518sm.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
gl520sm.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
hdaps.c hwmon: Include <linux/io.h> instead of <asm/io.h> 2009-09-15 17:18:13 +02:00
hp_accel.c hp_accel: fix race in device removal 2010-05-11 17:33:42 -07:00
hwmon-vid.c hwmon-vid: Ignore 6th VID pin of AMD family 0Fh processors 2009-09-15 17:18:11 +02:00
hwmon.c hwmon: PCI quirk for hwmon access on MSI MS-7031 board 2009-06-15 18:39:50 +02:00
i5k_amb.c hwmon: (i5k_amb) Fix sysfs attribute for lockdep 2010-06-20 09:22:31 +02:00
ibmaem.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ibmpex.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
it87.c hwmon: (it87) Fix in7 on IT8720F 2010-07-09 16:22:48 +02:00
k8temp.c hwmon: (k8temp) Fix temperature reporting for ASB1 processor revisions 2010-07-09 16:22:47 +02:00
k10temp.c hwmon: (k10temp) Do not blacklist known working CPU models 2010-06-20 09:22:31 +02:00
Kconfig x86, hwmon: Package Level Thermal/Power: pkgtemp hwmon driver 2010-08-03 15:58:07 -07:00
lis3lv02d_i2c.c hwmon: I2C bus support for lis3lv02d and variant accelerometer chips 2009-12-17 15:45:30 -08:00
lis3lv02d_spi.c lis3lv02d_spi: module unload didn't remove sysfs entry 2009-10-08 07:36:40 -07:00
lis3lv02d.c lis3: setup poll interval limits 2010-05-25 08:07:07 -07:00
lis3lv02d.h lis3: interrupt handlers for 8bit wakeup and click events 2010-05-25 08:07:07 -07:00
lm63.c hwmon: (lm63) Add basic support for LM64 2010-05-27 19:58:38 +02:00
lm70.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
lm73.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
lm75.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
lm75.h hwmon: Allow writing of negative trigger temperatures 2007-10-09 22:56:29 -04:00
lm77.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
lm78.c hwmon: (lm78) Request I/O ports individually for probing 2010-02-05 19:58:36 +01:00
lm80.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
lm83.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
lm85.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
lm87.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
lm90.c hwmon: (lm90) Use programmed update rate 2010-05-27 19:58:44 +02:00
lm92.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
lm93.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
lm95241.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
ltc4215.c ltc4215/ltc4245: Discard obsolete detect methods 2009-10-04 22:53:42 +02:00
ltc4245.c hwmon: (ltc4245) Read only one GPIO pin 2010-05-27 19:59:02 +02:00
Makefile x86, hwmon: Package Level Thermal/Power: pkgtemp hwmon driver 2010-08-03 15:58:07 -07:00
max1111.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
max1619.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
max6650.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
mc13783-adc.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pc87360.c hwmon: Include <linux/io.h> instead of <asm/io.h> 2009-09-15 17:18:13 +02:00
pc87427.c hwmon: Use resource_size 2009-09-15 17:18:13 +02:00
pcf8591.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
pkgtemp.c x86, hwmon: Package Level Thermal/Power: pkgtemp hwmon driver 2010-08-03 15:58:07 -07:00
s3c-hwmon.c hwmon: (s3c-hwmon) Fix build error 2009-12-09 20:35:45 +01:00
sht15.c hwmon: (sht15) Properly handle the case CONFIG_REGULATOR=n 2010-04-14 16:14:08 +02:00
sis5595.c hwmon: Make PCI device ids constant 2010-01-10 20:52:35 +01:00
smsc47b397.c hwmon: Include <linux/io.h> instead of <asm/io.h> 2009-09-15 17:18:13 +02:00
smsc47m1.c hwmon: (smsc47m1) Fix section mismatch 2010-01-25 15:00:48 +01:00
smsc47m192.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
thmc50.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
tmp102.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
tmp401.c hwmon: (tmp401) Reorganize code to get rid of static forward declarations 2010-05-27 19:58:49 +02:00
tmp421.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
ultra45_env.c of: Remove duplicate fields from of_platform_driver 2010-05-22 00:10:40 -06:00
via686a.c hwmon: Make PCI device ids constant 2010-01-10 20:52:35 +01:00
via-cputemp.c hwmon: Add driver for VIA CPU core temperature 2009-12-16 21:38:28 +01:00
vt1211.c hwmon: Use resource_size 2009-09-15 17:18:13 +02:00
vt8231.c drivers/hwmon/vt8231.c: fix continuation line formats 2010-03-06 11:26:45 -08:00
w83l785ts.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
w83l786ng.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
w83627ehf.c hwmon: w83627ehf updates 2009-12-15 08:53:35 -08:00
w83627hf.c hwmon: (w83627hf) Fix for "No such device" 2009-12-16 21:38:29 +01:00
w83781d.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
w83791d.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
w83792d.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
w83793.c drivers: Push down BKL into various drivers 2010-05-17 05:27:41 +02:00
wm831x-hwmon.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
wm8350-hwmon.c hwmon: Add WM835x PMIC hardware monitoring driver 2009-09-17 09:46:51 +02:00