diff options
Diffstat (limited to 'Documentation')
| -rw-r--r-- | Documentation/feature-removal-schedule.txt | 9 | ||||
| -rw-r--r-- | Documentation/hwmon/abituguru | 31 | ||||
| -rw-r--r-- | Documentation/hwmon/abituguru3 | 65 | ||||
| -rw-r--r-- | Documentation/hwmon/dme1737 | 257 | ||||
| -rw-r--r-- | Documentation/hwmon/f71805f | 35 | ||||
| -rw-r--r-- | Documentation/hwmon/it87 | 9 | ||||
| -rw-r--r-- | Documentation/hwmon/lm90 | 36 | ||||
| -rw-r--r-- | Documentation/hwmon/lm93 | 412 | ||||
| -rw-r--r-- | Documentation/hwmon/smsc47b397 | 7 | ||||
| -rw-r--r-- | Documentation/hwmon/sysfs-interface | 15 | ||||
| -rw-r--r-- | Documentation/hwmon/w83627ehf | 6 |
11 files changed, 823 insertions, 59 deletions
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index a9941544ed8e..a5cb7839a679 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
| @@ -164,15 +164,6 @@ Who: Kay Sievers <kay.sievers@suse.de> | |||
| 164 | 164 | ||
| 165 | --------------------------- | 165 | --------------------------- |
| 166 | 166 | ||
| 167 | What: i2c-isa | ||
| 168 | When: December 2006 | ||
| 169 | Why: i2c-isa is a non-sense and doesn't fit in the device driver | ||
| 170 | model. Drivers relying on it are better implemented as platform | ||
| 171 | drivers. | ||
| 172 | Who: Jean Delvare <khali@linux-fr.org> | ||
| 173 | |||
| 174 | --------------------------- | ||
| 175 | |||
| 176 | What: i2c_adapter.list | 167 | What: i2c_adapter.list |
| 177 | When: July 2007 | 168 | When: July 2007 |
| 178 | Why: Superfluous, this list duplicates the one maintained by the driver | 169 | Why: Superfluous, this list duplicates the one maintained by the driver |
diff --git a/Documentation/hwmon/abituguru b/Documentation/hwmon/abituguru index b2c0d61b39a2..87ffa0f5ec70 100644 --- a/Documentation/hwmon/abituguru +++ b/Documentation/hwmon/abituguru | |||
| @@ -2,7 +2,7 @@ Kernel driver abituguru | |||
| 2 | ======================= | 2 | ======================= |
| 3 | 3 | ||
| 4 | Supported chips: | 4 | Supported chips: |
| 5 | * Abit uGuru revision 1-3 (Hardware Monitor part only) | 5 | * Abit uGuru revision 1 & 2 (Hardware Monitor part only) |
| 6 | Prefix: 'abituguru' | 6 | Prefix: 'abituguru' |
| 7 | Addresses scanned: ISA 0x0E0 | 7 | Addresses scanned: ISA 0x0E0 |
| 8 | Datasheet: Not available, this driver is based on reverse engineering. | 8 | Datasheet: Not available, this driver is based on reverse engineering. |
| @@ -20,8 +20,8 @@ Supported chips: | |||
| 20 | uGuru 2.1.0.0 ~ 2.1.2.8 (AS8, AV8, AA8, AG8, AA8XE, AX8) | 20 | uGuru 2.1.0.0 ~ 2.1.2.8 (AS8, AV8, AA8, AG8, AA8XE, AX8) |
| 21 | uGuru 2.2.0.0 ~ 2.2.0.6 (AA8 Fatal1ty) | 21 | uGuru 2.2.0.0 ~ 2.2.0.6 (AA8 Fatal1ty) |
| 22 | uGuru 2.3.0.0 ~ 2.3.0.9 (AN8) | 22 | uGuru 2.3.0.0 ~ 2.3.0.9 (AN8) |
| 23 | uGuru 3.0.0.0 ~ 3.0.1.2 (AW8, AL8, NI8) | 23 | uGuru 3.0.0.0 ~ 3.0.x.x (AW8, AL8, AT8, NI8 SLI, AT8 32X, AN8 32X, |
| 24 | uGuru 4.xxxxx? (AT8 32X) (2) | 24 | AW9D-MAX) (2) |
| 25 | 1) For revisions 2 and 3 uGuru's the driver can autodetect the | 25 | 1) For revisions 2 and 3 uGuru's the driver can autodetect the |
| 26 | sensortype (Volt or Temp) for bank1 sensors, for revision 1 uGuru's | 26 | sensortype (Volt or Temp) for bank1 sensors, for revision 1 uGuru's |
| 27 | this doesnot always work. For these uGuru's the autodection can | 27 | this doesnot always work. For these uGuru's the autodection can |
| @@ -30,8 +30,9 @@ Supported chips: | |||
| 30 | bank1_types=1,1,0,0,0,0,0,2,0,0,0,0,2,0,0,1 | 30 | bank1_types=1,1,0,0,0,0,0,2,0,0,0,0,2,0,0,1 |
| 31 | You may also need to specify the fan_sensors option for these boards | 31 | You may also need to specify the fan_sensors option for these boards |
| 32 | fan_sensors=5 | 32 | fan_sensors=5 |
| 33 | 2) The current version of the abituguru driver is known to NOT work | 33 | 2) There is a seperate abituguru3 driver for these motherboards, |
| 34 | on these Motherboards | 34 | the abituguru (without the 3 !) driver will not work on these |
| 35 | motherboards (and visa versa)! | ||
| 35 | 36 | ||
| 36 | Authors: | 37 | Authors: |
| 37 | Hans de Goede <j.w.r.degoede@hhs.nl>, | 38 | Hans de Goede <j.w.r.degoede@hhs.nl>, |
| @@ -43,8 +44,10 @@ Module Parameters | |||
| 43 | ----------------- | 44 | ----------------- |
| 44 | 45 | ||
| 45 | * force: bool Force detection. Note this parameter only causes the | 46 | * force: bool Force detection. Note this parameter only causes the |
| 46 | detection to be skipped, if the uGuru can't be read | 47 | detection to be skipped, and thus the insmod to |
| 47 | the module initialization (insmod) will still fail. | 48 | succeed. If the uGuru can't be read the actual hwmon |
| 49 | driver will not load and thus no hwmon device will get | ||
| 50 | registered. | ||
| 48 | * bank1_types: int[] Bank1 sensortype autodetection override: | 51 | * bank1_types: int[] Bank1 sensortype autodetection override: |
| 49 | -1 autodetect (default) | 52 | -1 autodetect (default) |
| 50 | 0 volt sensor | 53 | 0 volt sensor |
| @@ -69,13 +72,15 @@ dmesg | grep abituguru | |||
| 69 | Description | 72 | Description |
| 70 | ----------- | 73 | ----------- |
| 71 | 74 | ||
| 72 | This driver supports the hardware monitoring features of the Abit uGuru chip | 75 | This driver supports the hardware monitoring features of the first and |
| 73 | found on Abit uGuru featuring motherboards (most modern Abit motherboards). | 76 | second revision of the Abit uGuru chip found on Abit uGuru featuring |
| 77 | motherboards (most modern Abit motherboards). | ||
| 74 | 78 | ||
| 75 | The uGuru chip in reality is a Winbond W83L950D in disguise (despite Abit | 79 | The first and second revision of the uGuru chip in reality is a Winbond |
| 76 | claiming it is "a new microprocessor designed by the ABIT Engineers"). | 80 | W83L950D in disguise (despite Abit claiming it is "a new microprocessor |
| 77 | Unfortunatly this doesn't help since the W83L950D is a generic | 81 | designed by the ABIT Engineers"). Unfortunatly this doesn't help since the |
| 78 | microcontroller with a custom Abit application running on it. | 82 | W83L950D is a generic microcontroller with a custom Abit application running |
| 83 | on it. | ||
| 79 | 84 | ||
| 80 | Despite Abit not releasing any information regarding the uGuru, Olle | 85 | Despite Abit not releasing any information regarding the uGuru, Olle |
| 81 | Sandberg <ollebull@gmail.com> has managed to reverse engineer the sensor part | 86 | Sandberg <ollebull@gmail.com> has managed to reverse engineer the sensor part |
diff --git a/Documentation/hwmon/abituguru3 b/Documentation/hwmon/abituguru3 new file mode 100644 index 000000000000..fa598aac22fa --- /dev/null +++ b/Documentation/hwmon/abituguru3 | |||
| @@ -0,0 +1,65 @@ | |||
| 1 | Kernel driver abituguru3 | ||
| 2 | ======================== | ||
| 3 | |||
| 4 | Supported chips: | ||
| 5 | * Abit uGuru revision 3 (Hardware Monitor part, reading only) | ||
| 6 | Prefix: 'abituguru3' | ||
| 7 | Addresses scanned: ISA 0x0E0 | ||
| 8 | Datasheet: Not available, this driver is based on reverse engineering. | ||
| 9 | Note: | ||
| 10 | The uGuru is a microcontroller with onboard firmware which programs | ||
| 11 | it to behave as a hwmon IC. There are many different revisions of the | ||
| 12 | firmware and thus effectivly many different revisions of the uGuru. | ||
| 13 | Below is an incomplete list with which revisions are used for which | ||
| 14 | Motherboards: | ||
| 15 | uGuru 1.00 ~ 1.24 (AI7, KV8-MAX3, AN7) | ||
| 16 | uGuru 2.0.0.0 ~ 2.0.4.2 (KV8-PRO) | ||
| 17 | uGuru 2.1.0.0 ~ 2.1.2.8 (AS8, AV8, AA8, AG8, AA8XE, AX8) | ||
| 18 | uGuru 2.3.0.0 ~ 2.3.0.9 (AN8) | ||
| 19 | uGuru 3.0.0.0 ~ 3.0.x.x (AW8, AL8, AT8, NI8 SLI, AT8 32X, AN8 32X, | ||
| 20 | AW9D-MAX) | ||
| 21 | The abituguru3 driver is only for revison 3.0.x.x motherboards, | ||
| 22 | this driver will not work on older motherboards. For older | ||
| 23 | motherboards use the abituguru (without the 3 !) driver. | ||
| 24 | |||
| 25 | Authors: | ||
| 26 | Hans de Goede <j.w.r.degoede@hhs.nl>, | ||
| 27 | (Initial reverse engineering done by Louis Kruger) | ||
| 28 | |||
| 29 | |||
| 30 | Module Parameters | ||
| 31 | ----------------- | ||
| 32 | |||
| 33 | * force: bool Force detection. Note this parameter only causes the | ||
| 34 | detection to be skipped, and thus the insmod to | ||
| 35 | succeed. If the uGuru can't be read the actual hwmon | ||
| 36 | driver will not load and thus no hwmon device will get | ||
| 37 | registered. | ||
| 38 | * verbose: bool Should the driver be verbose? | ||
| 39 | 0/off/false normal output | ||
| 40 | 1/on/true + verbose error reporting (default) | ||
| 41 | Default: 1 (the driver is still in the testing phase) | ||
| 42 | |||
| 43 | Description | ||
| 44 | ----------- | ||
| 45 | |||
| 46 | This driver supports the hardware monitoring features of the third revision of | ||
| 47 | the Abit uGuru chip, found on recent Abit uGuru featuring motherboards. | ||
| 48 | |||
| 49 | The 3rd revision of the uGuru chip in reality is a Winbond W83L951G. | ||
| 50 | Unfortunatly this doesn't help since the W83L951G is a generic microcontroller | ||
| 51 | with a custom Abit application running on it. | ||
| 52 | |||
| 53 | Despite Abit not releasing any information regarding the uGuru revision 3, | ||
| 54 | Louis Kruger has managed to reverse engineer the sensor part of the uGuru. | ||
| 55 | Without his work this driver would not have been possible. | ||
| 56 | |||
| 57 | Known Issues | ||
| 58 | ------------ | ||
| 59 | |||
| 60 | The voltage and frequency control parts of the Abit uGuru are not supported, | ||
| 61 | neither is writing any of the sensor settings and writing / reading the | ||
| 62 | fanspeed control registers (FanEQ) | ||
| 63 | |||
| 64 | If you encounter any problems please mail me <j.w.r.degoede@hhs.nl> and | ||
| 65 | include the output of: "dmesg | grep abituguru" | ||
diff --git a/Documentation/hwmon/dme1737 b/Documentation/hwmon/dme1737 new file mode 100644 index 000000000000..1a0f3d64ab80 --- /dev/null +++ b/Documentation/hwmon/dme1737 | |||
| @@ -0,0 +1,257 @@ | |||
| 1 | Kernel driver dme1737 | ||
| 2 | ===================== | ||
| 3 | |||
| 4 | Supported chips: | ||
| 5 | * SMSC DME1737 and compatibles (like Asus A8000) | ||
| 6 | Prefix: 'dme1737' | ||
| 7 | Addresses scanned: I2C 0x2c, 0x2d, 0x2e | ||
| 8 | Datasheet: Provided by SMSC upon request and under NDA | ||
| 9 | |||
| 10 | Authors: | ||
| 11 | Juerg Haefliger <juergh@gmail.com> | ||
| 12 | |||
| 13 | |||
| 14 | Module Parameters | ||
| 15 | ----------------- | ||
| 16 | |||
| 17 | * force_start: bool Enables the monitoring of voltage, fan and temp inputs | ||
| 18 | and PWM output control functions. Using this parameter | ||
| 19 | shouldn't be required since the BIOS usually takes care | ||
| 20 | of this. | ||
| 21 | |||
| 22 | Note that there is no need to use this parameter if the driver loads without | ||
| 23 | complaining. The driver will say so if it is necessary. | ||
| 24 | |||
| 25 | |||
| 26 | Description | ||
| 27 | ----------- | ||
| 28 | |||
| 29 | This driver implements support for the hardware monitoring capabilities of the | ||
| 30 | SMSC DME1737 and Asus A8000 (which are the same) Super-I/O chips. This chip | ||
| 31 | features monitoring of 3 temp sensors temp[1-3] (2 remote diodes and 1 | ||
| 32 | internal), 7 voltages in[0-6] (6 external and 1 internal) and 6 fan speeds | ||
| 33 | fan[1-6]. Additionally, the chip implements 5 PWM outputs pwm[1-3,5-6] for | ||
| 34 | controlling fan speeds both manually and automatically. | ||
| 35 | |||
| 36 | Fan[3-6] and pwm[3,5-6] are optional features and their availability is | ||
| 37 | dependent on the configuration of the chip. The driver will detect which | ||
| 38 | features are present during initialization and create the sysfs attributes | ||
| 39 | accordingly. | ||
| 40 | |||
| 41 | |||
| 42 | Voltage Monitoring | ||
| 43 | ------------------ | ||
| 44 | |||
| 45 | The voltage inputs are sampled with 12-bit resolution and have internal | ||
| 46 | scaling resistors. The values returned by the driver therefore reflect true | ||
| 47 | millivolts and don't need scaling. The voltage inputs are mapped as follows | ||
| 48 | (the last column indicates the input ranges): | ||
| 49 | |||
| 50 | in0: +5VTR (+5V standby) 0V - 6.64V | ||
| 51 | in1: Vccp (processor core) 0V - 3V | ||
| 52 | in2: VCC (internal +3.3V) 0V - 4.38V | ||
| 53 | in3: +5V 0V - 6.64V | ||
| 54 | in4: +12V 0V - 16V | ||
| 55 | in5: VTR (+3.3V standby) 0V - 4.38V | ||
| 56 | in6: Vbat (+3.0V) 0V - 4.38V | ||
| 57 | |||
| 58 | Each voltage input has associated min and max limits which trigger an alarm | ||
| 59 | when crossed. | ||
| 60 | |||
| 61 | |||
| 62 | Temperature Monitoring | ||
| 63 | ---------------------- | ||
| 64 | |||
| 65 | Temperatures are measured with 12-bit resolution and reported in millidegree | ||
| 66 | Celsius. The chip also features offsets for all 3 temperature inputs which - | ||
| 67 | when programmed - get added to the input readings. The chip does all the | ||
| 68 | scaling by itself and the driver therefore reports true temperatures that don't | ||
| 69 | need any user-space adjustments. The temperature inputs are mapped as follows | ||
| 70 | (the last column indicates the input ranges): | ||
| 71 | |||
| 72 | temp1: Remote diode 1 (3904 type) temperature -127C - +127C | ||
| 73 | temp2: DME1737 internal temperature -127C - +127C | ||
| 74 | temp3: Remote diode 2 (3904 type) temperature -127C - +127C | ||
| 75 | |||
| 76 | Each temperature input has associated min and max limits which trigger an alarm | ||
| 77 | when crossed. Additionally, each temperature input has a fault attribute that | ||
| 78 | returns 1 when a faulty diode or an unconnected input is detected and 0 | ||
| 79 | otherwise. | ||
| 80 | |||
| 81 | |||
| 82 | Fan Monitoring | ||
| 83 | -------------- | ||
| 84 | |||
| 85 | Fan RPMs are measured with 16-bit resolution. The chip provides inputs for 6 | ||
| 86 | fan tachometers. All 6 inputs have an associated min limit which triggers an | ||
| 87 | alarm when crossed. Fan inputs 1-4 provide type attributes that need to be set | ||
| 88 | to the number of pulses per fan revolution that the connected tachometer | ||
| 89 | generates. Supported values are 1, 2, and 4. Fan inputs 5-6 only support fans | ||
| 90 | that generate 2 pulses per revolution. Fan inputs 5-6 also provide a max | ||
| 91 | attribute that needs to be set to the maximum attainable RPM (fan at 100% duty- | ||
| 92 | cycle) of the input. The chip adjusts the sampling rate based on this value. | ||
| 93 | |||
| 94 | |||
| 95 | PWM Output Control | ||
| 96 | ------------------ | ||
| 97 | |||
| 98 | This chip features 5 PWM outputs. PWM outputs 1-3 are associated with fan | ||
| 99 | inputs 1-3 and PWM outputs 5-6 are associated with fan inputs 5-6. PWM outputs | ||
| 100 | 1-3 can be configured to operate either in manual or automatic mode by setting | ||
| 101 | the appropriate enable attribute accordingly. PWM outputs 5-6 can only operate | ||
| 102 | in manual mode, their enable attributes are therefore read-only. When set to | ||
| 103 | manual mode, the fan speed is set by writing the duty-cycle value to the | ||
| 104 | appropriate PWM attribute. In automatic mode, the PWM attribute returns the | ||
| 105 | current duty-cycle as set by the fan controller in the chip. All PWM outputs | ||
| 106 | support the setting of the output frequency via the freq attribute. | ||
| 107 | |||
| 108 | In automatic mode, the chip supports the setting of the PWM ramp rate which | ||
| 109 | defines how fast the PWM output is adjusting to changes of the associated | ||
| 110 | temperature input. Associating PWM outputs to temperature inputs is done via | ||
| 111 | temperature zones. The chip features 3 zones whose assignments to temperature | ||
| 112 | inputs is static and determined during initialization. These assignments can | ||
| 113 | be retrieved via the zone[1-3]_auto_channels_temp attributes. Each PWM output | ||
| 114 | is assigned to one (or hottest of multiple) temperature zone(s) through the | ||
| 115 | pwm[1-3]_auto_channels_zone attributes. Each PWM output has 3 distinct output | ||
| 116 | duty-cycles: full, low, and min. Full is internally hard-wired to 255 (100%) | ||
| 117 | and low and min can be programmed via pwm[1-3]_auto_point1_pwm and | ||
| 118 | pwm[1-3]_auto_pwm_min, respectively. The thermal thresholds of the zones are | ||
| 119 | programmed via zone[1-3]_auto_point[1-3]_temp and | ||
| 120 | zone[1-3]_auto_point1_temp_hyst: | ||
| 121 | |||
| 122 | pwm[1-3]_auto_point2_pwm full-speed duty-cycle (255, i.e., 100%) | ||
| 123 | pwm[1-3]_auto_point1_pwm low-speed duty-cycle | ||
| 124 | pwm[1-3]_auto_pwm_min min-speed duty-cycle | ||
| 125 | |||
| 126 | zone[1-3]_auto_point3_temp full-speed temp (all outputs) | ||
| 127 | zone[1-3]_auto_point2_temp full-speed temp | ||
| 128 | zone[1-3]_auto_point1_temp low-speed temp | ||
| 129 | zone[1-3]_auto_point1_temp_hyst min-speed temp | ||
| 130 | |||
| 131 | The chip adjusts the output duty-cycle linearly in the range of auto_point1_pwm | ||
| 132 | to auto_point2_pwm if the temperature of the associated zone is between | ||
| 133 | auto_point1_temp and auto_point2_temp. If the temperature drops below the | ||
| 134 | auto_point1_temp_hyst value, the output duty-cycle is set to the auto_pwm_min | ||
| 135 | value which only supports two values: 0 or auto_point1_pwm. That means that the | ||
| 136 | fan either turns completely off or keeps spinning with the low-speed | ||
| 137 | duty-cycle. If any of the temperatures rise above the auto_point3_temp value, | ||
| 138 | all PWM outputs are set to 100% duty-cycle. | ||
| 139 | |||
| 140 | Following is another representation of how the chip sets the output duty-cycle | ||
| 141 | based on the temperature of the associated thermal zone: | ||
| 142 | |||
| 143 | Duty-Cycle Duty-Cycle | ||
| 144 | Temperature Rising Temp Falling Temp | ||
| 145 | ----------- ----------- ------------ | ||
| 146 | full-speed full-speed full-speed | ||
| 147 | |||
| 148 | < linearly adjusted duty-cycle > | ||
| 149 | |||
| 150 | low-speed low-speed low-speed | ||
| 151 | min-speed low-speed | ||
| 152 | min-speed min-speed min-speed | ||
| 153 | min-speed min-speed | ||
| 154 | |||
| 155 | |||
| 156 | Sysfs Attributes | ||
| 157 | ---------------- | ||
| 158 | |||
| 159 | Following is a list of all sysfs attributes that the driver provides, their | ||
| 160 | permissions and a short description: | ||
| 161 | |||
| 162 | Name Perm Description | ||
| 163 | ---- ---- ----------- | ||
| 164 | cpu0_vid RO CPU core reference voltage in | ||
| 165 | millivolts. | ||
| 166 | vrm RW Voltage regulator module version | ||
| 167 | number. | ||
| 168 | |||
| 169 | in[0-6]_input RO Measured voltage in millivolts. | ||
| 170 | in[0-6]_min RW Low limit for voltage input. | ||
| 171 | in[0-6]_max RW High limit for voltage input. | ||
| 172 | in[0-6]_alarm RO Voltage input alarm. Returns 1 if | ||
| 173 | voltage input is or went outside the | ||
| 174 | associated min-max range, 0 otherwise. | ||
| 175 | |||
| 176 | temp[1-3]_input RO Measured temperature in millidegree | ||
| 177 | Celsius. | ||
| 178 | temp[1-3]_min RW Low limit for temp input. | ||
| 179 | temp[1-3]_max RW High limit for temp input. | ||
| 180 | temp[1-3]_offset RW Offset for temp input. This value will | ||
| 181 | be added by the chip to the measured | ||
| 182 | temperature. | ||
| 183 | temp[1-3]_alarm RO Alarm for temp input. Returns 1 if temp | ||
| 184 | input is or went outside the associated | ||
| 185 | min-max range, 0 otherwise. | ||
| 186 | temp[1-3]_fault RO Temp input fault. Returns 1 if the chip | ||
| 187 | detects a faulty thermal diode or an | ||
| 188 | unconnected temp input, 0 otherwise. | ||
| 189 | |||
| 190 | zone[1-3]_auto_channels_temp RO Temperature zone to temperature input | ||
| 191 | mapping. This attribute is a bitfield | ||
| 192 | and supports the following values: | ||
| 193 | 1: temp1 | ||
| 194 | 2: temp2 | ||
| 195 | 4: temp3 | ||
| 196 | zone[1-3]_auto_point1_temp_hyst RW Auto PWM temp point1 hysteresis. The | ||
| 197 | output of the corresponding PWM is set | ||
| 198 | to the pwm_auto_min value if the temp | ||
| 199 | falls below the auto_point1_temp_hyst | ||
| 200 | value. | ||
| 201 | zone[1-3]_auto_point[1-3]_temp RW Auto PWM temp points. Auto_point1 is | ||
| 202 | the low-speed temp, auto_point2 is the | ||
| 203 | full-speed temp, and auto_point3 is the | ||
| 204 | temp at which all PWM outputs are set | ||
| 205 | to full-speed (100% duty-cycle). | ||
| 206 | |||
| 207 | fan[1-6]_input RO Measured fan speed in RPM. | ||
| 208 | fan[1-6]_min RW Low limit for fan input. | ||
| 209 | fan[1-6]_alarm RO Alarm for fan input. Returns 1 if fan | ||
| 210 | input is or went below the associated | ||
| 211 | min value, 0 otherwise. | ||
| 212 | fan[1-4]_type RW Type of attached fan. Expressed in | ||
| 213 | number of pulses per revolution that | ||
| 214 | the fan generates. Supported values are | ||
| 215 | 1, 2, and 4. | ||
| 216 | fan[5-6]_max RW Max attainable RPM at 100% duty-cycle. | ||
| 217 | Required for chip to adjust the | ||
| 218 | sampling rate accordingly. | ||
| 219 | |||
| 220 | pmw[1-3,5-6] RO/RW Duty-cycle of PWM output. Supported | ||
| 221 | values are 0-255 (0%-100%). Only | ||
| 222 | writeable if the associated PWM is in | ||
| 223 | manual mode. | ||
| 224 | pwm[1-3]_enable RW Enable of PWM outputs 1-3. Supported | ||
| 225 | values are: | ||
| 226 | 0: turned off (output @ 100%) | ||
| 227 | 1: manual mode | ||
| 228 | 2: automatic mode | ||
| 229 | pwm[5-6]_enable RO Enable of PWM outputs 5-6. Always | ||
| 230 | returns 1 since these 2 outputs are | ||
| 231 | hard-wired to manual mode. | ||
| 232 | pmw[1-3,5-6]_freq RW Frequency of PWM output. Supported | ||
| 233 | values are in the range 11Hz-30000Hz | ||
| 234 | (default is 25000Hz). | ||
| 235 | pmw[1-3]_ramp_rate RW Ramp rate of PWM output. Determines how | ||
| 236 | fast the PWM duty-cycle will change | ||
| 237 | when the PWM is in automatic mode. | ||
| 238 | Expressed in ms per PWM step. Supported | ||
| 239 | values are in the range 0ms-206ms | ||
| 240 | (default is 0, which means the duty- | ||
| 241 | cycle changes instantly). | ||
| 242 | pwm[1-3]_auto_channels_zone RW PWM output to temperature zone mapping. | ||
| 243 | This attribute is a bitfield and | ||
| 244 | supports the following values: | ||
| 245 | 1: zone1 | ||
| 246 | 2: zone2 | ||
| 247 | 4: zone3 | ||
| 248 | 6: highest of zone[2-3] | ||
| 249 | 7: highest of zone[1-3] | ||
| 250 | pwm[1-3]_auto_pwm_min RW Auto PWM min pwm. Minimum PWM duty- | ||
| 251 | cycle. Supported values are 0 or | ||
| 252 | auto_point1_pwm. | ||
| 253 | pwm[1-3]_auto_point1_pwm RW Auto PWM pwm point. Auto_point1 is the | ||
| 254 | low-speed duty-cycle. | ||
| 255 | pwm[1-3]_auto_point2_pwm RO Auto PWM pwm point. Auto_point2 is the | ||
| 256 | full-speed duty-cycle which is hard- | ||
| 257 | wired to 255 (100% duty-cycle). | ||
diff --git a/Documentation/hwmon/f71805f b/Documentation/hwmon/f71805f index bfd0f154959c..94e0d2cbd3d2 100644 --- a/Documentation/hwmon/f71805f +++ b/Documentation/hwmon/f71805f | |||
| @@ -5,11 +5,11 @@ Supported chips: | |||
| 5 | * Fintek F71805F/FG | 5 | * Fintek F71805F/FG |
| 6 | Prefix: 'f71805f' | 6 | Prefix: 'f71805f' |
| 7 | Addresses scanned: none, address read from Super I/O config space | 7 | Addresses scanned: none, address read from Super I/O config space |
| 8 | Datasheet: Provided by Fintek on request | 8 | Datasheet: Available from the Fintek website |
| 9 | * Fintek F71872F/FG | 9 | * Fintek F71872F/FG |
| 10 | Prefix: 'f71872f' | 10 | Prefix: 'f71872f' |
| 11 | Addresses scanned: none, address read from Super I/O config space | 11 | Addresses scanned: none, address read from Super I/O config space |
| 12 | Datasheet: Provided by Fintek on request | 12 | Datasheet: Available from the Fintek website |
| 13 | 13 | ||
| 14 | Author: Jean Delvare <khali@linux-fr.org> | 14 | Author: Jean Delvare <khali@linux-fr.org> |
| 15 | 15 | ||
| @@ -128,7 +128,9 @@ it. | |||
| 128 | When the PWM method is used, you can select the operating frequency, | 128 | When the PWM method is used, you can select the operating frequency, |
| 129 | from 187.5 kHz (default) to 31 Hz. The best frequency depends on the | 129 | from 187.5 kHz (default) to 31 Hz. The best frequency depends on the |
| 130 | fan model. As a rule of thumb, lower frequencies seem to give better | 130 | fan model. As a rule of thumb, lower frequencies seem to give better |
| 131 | control, but may generate annoying high-pitch noise. Fintek recommends | 131 | control, but may generate annoying high-pitch noise. So a frequency just |
| 132 | above the audible range, such as 25 kHz, may be a good choice; if this | ||
| 133 | doesn't give you good linear control, try reducing it. Fintek recommends | ||
| 132 | not going below 1 kHz, as the fan tachometers get confused by lower | 134 | not going below 1 kHz, as the fan tachometers get confused by lower |
| 133 | frequencies as well. | 135 | frequencies as well. |
| 134 | 136 | ||
| @@ -136,16 +138,23 @@ When the DC method is used, Fintek recommends not going below 5 V, which | |||
| 136 | corresponds to a pwm value of 106 for the driver. The driver doesn't | 138 | corresponds to a pwm value of 106 for the driver. The driver doesn't |
| 137 | enforce this limit though. | 139 | enforce this limit though. |
| 138 | 140 | ||
| 139 | Three different fan control modes are supported: | 141 | Three different fan control modes are supported; the mode number is written |
| 142 | to the pwm<n>_enable file. | ||
| 140 | 143 | ||
| 141 | * Manual mode | 144 | * 1: Manual mode |
| 142 | You ask for a specific PWM duty cycle or DC voltage. | 145 | You ask for a specific PWM duty cycle or DC voltage by writing to the |
| 146 | pwm<n> file. | ||
| 143 | 147 | ||
| 144 | * Fan speed mode | 148 | * 2: Temperature mode |
| 145 | You ask for a specific fan speed. This mode assumes that pwm1 | 149 | You define 3 temperature/fan speed trip points using the |
| 146 | corresponds to fan1, pwm2 to fan2 and pwm3 to fan3. | 150 | pwm<n>_auto_point<m>_temp and _fan files. These define a staircase |
| 151 | relationship between temperature and fan speed with two additional points | ||
| 152 | interpolated between the values that you define. When the temperature | ||
| 153 | is below auto_point1_temp the fan is switched off. | ||
| 147 | 154 | ||
| 148 | * Temperature mode | 155 | * 3: Fan speed mode |
| 149 | You define 3 temperature/fan speed trip points, and the fan speed is | 156 | You ask for a specific fan speed by writing to the fan<n>_target file. |
| 150 | adjusted depending on the measured temperature, using interpolation. | 157 | |
| 151 | This mode is not yet supported by the driver. | 158 | Both of the automatic modes require that pwm1 corresponds to fan1, pwm2 to |
| 159 | fan2 and pwm3 to fan3. Temperature mode also requires that temp1 corresponds | ||
| 160 | to pwm1 and fan1, etc. | ||
diff --git a/Documentation/hwmon/it87 b/Documentation/hwmon/it87 index c0528d6f9ace..81ecc7e41c50 100644 --- a/Documentation/hwmon/it87 +++ b/Documentation/hwmon/it87 | |||
| @@ -12,11 +12,12 @@ Supported chips: | |||
| 12 | Addresses scanned: from Super I/O config space (8 I/O ports) | 12 | Addresses scanned: from Super I/O config space (8 I/O ports) |
| 13 | Datasheet: Publicly available at the ITE website | 13 | Datasheet: Publicly available at the ITE website |
| 14 | http://www.ite.com.tw/ | 14 | http://www.ite.com.tw/ |
| 15 | * IT8716F | 15 | * IT8716F/IT8726F |
| 16 | Prefix: 'it8716' | 16 | Prefix: 'it8716' |
| 17 | Addresses scanned: from Super I/O config space (8 I/O ports) | 17 | Addresses scanned: from Super I/O config space (8 I/O ports) |
| 18 | Datasheet: Publicly available at the ITE website | 18 | Datasheet: Publicly available at the ITE website |
| 19 | http://www.ite.com.tw/product_info/file/pc/IT8716F_V0.3.ZIP | 19 | http://www.ite.com.tw/product_info/file/pc/IT8716F_V0.3.ZIP |
| 20 | http://www.ite.com.tw/product_info/file/pc/IT8726F_V0.3.pdf | ||
| 20 | * IT8718F | 21 | * IT8718F |
| 21 | Prefix: 'it8718' | 22 | Prefix: 'it8718' |
| 22 | Addresses scanned: from Super I/O config space (8 I/O ports) | 23 | Addresses scanned: from Super I/O config space (8 I/O ports) |
| @@ -68,7 +69,7 @@ Description | |||
| 68 | ----------- | 69 | ----------- |
| 69 | 70 | ||
| 70 | This driver implements support for the IT8705F, IT8712F, IT8716F, | 71 | This driver implements support for the IT8705F, IT8712F, IT8716F, |
| 71 | IT8718F and SiS950 chips. | 72 | IT8718F, IT8726F and SiS950 chips. |
| 72 | 73 | ||
| 73 | These chips are 'Super I/O chips', supporting floppy disks, infrared ports, | 74 | These chips are 'Super I/O chips', supporting floppy disks, infrared ports, |
| 74 | joysticks and other miscellaneous stuff. For hardware monitoring, they | 75 | joysticks and other miscellaneous stuff. For hardware monitoring, they |
| @@ -97,6 +98,10 @@ clock divider mess) but not compatible with the older chips and | |||
| 97 | revisions. For now, the driver only uses the 16-bit mode on the | 98 | revisions. For now, the driver only uses the 16-bit mode on the |
| 98 | IT8716F and IT8718F. | 99 | IT8716F and IT8718F. |
| 99 | 100 | ||
| 101 | The IT8726F is just bit enhanced IT8716F with additional hardware | ||
| 102 | for AMD power sequencing. Therefore the chip will appear as IT8716F | ||
| 103 | to userspace applications. | ||
| 104 | |||
| 100 | Temperatures are measured in degrees Celsius. An alarm is triggered once | 105 | Temperatures are measured in degrees Celsius. An alarm is triggered once |
| 101 | when the Overtemperature Shutdown limit is crossed. | 106 | when the Overtemperature Shutdown limit is crossed. |
| 102 | 107 | ||
diff --git a/Documentation/hwmon/lm90 b/Documentation/hwmon/lm90 index 438cb24cee5b..aa4a0ec20081 100644 --- a/Documentation/hwmon/lm90 +++ b/Documentation/hwmon/lm90 | |||
| @@ -48,6 +48,18 @@ Supported chips: | |||
| 48 | Addresses scanned: I2C 0x4c, 0x4d (unsupported 0x4e) | 48 | Addresses scanned: I2C 0x4c, 0x4d (unsupported 0x4e) |
| 49 | Datasheet: Publicly available at the Maxim website | 49 | Datasheet: Publicly available at the Maxim website |
| 50 | http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578 | 50 | http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578 |
| 51 | * Maxim MAX6680 | ||
| 52 | Prefix: 'max6680' | ||
| 53 | Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, | ||
| 54 | 0x4c, 0x4d and 0x4e | ||
| 55 | Datasheet: Publicly available at the Maxim website | ||
| 56 | http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3370 | ||
| 57 | * Maxim MAX6681 | ||
| 58 | Prefix: 'max6680' | ||
| 59 | Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, | ||
| 60 | 0x4c, 0x4d and 0x4e | ||
| 61 | Datasheet: Publicly available at the Maxim website | ||
| 62 | http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3370 | ||
| 51 | 63 | ||
| 52 | 64 | ||
| 53 | Author: Jean Delvare <khali@linux-fr.org> | 65 | Author: Jean Delvare <khali@linux-fr.org> |
| @@ -59,11 +71,15 @@ Description | |||
| 59 | The LM90 is a digital temperature sensor. It senses its own temperature as | 71 | The LM90 is a digital temperature sensor. It senses its own temperature as |
| 60 | well as the temperature of up to one external diode. It is compatible | 72 | well as the temperature of up to one external diode. It is compatible |
| 61 | with many other devices such as the LM86, the LM89, the LM99, the ADM1032, | 73 | with many other devices such as the LM86, the LM89, the LM99, the ADM1032, |
| 62 | the MAX6657, MAX6658 and the MAX6659 all of which are supported by this driver. | 74 | the MAX6657, MAX6658, MAX6659, MAX6680 and the MAX6681 all of which are |
| 63 | Note that there is no easy way to differentiate between the last three | 75 | supported by this driver. |
| 64 | variants. The extra address and features of the MAX6659 are not supported by | 76 | |
| 65 | this driver. Additionally, the ADT7461 is supported if found in ADM1032 | 77 | Note that there is no easy way to differentiate between the MAX6657, |
| 66 | compatibility mode. | 78 | MAX6658 and MAX6659 variants. The extra address and features of the |
| 79 | MAX6659 are not supported by this driver. The MAX6680 and MAX6681 only | ||
| 80 | differ in their pinout, therefore they obviously can't (and don't need to) | ||
| 81 | be distinguished. Additionally, the ADT7461 is supported if found in | ||
| 82 | ADM1032 compatibility mode. | ||
| 67 | 83 | ||
| 68 | The specificity of this family of chipsets over the ADM1021/LM84 | 84 | The specificity of this family of chipsets over the ADM1021/LM84 |
| 69 | family is that it features critical limits with hysteresis, and an | 85 | family is that it features critical limits with hysteresis, and an |
| @@ -93,18 +109,22 @@ ADM1032: | |||
| 93 | * ALERT is triggered by open remote sensor. | 109 | * ALERT is triggered by open remote sensor. |
| 94 | * SMBus PEC support for Write Byte and Receive Byte transactions. | 110 | * SMBus PEC support for Write Byte and Receive Byte transactions. |
| 95 | 111 | ||
| 96 | ADT7461 | 112 | ADT7461: |
| 97 | * Extended temperature range (breaks compatibility) | 113 | * Extended temperature range (breaks compatibility) |
| 98 | * Lower resolution for remote temperature | 114 | * Lower resolution for remote temperature |
| 99 | 115 | ||
| 100 | MAX6657 and MAX6658: | 116 | MAX6657 and MAX6658: |
| 101 | * Remote sensor type selection | 117 | * Remote sensor type selection |
| 102 | 118 | ||
| 103 | MAX6659 | 119 | MAX6659: |
| 104 | * Selectable address | 120 | * Selectable address |
| 105 | * Second critical temperature limit | 121 | * Second critical temperature limit |
| 106 | * Remote sensor type selection | 122 | * Remote sensor type selection |
| 107 | 123 | ||
| 124 | MAX6680 and MAX6681: | ||
| 125 | * Selectable address | ||
| 126 | * Remote sensor type selection | ||
| 127 | |||
| 108 | All temperature values are given in degrees Celsius. Resolution | 128 | All temperature values are given in degrees Celsius. Resolution |
| 109 | is 1.0 degree for the local temperature, 0.125 degree for the remote | 129 | is 1.0 degree for the local temperature, 0.125 degree for the remote |
| 110 | temperature. | 130 | temperature. |
| @@ -141,7 +161,7 @@ SMBus Read Byte, and PEC will work properly. | |||
| 141 | Additionally, the ADM1032 doesn't support SMBus Send Byte with PEC. | 161 | Additionally, the ADM1032 doesn't support SMBus Send Byte with PEC. |
| 142 | Instead, it will try to write the PEC value to the register (because the | 162 | Instead, it will try to write the PEC value to the register (because the |
| 143 | SMBus Send Byte transaction with PEC is similar to a Write Byte transaction | 163 | SMBus Send Byte transaction with PEC is similar to a Write Byte transaction |
| 144 | without PEC), which is not what we want. Thus, PEC is explicitely disabled | 164 | without PEC), which is not what we want. Thus, PEC is explicitly disabled |
| 145 | on SMBus Send Byte transactions in the lm90 driver. | 165 | on SMBus Send Byte transactions in the lm90 driver. |
| 146 | 166 | ||
| 147 | PEC on byte data transactions represents a significant increase in bandwidth | 167 | PEC on byte data transactions represents a significant increase in bandwidth |
diff --git a/Documentation/hwmon/lm93 b/Documentation/hwmon/lm93 new file mode 100644 index 000000000000..4e4a1dc1d2da --- /dev/null +++ b/Documentation/hwmon/lm93 | |||
| @@ -0,0 +1,412 @@ | |||
| 1 | Kernel driver lm93 | ||
| 2 | ================== | ||
| 3 | |||
| 4 | Supported chips: | ||
| 5 | * National Semiconductor LM93 | ||
| 6 | Prefix 'lm93' | ||
| 7 | Addresses scanned: I2C 0x2c-0x2e | ||
| 8 | Datasheet: http://www.national.com/ds.cgi/LM/LM93.pdf | ||
| 9 | |||
| 10 | Author: | ||
| 11 | Mark M. Hoffman <mhoffman@lightlink.com> | ||
| 12 | Ported to 2.6 by Eric J. Bowersox <ericb@aspsys.com> | ||
| 13 | Adapted to 2.6.20 by Carsten Emde <ce@osadl.org> | ||
| 14 | Modified for mainline integration by Hans J. Koch <hjk@linutronix.de> | ||
| 15 | |||
| 16 | Module Parameters | ||
| 17 | ----------------- | ||
| 18 | |||
| 19 | (specific to LM93) | ||
| 20 | * init: integer | ||
| 21 | Set to non-zero to force some initializations (default is 0). | ||
| 22 | * disable_block: integer | ||
| 23 | A "0" allows SMBus block data transactions if the host supports them. A "1" | ||
| 24 | disables SMBus block data transactions. The default is 0. | ||
| 25 | * vccp_limit_type: integer array (2) | ||
| 26 | Configures in7 and in8 limit type, where 0 means absolute and non-zero | ||
| 27 | means relative. "Relative" here refers to "Dynamic Vccp Monitoring using | ||
| 28 | VID" from the datasheet. It greatly simplifies the interface to allow | ||
| 29 | only one set of limits (absolute or relative) to be in operation at a | ||
| 30 | time (even though the hardware is capable of enabling both). There's | ||
| 31 | not a compelling use case for enabling both at once, anyway. The default | ||
| 32 | is "0,0". | ||
| 33 | * vid_agtl: integer | ||
| 34 | A "0" configures the VID pins for V(ih) = 2.1V min, V(il) = 0.8V max. | ||
| 35 | A "1" configures the VID pins for V(ih) = 0.8V min, V(il) = 0.4V max. | ||
| 36 | (The latter setting is referred to as AGTL+ Compatible in the datasheet.) | ||
| 37 | I.e. this parameter controls the VID pin input thresholds; if your VID | ||
| 38 | inputs are not working, try changing this. The default value is "0". | ||
| 39 | |||
| 40 | (common among sensor drivers) | ||
| 41 | * force: short array (min = 1, max = 48) | ||
| 42 | List of adapter,address pairs to assume to be present. Autodetection | ||
| 43 | of the target device will still be attempted. Use one of the more | ||
| 44 | specific force directives below if this doesn't detect the device. | ||
| 45 | * force_lm93: short array (min = 1, max = 48) | ||
| 46 | List of adapter,address pairs which are unquestionably assumed to contain | ||
| 47 | a 'lm93' chip | ||
| 48 | * ignore: short array (min = 1, max = 48) | ||
| 49 | List of adapter,address pairs not to scan | ||
| 50 | * ignore_range: short array (min = 1, max = 48) | ||
| 51 | List of adapter,start-addr,end-addr triples not to scan | ||
| 52 | * probe: short array (min = 1, max = 48) | ||
| 53 | List of adapter,address pairs to scan additionally | ||
| 54 | * probe_range: short array (min = 1, max = 48) | ||
| 55 | List of adapter,start-addr,end-addr triples to scan additionally | ||
| 56 | |||
| 57 | |||
| 58 | Hardware Description | ||
| 59 | -------------------- | ||
| 60 | |||
| 61 | (from the datasheet) | ||
| 62 | |||
| 63 | The LM93, hardware monitor, has a two wire digital interface compatible with | ||
| 64 | SMBus 2.0. Using an 8-bit ADC, the LM93 measures the temperature of two remote | ||
| 65 | diode connected transistors as well as its own die and 16 power supply | ||
| 66 | voltages. To set fan speed, the LM93 has two PWM outputs that are each | ||
| 67 | controlled by up to four temperature zones. The fancontrol algorithm is lookup | ||
| 68 | table based. The LM93 includes a digital filter that can be invoked to smooth | ||
| 69 | temperature readings for better control of fan speed. The LM93 has four | ||
| 70 | tachometer inputs to measure fan speed. Limit and status registers for all | ||
| 71 | measured values are included. The LM93 builds upon the functionality of | ||
| 72 | previous motherboard management ASICs and uses some of the LM85 s features | ||
| 73 | (i.e. smart tachometer mode). It also adds measurement and control support | ||
| 74 | for dynamic Vccp monitoring and PROCHOT. It is designed to monitor a dual | ||
| 75 | processor Xeon class motherboard with a minimum of external components. | ||
| 76 | |||
| 77 | |||
| 78 | Driver Description | ||
| 79 | ------------------ | ||
| 80 | |||
| 81 | This driver implements support for the National Semiconductor LM93. | ||
| 82 | |||
| 83 | |||
| 84 | User Interface | ||
| 85 | -------------- | ||
| 86 | |||
| 87 | #PROCHOT: | ||
| 88 | |||
| 89 | The LM93 can monitor two #PROCHOT signals. The results are found in the | ||
| 90 | sysfs files prochot1, prochot2, prochot1_avg, prochot2_avg, prochot1_max, | ||
| 91 | and prochot2_max. prochot1_max and prochot2_max contain the user limits | ||
| 92 | for #PROCHOT1 and #PROCHOT2, respectively. prochot1 and prochot2 contain | ||
| 93 | the current readings for the most recent complete time interval. The | ||
| 94 | value of prochot1_avg and prochot2_avg is something like a 2 period | ||
| 95 | exponential moving average (but not quite - check the datasheet). Note | ||
| 96 | that this third value is calculated by the chip itself. All values range | ||
| 97 | from 0-255 where 0 indicates no throttling, and 255 indicates > 99.6%. | ||
| 98 | |||
| 99 | The monitoring intervals for the two #PROCHOT signals is also configurable. | ||
| 100 | These intervals can be found in the sysfs files prochot1_interval and | ||
| 101 | prochot2_interval. The values in these files specify the intervals for | ||
| 102 | #P1_PROCHOT and #P2_PROCHOT, respectively. Selecting a value not in this | ||
| 103 | list will cause the driver to use the next largest interval. The available | ||
| 104 | intervals are: | ||
| 105 | |||
| 106 | #PROCHOT intervals: 0.73, 1.46, 2.9, 5.8, 11.7, 23.3, 46.6, 93.2, 186, 372 | ||
| 107 | |||
| 108 | It is possible to configure the LM93 to logically short the two #PROCHOT | ||
| 109 | signals. I.e. when #P1_PROCHOT is asserted, the LM93 will automatically | ||
| 110 | assert #P2_PROCHOT, and vice-versa. This mode is enabled by writing a | ||
| 111 | non-zero integer to the sysfs file prochot_short. | ||
| 112 | |||
| 113 | The LM93 can also override the #PROCHOT pins by driving a PWM signal onto | ||
| 114 | one or both of them. When overridden, the signal has a period of 3.56 mS, | ||
| 115 | a minimum pulse width of 5 clocks (at 22.5kHz => 6.25% duty cycle), and | ||
| 116 | a maximum pulse width of 80 clocks (at 22.5kHz => 99.88% duty cycle). | ||
| 117 | |||
| 118 | The sysfs files prochot1_override and prochot2_override contain boolean | ||
| 119 | intgers which enable or disable the override function for #P1_PROCHOT and | ||
| 120 | #P2_PROCHOT, respectively. The sysfs file prochot_override_duty_cycle | ||
| 121 | contains a value controlling the duty cycle for the PWM signal used when | ||
| 122 | the override function is enabled. This value ranges from 0 to 15, with 0 | ||
| 123 | indicating minimum duty cycle and 15 indicating maximum. | ||
| 124 | |||
| 125 | #VRD_HOT: | ||
| 126 | |||
| 127 | The LM93 can monitor two #VRD_HOT signals. The results are found in the | ||
| 128 | sysfs files vrdhot1 and vrdhot2. There is one value per file: a boolean for | ||
| 129 | which 1 indicates #VRD_HOT is asserted and 0 indicates it is negated. These | ||
| 130 | files are read-only. | ||
| 131 | |||
| 132 | Smart Tach Mode: | ||
| 133 | |||
| 134 | (from the datasheet) | ||
| 135 | |||
| 136 | If a fan is driven using a low-side drive PWM, the tachometer | ||
| 137 | output of the fan is corrupted. The LM93 includes smart tachometer | ||
| 138 | circuitry that allows an accurate tachometer reading to be | ||
| 139 | achieved despite the signal corruption. In smart tach mode all | ||
| 140 | four signals are measured within 4 seconds. | ||
| 141 | |||
| 142 | Smart tach mode is enabled by the driver by writing 1 or 2 (associating the | ||
| 143 | the fan tachometer with a pwm) to the sysfs file fan<n>_smart_tach. A zero | ||
| 144 | will disable the function for that fan. Note that Smart tach mode cannot be | ||
| 145 | enabled if the PWM output frequency is 22500 Hz (see below). | ||
| 146 | |||
| 147 | Manual PWM: | ||
| 148 | |||
| 149 | The LM93 has a fixed or override mode for the two PWM outputs (although, there | ||
| 150 | are still some conditions that will override even this mode - see section | ||
| 151 | 15.10.6 of the datasheet for details.) The sysfs files pwm1_override | ||
| 152 | and pwm2_override are used to enable this mode; each is a boolean integer | ||
| 153 | where 0 disables and 1 enables the manual control mode. The sysfs files pwm1 | ||
| 154 | and pwm2 are used to set the manual duty cycle; each is an integer (0-255) | ||
| 155 | where 0 is 0% duty cycle, and 255 is 100%. Note that the duty cycle values | ||
| 156 | are constrained by the hardware. Selecting a value which is not available | ||
| 157 | will cause the driver to use the next largest value. Also note: when manual | ||
| 158 | PWM mode is disabled, the value of pwm1 and pwm2 indicates the current duty | ||
| 159 | cycle chosen by the h/w. | ||
| 160 | |||
| 161 | PWM Output Frequency: | ||
| 162 | |||
| 163 | The LM93 supports several different frequencies for the PWM output channels. | ||
| 164 | The sysfs files pwm1_freq and pwm2_freq are used to select the frequency. The | ||
| 165 | frequency values are constrained by the hardware. Selecting a value which is | ||
| 166 | not available will cause the driver to use the next largest value. Also note | ||
| 167 | that this parameter has implications for the Smart Tach Mode (see above). | ||
| 168 | |||
| 169 | PWM Output Frequencies: 12, 36, 48, 60, 72, 84, 96, 22500 (h/w default) | ||
| 170 | |||
| 171 | Automatic PWM: | ||
| 172 | |||
| 173 | The LM93 is capable of complex automatic fan control, with many different | ||
| 174 | points of configuration. To start, each PWM output can be bound to any | ||
| 175 | combination of eight control sources. The final PWM is the largest of all | ||
| 176 | individual control sources to which the PWM output is bound. | ||
| 177 | |||
| 178 | The eight control sources are: temp1-temp4 (aka "zones" in the datasheet), | ||
| 179 | #PROCHOT 1 & 2, and #VRDHOT 1 & 2. The bindings are expressed as a bitmask | ||
| 180 | in the sysfs files pwm<n>_auto_channels, where a "1" enables the binding, and | ||
| 181 | a "0" disables it. The h/w default is 0x0f (all temperatures bound). | ||
| 182 | |||
| 183 | 0x01 - Temp 1 | ||
| 184 | 0x02 - Temp 2 | ||
| 185 | 0x04 - Temp 3 | ||
| 186 | 0x08 - Temp 4 | ||
| 187 | 0x10 - #PROCHOT 1 | ||
| 188 | 0x20 - #PROCHOT 2 | ||
| 189 | 0x40 - #VRDHOT 1 | ||
| 190 | 0x80 - #VRDHOT 2 | ||
| 191 | |||
| 192 | The function y = f(x) takes a source temperature x to a PWM output y. This | ||
| 193 | function of the LM93 is derived from a base temperature and a table of 12 | ||
| 194 | temperature offsets. The base temperature is expressed in degrees C in the | ||
| 195 | sysfs files temp<n>_auto_base. The offsets are expressed in cumulative | ||
| 196 | degrees C, with the value of offset <i> for temperature value <n> being | ||
| 197 | contained in the file temp<n>_auto_offset<i>. E.g. if the base temperature | ||
| 198 | is 40C: | ||
| 199 | |||
| 200 | offset # temp<n>_auto_offset<i> range pwm | ||
| 201 | 1 0 - 25.00% | ||
| 202 | 2 0 - 28.57% | ||
| 203 | 3 1 40C - 41C 32.14% | ||
| 204 | 4 1 41C - 42C 35.71% | ||
| 205 | 5 2 42C - 44C 39.29% | ||
| 206 | 6 2 44C - 46C 42.86% | ||
| 207 | 7 2 48C - 50C 46.43% | ||
| 208 | 8 2 50C - 52C 50.00% | ||
| 209 | 9 2 52C - 54C 53.57% | ||
| 210 | 10 2 54C - 56C 57.14% | ||
| 211 | 11 2 56C - 58C 71.43% | ||
| 212 | 12 2 58C - 60C 85.71% | ||
| 213 | > 60C 100.00% | ||
| 214 | |||
| 215 | Valid offsets are in the range 0C <= x <= 7.5C in 0.5C increments. | ||
| 216 | |||
| 217 | There is an independent base temperature for each temperature channel. Note, | ||
| 218 | however, there are only two tables of offsets: one each for temp[12] and | ||
| 219 | temp[34]. Therefore, any change to e.g. temp1_auto_offset<i> will also | ||
| 220 | affect temp2_auto_offset<i>. | ||
| 221 | |||
| 222 | The LM93 can also apply hysteresis to the offset table, to prevent unwanted | ||
| 223 | oscillation between two steps in the offsets table. These values are found in | ||
| 224 | the sysfs files temp<n>_auto_offset_hyst. The value in this file has the | ||
| 225 | same representation as in temp<n>_auto_offset<i>. | ||
| 226 | |||
| 227 | If a temperature reading falls below the base value for that channel, the LM93 | ||
| 228 | will use the minimum PWM value. These values are found in the sysfs files | ||
| 229 | temp<n>_auto_pwm_min. Note, there are only two minimums: one each for temp[12] | ||
| 230 | and temp[34]. Therefore, any change to e.g. temp1_auto_pwm_min will also | ||
| 231 | affect temp2_auto_pwm_min. | ||
| 232 | |||
| 233 | PWM Spin-Up Cycle: | ||
| 234 | |||
| 235 | A spin-up cycle occurs when a PWM output is commanded from 0% duty cycle to | ||
| 236 | some value > 0%. The LM93 supports a minimum duty cycle during spin-up. These | ||
| 237 | values are found in the sysfs files pwm<n>_auto_spinup_min. The value in this | ||
| 238 | file has the same representation as other PWM duty cycle values. The | ||
| 239 | duration of the spin-up cycle is also configurable. These values are found in | ||
| 240 | the sysfs files pwm<n>_auto_spinup_time. The value in this file is | ||
| 241 | the spin-up time in seconds. The available spin-up times are constrained by | ||
| 242 | the hardware. Selecting a value which is not available will cause the driver | ||
| 243 | to use the next largest value. | ||
| 244 | |||
| 245 | Spin-up Durations: 0 (disabled, h/w default), 0.1, 0.25, 0.4, 0.7, 1.0, | ||
| 246 | 2.0, 4.0 | ||
| 247 | |||
| 248 | #PROCHOT and #VRDHOT PWM Ramping: | ||
| 249 | |||
| 250 | If the #PROCHOT or #VRDHOT signals are asserted while bound to a PWM output | ||
| 251 | channel, the LM93 will ramp the PWM output up to 100% duty cycle in discrete | ||
| 252 | steps. The duration of each step is configurable. There are two files, with | ||
| 253 | one value each in seconds: pwm_auto_prochot_ramp and pwm_auto_vrdhot_ramp. | ||
| 254 | The available ramp times are constrained by the hardware. Selecting a value | ||
| 255 | which is not available will cause the driver to use the next largest value. | ||
| 256 | |||
| 257 | Ramp Times: 0 (disabled, h/w default) to 0.75 in 0.05 second intervals | ||
| 258 | |||
| 259 | Fan Boost: | ||
| 260 | |||
| 261 | For each temperature channel, there is a boost temperature: if the channel | ||
| 262 | exceeds this limit, the LM93 will immediately drive both PWM outputs to 100%. | ||
| 263 | This limit is expressed in degrees C in the sysfs files temp<n>_auto_boost. | ||
| 264 | There is also a hysteresis temperature for this function: after the boost | ||
| 265 | limit is reached, the temperature channel must drop below this value before | ||
| 266 | the boost function is disabled. This temperature is also expressed in degrees | ||
| 267 | C in the sysfs files temp<n>_auto_boost_hyst. | ||
| 268 | |||
| 269 | GPIO Pins: | ||
| 270 | |||
| 271 | The LM93 can monitor the logic level of four dedicated GPIO pins as well as the | ||
| 272 | four tach input pins. GPIO0-GPIO3 correspond to (fan) tach 1-4, respectively. | ||
| 273 | All eight GPIOs are read by reading the bitmask in the sysfs file gpio. The | ||
| 274 | LSB is GPIO0, and the MSB is GPIO7. | ||
| 275 | |||
| 276 | |||
| 277 | LM93 Unique sysfs Files | ||
| 278 | ----------------------- | ||
| 279 | |||
| 280 | file description | ||
| 281 | ------------------------------------------------------------- | ||
| 282 | |||
| 283 | prochot<n> current #PROCHOT % | ||
| 284 | |||
| 285 | prochot<n>_avg moving average #PROCHOT % | ||
| 286 | |||
| 287 | prochot<n>_max limit #PROCHOT % | ||
| 288 | |||
| 289 | prochot_short enable or disable logical #PROCHOT pin short | ||
| 290 | |||
| 291 | prochot<n>_override force #PROCHOT assertion as PWM | ||
| 292 | |||
| 293 | prochot_override_duty_cycle | ||
| 294 | duty cycle for the PWM signal used when | ||
| 295 | #PROCHOT is overridden | ||
| 296 | |||
| 297 | prochot<n>_interval #PROCHOT PWM sampling interval | ||
| 298 | |||
| 299 | vrdhot<n> 0 means negated, 1 means asserted | ||
| 300 | |||
| 301 | fan<n>_smart_tach enable or disable smart tach mode | ||
| 302 | |||
| 303 | pwm<n>_auto_channels select control sources for PWM outputs | ||
| 304 | |||
| 305 | pwm<n>_auto_spinup_min minimum duty cycle during spin-up | ||
| 306 | |||
| 307 | pwm<n>_auto_spinup_time duration of spin-up | ||
| 308 | |||
| 309 | pwm_auto_prochot_ramp ramp time per step when #PROCHOT asserted | ||
| 310 | |||
| 311 | pwm_auto_vrdhot_ramp ramp time per step when #VRDHOT asserted | ||
| 312 | |||
| 313 | temp<n>_auto_base temperature channel base | ||
| 314 | |||
| 315 | temp<n>_auto_offset[1-12] | ||
| 316 | temperature channel offsets | ||
| 317 | |||
| 318 | temp<n>_auto_offset_hyst | ||
| 319 | temperature channel offset hysteresis | ||
| 320 | |||
| 321 | temp<n>_auto_boost temperature channel boost (PWMs to 100%) limit | ||
| 322 | |||
| 323 | temp<n>_auto_boost_hyst temperature channel boost hysteresis | ||
| 324 | |||
| 325 | gpio input state of 8 GPIO pins; read-only | ||
| 326 | |||
| 327 | |||
| 328 | Sample Configuration File | ||
| 329 | ------------------------- | ||
| 330 | |||
| 331 | Here is a sample LM93 chip config for sensors.conf: | ||
| 332 | |||
| 333 | ---------- cut here ---------- | ||
| 334 | chip "lm93-*" | ||
| 335 | |||
| 336 | # VOLTAGE INPUTS | ||
| 337 | |||
| 338 | # labels and scaling based on datasheet recommendations | ||
| 339 | label in1 "+12V1" | ||
| 340 | compute in1 @ * 12.945, @ / 12.945 | ||
| 341 | set in1_min 12 * 0.90 | ||
| 342 | set in1_max 12 * 1.10 | ||
| 343 | |||
| 344 | label in2 "+12V2" | ||
| 345 | compute in2 @ * 12.945, @ / 12.945 | ||
| 346 | set in2_min 12 * 0.90 | ||
| 347 | set in2_max 12 * 1.10 | ||
| 348 | |||
| 349 | label in3 "+12V3" | ||
| 350 | compute in3 @ * 12.945, @ / 12.945 | ||
| 351 | set in3_min 12 * 0.90 | ||
| 352 | set in3_max 12 * 1.10 | ||
| 353 | |||
| 354 | label in4 "FSB_Vtt" | ||
| 355 | |||
| 356 | label in5 "3GIO" | ||
| 357 | |||
| 358 | label in6 "ICH_Core" | ||
| 359 | |||
| 360 | label in7 "Vccp1" | ||
| 361 | |||
| 362 | label in8 "Vccp2" | ||
| 363 | |||
| 364 | label in9 "+3.3V" | ||
| 365 | set in9_min 3.3 * 0.90 | ||
| 366 | set in9_max 3.3 * 1.10 | ||
| 367 | |||
| 368 | label in10 "+5V" | ||
| 369 | set in10_min 5.0 * 0.90 | ||
| 370 | set in10_max 5.0 * 1.10 | ||
| 371 | |||
| 372 | label in11 "SCSI_Core" | ||
| 373 | |||
| 374 | label in12 "Mem_Core" | ||
| 375 | |||
| 376 | label in13 "Mem_Vtt" | ||
| 377 | |||
| 378 | label in14 "Gbit_Core" | ||
| 379 | |||
| 380 | # Assuming R1/R2 = 4.1143, and 3.3V reference | ||
| 381 | # -12V = (4.1143 + 1) * (@ - 3.3) + 3.3 | ||
| 382 | label in15 "-12V" | ||
| 383 | compute in15 @ * 5.1143 - 13.57719, (@ + 13.57719) / 5.1143 | ||
| 384 | set in15_min -12 * 0.90 | ||
| 385 | set in15_max -12 * 1.10 | ||
| 386 | |||
| 387 | label in16 "+3.3VSB" | ||
| 388 | set in16_min 3.3 * 0.90 | ||
| 389 | set in16_max 3.3 * 1.10 | ||
| 390 | |||
| 391 | # TEMPERATURE INPUTS | ||
| 392 | |||
| 393 | label temp1 "CPU1" | ||
| 394 | label temp2 "CPU2" | ||
| 395 | label temp3 "LM93" | ||
| 396 | |||
| 397 | # TACHOMETER INPUTS | ||
| 398 | |||
| 399 | label fan1 "Fan1" | ||
| 400 | set fan1_min 3000 | ||
| 401 | label fan2 "Fan2" | ||
| 402 | set fan2_min 3000 | ||
| 403 | label fan3 "Fan3" | ||
| 404 | set fan3_min 3000 | ||
| 405 | label fan4 "Fan4" | ||
| 406 | set fan4_min 3000 | ||
| 407 | |||
| 408 | # PWM OUTPUTS | ||
| 409 | |||
| 410 | label pwm1 "CPU1" | ||
| 411 | label pwm2 "CPU2" | ||
| 412 | |||
diff --git a/Documentation/hwmon/smsc47b397 b/Documentation/hwmon/smsc47b397 index 20682f15ae41..3a43b6948924 100644 --- a/Documentation/hwmon/smsc47b397 +++ b/Documentation/hwmon/smsc47b397 | |||
| @@ -4,6 +4,7 @@ Kernel driver smsc47b397 | |||
| 4 | Supported chips: | 4 | Supported chips: |
| 5 | * SMSC LPC47B397-NC | 5 | * SMSC LPC47B397-NC |
| 6 | * SMSC SCH5307-NS | 6 | * SMSC SCH5307-NS |
| 7 | * SMSC SCH5317 | ||
| 7 | Prefix: 'smsc47b397' | 8 | Prefix: 'smsc47b397' |
| 8 | Addresses scanned: none, address read from Super I/O config space | 9 | Addresses scanned: none, address read from Super I/O config space |
| 9 | Datasheet: In this file | 10 | Datasheet: In this file |
| @@ -18,8 +19,8 @@ The following specification describes the SMSC LPC47B397-NC[1] sensor chip | |||
| 18 | provided by Craig Kelly (In-Store Broadcast Network) and edited/corrected | 19 | provided by Craig Kelly (In-Store Broadcast Network) and edited/corrected |
| 19 | by Mark M. Hoffman <mhoffman@lightlink.com>. | 20 | by Mark M. Hoffman <mhoffman@lightlink.com>. |
| 20 | 21 | ||
| 21 | [1] And SMSC SCH5307-NS, which has a different device ID but is otherwise | 22 | [1] And SMSC SCH5307-NS and SCH5317, which have different device IDs but are |
| 22 | compatible. | 23 | otherwise compatible. |
| 23 | 24 | ||
| 24 | * * * * * | 25 | * * * * * |
| 25 | 26 | ||
| @@ -131,7 +132,7 @@ OUT DX,AL | |||
| 131 | The registers of interest for identifying the SIO on the dc7100 are Device ID | 132 | The registers of interest for identifying the SIO on the dc7100 are Device ID |
| 132 | (0x20) and Device Rev (0x21). | 133 | (0x20) and Device Rev (0x21). |
| 133 | 134 | ||
| 134 | The Device ID will read 0x6F (for SCH5307-NS, 0x81) | 135 | The Device ID will read 0x6F (0x81 for SCH5307-NS, and 0x85 for SCH5317) |
| 135 | The Device Rev currently reads 0x01 | 136 | The Device Rev currently reads 0x01 |
| 136 | 137 | ||
| 137 | Obtaining the HWM Base Address. | 138 | Obtaining the HWM Base Address. |
diff --git a/Documentation/hwmon/sysfs-interface b/Documentation/hwmon/sysfs-interface index a9a18ad0d17a..b3a9e1b9dbda 100644 --- a/Documentation/hwmon/sysfs-interface +++ b/Documentation/hwmon/sysfs-interface | |||
| @@ -172,11 +172,10 @@ pwm[1-*] Pulse width modulation fan control. | |||
| 172 | 255 is max or 100%. | 172 | 255 is max or 100%. |
| 173 | 173 | ||
| 174 | pwm[1-*]_enable | 174 | pwm[1-*]_enable |
| 175 | Switch PWM on and off. | 175 | Fan speed control method: |
| 176 | Not always present even if pwmN is. | 176 | 0: no fan speed control (i.e. fan at full speed) |
| 177 | 0: turn off | 177 | 1: manual fan speed control enabled (using pwm[1-*]) |
| 178 | 1: turn on in manual mode | 178 | 2+: automatic fan speed control enabled |
| 179 | 2+: turn on in automatic mode | ||
| 180 | Check individual chip documentation files for automatic mode | 179 | Check individual chip documentation files for automatic mode |
| 181 | details. | 180 | details. |
| 182 | RW | 181 | RW |
| @@ -343,9 +342,9 @@ to notify open diodes, unconnected fans etc. where the hardware | |||
| 343 | supports it. When this boolean has value 1, the measurement for that | 342 | supports it. When this boolean has value 1, the measurement for that |
| 344 | channel should not be trusted. | 343 | channel should not be trusted. |
| 345 | 344 | ||
| 346 | in[0-*]_input_fault | 345 | in[0-*]_fault |
| 347 | fan[1-*]_input_fault | 346 | fan[1-*]_fault |
| 348 | temp[1-*]_input_fault | 347 | temp[1-*]_fault |
| 349 | Input fault condition | 348 | Input fault condition |
| 350 | 0: no fault occured | 349 | 0: no fault occured |
| 351 | 1: fault condition | 350 | 1: fault condition |
diff --git a/Documentation/hwmon/w83627ehf b/Documentation/hwmon/w83627ehf index 030fac6cec7a..ccc2bcb61068 100644 --- a/Documentation/hwmon/w83627ehf +++ b/Documentation/hwmon/w83627ehf | |||
| @@ -22,9 +22,9 @@ This driver implements support for the Winbond W83627EHF, W83627EHG, and | |||
| 22 | W83627DHG super I/O chips. We will refer to them collectively as Winbond chips. | 22 | W83627DHG super I/O chips. We will refer to them collectively as Winbond chips. |
| 23 | 23 | ||
| 24 | The chips implement three temperature sensors, five fan rotation | 24 | The chips implement three temperature sensors, five fan rotation |
| 25 | speed sensors, ten analog voltage sensors (only nine for the 627DHG), alarms | 25 | speed sensors, ten analog voltage sensors (only nine for the 627DHG), one |
| 26 | with beep warnings (control unimplemented), and some automatic fan regulation | 26 | VID (6 pins), alarms with beep warnings (control unimplemented), and |
| 27 | strategies (plus manual fan control mode). | 27 | some automatic fan regulation strategies (plus manual fan control mode). |
| 28 | 28 | ||
| 29 | Temperatures are measured in degrees Celsius and measurement resolution is 1 | 29 | Temperatures are measured in degrees Celsius and measurement resolution is 1 |
| 30 | degC for temp1 and 0.5 degC for temp2 and temp3. An alarm is triggered when | 30 | degC for temp1 and 0.5 degC for temp2 and temp3. An alarm is triggered when |
