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>
This commit is contained in:
Родитель
0475169c13
Коммит
816d8c6a25
|
@ -6,7 +6,7 @@ Supported chips:
|
||||||
Prefix: 'it87'
|
Prefix: 'it87'
|
||||||
Addresses scanned: from Super I/O config space (8 I/O ports)
|
Addresses scanned: from Super I/O config space (8 I/O ports)
|
||||||
Datasheet: Publicly available at the ITE website
|
Datasheet: Publicly available at the ITE website
|
||||||
http://www.ite.com.tw/
|
http://www.ite.com.tw/product_info/file/pc/IT8705F_V.0.4.1.pdf
|
||||||
* IT8712F
|
* IT8712F
|
||||||
Prefix: 'it8712'
|
Prefix: 'it8712'
|
||||||
Addresses scanned: from Super I/O config space (8 I/O ports)
|
Addresses scanned: from Super I/O config space (8 I/O ports)
|
||||||
|
@ -97,8 +97,8 @@ The IT8716F, IT8718F and later IT8712F revisions have support for
|
||||||
The IT8716F and IT8718F, and late IT8712F and IT8705F also have optional
|
The IT8716F and IT8718F, and late IT8712F and IT8705F also have optional
|
||||||
16-bit tachometer counters for fans 1 to 3. This is better (no more fan
|
16-bit tachometer counters for fans 1 to 3. This is better (no more fan
|
||||||
clock divider mess) but not compatible with the older chips and
|
clock divider mess) but not compatible with the older chips and
|
||||||
revisions. For now, the driver only uses the 16-bit mode on the
|
revisions. The 16-bit tachometer mode is enabled by the driver when one
|
||||||
late IT8712F, IT8716F and IT8718F.
|
of the above chips is detected.
|
||||||
|
|
||||||
The IT8726F is just bit enhanced IT8716F with additional hardware
|
The IT8726F is just bit enhanced IT8716F with additional hardware
|
||||||
for AMD power sequencing. Therefore the chip will appear as IT8716F
|
for AMD power sequencing. Therefore the chip will appear as IT8716F
|
||||||
|
|
|
@ -272,9 +272,11 @@ struct it87_data {
|
||||||
|
|
||||||
static inline int has_16bit_fans(const struct it87_data *data)
|
static inline int has_16bit_fans(const struct it87_data *data)
|
||||||
{
|
{
|
||||||
/* IT8712F Datasheet 0.9.1, section 8.3.5 indicates 7h == Version I.
|
/* IT8705F Datasheet 0.4.1, 3h == Version G.
|
||||||
This is the first revision with 16bit tachometer support. */
|
IT8712F Datasheet 0.9.1, section 8.3.5 indicates 7h == Version I.
|
||||||
return (data->type == it8712 && data->revision >= 0x07)
|
These are the first revisions with 16bit tachometer support. */
|
||||||
|
return (data->type == it87 && data->revision >= 0x03)
|
||||||
|
|| (data->type == it8712 && data->revision >= 0x07)
|
||||||
|| data->type == it8716
|
|| data->type == it8716
|
||||||
|| data->type == it8718;
|
|| data->type == it8718;
|
||||||
}
|
}
|
||||||
|
@ -1370,11 +1372,14 @@ static void __devinit it87_init_device(struct platform_device *pdev)
|
||||||
it87_write_value(data, IT87_REG_FAN_16BIT,
|
it87_write_value(data, IT87_REG_FAN_16BIT,
|
||||||
tmp | 0x07);
|
tmp | 0x07);
|
||||||
}
|
}
|
||||||
|
/* IT8705F only supports three fans. */
|
||||||
|
if (data->type != it87) {
|
||||||
if (tmp & (1 << 4))
|
if (tmp & (1 << 4))
|
||||||
data->has_fan |= (1 << 3); /* fan4 enabled */
|
data->has_fan |= (1 << 3); /* fan4 enabled */
|
||||||
if (tmp & (1 << 5))
|
if (tmp & (1 << 5))
|
||||||
data->has_fan |= (1 << 4); /* fan5 enabled */
|
data->has_fan |= (1 << 4); /* fan5 enabled */
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Set current fan mode registers and the default settings for the
|
/* Set current fan mode registers and the default settings for the
|
||||||
* other mode registers */
|
* other mode registers */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче