summaryrefslogtreecommitdiff
path: root/drivers/hwmon/f71882fg.c
Commit message (Collapse)AuthorAgeFilesLines
* hwmon: (f71882fg) Acquire I/O regions while we're working with themGiel van Schijndel2010-05-271-0/+8
| | | | | | | | Acquire the I/O region for the Super I/O chip while we're working on it. Signed-off-by: Giel van Schijndel <me@mortis.eu> Cc: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Code cleanupGiel van Schijndel2010-05-271-12/+6
| | | | | | | | | Some code cleanup: properly use previously defined functions, rather than duplicating their code. Signed-off-by: Giel van Schijndel <me@mortis.eu> Cc: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Use strict_stro(l|ul) instead of simple_strto$1Giel van Schijndel2010-05-271-29/+104
| | | | | | | | | Use the strict_strol and strict_stroul functions instead of simple_strol and simple_stroul respectively in sysfs functions. Signed-off-by: Giel van Schijndel <me@mortis.eu> Acked-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Fixed braces coding style issuesGiel van Schijndel2010-05-271-6/+5
| | | | | | | | Fixed several coding style issues. Signed-off-by: Giel van Schijndel <me@mortis.eu> Acked-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Add support for the f71889fg (version 2)Hans de Goede2009-12-091-18/+68
| | | | | | | | | | | | | | | | | | | | | | This adds support for the Fintek f71889fg to the f71882fg driver, many thanks to Gerd v. Egidy for providing (remote) access to a machine which such an ic. Note that this bit of the patch: - val = SENSORS_LIMIT(val, 0, 255); + + if (data->type == f71889fg) + val = SENSORS_LIMIT(val, -128, 127); + else + val = SENSORS_LIMIT(val, 0, 127); Changes behaviour for already supported models, the new behaviour is correct as the already supported models have bit 7 of the involved registers fixed at 0, so the previous behaviour which allowed setting temp zone limits > 127 was not correct. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Fix sysfs file removalHans de Goede2009-12-091-25/+66
| | | | | | | | | | | | | | There is a bug in the old sysfs file removal, as it uses fxxxx_in_temp_attr to remove the in and temp sysfs attributes, but fxxxx_in_temp_attr has temp#_alarm, where as f71858fg_in_temp_attr has temp#_max_alarm, so the temp#_max_alarm attributes for the f71858fg never get removed. This patch fixes this by doing the sysfs removal exactly the same way as the creation instead of being (too) clever, this will also avoid similar bugs in the future. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Cleanup sysfs attr creation 2/2Hans de Goede2009-12-091-64/+52
| | | | | | | | | | | This patch merges the f71882fg_auto_pwm_attr array into the fxxxx_fan_attr resp. fxxxx_auto_pwm_attr array, as the f71882fg_auto_pwm_attr array was merely extending these 2 with entries for a 4th fan, it also makes these 2 arrays 2 dimensional so that the rest of the code can choose to add attr for 3 or 4 fans without needing to know the nr of attr per fan. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Cleanup sysfs attr creation 1/2Hans de Goede2009-12-091-48/+89
| | | | | | | | | | | | | | | | | | | | | This patch makes a number of cleanups to the sysfs attr creation in the f71882fg driver, this is a preparation patch for adding f71889fg support: * Add some comments to explain why some models need separate sysfs attr arrays for in / temp / fan / pwm * Rename a number of sysfs attr arrays to make their function clearer * Move the pwm#_auto_channels_temp attribute from the common to all models fan attr array to the per model auto mode pwm attr arrays, so that all the auto mode pwm attr are grouped together, and thus can be left out on models where we don't support auto pwm mode * Put fan_beep attr in their own array, so that only auto mode pwm attr remain in the per model pwm sysfs attr arrays. * Put the 4th special fan input for the f8000 in its own array, so that only auto mode pwm attr remain in the per model pwm sysfs attr arrays. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Add support for the F71858FHans de Goede2009-06-151-36/+156
| | | | | | | | | Add support for the hwmon part of the Fintek F71858FG superio IC to the f71882fg driver. Many thanks to Jelle de Jong for lending me a motherboard with this superio on it. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Add temp#_fault sysfs attr for f8000Hans de Goede2009-06-151-0/+3
| | | | | | | | | While working on f71852fg support I noticed that the f8000 sysfs attr table was missing entries for temp#_fault, which the f8000 does have and which we were already reading. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Sanity check f8000 pwm settingsHans de Goede2009-06-151-13/+23
| | | | | | | | | | | | We depend up on the pwm_enable register (0x96) not containing any reserved settings in various places. We were already checking to make sure there were no reserved settings in the register for the f71862fg, this patch adds the same checking for the f8000, while at it it also moves the code to a more apropriate place so we don't need to check if the fan/pwm part of the IC is enabled twice. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Cleanup f8000 pwm handlingHans de Goede2009-06-151-9/+8
| | | | | | | | | | | | Currently we are using separate per model sysfs attr for the 3th pwm, because the 3th pwm of the f8000 only has automatic mode and not manual mode. Doing things this way was getting in the way for adding f71858fg support, so this patch makes the pwm attr identical for all models, and instead adds a check to store_pwm_enable() disallowing setting the 3th pwm to manual mode on a f8000 IC. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: Fix more __devexit_p glitchesJean Delvare2009-06-151-1/+1
| | | | | | | | | Make sure __devexit and devexit_p() match in all hwmon drivers. Suggested by a similar fix from Mike Frysinger. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Jonathan Cameron <jic23@cam.ac.uk>
* hwmon: Fix ACPI resource check error handlingHans de Goede2009-02-171-1/+1
| | | | | | | | | | This patch fixes a number of cases where things were not properly cleaned up when acpi_check_resource_conflict() returned an error, causing oopses such as the one reported here: https://bugzilla.redhat.com/show_bug.cgi?id=483208 Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Hide misleading error messageJean Delvare2009-02-171-1/+1
| | | | | | | | | | | | | If the F71882FG chip is at address 0x4e, then the probe at 0x2e will fail with the following message in the logs: f71882fg: Not a Fintek device This is misleading because there is a Fintek device, just at a different address. So I propose to degrade this message to a debug message. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Hans de Goede <hdegoede@redhat.com>
* hwmon: Check for ACPI resource conflictsJean Delvare2009-01-071-0/+5
| | | | | | | | | | | | | | | | | | Check for ACPI resource conflicts in hwmon drivers. I've included all Super-I/O and PCI drivers. I've voluntarily left out: * Vendor-specific drivers: if they conflicted on any system, this would pretty much mean that they conflict on all systems, and we would know by now. * Legacy ISA drivers (lm78 and w83781d): they only support chips found on old designs were ACPI either wasn't supported or didn't deal with thermal management. * Drivers accessing the I/O resources indirectly (e.g. through SMBus): the checks are already done where they belong, i.e. in the bus drivers. Signed-off-by: Jean Delvare <jdelvare@suse.de> Acked-by: David Hubbard <david.c.hubbard@gmail.com>
* hwmon: (f71882fg) Fix fan_to/from_reg prototypesHans de Goede2009-01-071-2/+2
| | | | | | | | | The RPM after conversion from / before conversion to a register value can be much more than 65535 (up to 1500000), so putting this into an u16 can cause overflows. This changes the functions to use an int to store / get RPM instead. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Printout fan modesHans de Goede2009-01-071-4/+9
| | | | | | | Print the mode (duty-cycle or RPM) of each fan on driver load. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Fix auto_channels_temp temp numbering with f8000Hans de Goede2009-01-071-4/+8
| | | | | | | | Adjust auto_channels_temp show and store functions for different numbering of temps between f8000 and other supported models. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Add missing pwm3 attr for f71862fgHans de Goede2009-01-071-0/+22
| | | | | | | | For some reason the fan_attr array for the f71862fg was missing the attr for the 3th pwm output. This patch fixes this. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Add F8000 supportHans de Goede2009-01-071-62/+291
| | | | | | | And (finally) the patch actually adding f8000 support. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Remove the fan_mode module optionHans de Goede2009-01-071-25/+2
| | | | | | | | Remove the fan_mode module option it was a monstrosity to begin with, and when adding support for the F8000 it becomes a real pain! Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Separate max and crit alarm and beepHans de Goede2009-01-071-9/+23
| | | | | | | | | | | | While studying the datasheets for adding F8000 support, I noticed that the F718x2 has separate alarms (and beep control) for its max and crit limits. We keep the temp#_alarm attributes as they are, even though it would be more logical to rename them to temp#_max_alarm. Because lm_sensors v2 depends on them. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Check for hwmon powerdown stateHans de Goede2009-01-071-0/+5
| | | | | | | | | | More F8000 prep work. Take over the checking if the hwmon part is not powered down from the standalone f8000 driver. This check is valid for all supported models. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Cleanup fan and temp hyst functionsHans de Goede2009-01-071-78/+43
| | | | | | | | | | Simplify fan and temp hyst. handling by treating the registers as an array of nibbles instead of using switch cases. Also unify the way hysts are handled between temp and fans, the temp code was storing the actual per temp hyst values in 4 u8's, where as the fan code was storing actual register values. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Fix various sysfs callback function issuesHans de Goede2009-01-071-49/+73
| | | | | | | | | | | | | | | | | | | While working on adding F8000 support I noticed that various of the store sysfs functions (and a few of the show also) had issues. This patch fixes the following issues in these functions: * store: storing the result of strto[u]l in an int, resulting in a possible overflow before boundary checking * store: use of f71882fg_update_device(), we don't want to read the whole device in store functions, just the registers we need * store: use of cached register values instead of reading the needed regs in the store function, including cases where f71882fg_update_device() was not used, this could cause real isues * show: shown value is a calculation of 2 or more cached register reads, without locking the data struct. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Prepare for adding F8000 supportHans de Goede2009-01-071-57/+60
| | | | | | | | | | | | | This patch is a preparation patch for adding F8000 support to the f71882fg driver. If you look at the register addresses and esp, the bits used for the temperature channels, then you will notice that it appears that they start at 1 in a system meant to start at 0. As the F8000 actually uses the 0 addresses and bits, this patch changes the f71882fg driver to take 4 temperatures numbered 0-3 in to account, using 1-3 in this new scheme for the temperatures actually present in the F718x2FG. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Move some io access from the detect to the probe functionHans de Goede2009-01-071-23/+23
| | | | | | | | | The f71882fg driver did some io to ioports it hadn't reserved yet in its find (detect) function, this patches moves this io to the probe function where these ports are reserved and this io belongs. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Add support for the F71862FG superio sensorsHans de Goede2009-01-071-72/+224
| | | | | | | | | | | This patch adds support for the Fintek f71862fg superio monitoring functions to the f71882fg driver. This support has been tested without problems on a Jetway J9F2 by Tony McConnell. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Style cleanups and put some repeating code into functionsHans de Goede2009-01-071-48/+41
| | | | | | | | Various small cleanups as preparation for adding f71862fg support to the f71882fg driver. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Add PWM supportMark van Doesburg2009-01-071-1/+655
| | | | | | | | | | | Add PWM (fan speed control) support to the f71882fg driver. Both manual control and automatic (temperature-based) modes are supported. Additionally, each mode has a PWM-based and an RPM-based variant. By default we use the mode set by the BIOS. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Cc: Mark van Doesburg <mark.vandoesburg@hetnet.nl> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Misc cleanupsMark van Doesburg2009-01-071-5/+5
| | | | | | | | | A few cleanups that were originally part of a larger patch but are better submitted separately. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Cc: Mark van Doesburg <mark.vandoesburg@hetnet.nl> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Use sensor_device_attribute_2Mark van Doesburg2009-01-071-92/+95
| | | | | | | | | | Convert f71882fg driver from SENSOR_ATTR to SENSOR_ATTR2 use, this is a preparation patch for adding pwm support, which is broken out to make what changes really in the pwm support patch clear. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Cc: Mark van Doesburg <mark.vandoesburg@hetnet.nl> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: (f71882fg) Delete needless forward declarationsJean Delvare2008-08-061-6/+0
| | | | | | | | These functions aren't used before being defined, so there's no point in forward-declaring them. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Hans de Goede <j.w.r.degoede@hhs.nl>
* hwmon: Let the user override the detected Super-I/O device IDJean Delvare2008-02-071-1/+5
| | | | | | | | | | | | | | | | | | | | | | | While it is possible to force SMBus-based hardware monitoring chip drivers to drive a not officially supported device, we do not have this possibility for Super-I/O-based drivers. That's unfortunate because sometimes newer chips are fully compatible and just forcing the driver to load would work. Instead of that we have to tell the users to recompile the kernel driver, which isn't an easy task for everyone. So, I propose that we add a module parameter to all Super-I/O based hardware monitoring drivers, letting advanced users force the driver to load on their machine. The user has to provide the device ID of a supposedly compatible device. This requires looking at the source code or a datasheet, so I am confident that users can't randomly force a driver without knowing what they are doing. Thus this should be relatively safe. As you can see from the code, the implementation is pretty simple and unintrusive. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Hans de Goede <j.w.r.degoede@hhs.nl> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: Convert from class_device to deviceTony Jones2007-10-091-5/+5
| | | | | | | | | Convert from class_device to device for hwmon_device_register/unregister Signed-off-by: Tony Jones <tonyj@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: (f71882fg) trivial whitespace cleanupMark M. Hoffman2007-10-091-7/+7
| | | | Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* hwmon: add support for Fintek F71882FG and F71883FGHans de Goede2007-10-091-0/+950
This is the second version of a new driver for the hardware monitoring features of the Fintek F71882FG and F71883FG Super-I/O chips. This version has several small fixes for flaws discovered during the review of the first version. This version of the driver does not support the pwm part of these chips (yet). I'll first design a sysfs api for this and post that for discussion, and then implement pwm support as an incremental patch over this one. This driver supports all sensors of this chip, except for the vid inputs. The vid inputs are somewhat documented in the datasheet, but I know nothing about vid/vrm stuff. Help with this would be much appreciated. Signed-off-by: Hans de Goede <j.w.r.degoede@hhs.nl> Acked-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>