aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/hwmon/w83627ehf.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/hwmon/w83627ehf.c b/drivers/hwmon/w83627ehf.c
index 460292bad74a..d18031944960 100644
--- a/drivers/hwmon/w83627ehf.c
+++ b/drivers/hwmon/w83627ehf.c
@@ -79,6 +79,10 @@ static unsigned short force_id;
79module_param(force_id, ushort, 0); 79module_param(force_id, ushort, 0);
80MODULE_PARM_DESC(force_id, "Override the detected device ID"); 80MODULE_PARM_DESC(force_id, "Override the detected device ID");
81 81
82static unsigned short fan_debounce;
83module_param(fan_debounce, ushort, 0);
84MODULE_PARM_DESC(fan_debounce, "Enable debouncing for fan RPM signal");
85
82#define DRVNAME "w83627ehf" 86#define DRVNAME "w83627ehf"
83 87
84/* 88/*
@@ -187,6 +191,7 @@ static const u16 W83627EHF_REG_TEMP_CONFIG[] = { 0, 0x152, 0x252, 0 };
187/* NCT6775F has its own fan divider registers */ 191/* NCT6775F has its own fan divider registers */
188#define NCT6775_REG_FANDIV1 0x506 192#define NCT6775_REG_FANDIV1 0x506
189#define NCT6775_REG_FANDIV2 0x507 193#define NCT6775_REG_FANDIV2 0x507
194#define NCT6775_REG_FAN_DEBOUNCE 0xf0
190 195
191#define W83627EHF_REG_ALARM1 0x459 196#define W83627EHF_REG_ALARM1 0x459
192#define W83627EHF_REG_ALARM2 0x45A 197#define W83627EHF_REG_ALARM2 0x45A
@@ -2089,6 +2094,22 @@ static int __devinit w83627ehf_probe(struct platform_device *pdev)
2089 fan5pin = !(superio_inb(sio_data->sioreg, 0x24) & 0x02); 2094 fan5pin = !(superio_inb(sio_data->sioreg, 0x24) & 0x02);
2090 fan4min = fan4pin; 2095 fan4min = fan4pin;
2091 } 2096 }
2097
2098 if (fan_debounce &&
2099 (sio_data->kind == nct6775 || sio_data->kind == nct6776)) {
2100 u8 tmp;
2101
2102 superio_select(sio_data->sioreg, W83627EHF_LD_HWM);
2103 tmp = superio_inb(sio_data->sioreg, NCT6775_REG_FAN_DEBOUNCE);
2104 if (sio_data->kind == nct6776)
2105 superio_outb(sio_data->sioreg, NCT6775_REG_FAN_DEBOUNCE,
2106 0x3e | tmp);
2107 else
2108 superio_outb(sio_data->sioreg, NCT6775_REG_FAN_DEBOUNCE,
2109 0x1e | tmp);
2110 pr_info("Enabled fan debounce for chip %s\n", data->name);
2111 }
2112
2092 superio_exit(sio_data->sioreg); 2113 superio_exit(sio_data->sioreg);
2093 2114
2094 /* It looks like fan4 and fan5 pins can be alternatively used 2115 /* It looks like fan4 and fan5 pins can be alternatively used