We can not use register 0x98 since it is typically not programmed
on systems selecting PECI. Try register 0x0a (Interface Selection)
which should be a better fit anyway.
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
* Super-I/O configuration space.
*/
#define IT87_REG_VID 0x0a
* Super-I/O configuration space.
*/
#define IT87_REG_VID 0x0a
+
+/* Interface Selection register on other chips */
+#define IT87_REG_IFSEL 0x0a
+
/*
* The IT8705F and IT8712F earlier than revision 0x08 use register 0x0b
* for fan divisors. Later IT8712F revisions must use 16-bit tachometer
/*
* The IT8705F and IT8712F earlier than revision 0x08 use register 0x0b
* for fan divisors. Later IT8712F revisions must use 16-bit tachometer
- /* Dectect PECI vs. AMDTSI if possible */
+ /* Dectect PECI vs. AMDTSI */
- if ((has_temp_peci(data, index)) && data->type != it8721) {
- extra = data->read(data, 0x98); /* PCH/AMDTSI host status */
- if (extra & BIT(6))
+ if ((has_temp_peci(data, index)) || data->type == it8721 ||
+ data->type == it8720) {
+ extra = data->read(data, IT87_REG_IFSEL);
+ if ((extra & 0x70) == 0x40)