diff options
author | Andrew Paprocki <andrew@ishiboo.com> | 2008-08-06 16:41:06 -0400 |
---|---|---|
committer | Jean Delvare <khali@mahadeva.delvare> | 2008-08-06 16:41:06 -0400 |
commit | 816d8c6a2580562698cf0fa0b9e5b4dd570e636e (patch) | |
tree | 6f2b41ba4e144a04315fe56cb50998e8cd3ae24d /drivers/hwmon | |
parent | 0475169c13e177e1af5a02f5e9f30fda13dc0b86 (diff) |
hwmon: (it87) Support for 16-bit fan reading in it8705 >= rev 0x03
The it8705 chip supports 16-bit fan tachometers in revisions at least
>= 0x03 (Version G). This patch enables 16-bit fan readings on all
revisions >= 0x03 just like the it8712, it8716, and it8718 chips.
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'drivers/hwmon')
-rw-r--r-- | drivers/hwmon/it87.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c index 2a365681f969..30cdb0956779 100644 --- a/drivers/hwmon/it87.c +++ b/drivers/hwmon/it87.c | |||
@@ -272,9 +272,11 @@ struct it87_data { | |||
272 | 272 | ||
273 | static inline int has_16bit_fans(const struct it87_data *data) | 273 | static inline int has_16bit_fans(const struct it87_data *data) |
274 | { | 274 | { |
275 | /* IT8712F Datasheet 0.9.1, section 8.3.5 indicates 7h == Version I. | 275 | /* IT8705F Datasheet 0.4.1, 3h == Version G. |
276 | This is the first revision with 16bit tachometer support. */ | 276 | IT8712F Datasheet 0.9.1, section 8.3.5 indicates 7h == Version I. |
277 | return (data->type == it8712 && data->revision >= 0x07) | 277 | These are the first revisions with 16bit tachometer support. */ |
278 | return (data->type == it87 && data->revision >= 0x03) | ||
279 | || (data->type == it8712 && data->revision >= 0x07) | ||
278 | || data->type == it8716 | 280 | || data->type == it8716 |
279 | || data->type == it8718; | 281 | || data->type == it8718; |
280 | } | 282 | } |
@@ -1370,10 +1372,13 @@ static void __devinit it87_init_device(struct platform_device *pdev) | |||
1370 | it87_write_value(data, IT87_REG_FAN_16BIT, | 1372 | it87_write_value(data, IT87_REG_FAN_16BIT, |
1371 | tmp | 0x07); | 1373 | tmp | 0x07); |
1372 | } | 1374 | } |
1373 | if (tmp & (1 << 4)) | 1375 | /* IT8705F only supports three fans. */ |
1374 | data->has_fan |= (1 << 3); /* fan4 enabled */ | 1376 | if (data->type != it87) { |
1375 | if (tmp & (1 << 5)) | 1377 | if (tmp & (1 << 4)) |
1376 | data->has_fan |= (1 << 4); /* fan5 enabled */ | 1378 | data->has_fan |= (1 << 3); /* fan4 enabled */ |
1379 | if (tmp & (1 << 5)) | ||
1380 | data->has_fan |= (1 << 4); /* fan5 enabled */ | ||
1381 | } | ||
1377 | } | 1382 | } |
1378 | 1383 | ||
1379 | /* Set current fan mode registers and the default settings for the | 1384 | /* Set current fan mode registers and the default settings for the |