diff -uprN lm_sensors-2.10.0.orig/kernel/chips/w83627hf.c lm_sensors-2.10.0/kernel/chips/w83627hf.c --- lm_sensors-2.10.0.orig/kernel/chips/w83627hf.c 2006-02-15 02:46:48.000000000 +0100 +++ lm_sensors-2.10.0/kernel/chips/w83627hf.c 2006-07-23 11:38:42.000000000 +0200 @@ -212,6 +212,17 @@ static const u8 regpwm[] = { W83627THF_R #define W836X7HF_REG_PWM(type, nr) (((type) == w83627hf) ? \ regpwm_627hf[(nr) - 1] : regpwm[(nr) - 1]) +#define W83627HF_REG_PWMCLK12 0x5C /* Only for the 627HF */ + +#define W83637HF_REG_PWMCLK1 0x00 /* 697HF/687THF too */ +#define W83637HF_REG_PWMCLK2 0x02 /* 697HF/687THF too */ +#define W83637HF_REG_PWMCLK3 0x10 /* 687THF too */ + +/* 687thf uses DC output by default and 627thf only uses DC output. + PWMCLK is useless for DC output */ +static const u8 reg_pwmclk[] = { W83637HF_REG_PWMCLK1, W83637HF_REG_PWMCLK2, + W83637HF_REG_PWMCLK3 }; + #define W83781D_REG_I2C_ADDR 0x48 #define W83781D_REG_I2C_SUBADDR 0x4A @@ -311,6 +322,7 @@ struct w83627hf_data { u32 beeps; /* Register encoding, combined */ u8 beep_enable; /* Boolean */ u8 pwm[3]; /* Register value */ + u8 pwmclk[3]; /* Register value */ u16 sens[3]; /* 782D/783S only. 1 = pentium diode; 2 = 3904 diode; 3000-5000 = thermistor beta. @@ -353,6 +365,8 @@ static void w83627hf_fan_div(struct i2c_ int ctl_name, int *nrels_mag, long *results); static void w83627hf_pwm(struct i2c_client *client, int operation, int ctl_name, int *nrels_mag, long *results); +static void w83627hf_pwmclk(struct i2c_client *client, int operation, + int ctl_name, int *nrels_mag, long *results); static void w83627hf_sens(struct i2c_client *client, int operation, int ctl_name, int *nrels_mag, long *results); @@ -369,6 +383,8 @@ static struct i2c_driver w83627hf_driver Note that the 627hf is supported by both drivers. Do not make incompatible changes here or we will have errors in the generated file ../include/sensors.h !!! + Added three entries for pwm clock selection and pwm clock scaling + W83781D_SYSCTL_PWMCLK */ /* -- SENSORS SYSCTL START -- */ @@ -395,6 +411,9 @@ static struct i2c_driver w83627hf_driver #define W83781D_SYSCTL_SENS1 1501 /* 1, 2, or Beta (3000-5000) */ #define W83781D_SYSCTL_SENS2 1502 #define W83781D_SYSCTL_SENS3 1503 +#define W83781D_SYSCTL_PWMCLK1 1701 +#define W83781D_SYSCTL_PWMCLK2 1702 +#define W83781D_SYSCTL_PWMCLK3 1703 #define W83781D_SYSCTL_FAN_DIV 2000 /* 1, 2, 4 or 8 */ #define W83781D_SYSCTL_ALARMS 2001 /* bitvector */ #define W83781D_SYSCTL_BEEP 2002 /* bitvector */ @@ -471,6 +490,10 @@ static ctl_table w83627hf_dir_table_temp &i2c_sysctl_real, NULL, &w83627hf_pwm}, {W83781D_SYSCTL_PWM2, "pwm2", NULL, 0, 0644, NULL, &i2c_proc_real, &i2c_sysctl_real, NULL, &w83627hf_pwm}, + {W83781D_SYSCTL_PWMCLK1, "pwm1_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_pwmclk}, + {W83781D_SYSCTL_PWMCLK2, "pwm2_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_pwmclk}, {W83781D_SYSCTL_SENS1, "sensor1", NULL, 0, 0644, NULL, &i2c_proc_real, &i2c_sysctl_real, NULL, &w83627hf_sens}, {W83781D_SYSCTL_SENS2, "sensor2", NULL, 0, 0644, NULL, &i2c_proc_real, @@ -481,6 +504,7 @@ static ctl_table w83627hf_dir_table_temp }; /* similar to w83782d but no fan3, no vid */ +/* no pwmclk3 */ static ctl_table w83697hf_dir_table_template[] = { {W83781D_SYSCTL_IN0, "in0", NULL, 0, 0644, NULL, &i2c_proc_real, &i2c_sysctl_real, NULL, &w83627hf_in}, @@ -517,6 +541,10 @@ static ctl_table w83697hf_dir_table_temp &i2c_sysctl_real, NULL, &w83627hf_pwm}, {W83781D_SYSCTL_PWM2, "pwm2", NULL, 0, 0644, NULL, &i2c_proc_real, &i2c_sysctl_real, NULL, &w83627hf_pwm}, + {W83781D_SYSCTL_PWMCLK1, "pwm1_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_pwmclk}, + {W83781D_SYSCTL_PWMCLK2, "pwm2_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_pwmclk}, {W83781D_SYSCTL_SENS1, "sensor1", NULL, 0, 0644, NULL, &i2c_proc_real, &i2c_sysctl_real, NULL, &w83627hf_sens}, {W83781D_SYSCTL_SENS2, "sensor2", NULL, 0, 0644, NULL, &i2c_proc_real, @@ -525,7 +553,66 @@ static ctl_table w83697hf_dir_table_temp }; /* no in5 and in6 */ -/* We use this one for W83637HF and W83687THF too */ +static ctl_table w83637hf_dir_table_template[] = { + {W83781D_SYSCTL_IN0, "in0", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_in}, + {W83781D_SYSCTL_IN1, "in1", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_in}, + {W83781D_SYSCTL_IN2, "in2", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_in}, + {W83781D_SYSCTL_IN3, "in3", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_in}, + {W83781D_SYSCTL_IN4, "in4", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_in}, + {W83781D_SYSCTL_IN7, "in7", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_in}, + {W83781D_SYSCTL_IN8, "in8", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_in}, + {W83781D_SYSCTL_FAN1, "fan1", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_fan}, + {W83781D_SYSCTL_FAN2, "fan2", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_fan}, + {W83781D_SYSCTL_FAN3, "fan3", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_fan}, + {W83781D_SYSCTL_TEMP1, "temp1", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_temp}, + {W83781D_SYSCTL_TEMP2, "temp2", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_temp_add}, + {W83781D_SYSCTL_TEMP3, "temp3", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_temp_add}, + {W83781D_SYSCTL_VID, "vid", NULL, 0, 0444, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_vid}, + {W83781D_SYSCTL_VRM, "vrm", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_vrm}, + {W83781D_SYSCTL_FAN_DIV, "fan_div", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_fan_div}, + {W83781D_SYSCTL_ALARMS, "alarms", NULL, 0, 0444, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_alarms}, + {W83781D_SYSCTL_BEEP, "beep", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_beep}, + {W83781D_SYSCTL_PWM1, "pwm1", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_pwm}, + {W83781D_SYSCTL_PWM2, "pwm2", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_pwm}, + {W83781D_SYSCTL_PWM3, "pwm3", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_pwm}, + {W83781D_SYSCTL_PWMCLK1, "pwm1_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_pwmclk}, + {W83781D_SYSCTL_PWMCLK2, "pwm2_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_pwmclk}, + {W83781D_SYSCTL_PWMCLK3, "pwm3_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_pwmclk}, + {W83781D_SYSCTL_SENS1, "sensor1", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_sens}, + {W83781D_SYSCTL_SENS2, "sensor2", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_sens}, + {W83781D_SYSCTL_SENS3, "sensor3", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83627hf_sens}, + {0} +}; + +/* no pwmclk (dc fan output) , no in5 and in6 */ +/* We use this one for W83687THF too */ static ctl_table w83627thf_dir_table_template[] = { {W83781D_SYSCTL_IN0, "in0", NULL, 0, 0644, NULL, &i2c_proc_real, &i2c_sysctl_real, NULL, &w83627hf_in}, @@ -721,8 +808,9 @@ int w83627hf_detect(struct i2c_adapter * w83697hf_dir_table_template : (kind == w83627hf) ? w83627hf_dir_table_template : - /* w83627thf table also used for 637HF - and 687THF */ + (kind == w83637hf) ? + w83637hf_dir_table_template : + /* w83627thf table also used for 687THF */ w83627thf_dir_table_template, THIS_MODULE)) < 0) { err = i; @@ -1030,6 +1118,23 @@ static void w83627hf_update_client(struc if(i == 2 && (data->type == w83627hf || data->type == w83697hf)) break; } + if (data->type == w83627hf) { + u8 tmp = w83627hf_read_value(client, + W83627HF_REG_PWMCLK12); + /* bits 7 and 3 are reserved in 627HF */ + /* bits 6..4 pwmclk2 .. bits 2..0 pwmclk1 */ + data->pwmclk[0] = tmp & 0x07; + data->pwmclk[1] = (tmp >> 4) & 0x07; + } else if ( (data->type == w83637hf) || \ + (data->type == w83697hf) ) { + for (i = 1; i <= 3; i++) { + u8 tmp = w83627hf_read_value(client, + reg_pwmclk[i-1]); + data->pwmclk[i-1] = tmp ; + if ( (i==2) && (data->type == w83697hf) ) + break; + } + } data->temp = w83627hf_read_value(client, W83781D_REG_TEMP); data->temp_over = @@ -1406,6 +1511,50 @@ void w83627hf_pwm(struct i2c_client *cli } } +/* this is only for w83627hf, w83637hf and w83697hf + no pwmclk for w8327thf and w83687thf (dc output) */ +void w83627hf_pwmclk(struct i2c_client *client, int operation, int ctl_name, + int *nrels_mag, long *results) +{ + struct w83627hf_data *data = client->data; + int nr = 1 + ctl_name - W83781D_SYSCTL_PWMCLK1; + + if (operation == SENSORS_PROC_REAL_INFO) + *nrels_mag = 0; + else if (operation == SENSORS_PROC_REAL_READ) { + w83627hf_update_client(client); + results[0] = data->pwmclk[nr - 1]; + *nrels_mag = 1; + } else if (operation == SENSORS_PROC_REAL_WRITE) { + if (*nrels_mag >= 1) { + if (data->type == w83627hf) { + /* bits 7 and 3 are reserved in 627HF */ + data->pwmclk[nr - 1] = PWM_TO_REG(results[0]) & 0x07; + if (data->pwmclk[nr - 1] > 0x04) data->pwmclk[nr - 1]=0x04; + /* bits 6..4 pwmclk2 (nr=2) .. bits 2..0 pwmclk1 (nr=1) */ + if ( nr == 1 ) { + w83627hf_write_value(client, + W83627HF_REG_PWMCLK12, + data->pwmclk[nr - 1] | + (w83627hf_read_value(client, + W83627HF_REG_PWMCLK12 & 0xF8)) ); + } else if ( nr == 2 ) { + w83627hf_write_value(client, + W83627HF_REG_PWMCLK12, + ( data->pwmclk[nr - 1] << 4 )| + (w83627hf_read_value(client, + W83627HF_REG_PWMCLK12 & 0x8F)) ); + } + } else if ( (data->type == w83637hf) || \ + (data->type == w83697hf) ) { + data->pwm[nr - 1] = PWM_TO_REG(results[0]); + w83627hf_write_value(client, reg_pwmclk[nr - 1], + data->pwmclk[nr - 1]); + } + } + } +} + void w83627hf_sens(struct i2c_client *client, int operation, int ctl_name, int *nrels_mag, long *results) { diff -uprN lm_sensors-2.10.0.orig/kernel/chips/w83781d.c lm_sensors-2.10.0/kernel/chips/w83781d.c --- lm_sensors-2.10.0.orig/kernel/chips/w83781d.c 2006-02-15 02:46:48.000000000 +0100 +++ lm_sensors-2.10.0/kernel/chips/w83781d.c 2006-07-24 18:57:16.000000000 +0200 @@ -108,11 +108,21 @@ MODULE_PARM_DESC(init, "Set to zero to b #define W83781D_REG_BANK 0x4E #define W83781D_REG_CONFIG 0x40 + +/* Interrupt status (W83781D, AS99127F) */ #define W83781D_REG_ALARM1 0x41 #define W83781D_REG_ALARM2 0x42 -#define W83781D_REG_ALARM3 0x450 /* not on W83781D */ -#define W83781D_REG_IRQ 0x4C +/* Real-time status (W83782D, W83783S, W83627HF) */ +#define W83782D_REG_ALARM1 0x459 +#define W83782D_REG_ALARM2 0x45A +#define W83782D_REG_ALARM3 0x45B + +/* Real-time status (W83791D) */ +#define W83791D_REG_ALARM1 0xA9 +#define W83791D_REG_ALARM2 0xAA +#define W83791D_REG_ALARM3 0xAB + #define W83781D_REG_BEEP_CONFIG 0x4D #define W83781D_REG_BEEP_INTS1 0x56 #define W83781D_REG_BEEP_INTS2 0x57 @@ -141,24 +151,51 @@ MODULE_PARM_DESC(init, "Set to zero to b #define W83791D_REG_PWM1 0x81 #define W83791D_REG_PWM2 0x83 #define W83791D_REG_PWM3 0x94 - -#define W83627HF_REG_PWM1 0x01 -#define W83627HF_REG_PWM2 0x03 -#define W83627HF_REG_PWMCLK1 0x00 -#define W83627HF_REG_PWMCLK2 0x02 +#define W83791D_REG_PWM4 0xA0 +#define W83791D_REG_PWM5 0xA1 +#define W83791D_REG_PWMCLK1 0x80 +#define W83791D_REG_PWMCLK2 0x82 +#define W83791D_REG_PWMCLK3 0x93 +#define W83791D_REG_PWMCLK4 0x9E +#define W83791D_REG_PWMCLK5 0x9F static const u8 regpwm[] = { W83781D_REG_PWM1, W83781D_REG_PWM2, W83781D_REG_PWM3, W83781D_REG_PWM4 }; static const u8 regpwm_w83791d[] = { W83791D_REG_PWM1, W83791D_REG_PWM2, - W83791D_REG_PWM3 + W83791D_REG_PWM3, W83791D_REG_PWM4 }; - + +static const u16 regpwmclk[] = { W83781D_REG_PWMCLK12, W83781D_REG_PWMCLK12, + W83781D_REG_PWMCLK34, W83781D_REG_PWMCLK34 +}; + +static const u8 regpwmclk_w83791d[] = { W83791D_REG_PWMCLK1, W83791D_REG_PWMCLK2, + W83791D_REG_PWMCLK3, W83791D_REG_PWMCLK4 +}; + #define W83781D_REG_PWM(type, nr) (((type) == w83791d) ? \ regpwm_w83791d[(nr) - 1] : \ regpwm[(nr) - 1]) +#define W83781D_REG_PWMCLK(type, nr) (((type) == w83791d) ? \ + regpwmclk_w83791d[(nr) - 1] : \ + regpwmclk[(nr) - 1]) + +static const u8 w83781d_pwmclk_bit[] = { 0x8F, 0xF8, 0xF8, 0x8F }; +static const u8 w83791d_pwmclk_bit[] = { 0x00, 0x00, 0x00, 0x00 }; +static const u8 w83781d_pwmclk_shift[] = { 4, 0, 0, 4 }; +static const u8 w83791d_pwmclk_shift[] = { 0, 0, 0, 0 }; + +#define W83781D_PWMCLK_BIT(type, nr) (((type) == w83791d) ? \ + w83791d_pwmclk_bit[(nr) - 1] : \ + w83781d_pwmclk_bit[(nr) - 1]) + +#define W83781D_PWMCLK_SHIFT(type, nr) (((type) == w83791d) ? \ + w83791d_pwmclk_shift[(nr) - 1] : \ + w83781d_pwmclk_shift[(nr) - 1]) + #define W83781D_REG_I2C_ADDR 0x48 #define W83781D_REG_I2C_SUBADDR 0x4A @@ -269,7 +306,8 @@ struct w83781d_data { u32 alarms; /* Register encoding, combined */ u32 beeps; /* Register encoding, combined */ u8 beep_enable; /* Boolean */ - u8 pwm[4]; /* Register value */ + u8 pwm[4]; /* Register value - 5 for 791D only */ + u8 pwmclk[4]; /* Register value or Register encoding - 5 for 791D only*/ u8 pwmenable[4]; /* bool */ u16 sens[3]; /* 782D/783S only. 1 = pentium diode; 2 = 3904 diode; @@ -315,6 +353,8 @@ static void w83781d_fan_div(struct i2c_c int ctl_name, int *nrels_mag, long *results); static void w83781d_pwm(struct i2c_client *client, int operation, int ctl_name, int *nrels_mag, long *results); +static void w83781d_pwmclk(struct i2c_client *client, int operation, + int ctl_name, int *nrels_mag, long *results); static void w83781d_sens(struct i2c_client *client, int operation, int ctl_name, int *nrels_mag, long *results); #ifdef W83781D_RT @@ -358,12 +398,18 @@ static struct i2c_driver w83781d_driver #define W83781D_SYSCTL_PWM2 1402 #define W83781D_SYSCTL_PWM3 1403 #define W83781D_SYSCTL_PWM4 1404 +#define W83781D_SYSCTL_PWM5 1405 #define W83781D_SYSCTL_SENS1 1501 /* 1, 2, or Beta (3000-5000) */ #define W83781D_SYSCTL_SENS2 1502 #define W83781D_SYSCTL_SENS3 1503 #define W83781D_SYSCTL_RT1 1601 /* 32-entry table */ #define W83781D_SYSCTL_RT2 1602 /* 32-entry table */ #define W83781D_SYSCTL_RT3 1603 /* 32-entry table */ +#define W83781D_SYSCTL_PWMCLK1 1701 +#define W83781D_SYSCTL_PWMCLK2 1702 +#define W83781D_SYSCTL_PWMCLK3 1703 +#define W83781D_SYSCTL_PWMCLK4 1704 +#define W83781D_SYSCTL_PWMCLK5 1705 #define W83781D_SYSCTL_FAN_DIV 2000 /* 1, 2, 4 or 8 */ #define W83781D_SYSCTL_ALARMS 2001 /* bitvector */ #define W83781D_SYSCTL_BEEP 2002 /* bitvector */ @@ -529,6 +575,10 @@ static ctl_table w83782d_isa_dir_table_t &i2c_sysctl_real, NULL, &w83781d_pwm}, {W83781D_SYSCTL_PWM2, "pwm2", NULL, 0, 0644, NULL, &i2c_proc_real, &i2c_sysctl_real, NULL, &w83781d_pwm}, + {W83781D_SYSCTL_PWMCLK1, "pwm1_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83781d_pwmclk}, + {W83781D_SYSCTL_PWMCLK2, "pwm2_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83781d_pwmclk}, {W83781D_SYSCTL_SENS1, "sensor1", NULL, 0, 0644, NULL, &i2c_proc_real, &i2c_sysctl_real, NULL, &w83781d_sens}, {W83781D_SYSCTL_SENS2, "sensor2", NULL, 0, 0644, NULL, &i2c_proc_real, @@ -588,6 +638,14 @@ static ctl_table w83782d_i2c_dir_table_t &i2c_sysctl_real, NULL, &w83781d_pwm}, {W83781D_SYSCTL_PWM4, "pwm4", NULL, 0, 0644, NULL, &i2c_proc_real, &i2c_sysctl_real, NULL, &w83781d_pwm}, + {W83781D_SYSCTL_PWMCLK1, "pwm1_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83781d_pwmclk}, + {W83781D_SYSCTL_PWMCLK2, "pwm2_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83781d_pwmclk}, + {W83781D_SYSCTL_PWMCLK3, "pwm3_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83781d_pwmclk}, + {W83781D_SYSCTL_PWMCLK4, "pwm4_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83781d_pwmclk}, {W83781D_SYSCTL_SENS1, "sensor1", NULL, 0, 0644, NULL, &i2c_proc_real, &i2c_sysctl_real, NULL, &w83781d_sens}, {W83781D_SYSCTL_SENS2, "sensor2", NULL, 0, 0644, NULL, &i2c_proc_real, @@ -652,6 +710,14 @@ static ctl_table w83791d_dir_table_templ &i2c_sysctl_real, NULL, &w83781d_pwm}, {W83781D_SYSCTL_PWM4, "pwm4", NULL, 0, 0644, NULL, &i2c_proc_real, &i2c_sysctl_real, NULL, &w83781d_pwm}, + {W83781D_SYSCTL_PWMCLK1, "pwm1_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83781d_pwmclk}, + {W83781D_SYSCTL_PWMCLK2, "pwm2_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83781d_pwmclk}, + {W83781D_SYSCTL_PWMCLK3, "pwm3_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83781d_pwmclk}, + {W83781D_SYSCTL_PWMCLK4, "pwm4_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83781d_pwmclk}, {W83781D_SYSCTL_VRM, "vrm", NULL, 0, 0644, NULL, &i2c_proc_real, &i2c_sysctl_real, NULL, &w83781d_vrm}, {0} @@ -695,6 +761,10 @@ static ctl_table w83783s_dir_table_templ &i2c_sysctl_real, NULL, &w83781d_pwm}, {W83781D_SYSCTL_PWM2, "pwm2", NULL, 0, 0644, NULL, &i2c_proc_real, &i2c_sysctl_real, NULL, &w83781d_pwm}, + {W83781D_SYSCTL_PWMCLK1, "pwm1_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83781d_pwmclk}, + {W83781D_SYSCTL_PWMCLK2, "pwm2_clk", NULL, 0, 0644, NULL, &i2c_proc_real, + &i2c_sysctl_real, NULL, &w83781d_pwmclk}, {W83781D_SYSCTL_SENS1, "sensor1", NULL, 0, 0644, NULL, &i2c_proc_real, &i2c_sysctl_real, NULL, &w83781d_sens}, {W83781D_SYSCTL_SENS2, "sensor2", NULL, 0, 0644, NULL, &i2c_proc_real, @@ -1269,14 +1339,6 @@ static void w83781d_init_client(struct i w83781d_write_value(client, W83781D_REG_TEMP3_CONFIG, 0x00); } - if (type != w83781d) { - /* enable comparator mode for temp2 and temp3 so - alarm indication will work correctly */ - i = w83781d_read_value(client, W83781D_REG_IRQ); - if (!(i & 0x40)) - w83781d_write_value(client, W83781D_REG_IRQ, - i | 0x40); - } } /* Start monitoring */ @@ -1348,10 +1410,26 @@ static void w83781d_update_client(struct && i == 2) break; } - /* Only PWM2 can be disabled */ - data->pwmenable[1] = (w83781d_read_value(client, + /* Only PWM2 can be disabled */ + data->pwmenable[1] = (w83781d_read_value(client, W83781D_REG_PWMCLK12) & 0x08) >> 3; } + if (data->type != w83781d && data->type != as99127f) { + for (i = 1; i <= 4; i++) { + u8 tmp = w83781d_read_value(client, + W83781D_REG_PWMCLK(data->type, i)); + /* bits 7 and 3 are reserved in 627HF, 782D, 783S */ + data->pwmclk[i-1] = + (tmp & ~(W83781D_PWMCLK_BIT(data->type, i))) + >> W83781D_PWMCLK_SHIFT(data->type, i); + if (((data->type == w83783s) + || (data->type == w83627hf) + || ((data->type == w83782d) + && i2c_is_isa_client(client))) + && i == 2) + break; + } + } data->temp = w83781d_read_value(client, W83781D_REG_TEMP); data->temp_over = @@ -1386,15 +1464,36 @@ static void w83781d_update_client(struct data->fan_div[1] |= (i >> 4) & 0x04; data->fan_div[2] |= (i >> 5) & 0x04; } - data->alarms = - w83781d_read_value(client, - W83781D_REG_ALARM1) + - (w83781d_read_value(client, W83781D_REG_ALARM2) << 8); - if ((data->type == w83782d) || (data->type == w83627hf)) { - data->alarms |= - w83781d_read_value(client, - W83781D_REG_ALARM3) << 16; - } + + if ((data->type == w83782d) || (data->type == w83627hf)) { + data->alarms = w83781d_read_value(client, + W83782D_REG_ALARM1) + | (w83781d_read_value(client, + W83782D_REG_ALARM2) << 8) + | (w83781d_read_value(client, + W83782D_REG_ALARM3) << 16); + } else if (data->type == w83783s) { + /* Only two real-time status registers */ + data->alarms = w83781d_read_value(client, + W83782D_REG_ALARM1) + | (w83781d_read_value(client, + W83782D_REG_ALARM2) << 8); + } else if (data->type == w83791d) { + data->alarms = w83781d_read_value(client, + W83791D_REG_ALARM1) + | (w83781d_read_value(client, + W83791D_REG_ALARM2) << 8) + | (w83781d_read_value(client, + W83791D_REG_ALARM3) << 16); + } else { + /* No real-time status registers, fall back to + interrupt status registers */ + data->alarms = w83781d_read_value(client, + W83781D_REG_ALARM1) + | (w83781d_read_value(client, + W83781D_REG_ALARM2) << 8); + } + i = w83781d_read_value(client, W83781D_REG_BEEP_INTS2); data->beep_enable = i >> 7; data->beeps = ((i & 0x7f) << 8) + @@ -1735,6 +1834,36 @@ void w83781d_pwm(struct i2c_client *clie } } + +void w83781d_pwmclk(struct i2c_client *client, int operation, int ctl_name, + int *nrels_mag, long *results) +{ + struct w83781d_data *data = client->data; + int nr = 1 + ctl_name - W83781D_SYSCTL_PWMCLK1; + + if (operation == SENSORS_PROC_REAL_INFO) + *nrels_mag = 0; + else if (operation == SENSORS_PROC_REAL_READ) { + w83627hf_update_client(client); + results[0] = data->pwmclk[nr - 1]; + *nrels_mag = 1; + } else if (operation == SENSORS_PROC_REAL_WRITE) { + if (*nrels_mag >= 1) { + if (data->type == w83791d) { + data->pwmclk[nr - 1] = PWM_TO_REG(results[0]); + } else { + /* bits 7 and 3 are reserved in 627HF, 782D, 783S */ + data->pwmclk[nr - 1] = PWM_TO_REG(results[0]) & 0x07; + if (data->pwmclk[nr - 1] > 0x04) data->pwmclk[nr - 1]=0x04; + } + w83781d_write_value(client, W83781D_REG_PWMCLK(data->type, nr), + (data->pwmclk[nr - 1] << W83781D_PWMCLK_SHIFT(data->type, nr)) | + (w83781d_read_value(client, W83781D_REG_PWMCLK(data->type, nr) & + W83781D_PWMCLK_BIT(data->type, nr))) ); + } + } +} + void w83781d_sens(struct i2c_client *client, int operation, int ctl_name, int *nrels_mag, long *results) { diff -uprN lm_sensors-2.10.0.orig/lib/chips.c lm_sensors-2.10.0/lib/chips.c --- lm_sensors-2.10.0.orig/lib/chips.c 2006-02-15 02:46:48.000000000 +0100 +++ lm_sensors-2.10.0/lib/chips.c 2006-07-24 11:37:22.000000000 +0200 @@ -1021,122 +1021,122 @@ static sensors_chip_feature w83781d_feat static sensors_chip_feature as99127f_features[] = { - { SENSORS_W83782D_IN0, "in0", NOMAP, NOMAP, + { SENSORS_AS99127F_IN0, "in0", NOMAP, NOMAP, R, W83781D_SYSCTL_IN0, VALUE(3), 2 }, - { SENSORS_W83782D_IN1, "in1", NOMAP, NOMAP, + { SENSORS_AS99127F_IN1, "in1", NOMAP, NOMAP, R, W83781D_SYSCTL_IN1, VALUE(3), 2 }, - { SENSORS_W83782D_IN2, "in2", NOMAP, NOMAP, + { SENSORS_AS99127F_IN2, "in2", NOMAP, NOMAP, R, W83781D_SYSCTL_IN2, VALUE(3), 2 }, - { SENSORS_W83782D_IN3, "in3", NOMAP, NOMAP, + { SENSORS_AS99127F_IN3, "in3", NOMAP, NOMAP, R, W83781D_SYSCTL_IN3, VALUE(3), 2 }, - { SENSORS_W83782D_IN4, "in4", NOMAP, NOMAP, + { SENSORS_AS99127F_IN4, "in4", NOMAP, NOMAP, R, W83781D_SYSCTL_IN4, VALUE(3), 2 }, - { SENSORS_W83782D_IN5, "in5", NOMAP, NOMAP, + { SENSORS_AS99127F_IN5, "in5", NOMAP, NOMAP, R, W83781D_SYSCTL_IN5, VALUE(3), 2 }, - { SENSORS_W83782D_IN6, "in6", NOMAP, NOMAP, + { SENSORS_AS99127F_IN6, "in6", NOMAP, NOMAP, R, W83781D_SYSCTL_IN6, VALUE(3), 2 }, - { SENSORS_W83782D_IN0_MIN, "in0_min", SENSORS_W83782D_IN0, - SENSORS_W83782D_IN0, RW, + { SENSORS_AS99127F_IN0_MIN, "in0_min", SENSORS_AS99127F_IN0, + SENSORS_AS99127F_IN0, RW, W83781D_SYSCTL_IN0, VALUE(1), 2 }, - { SENSORS_W83782D_IN1_MIN, "in1_min", SENSORS_W83782D_IN1, - SENSORS_W83782D_IN1, RW, + { SENSORS_AS99127F_IN1_MIN, "in1_min", SENSORS_AS99127F_IN1, + SENSORS_AS99127F_IN1, RW, W83781D_SYSCTL_IN1, VALUE(1), 2 }, - { SENSORS_W83782D_IN2_MIN, "in2_min", SENSORS_W83782D_IN2, - SENSORS_W83782D_IN2, RW, + { SENSORS_AS99127F_IN2_MIN, "in2_min", SENSORS_AS99127F_IN2, + SENSORS_AS99127F_IN2, RW, W83781D_SYSCTL_IN2, VALUE(1), 2 }, - { SENSORS_W83782D_IN3_MIN, "in3_min", SENSORS_W83782D_IN3, - SENSORS_W83782D_IN3, RW, + { SENSORS_AS99127F_IN3_MIN, "in3_min", SENSORS_AS99127F_IN3, + SENSORS_AS99127F_IN3, RW, W83781D_SYSCTL_IN3, VALUE(1), 2 }, - { SENSORS_W83782D_IN4_MIN, "in4_min", SENSORS_W83782D_IN4, - SENSORS_W83782D_IN4, RW, + { SENSORS_AS99127F_IN4_MIN, "in4_min", SENSORS_AS99127F_IN4, + SENSORS_AS99127F_IN4, RW, W83781D_SYSCTL_IN4, VALUE(1), 2 }, /* swap 5 and 6 min/max because compute lines will be inverting */ - { SENSORS_W83782D_IN5_MIN, "in5_min", SENSORS_W83782D_IN5, - SENSORS_W83782D_IN5, RW, + { SENSORS_AS99127F_IN5_MIN, "in5_min", SENSORS_AS99127F_IN5, + SENSORS_AS99127F_IN5, RW, W83781D_SYSCTL_IN5, VALUE(2), 2, "in5_max", 3 }, - { SENSORS_W83782D_IN6_MIN, "in6_min", SENSORS_W83782D_IN6, - SENSORS_W83782D_IN6, RW, + { SENSORS_AS99127F_IN6_MIN, "in6_min", SENSORS_AS99127F_IN6, + SENSORS_AS99127F_IN6, RW, W83781D_SYSCTL_IN6, VALUE(2), 2, "in6_max", 3 }, - { SENSORS_W83782D_IN0_MAX, "in0_max", SENSORS_W83782D_IN0, - SENSORS_W83782D_IN0, RW, + { SENSORS_AS99127F_IN0_MAX, "in0_max", SENSORS_AS99127F_IN0, + SENSORS_AS99127F_IN0, RW, W83781D_SYSCTL_IN0, VALUE(2), 2 }, - { SENSORS_W83782D_IN1_MAX, "in1_max", SENSORS_W83782D_IN1, - SENSORS_W83782D_IN1, RW, + { SENSORS_AS99127F_IN1_MAX, "in1_max", SENSORS_AS99127F_IN1, + SENSORS_AS99127F_IN1, RW, W83781D_SYSCTL_IN1, VALUE(2), 2 }, - { SENSORS_W83782D_IN2_MAX, "in2_max", SENSORS_W83782D_IN2, - SENSORS_W83782D_IN2, RW, + { SENSORS_AS99127F_IN2_MAX, "in2_max", SENSORS_AS99127F_IN2, + SENSORS_AS99127F_IN2, RW, W83781D_SYSCTL_IN2, VALUE(2), 2 }, - { SENSORS_W83782D_IN3_MAX, "in3_max", SENSORS_W83782D_IN3, - SENSORS_W83782D_IN3, RW, + { SENSORS_AS99127F_IN3_MAX, "in3_max", SENSORS_AS99127F_IN3, + SENSORS_AS99127F_IN3, RW, W83781D_SYSCTL_IN3, VALUE(2), 2 }, - { SENSORS_W83782D_IN4_MAX, "in4_max", SENSORS_W83782D_IN4, - SENSORS_W83782D_IN4, RW, + { SENSORS_AS99127F_IN4_MAX, "in4_max", SENSORS_AS99127F_IN4, + SENSORS_AS99127F_IN4, RW, W83781D_SYSCTL_IN4, VALUE(2), 2 }, - { SENSORS_W83782D_IN5_MAX, "in5_max", SENSORS_W83782D_IN5, - SENSORS_W83782D_IN5, RW, + { SENSORS_AS99127F_IN5_MAX, "in5_max", SENSORS_AS99127F_IN5, + SENSORS_AS99127F_IN5, RW, W83781D_SYSCTL_IN5, VALUE(1), 2, "in5_min", 3 }, - { SENSORS_W83782D_IN6_MAX, "in6_max", SENSORS_W83782D_IN6, - SENSORS_W83782D_IN6, RW, + { SENSORS_AS99127F_IN6_MAX, "in6_max", SENSORS_AS99127F_IN6, + SENSORS_AS99127F_IN6, RW, W83781D_SYSCTL_IN6, VALUE(1), 2, "in6_min", 3 }, - { SENSORS_W83782D_FAN1, "fan1", NOMAP, NOMAP, + { SENSORS_AS99127F_FAN1, "fan1", NOMAP, NOMAP, R, W83781D_SYSCTL_FAN1, VALUE(2), 0 }, - { SENSORS_W83782D_FAN2, "fan2", NOMAP, NOMAP, + { SENSORS_AS99127F_FAN2, "fan2", NOMAP, NOMAP, R, W83781D_SYSCTL_FAN2, VALUE(2), 0 }, { SENSORS_W83781D_FAN3, "fan3", NOMAP, NOMAP, R, W83781D_SYSCTL_FAN3, VALUE(2), 0 }, - { SENSORS_W83782D_FAN1_MIN, "fan1_min", SENSORS_W83782D_FAN1, - SENSORS_W83782D_FAN1, RW, + { SENSORS_AS99127F_FAN1_MIN, "fan1_min", SENSORS_AS99127F_FAN1, + SENSORS_AS99127F_FAN1, RW, W83781D_SYSCTL_FAN1, VALUE(1), 0 }, - { SENSORS_W83782D_FAN2_MIN, "fan2_min", SENSORS_W83782D_FAN2, - SENSORS_W83782D_FAN2, RW, + { SENSORS_AS99127F_FAN2_MIN, "fan2_min", SENSORS_AS99127F_FAN2, + SENSORS_AS99127F_FAN2, RW, W83781D_SYSCTL_FAN2, VALUE(1), 0 }, { SENSORS_W83781D_FAN3_MIN, "fan3_min", SENSORS_W83781D_FAN3, - SENSORS_W83782D_FAN3, RW, + SENSORS_AS99127F_FAN3, RW, W83781D_SYSCTL_FAN3, VALUE(1), 0 }, - { SENSORS_W83782D_TEMP1, "temp1", NOMAP, NOMAP, + { SENSORS_AS99127F_TEMP1, "temp1", NOMAP, NOMAP, R, W83781D_SYSCTL_TEMP1, VALUE(3), 1 }, - { SENSORS_W83782D_TEMP1_HYST, "temp1_hyst", SENSORS_W83782D_TEMP1, - SENSORS_W83782D_TEMP1, RW, + { SENSORS_AS99127F_TEMP1_HYST, "temp1_hyst", SENSORS_AS99127F_TEMP1, + SENSORS_AS99127F_TEMP1, RW, W83781D_SYSCTL_TEMP1, VALUE(2), 1 }, - { SENSORS_W83782D_TEMP1_OVER, "temp1_over", SENSORS_W83782D_TEMP1, - SENSORS_W83782D_TEMP1, RW, + { SENSORS_AS99127F_TEMP1_OVER, "temp1_over", SENSORS_AS99127F_TEMP1, + SENSORS_AS99127F_TEMP1, RW, W83781D_SYSCTL_TEMP1, VALUE(1), 1 }, - { SENSORS_W83782D_TEMP2, "temp2", NOMAP, NOMAP, + { SENSORS_AS99127F_TEMP2, "temp2", NOMAP, NOMAP, R, W83781D_SYSCTL_TEMP2, VALUE(3), 1 }, - { SENSORS_W83782D_TEMP2_HYST, "temp2_hyst", SENSORS_W83782D_TEMP2, - SENSORS_W83782D_TEMP2, RW, + { SENSORS_AS99127F_TEMP2_HYST, "temp2_hyst", SENSORS_AS99127F_TEMP2, + SENSORS_AS99127F_TEMP2, RW, W83781D_SYSCTL_TEMP2, VALUE(2), 1 }, - { SENSORS_W83782D_TEMP2_OVER, "temp2_over", SENSORS_W83782D_TEMP2, - SENSORS_W83782D_TEMP2, RW, + { SENSORS_AS99127F_TEMP2_OVER, "temp2_over", SENSORS_AS99127F_TEMP2, + SENSORS_AS99127F_TEMP2, RW, W83781D_SYSCTL_TEMP2, VALUE(1), 1 }, - { SENSORS_W83782D_TEMP3, "temp3", NOMAP, NOMAP, + { SENSORS_AS99127F_TEMP3, "temp3", NOMAP, NOMAP, R, W83781D_SYSCTL_TEMP3, VALUE(3), 1 }, - { SENSORS_W83782D_TEMP3_HYST, "temp3_hyst", SENSORS_W83782D_TEMP3, - SENSORS_W83782D_TEMP3, RW, + { SENSORS_AS99127F_TEMP3_HYST, "temp3_hyst", SENSORS_AS99127F_TEMP3, + SENSORS_AS99127F_TEMP3, RW, W83781D_SYSCTL_TEMP3, VALUE(2), 1 }, - { SENSORS_W83782D_TEMP3_OVER, "temp3_over", SENSORS_W83782D_TEMP3, - SENSORS_W83782D_TEMP3, RW, + { SENSORS_AS99127F_TEMP3_OVER, "temp3_over", SENSORS_AS99127F_TEMP3, + SENSORS_AS99127F_TEMP3, RW, W83781D_SYSCTL_TEMP3, VALUE(1), 1 }, - { SENSORS_W83782D_VID, "vid", NOMAP, NOMAP, + { SENSORS_AS99127F_VID, "vid", NOMAP, NOMAP, R, W83781D_SYSCTL_VID, VALUE(1), 3 }, - { SENSORS_W83782D_VRM, "vrm", NOMAP, NOMAP, + { SENSORS_AS99127F_VRM, "vrm", NOMAP, NOMAP, RW, W83781D_SYSCTL_VRM, VALUE(1), 1 }, - { SENSORS_W83782D_FAN1_DIV, "fan1_div", SENSORS_W83782D_FAN1, + { SENSORS_AS99127F_FAN1_DIV, "fan1_div", SENSORS_AS99127F_FAN1, NOMAP, RW, W83781D_SYSCTL_FAN_DIV, VALUE(1), 0 }, - { SENSORS_W83782D_FAN2_DIV, "fan2_div", SENSORS_W83782D_FAN2, + { SENSORS_AS99127F_FAN2_DIV, "fan2_div", SENSORS_AS99127F_FAN2, NOMAP, RW, W83781D_SYSCTL_FAN_DIV, VALUE(2), 0 }, - { SENSORS_W83782D_FAN3_DIV, "fan3_div", SENSORS_W83781D_FAN3, + { SENSORS_AS99127F_FAN3_DIV, "fan3_div", SENSORS_W83781D_FAN3, NOMAP, RW, W83781D_SYSCTL_FAN_DIV, VALUE(3), 0 }, - { SENSORS_W83782D_ALARMS, "alarms", NOMAP, NOMAP, + { SENSORS_AS99127F_ALARMS, "alarms", NOMAP, NOMAP, R, W83781D_SYSCTL_ALARMS, VALUE(1), 0 }, - { SENSORS_W83782D_BEEP_ENABLE, "beep_enable", SENSORS_W83782D_ALARMS, + { SENSORS_AS99127F_BEEP_ENABLE, "beep_enable", SENSORS_AS99127F_ALARMS, NOMAP, RW, W83781D_SYSCTL_BEEP, VALUE(1), 0 }, - { SENSORS_W83782D_BEEPS, "beeps", SENSORS_W83782D_ALARMS, - SENSORS_W83782D_ALARMS, RW, + { SENSORS_AS99127F_BEEPS, "beeps", SENSORS_AS99127F_ALARMS, + SENSORS_AS99127F_ALARMS, RW, W83781D_SYSCTL_BEEP, VALUE(2), 0 }, { 0 } }; @@ -1274,6 +1274,590 @@ static sensors_chip_feature asb100_featu { 0 } }; +static sensors_chip_feature w83627hf_features[] = + { + { SENSORS_W83627HF_IN0, "in0", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN0, VALUE(3), 2 }, + { SENSORS_W83627HF_IN1, "in1", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN1, VALUE(3), 2 }, + { SENSORS_W83627HF_IN2, "in2", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN2, VALUE(3), 2 }, + { SENSORS_W83627HF_IN3, "in3", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN3, VALUE(3), 2 }, + { SENSORS_W83627HF_IN4, "in4", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN4, VALUE(3), 2 }, + { SENSORS_W83627HF_IN5, "in5", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN5, VALUE(3), 2 }, + { SENSORS_W83627HF_IN6, "in6", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN6, VALUE(3), 2 }, + { SENSORS_W83627HF_IN7, "in7", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN7, VALUE(3), 2 }, + { SENSORS_W83627HF_IN8, "in8", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN8, VALUE(3), 2 }, + { SENSORS_W83627HF_IN0_MIN, "in0_min", SENSORS_W83627HF_IN0, + SENSORS_W83627HF_IN0, RW, + W83781D_SYSCTL_IN0, VALUE(1), 2 }, + { SENSORS_W83627HF_IN1_MIN, "in1_min", SENSORS_W83627HF_IN1, + SENSORS_W83627HF_IN1, RW, + W83781D_SYSCTL_IN1, VALUE(1), 2 }, + { SENSORS_W83627HF_IN2_MIN, "in2_min", SENSORS_W83627HF_IN2, + SENSORS_W83627HF_IN2, RW, + W83781D_SYSCTL_IN2, VALUE(1), 2 }, + { SENSORS_W83627HF_IN3_MIN, "in3_min", SENSORS_W83627HF_IN3, + SENSORS_W83627HF_IN3, RW, + W83781D_SYSCTL_IN3, VALUE(1), 2 }, + { SENSORS_W83627HF_IN4_MIN, "in4_min", SENSORS_W83627HF_IN4, + SENSORS_W83627HF_IN4, RW, + W83781D_SYSCTL_IN4, VALUE(1), 2 }, + { SENSORS_W83627HF_IN5_MIN, "in5_min", SENSORS_W83627HF_IN5, + SENSORS_W83627HF_IN5, RW, + W83781D_SYSCTL_IN5, VALUE(1), 2 }, + { SENSORS_W83627HF_IN6_MIN, "in6_min", SENSORS_W83627HF_IN6, + SENSORS_W83627HF_IN6, RW, + W83781D_SYSCTL_IN6, VALUE(1), 2 }, + { SENSORS_W83627HF_IN7_MIN, "in7_min", SENSORS_W83627HF_IN7, + SENSORS_W83627HF_IN7, RW, + W83781D_SYSCTL_IN7, VALUE(1), 2 }, + { SENSORS_W83627HF_IN8_MIN, "in8_min", SENSORS_W83627HF_IN8, + SENSORS_W83627HF_IN8, RW, + W83781D_SYSCTL_IN8, VALUE(1), 2 }, + { SENSORS_W83627HF_IN0_MAX, "in0_max", SENSORS_W83627HF_IN0, + SENSORS_W83627HF_IN0, RW, + W83781D_SYSCTL_IN0, VALUE(2), 2 }, + { SENSORS_W83627HF_IN1_MAX, "in1_max", SENSORS_W83627HF_IN1, + SENSORS_W83627HF_IN1, RW, + W83781D_SYSCTL_IN1, VALUE(2), 2 }, + { SENSORS_W83627HF_IN2_MAX, "in2_max", SENSORS_W83627HF_IN2, + SENSORS_W83627HF_IN2, RW, + W83781D_SYSCTL_IN2, VALUE(2), 2 }, + { SENSORS_W83627HF_IN3_MAX, "in3_max", SENSORS_W83627HF_IN3, + SENSORS_W83627HF_IN3, RW, + W83781D_SYSCTL_IN3, VALUE(2), 2 }, + { SENSORS_W83627HF_IN4_MAX, "in4_max", SENSORS_W83627HF_IN4, + SENSORS_W83627HF_IN4, RW, + W83781D_SYSCTL_IN4, VALUE(2), 2 }, + { SENSORS_W83627HF_IN5_MAX, "in5_max", SENSORS_W83627HF_IN5, + SENSORS_W83627HF_IN5, RW, + W83781D_SYSCTL_IN5, VALUE(2), 2 }, + { SENSORS_W83627HF_IN6_MAX, "in6_max", SENSORS_W83627HF_IN6, + SENSORS_W83627HF_IN6, RW, + W83781D_SYSCTL_IN6, VALUE(2), 2 }, + { SENSORS_W83627HF_IN7_MAX, "in7_max", SENSORS_W83627HF_IN7, + SENSORS_W83627HF_IN7, RW, + W83781D_SYSCTL_IN7, VALUE(2), 2 }, + { SENSORS_W83627HF_IN8_MAX, "in8_max", SENSORS_W83627HF_IN8, + SENSORS_W83627HF_IN8, RW, + W83781D_SYSCTL_IN8, VALUE(2), 2 }, + { SENSORS_W83627HF_FAN1, "fan1", NOMAP, NOMAP, + R, W83781D_SYSCTL_FAN1, VALUE(2), 0 }, + { SENSORS_W83627HF_FAN2, "fan2", NOMAP, NOMAP, + R, W83781D_SYSCTL_FAN2, VALUE(2), 0 }, + { SENSORS_W83627HF_FAN3, "fan3", NOMAP, NOMAP, + R, W83781D_SYSCTL_FAN3, VALUE(2), 0 }, + { SENSORS_W83627HF_FAN1_MIN, "fan1_min", SENSORS_W83627HF_FAN1, + SENSORS_W83627HF_FAN1, RW, + W83781D_SYSCTL_FAN1, VALUE(1), 0 }, + { SENSORS_W83627HF_FAN2_MIN, "fan2_min", SENSORS_W83627HF_FAN2, + SENSORS_W83627HF_FAN2, RW, + W83781D_SYSCTL_FAN2, VALUE(1), 0 }, + { SENSORS_W83627HF_FAN3_MIN, "fan3_min", SENSORS_W83627HF_FAN3, + SENSORS_W83627HF_FAN3, RW, + W83781D_SYSCTL_FAN3, VALUE(1), 0 }, + { SENSORS_W83627HF_TEMP1, "temp1", NOMAP, NOMAP, + R, W83781D_SYSCTL_TEMP1, VALUE(3), 1 }, + { SENSORS_W83627HF_TEMP1_HYST, "temp1_hyst", SENSORS_W83627HF_TEMP1, + SENSORS_W83627HF_TEMP1, RW, + W83781D_SYSCTL_TEMP1, VALUE(2), 1 }, + { SENSORS_W83627HF_TEMP1_OVER, "temp1_over", SENSORS_W83627HF_TEMP1, + SENSORS_W83627HF_TEMP1, RW, + W83781D_SYSCTL_TEMP1, VALUE(1), 1 }, + { SENSORS_W83627HF_TEMP2, "temp2", NOMAP, NOMAP, + R, W83781D_SYSCTL_TEMP2, VALUE(3), 1 }, + { SENSORS_W83627HF_TEMP2_HYST, "temp2_hyst", SENSORS_W83627HF_TEMP2, + SENSORS_W83627HF_TEMP2, RW, + W83781D_SYSCTL_TEMP2, VALUE(2), 1 }, + { SENSORS_W83627HF_TEMP2_OVER, "temp2_over", SENSORS_W83627HF_TEMP2, + SENSORS_W83627HF_TEMP2, RW, + W83781D_SYSCTL_TEMP2, VALUE(1), 1 }, + { SENSORS_W83627HF_TEMP3, "temp3", NOMAP, NOMAP, + R, W83781D_SYSCTL_TEMP3, VALUE(3), 1 }, + { SENSORS_W83627HF_TEMP3_HYST, "temp3_hyst", SENSORS_W83627HF_TEMP3, + SENSORS_W83627HF_TEMP3, RW, + W83781D_SYSCTL_TEMP3, VALUE(2), 1 }, + { SENSORS_W83627HF_TEMP3_OVER, "temp3_over", SENSORS_W83627HF_TEMP3, + SENSORS_W83627HF_TEMP3, RW, + W83781D_SYSCTL_TEMP3, VALUE(1), 1 }, + { SENSORS_W83627HF_VID, "vid", NOMAP, NOMAP, + R, W83781D_SYSCTL_VID, VALUE(1), 3 }, + { SENSORS_W83627HF_VRM, "vrm", NOMAP, NOMAP, + RW, W83781D_SYSCTL_VRM, VALUE(1), 1 }, + { SENSORS_W83627HF_FAN1_DIV, "fan1_div", SENSORS_W83627HF_FAN1, + NOMAP, RW, + W83781D_SYSCTL_FAN_DIV, VALUE(1), 0 }, + { SENSORS_W83627HF_FAN2_DIV, "fan2_div", SENSORS_W83627HF_FAN2, + NOMAP, RW, + W83781D_SYSCTL_FAN_DIV, VALUE(2), 0 }, + { SENSORS_W83627HF_FAN3_DIV, "fan3_div", SENSORS_W83627HF_FAN3, + NOMAP, RW, + W83781D_SYSCTL_FAN_DIV, VALUE(3), 0 }, + { SENSORS_W83627HF_PWM1, "pwm1", SENSORS_W83627HF_FAN1, NOMAP, + RW, W83781D_SYSCTL_PWM1, VALUE(1), 0 }, + { SENSORS_W83627HF_PWM2, "pwm2", SENSORS_W83627HF_FAN2, NOMAP, + RW, W83781D_SYSCTL_PWM2, VALUE(1), 0 }, + { SENSORS_W83627HF_PWMCLK1, "pwm1_clk", SENSORS_W83627HF_FAN1, NOMAP, + RW, W83781D_SYSCTL_PWMCLK1, VALUE(1), 0 }, + { SENSORS_W83627HF_PWMCLK2, "pwm2_clk", SENSORS_W83627HF_FAN2, NOMAP, + RW, W83781D_SYSCTL_PWMCLK2, VALUE(1), 0 }, + { SENSORS_W83627HF_ALARMS, "alarms", NOMAP, NOMAP, + R, W83781D_SYSCTL_ALARMS, VALUE(1), 0 }, + { SENSORS_W83627HF_BEEP_ENABLE, "beep_enable", SENSORS_W83627HF_ALARMS, + NOMAP, RW, + W83781D_SYSCTL_BEEP, VALUE(1), 0 }, + { SENSORS_W83627HF_BEEPS, "beeps", SENSORS_W83627HF_ALARMS, + SENSORS_W83627HF_ALARMS, RW, + W83781D_SYSCTL_BEEP, VALUE(2), 0 }, + { SENSORS_W83627HF_SENS1, "sensor1", NOMAP, NOMAP, + RW, W83781D_SYSCTL_SENS1, VALUE(1), 0 }, + { SENSORS_W83627HF_SENS2, "sensor2", NOMAP, NOMAP, + RW, W83781D_SYSCTL_SENS2, VALUE(1), 0 }, + { SENSORS_W83627HF_SENS3, "sensor3", NOMAP, NOMAP, + RW, W83781D_SYSCTL_SENS3, VALUE(1), 0 }, + { 0 } + }; + +static sensors_chip_feature w83627thf_features[] = + { + { SENSORS_W83627THF_IN0, "in0", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN0, VALUE(3), 2 }, + { SENSORS_W83627THF_IN1, "in1", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN1, VALUE(3), 2 }, + { SENSORS_W83627THF_IN2, "in2", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN2, VALUE(3), 2 }, + { SENSORS_W83627THF_IN3, "in3", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN3, VALUE(3), 2 }, + { SENSORS_W83627THF_IN4, "in4", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN4, VALUE(3), 2 }, + { SENSORS_W83627THF_IN5, "in5", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN5, VALUE(3), 2 }, + { SENSORS_W83627THF_IN6, "in6", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN6, VALUE(3), 2 }, + { SENSORS_W83627THF_IN7, "in7", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN7, VALUE(3), 2 }, + { SENSORS_W83627THF_IN8, "in8", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN8, VALUE(3), 2 }, + { SENSORS_W83627THF_IN0_MIN, "in0_min", SENSORS_W83627THF_IN0, + SENSORS_W83627THF_IN0, RW, + W83781D_SYSCTL_IN0, VALUE(1), 2 }, + { SENSORS_W83627THF_IN1_MIN, "in1_min", SENSORS_W83627THF_IN1, + SENSORS_W83627THF_IN1, RW, + W83781D_SYSCTL_IN1, VALUE(1), 2 }, + { SENSORS_W83627THF_IN2_MIN, "in2_min", SENSORS_W83627THF_IN2, + SENSORS_W83627THF_IN2, RW, + W83781D_SYSCTL_IN2, VALUE(1), 2 }, + { SENSORS_W83627THF_IN3_MIN, "in3_min", SENSORS_W83627THF_IN3, + SENSORS_W83627THF_IN3, RW, + W83781D_SYSCTL_IN3, VALUE(1), 2 }, + { SENSORS_W83627THF_IN4_MIN, "in4_min", SENSORS_W83627THF_IN4, + SENSORS_W83627THF_IN4, RW, + W83781D_SYSCTL_IN4, VALUE(1), 2 }, + { SENSORS_W83627THF_IN5_MIN, "in5_min", SENSORS_W83627THF_IN5, + SENSORS_W83627THF_IN5, RW, + W83781D_SYSCTL_IN5, VALUE(1), 2 }, + { SENSORS_W83627THF_IN6_MIN, "in6_min", SENSORS_W83627THF_IN6, + SENSORS_W83627THF_IN6, RW, + W83781D_SYSCTL_IN6, VALUE(1), 2 }, + { SENSORS_W83627THF_IN7_MIN, "in7_min", SENSORS_W83627THF_IN7, + SENSORS_W83627THF_IN7, RW, + W83781D_SYSCTL_IN7, VALUE(1), 2 }, + { SENSORS_W83627THF_IN8_MIN, "in8_min", SENSORS_W83627THF_IN8, + SENSORS_W83627THF_IN8, RW, + W83781D_SYSCTL_IN8, VALUE(1), 2 }, + { SENSORS_W83627THF_IN0_MAX, "in0_max", SENSORS_W83627THF_IN0, + SENSORS_W83627THF_IN0, RW, + W83781D_SYSCTL_IN0, VALUE(2), 2 }, + { SENSORS_W83627THF_IN1_MAX, "in1_max", SENSORS_W83627THF_IN1, + SENSORS_W83627THF_IN1, RW, + W83781D_SYSCTL_IN1, VALUE(2), 2 }, + { SENSORS_W83627THF_IN2_MAX, "in2_max", SENSORS_W83627THF_IN2, + SENSORS_W83627THF_IN2, RW, + W83781D_SYSCTL_IN2, VALUE(2), 2 }, + { SENSORS_W83627THF_IN3_MAX, "in3_max", SENSORS_W83627THF_IN3, + SENSORS_W83627THF_IN3, RW, + W83781D_SYSCTL_IN3, VALUE(2), 2 }, + { SENSORS_W83627THF_IN4_MAX, "in4_max", SENSORS_W83627THF_IN4, + SENSORS_W83627THF_IN4, RW, + W83781D_SYSCTL_IN4, VALUE(2), 2 }, + { SENSORS_W83627THF_IN5_MAX, "in5_max", SENSORS_W83627THF_IN5, + SENSORS_W83627THF_IN5, RW, + W83781D_SYSCTL_IN5, VALUE(2), 2 }, + { SENSORS_W83627THF_IN6_MAX, "in6_max", SENSORS_W83627THF_IN6, + SENSORS_W83627THF_IN6, RW, + W83781D_SYSCTL_IN6, VALUE(2), 2 }, + { SENSORS_W83627THF_IN7_MAX, "in7_max", SENSORS_W83627THF_IN7, + SENSORS_W83627THF_IN7, RW, + W83781D_SYSCTL_IN7, VALUE(2), 2 }, + { SENSORS_W83627THF_IN8_MAX, "in8_max", SENSORS_W83627THF_IN8, + SENSORS_W83627THF_IN8, RW, + W83781D_SYSCTL_IN8, VALUE(2), 2 }, + { SENSORS_W83627THF_FAN1, "fan1", NOMAP, NOMAP, + R, W83781D_SYSCTL_FAN1, VALUE(2), 0 }, + { SENSORS_W83627THF_FAN2, "fan2", NOMAP, NOMAP, + R, W83781D_SYSCTL_FAN2, VALUE(2), 0 }, + { SENSORS_W83627THF_FAN3, "fan3", NOMAP, NOMAP, + R, W83781D_SYSCTL_FAN3, VALUE(2), 0 }, + { SENSORS_W83627THF_FAN1_MIN, "fan1_min", SENSORS_W83627THF_FAN1, + SENSORS_W83627THF_FAN1, RW, + W83781D_SYSCTL_FAN1, VALUE(1), 0 }, + { SENSORS_W83627THF_FAN2_MIN, "fan2_min", SENSORS_W83627THF_FAN2, + SENSORS_W83627THF_FAN2, RW, + W83781D_SYSCTL_FAN2, VALUE(1), 0 }, + { SENSORS_W83627THF_FAN3_MIN, "fan3_min", SENSORS_W83627THF_FAN3, + SENSORS_W83627THF_FAN3, RW, + W83781D_SYSCTL_FAN3, VALUE(1), 0 }, + { SENSORS_W83627THF_TEMP1, "temp1", NOMAP, NOMAP, + R, W83781D_SYSCTL_TEMP1, VALUE(3), 1 }, + { SENSORS_W83627THF_TEMP1_HYST, "temp1_hyst", SENSORS_W83627THF_TEMP1, + SENSORS_W83627THF_TEMP1, RW, + W83781D_SYSCTL_TEMP1, VALUE(2), 1 }, + { SENSORS_W83627THF_TEMP1_OVER, "temp1_over", SENSORS_W83627THF_TEMP1, + SENSORS_W83627THF_TEMP1, RW, + W83781D_SYSCTL_TEMP1, VALUE(1), 1 }, + { SENSORS_W83627THF_TEMP2, "temp2", NOMAP, NOMAP, + R, W83781D_SYSCTL_TEMP2, VALUE(3), 1 }, + { SENSORS_W83627THF_TEMP2_HYST, "temp2_hyst", SENSORS_W83627THF_TEMP2, + SENSORS_W83627THF_TEMP2, RW, + W83781D_SYSCTL_TEMP2, VALUE(2), 1 }, + { SENSORS_W83627THF_TEMP2_OVER, "temp2_over", SENSORS_W83627THF_TEMP2, + SENSORS_W83627THF_TEMP2, RW, + W83781D_SYSCTL_TEMP2, VALUE(1), 1 }, + { SENSORS_W83627THF_TEMP3, "temp3", NOMAP, NOMAP, + R, W83781D_SYSCTL_TEMP3, VALUE(3), 1 }, + { SENSORS_W83627THF_TEMP3_HYST, "temp3_hyst", SENSORS_W83627THF_TEMP3, + SENSORS_W83627THF_TEMP3, RW, + W83781D_SYSCTL_TEMP3, VALUE(2), 1 }, + { SENSORS_W83627THF_TEMP3_OVER, "temp3_over", SENSORS_W83627THF_TEMP3, + SENSORS_W83627THF_TEMP3, RW, + W83781D_SYSCTL_TEMP3, VALUE(1), 1 }, + { SENSORS_W83627THF_VID, "vid", NOMAP, NOMAP, + R, W83781D_SYSCTL_VID, VALUE(1), 3 }, + { SENSORS_W83627THF_VRM, "vrm", NOMAP, NOMAP, + RW, W83781D_SYSCTL_VRM, VALUE(1), 1 }, + { SENSORS_W83627THF_FAN1_DIV, "fan1_div", SENSORS_W83627THF_FAN1, + NOMAP, RW, + W83781D_SYSCTL_FAN_DIV, VALUE(1), 0 }, + { SENSORS_W83627THF_FAN2_DIV, "fan2_div", SENSORS_W83627THF_FAN2, + NOMAP, RW, + W83781D_SYSCTL_FAN_DIV, VALUE(2), 0 }, + { SENSORS_W83627THF_FAN3_DIV, "fan3_div", SENSORS_W83627THF_FAN3, + NOMAP, RW, + W83781D_SYSCTL_FAN_DIV, VALUE(3), 0 }, + { SENSORS_W83627THF_PWM1, "pwm1", SENSORS_W83627THF_FAN1, NOMAP, + RW, W83781D_SYSCTL_PWM1, VALUE(1), 0 }, + { SENSORS_W83627THF_PWM2, "pwm2", SENSORS_W83627THF_FAN2, NOMAP, + RW, W83781D_SYSCTL_PWM2, VALUE(1), 0 }, + { SENSORS_W83627THF_PWM3, "pwm3", SENSORS_W83627THF_FAN3, NOMAP, + RW, W83781D_SYSCTL_PWM3, VALUE(1), 0 }, + { SENSORS_W83627THF_ALARMS, "alarms", NOMAP, NOMAP, + R, W83781D_SYSCTL_ALARMS, VALUE(1), 0 }, + { SENSORS_W83627THF_BEEP_ENABLE, "beep_enable", SENSORS_W83627THF_ALARMS, + NOMAP, RW, + W83781D_SYSCTL_BEEP, VALUE(1), 0 }, + { SENSORS_W83627THF_BEEPS, "beeps", SENSORS_W83627THF_ALARMS, + SENSORS_W83627THF_ALARMS, RW, + W83781D_SYSCTL_BEEP, VALUE(2), 0 }, + { SENSORS_W83627THF_SENS1, "sensor1", NOMAP, NOMAP, + RW, W83781D_SYSCTL_SENS1, VALUE(1), 0 }, + { SENSORS_W83627THF_SENS2, "sensor2", NOMAP, NOMAP, + RW, W83781D_SYSCTL_SENS2, VALUE(1), 0 }, + { SENSORS_W83627THF_SENS3, "sensor3", NOMAP, NOMAP, + RW, W83781D_SYSCTL_SENS3, VALUE(1), 0 }, + { 0 } + }; + +static sensors_chip_feature w83637hf_features[] = + { + { SENSORS_W83637HF_IN0, "in0", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN0, VALUE(3), 2 }, + { SENSORS_W83637HF_IN1, "in1", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN1, VALUE(3), 2 }, + { SENSORS_W83637HF_IN2, "in2", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN2, VALUE(3), 2 }, + { SENSORS_W83637HF_IN3, "in3", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN3, VALUE(3), 2 }, + { SENSORS_W83637HF_IN4, "in4", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN4, VALUE(3), 2 }, + { SENSORS_W83637HF_IN5, "in5", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN5, VALUE(3), 2 }, + { SENSORS_W83637HF_IN6, "in6", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN6, VALUE(3), 2 }, + { SENSORS_W83637HF_IN7, "in7", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN7, VALUE(3), 2 }, + { SENSORS_W83637HF_IN8, "in8", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN8, VALUE(3), 2 }, + { SENSORS_W83637HF_IN0_MIN, "in0_min", SENSORS_W83637HF_IN0, + SENSORS_W83637HF_IN0, RW, + W83781D_SYSCTL_IN0, VALUE(1), 2 }, + { SENSORS_W83637HF_IN1_MIN, "in1_min", SENSORS_W83637HF_IN1, + SENSORS_W83637HF_IN1, RW, + W83781D_SYSCTL_IN1, VALUE(1), 2 }, + { SENSORS_W83637HF_IN2_MIN, "in2_min", SENSORS_W83637HF_IN2, + SENSORS_W83637HF_IN2, RW, + W83781D_SYSCTL_IN2, VALUE(1), 2 }, + { SENSORS_W83637HF_IN3_MIN, "in3_min", SENSORS_W83637HF_IN3, + SENSORS_W83637HF_IN3, RW, + W83781D_SYSCTL_IN3, VALUE(1), 2 }, + { SENSORS_W83637HF_IN4_MIN, "in4_min", SENSORS_W83637HF_IN4, + SENSORS_W83637HF_IN4, RW, + W83781D_SYSCTL_IN4, VALUE(1), 2 }, + { SENSORS_W83637HF_IN5_MIN, "in5_min", SENSORS_W83637HF_IN5, + SENSORS_W83637HF_IN5, RW, + W83781D_SYSCTL_IN5, VALUE(1), 2 }, + { SENSORS_W83637HF_IN6_MIN, "in6_min", SENSORS_W83637HF_IN6, + SENSORS_W83637HF_IN6, RW, + W83781D_SYSCTL_IN6, VALUE(1), 2 }, + { SENSORS_W83637HF_IN7_MIN, "in7_min", SENSORS_W83637HF_IN7, + SENSORS_W83637HF_IN7, RW, + W83781D_SYSCTL_IN7, VALUE(1), 2 }, + { SENSORS_W83637HF_IN8_MIN, "in8_min", SENSORS_W83637HF_IN8, + SENSORS_W83637HF_IN8, RW, + W83781D_SYSCTL_IN8, VALUE(1), 2 }, + { SENSORS_W83637HF_IN0_MAX, "in0_max", SENSORS_W83637HF_IN0, + SENSORS_W83637HF_IN0, RW, + W83781D_SYSCTL_IN0, VALUE(2), 2 }, + { SENSORS_W83637HF_IN1_MAX, "in1_max", SENSORS_W83637HF_IN1, + SENSORS_W83637HF_IN1, RW, + W83781D_SYSCTL_IN1, VALUE(2), 2 }, + { SENSORS_W83637HF_IN2_MAX, "in2_max", SENSORS_W83637HF_IN2, + SENSORS_W83637HF_IN2, RW, + W83781D_SYSCTL_IN2, VALUE(2), 2 }, + { SENSORS_W83637HF_IN3_MAX, "in3_max", SENSORS_W83637HF_IN3, + SENSORS_W83637HF_IN3, RW, + W83781D_SYSCTL_IN3, VALUE(2), 2 }, + { SENSORS_W83637HF_IN4_MAX, "in4_max", SENSORS_W83637HF_IN4, + SENSORS_W83637HF_IN4, RW, + W83781D_SYSCTL_IN4, VALUE(2), 2 }, + { SENSORS_W83637HF_IN5_MAX, "in5_max", SENSORS_W83637HF_IN5, + SENSORS_W83637HF_IN5, RW, + W83781D_SYSCTL_IN5, VALUE(2), 2 }, + { SENSORS_W83637HF_IN6_MAX, "in6_max", SENSORS_W83637HF_IN6, + SENSORS_W83637HF_IN6, RW, + W83781D_SYSCTL_IN6, VALUE(2), 2 }, + { SENSORS_W83637HF_IN7_MAX, "in7_max", SENSORS_W83637HF_IN7, + SENSORS_W83637HF_IN7, RW, + W83781D_SYSCTL_IN7, VALUE(2), 2 }, + { SENSORS_W83637HF_IN8_MAX, "in8_max", SENSORS_W83637HF_IN8, + SENSORS_W83637HF_IN8, RW, + W83781D_SYSCTL_IN8, VALUE(2), 2 }, + { SENSORS_W83637HF_FAN1, "fan1", NOMAP, NOMAP, + R, W83781D_SYSCTL_FAN1, VALUE(2), 0 }, + { SENSORS_W83637HF_FAN2, "fan2", NOMAP, NOMAP, + R, W83781D_SYSCTL_FAN2, VALUE(2), 0 }, + { SENSORS_W83637HF_FAN3, "fan3", NOMAP, NOMAP, + R, W83781D_SYSCTL_FAN3, VALUE(2), 0 }, + { SENSORS_W83637HF_FAN1_MIN, "fan1_min", SENSORS_W83637HF_FAN1, + SENSORS_W83637HF_FAN1, RW, + W83781D_SYSCTL_FAN1, VALUE(1), 0 }, + { SENSORS_W83637HF_FAN2_MIN, "fan2_min", SENSORS_W83637HF_FAN2, + SENSORS_W83637HF_FAN2, RW, + W83781D_SYSCTL_FAN2, VALUE(1), 0 }, + { SENSORS_W83637HF_FAN3_MIN, "fan3_min", SENSORS_W83637HF_FAN3, + SENSORS_W83637HF_FAN3, RW, + W83781D_SYSCTL_FAN3, VALUE(1), 0 }, + { SENSORS_W83637HF_TEMP1, "temp1", NOMAP, NOMAP, + R, W83781D_SYSCTL_TEMP1, VALUE(3), 1 }, + { SENSORS_W83637HF_TEMP1_HYST, "temp1_hyst", SENSORS_W83637HF_TEMP1, + SENSORS_W83637HF_TEMP1, RW, + W83781D_SYSCTL_TEMP1, VALUE(2), 1 }, + { SENSORS_W83637HF_TEMP1_OVER, "temp1_over", SENSORS_W83637HF_TEMP1, + SENSORS_W83637HF_TEMP1, RW, + W83781D_SYSCTL_TEMP1, VALUE(1), 1 }, + { SENSORS_W83637HF_TEMP2, "temp2", NOMAP, NOMAP, + R, W83781D_SYSCTL_TEMP2, VALUE(3), 1 }, + { SENSORS_W83637HF_TEMP2_HYST, "temp2_hyst", SENSORS_W83637HF_TEMP2, + SENSORS_W83637HF_TEMP2, RW, + W83781D_SYSCTL_TEMP2, VALUE(2), 1 }, + { SENSORS_W83637HF_TEMP2_OVER, "temp2_over", SENSORS_W83637HF_TEMP2, + SENSORS_W83637HF_TEMP2, RW, + W83781D_SYSCTL_TEMP2, VALUE(1), 1 }, + { SENSORS_W83637HF_TEMP3, "temp3", NOMAP, NOMAP, + R, W83781D_SYSCTL_TEMP3, VALUE(3), 1 }, + { SENSORS_W83637HF_TEMP3_HYST, "temp3_hyst", SENSORS_W83637HF_TEMP3, + SENSORS_W83637HF_TEMP3, RW, + W83781D_SYSCTL_TEMP3, VALUE(2), 1 }, + { SENSORS_W83637HF_TEMP3_OVER, "temp3_over", SENSORS_W83637HF_TEMP3, + SENSORS_W83637HF_TEMP3, RW, + W83781D_SYSCTL_TEMP3, VALUE(1), 1 }, + { SENSORS_W83637HF_VID, "vid", NOMAP, NOMAP, + R, W83781D_SYSCTL_VID, VALUE(1), 3 }, + { SENSORS_W83637HF_VRM, "vrm", NOMAP, NOMAP, + RW, W83781D_SYSCTL_VRM, VALUE(1), 1 }, + { SENSORS_W83637HF_FAN1_DIV, "fan1_div", SENSORS_W83637HF_FAN1, + NOMAP, RW, + W83781D_SYSCTL_FAN_DIV, VALUE(1), 0 }, + { SENSORS_W83637HF_FAN2_DIV, "fan2_div", SENSORS_W83637HF_FAN2, + NOMAP, RW, + W83781D_SYSCTL_FAN_DIV, VALUE(2), 0 }, + { SENSORS_W83637HF_FAN3_DIV, "fan3_div", SENSORS_W83637HF_FAN3, + NOMAP, RW, + W83781D_SYSCTL_FAN_DIV, VALUE(3), 0 }, + { SENSORS_W83637HF_PWM1, "pwm1", SENSORS_W83637HF_FAN1, NOMAP, + RW, W83781D_SYSCTL_PWM1, VALUE(1), 0 }, + { SENSORS_W83637HF_PWM2, "pwm2", SENSORS_W83637HF_FAN2, NOMAP, + RW, W83781D_SYSCTL_PWM2, VALUE(1), 0 }, + { SENSORS_W83637HF_PWM3, "pwm3", SENSORS_W83637HF_FAN3, NOMAP, + RW, W83781D_SYSCTL_PWM3, VALUE(1), 0 }, + { SENSORS_W83637HF_PWMCLK1, "pwm1_clk", SENSORS_W83637HF_FAN1, NOMAP, + RW, W83781D_SYSCTL_PWMCLK1, VALUE(1), 0 }, + { SENSORS_W83637HF_PWMCLK2, "pwm2_clk", SENSORS_W83637HF_FAN2, NOMAP, + RW, W83781D_SYSCTL_PWMCLK2, VALUE(1), 0 }, + { SENSORS_W83637HF_PWMCLK3, "pwm3_clk", SENSORS_W83637HF_FAN3, NOMAP, + RW, W83781D_SYSCTL_PWMCLK3, VALUE(1), 0 }, + { SENSORS_W83637HF_ALARMS, "alarms", NOMAP, NOMAP, + R, W83781D_SYSCTL_ALARMS, VALUE(1), 0 }, + { SENSORS_W83637HF_BEEP_ENABLE, "beep_enable", SENSORS_W83637HF_ALARMS, + NOMAP, RW, + W83781D_SYSCTL_BEEP, VALUE(1), 0 }, + { SENSORS_W83637HF_BEEPS, "beeps", SENSORS_W83637HF_ALARMS, + SENSORS_W83637HF_ALARMS, RW, + W83781D_SYSCTL_BEEP, VALUE(2), 0 }, + { SENSORS_W83637HF_SENS1, "sensor1", NOMAP, NOMAP, + RW, W83781D_SYSCTL_SENS1, VALUE(1), 0 }, + { SENSORS_W83637HF_SENS2, "sensor2", NOMAP, NOMAP, + RW, W83781D_SYSCTL_SENS2, VALUE(1), 0 }, + { SENSORS_W83637HF_SENS3, "sensor3", NOMAP, NOMAP, + RW, W83781D_SYSCTL_SENS3, VALUE(1), 0 }, + { 0 } + }; + +static sensors_chip_feature w83697hf_features[] = + { + { SENSORS_W83697HF_IN0, "in0", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN0, VALUE(3), 2 }, + { SENSORS_W83697HF_IN2, "in2", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN2, VALUE(3), 2 }, + { SENSORS_W83697HF_IN3, "in3", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN3, VALUE(3), 2 }, + { SENSORS_W83697HF_IN4, "in4", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN4, VALUE(3), 2 }, + { SENSORS_W83697HF_IN5, "in5", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN5, VALUE(3), 2 }, + { SENSORS_W83697HF_IN6, "in6", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN6, VALUE(3), 2 }, + { SENSORS_W83697HF_IN7, "in7", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN7, VALUE(3), 2 }, + { SENSORS_W83697HF_IN8, "in8", NOMAP, NOMAP, + R, W83781D_SYSCTL_IN8, VALUE(3), 2 }, + { SENSORS_W83697HF_IN0_MIN, "in0_min", SENSORS_W83697HF_IN0, + SENSORS_W83697HF_IN0, RW, + W83781D_SYSCTL_IN0, VALUE(1), 2 }, + { SENSORS_W83697HF_IN2_MIN, "in2_min", SENSORS_W83697HF_IN2, + SENSORS_W83697HF_IN2, RW, + W83781D_SYSCTL_IN2, VALUE(1), 2 }, + { SENSORS_W83697HF_IN3_MIN, "in3_min", SENSORS_W83697HF_IN3, + SENSORS_W83697HF_IN3, RW, + W83781D_SYSCTL_IN3, VALUE(1), 2 }, + { SENSORS_W83697HF_IN4_MIN, "in4_min", SENSORS_W83697HF_IN4, + SENSORS_W83697HF_IN4, RW, + W83781D_SYSCTL_IN4, VALUE(1), 2 }, + { SENSORS_W83697HF_IN5_MIN, "in5_min", SENSORS_W83697HF_IN5, + SENSORS_W83697HF_IN5, RW, + W83781D_SYSCTL_IN5, VALUE(1), 2 }, + { SENSORS_W83697HF_IN6_MIN, "in6_min", SENSORS_W83697HF_IN6, + SENSORS_W83697HF_IN6, RW, + W83781D_SYSCTL_IN6, VALUE(1), 2 }, + { SENSORS_W83697HF_IN7_MIN, "in7_min", SENSORS_W83697HF_IN7, + SENSORS_W83697HF_IN7, RW, + W83781D_SYSCTL_IN7, VALUE(1), 2 }, + { SENSORS_W83697HF_IN8_MIN, "in8_min", SENSORS_W83697HF_IN8, + SENSORS_W83697HF_IN8, RW, + W83781D_SYSCTL_IN8, VALUE(1), 2 }, + { SENSORS_W83697HF_IN0_MAX, "in0_max", SENSORS_W83697HF_IN0, + SENSORS_W83697HF_IN0, RW, + W83781D_SYSCTL_IN0, VALUE(2), 2 }, + { SENSORS_W83697HF_IN2_MAX, "in2_max", SENSORS_W83697HF_IN2, + SENSORS_W83697HF_IN2, RW, + W83781D_SYSCTL_IN2, VALUE(2), 2 }, + { SENSORS_W83697HF_IN3_MAX, "in3_max", SENSORS_W83697HF_IN3, + SENSORS_W83697HF_IN3, RW, + W83781D_SYSCTL_IN3, VALUE(2), 2 }, + { SENSORS_W83697HF_IN4_MAX, "in4_max", SENSORS_W83697HF_IN4, + SENSORS_W83697HF_IN4, RW, + W83781D_SYSCTL_IN4, VALUE(2), 2 }, + { SENSORS_W83697HF_IN5_MAX, "in5_max", SENSORS_W83697HF_IN5, + SENSORS_W83697HF_IN5, RW, + W83781D_SYSCTL_IN5, VALUE(2), 2 }, + { SENSORS_W83697HF_IN6_MAX, "in6_max", SENSORS_W83697HF_IN6, + SENSORS_W83697HF_IN6, RW, + W83781D_SYSCTL_IN6, VALUE(2), 2 }, + { SENSORS_W83697HF_IN7_MAX, "in7_max", SENSORS_W83697HF_IN7, + SENSORS_W83697HF_IN7, RW, + W83781D_SYSCTL_IN7, VALUE(2), 2 }, + { SENSORS_W83697HF_IN8_MAX, "in8_max", SENSORS_W83697HF_IN8, + SENSORS_W83697HF_IN8, RW, + W83781D_SYSCTL_IN8, VALUE(2), 2 }, + { SENSORS_W83697HF_FAN1, "fan1", NOMAP, NOMAP, + R, W83781D_SYSCTL_FAN1, VALUE(2), 0 }, + { SENSORS_W83697HF_FAN2, "fan2", NOMAP, NOMAP, + R, W83781D_SYSCTL_FAN2, VALUE(2), 0 }, + { SENSORS_W83697HF_FAN1_MIN, "fan1_min", SENSORS_W83697HF_FAN1, + SENSORS_W83697HF_FAN1, RW, + W83781D_SYSCTL_FAN1, VALUE(1), 0 }, + { SENSORS_W83697HF_FAN2_MIN, "fan2_min", SENSORS_W83697HF_FAN2, + SENSORS_W83697HF_FAN2, RW, + W83781D_SYSCTL_FAN2, VALUE(1), 0 }, + { SENSORS_W83697HF_TEMP1, "temp1", NOMAP, NOMAP, + R, W83781D_SYSCTL_TEMP1, VALUE(3), 1 }, + { SENSORS_W83697HF_TEMP1_HYST, "temp1_hyst", SENSORS_W83697HF_TEMP1, + SENSORS_W83697HF_TEMP1, RW, + W83781D_SYSCTL_TEMP1, VALUE(2), 1 }, + { SENSORS_W83697HF_TEMP1_OVER, "temp1_over", SENSORS_W83697HF_TEMP1, + SENSORS_W83697HF_TEMP1, RW, + W83781D_SYSCTL_TEMP1, VALUE(1), 1 }, + { SENSORS_W83697HF_TEMP2, "temp2", NOMAP, NOMAP, + R, W83781D_SYSCTL_TEMP2, VALUE(3), 1 }, + { SENSORS_W83697HF_TEMP2_HYST, "temp2_hyst", SENSORS_W83697HF_TEMP2, + SENSORS_W83697HF_TEMP2, RW, + W83781D_SYSCTL_TEMP2, VALUE(2), 1 }, + { SENSORS_W83697HF_TEMP2_OVER, "temp2_over", SENSORS_W83697HF_TEMP2, + SENSORS_W83697HF_TEMP2, RW, + W83781D_SYSCTL_TEMP2, VALUE(1), 1 }, + { SENSORS_W83697HF_TEMP3, "temp3", NOMAP, NOMAP, + R, W83781D_SYSCTL_TEMP3, VALUE(3), 1 }, + { SENSORS_W83697HF_TEMP3_HYST, "temp3_hyst", SENSORS_W83697HF_TEMP3, + SENSORS_W83697HF_TEMP3, RW, + W83781D_SYSCTL_TEMP3, VALUE(2), 1 }, + { SENSORS_W83697HF_TEMP3_OVER, "temp3_over", SENSORS_W83697HF_TEMP3, + SENSORS_W83697HF_TEMP3, RW, + W83781D_SYSCTL_TEMP3, VALUE(1), 1 }, + { SENSORS_W83697HF_FAN1_DIV, "fan1_div", SENSORS_W83697HF_FAN1, + NOMAP, RW, + W83781D_SYSCTL_FAN_DIV, VALUE(1), 0 }, + { SENSORS_W83697HF_FAN2_DIV, "fan2_div", SENSORS_W83697HF_FAN2, + NOMAP, RW, + W83781D_SYSCTL_FAN_DIV, VALUE(2), 0 }, + { SENSORS_W83697HF_PWM1, "pwm1", SENSORS_W83697HF_FAN1, NOMAP, + RW, W83781D_SYSCTL_PWM1, VALUE(1), 0 }, + { SENSORS_W83697HF_PWM2, "pwm2", SENSORS_W83697HF_FAN2, NOMAP, + RW, W83781D_SYSCTL_PWM2, VALUE(1), 0 }, + { SENSORS_W83697HF_PWMCLK1, "pwm1_clk", SENSORS_W83697HF_FAN1, NOMAP, + RW, W83781D_SYSCTL_PWMCLK1, VALUE(1), 0 }, + { SENSORS_W83697HF_PWMCLK2, "pwm2_clk", SENSORS_W83697HF_FAN2, NOMAP, + RW, W83781D_SYSCTL_PWMCLK2, VALUE(1), 0 }, + { SENSORS_W83697HF_ALARMS, "alarms", NOMAP, NOMAP, + R, W83781D_SYSCTL_ALARMS, VALUE(1), 0 }, + { SENSORS_W83697HF_BEEP_ENABLE, "beep_enable", SENSORS_W83697HF_ALARMS, + NOMAP, RW, + W83781D_SYSCTL_BEEP, VALUE(1), 0 }, + { SENSORS_W83697HF_BEEPS, "beeps", SENSORS_W83697HF_ALARMS, + SENSORS_W83697HF_ALARMS, RW, + W83781D_SYSCTL_BEEP, VALUE(2), 0 }, + { SENSORS_W83697HF_SENS1, "sensor1", NOMAP, NOMAP, + RW, W83781D_SYSCTL_SENS1, VALUE(1), 0 }, + { SENSORS_W83697HF_SENS2, "sensor2", NOMAP, NOMAP, + RW, W83781D_SYSCTL_SENS2, VALUE(1), 0 }, + { 0 } + }; + static sensors_chip_feature w83782d_features[] = { { SENSORS_W83782D_IN0, "in0", NOMAP, NOMAP, @@ -1400,6 +1984,22 @@ static sensors_chip_feature w83782d_feat { SENSORS_W83782D_FAN3_DIV, "fan3_div", SENSORS_W83781D_FAN3, NOMAP, RW, W83781D_SYSCTL_FAN_DIV, VALUE(3), 0 }, + { SENSORS_W83782D_PWM1, "pwm1", SENSORS_W83782D_FAN1, NOMAP, + RW, W83781D_SYSCTL_PWM1, VALUE(1), 0 }, + { SENSORS_W83782D_PWM2, "pwm2", SENSORS_W83782D_FAN2, NOMAP, + RW, W83781D_SYSCTL_PWM2, VALUE(1), 0 }, + { SENSORS_W83782D_PWM3, "pwm3", SENSORS_W83782D_FAN3, NOMAP, + RW, W83781D_SYSCTL_PWM3, VALUE(1), 0 }, + { SENSORS_W83782D_PWM4, "pwm4", NOMAP, NOMAP, + RW, W83781D_SYSCTL_PWM4, VALUE(1), 0 }, + { SENSORS_W83782D_PWMCLK1, "pwm1_clk", SENSORS_W83782D_FAN1, NOMAP, + RW, W83781D_SYSCTL_PWMCLK1, VALUE(1), 0 }, + { SENSORS_W83782D_PWMCLK2, "pwm2_clk", SENSORS_W83782D_FAN2, NOMAP, + RW, W83781D_SYSCTL_PWMCLK2, VALUE(1), 0 }, + { SENSORS_W83782D_PWMCLK3, "pwm3_clk", SENSORS_W83782D_FAN3, NOMAP, + RW, W83781D_SYSCTL_PWMCLK3, VALUE(1), 0 }, + { SENSORS_W83782D_PWMCLK4, "pwm4_clk", NOMAP, NOMAP, + RW, W83781D_SYSCTL_PWMCLK4, VALUE(1), 0 }, { SENSORS_W83782D_ALARMS, "alarms", NOMAP, NOMAP, R, W83781D_SYSCTL_ALARMS, VALUE(1), 0 }, { SENSORS_W83782D_BEEP_ENABLE, "beep_enable", SENSORS_W83782D_ALARMS, @@ -1417,6 +2017,7 @@ static sensors_chip_feature w83782d_feat { 0 } }; + static sensors_chip_feature w83783s_features[] = { { SENSORS_W83783S_IN0, "in0", NOMAP, NOMAP, @@ -1519,6 +2120,14 @@ static sensors_chip_feature w83783s_feat { SENSORS_W83783S_FAN3_DIV, "fan3_div", SENSORS_W83783S_FAN3, NOMAP, RW, W83781D_SYSCTL_FAN_DIV, VALUE(3), 0 }, + { SENSORS_W83783S_PWM1, "pwm1", SENSORS_W83783S_FAN1, NOMAP, + RW, W83781D_SYSCTL_PWM1, VALUE(1), 0 }, + { SENSORS_W83783S_PWM2, "pwm2", SENSORS_W83783S_FAN2, NOMAP, + RW, W83781D_SYSCTL_PWM2, VALUE(1), 0 }, + { SENSORS_W83783S_PWMCLK1, "pwm1_clk", SENSORS_W83783S_FAN1, NOMAP, + RW, W83781D_SYSCTL_PWMCLK1, VALUE(1), 0 }, + { SENSORS_W83783S_PWMCLK2, "pwm2_clk", SENSORS_W83783S_FAN2, NOMAP, + RW, W83781D_SYSCTL_PWMCLK2, VALUE(1), 0 }, { SENSORS_W83783S_ALARMS, "alarms", NOMAP, NOMAP, R, W83781D_SYSCTL_ALARMS, VALUE(1), 0 }, { SENSORS_W83783S_BEEP_ENABLE, "beep_enable", SENSORS_W83783S_ALARMS, @@ -1684,6 +2293,22 @@ static sensors_chip_feature w83791d_feat { SENSORS_W83791D_FAN5_DIV, "fan5_div", SENSORS_W83791D_FAN5, NOMAP, RW, W83781D_SYSCTL_FAN_DIV, VALUE(5), 0 }, + { SENSORS_W83791D_PWM1, "pwm1", SENSORS_W83791D_FAN1, NOMAP, + RW, W83781D_SYSCTL_PWM1, VALUE(1), 0 }, + { SENSORS_W83791D_PWM2, "pwm2", SENSORS_W83791D_FAN2, NOMAP, + RW, W83781D_SYSCTL_PWM2, VALUE(1), 0 }, + { SENSORS_W83791D_PWM3, "pwm3", SENSORS_W83791D_FAN3, NOMAP, + RW, W83781D_SYSCTL_PWM3, VALUE(1), 0 }, + { SENSORS_W83791D_PWM4, "pwm4", SENSORS_W83791D_FAN4, NOMAP, + RW, W83781D_SYSCTL_PWM4, VALUE(1), 0 }, + { SENSORS_W83791D_PWMCLK1, "pwm1_clk", SENSORS_W83791D_FAN1, NOMAP, + RW, W83781D_SYSCTL_PWMCLK1, VALUE(1), 0 }, + { SENSORS_W83791D_PWMCLK2, "pwm2_clk", SENSORS_W83791D_FAN2, NOMAP, + RW, W83781D_SYSCTL_PWMCLK2, VALUE(1), 0 }, + { SENSORS_W83791D_PWMCLK3, "pwm3_clk", SENSORS_W83791D_FAN3, NOMAP, + RW, W83781D_SYSCTL_PWMCLK3, VALUE(1), 0 }, + { SENSORS_W83791D_PWMCLK4, "pwm4_clk", SENSORS_W83791D_FAN4, NOMAP, + RW, W83781D_SYSCTL_PWMCLK4, VALUE(1), 0 }, { SENSORS_W83791D_ALARMS, "alarms", NOMAP, NOMAP, R, W83781D_SYSCTL_ALARMS, VALUE(1), 0 }, { SENSORS_W83791D_BEEP_ENABLE, "beep_enable", SENSORS_W83791D_ALARMS, @@ -1875,6 +2500,106 @@ static sensors_chip_feature w83l785ts_fe /* No support for Linux 2.4 yet (sysctl) */ static sensors_chip_feature w83627ehf_features[] = { + { SENSORS_W83627EHF_IN0, "in0", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_W83627EHF_IN1, "in1", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_W83627EHF_IN2, "in2", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_W83627EHF_IN3, "in3", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_W83627EHF_IN4, "in4", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_W83627EHF_IN5, "in5", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_W83627EHF_IN6, "in6", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_W83627EHF_IN7, "in7", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_W83627EHF_IN8, "in8", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_W83627EHF_IN9, "in9", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_W83627EHF_IN0_ALARM, "in0_alarm", SENSORS_W83627EHF_IN0, NOMAP, + R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_W83627EHF_IN1_ALARM, "in1_alarm", SENSORS_W83627EHF_IN1, NOMAP, + R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_W83627EHF_IN2_ALARM, "in2_alarm", SENSORS_W83627EHF_IN2, NOMAP, + R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_W83627EHF_IN3_ALARM, "in3_alarm", SENSORS_W83627EHF_IN3, NOMAP, + R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_W83627EHF_IN4_ALARM, "in4_alarm", SENSORS_W83627EHF_IN4, NOMAP, + R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_W83627EHF_IN5_ALARM, "in5_alarm", SENSORS_W83627EHF_IN5, NOMAP, + R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_W83627EHF_IN6_ALARM, "in6_alarm", SENSORS_W83627EHF_IN6, NOMAP, + R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_W83627EHF_IN7_ALARM, "in7_alarm", SENSORS_W83627EHF_IN7, NOMAP, + R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_W83627EHF_IN8_ALARM, "in8_alarm", SENSORS_W83627EHF_IN8, NOMAP, + R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_W83627EHF_IN9_ALARM, "in9_alarm", SENSORS_W83627EHF_IN9, NOMAP, + R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_W83627EHF_IN0_MIN, "in0_min", SENSORS_W83627EHF_IN0, + SENSORS_W83627EHF_IN0, RW, + NOSYSCTL, VALUE(1), 3 }, + { SENSORS_W83627EHF_IN1_MIN, "in1_min", SENSORS_W83627EHF_IN1, + SENSORS_W83627EHF_IN1, RW, + NOSYSCTL, VALUE(1), 3 }, + { SENSORS_W83627EHF_IN2_MIN, "in2_min", SENSORS_W83627EHF_IN2, + SENSORS_W83627EHF_IN2, RW, + NOSYSCTL, VALUE(1), 3 }, + { SENSORS_W83627EHF_IN3_MIN, "in3_min", SENSORS_W83627EHF_IN3, + SENSORS_W83627EHF_IN3, RW, + NOSYSCTL, VALUE(1), 3 }, + { SENSORS_W83627EHF_IN4_MIN, "in4_min", SENSORS_W83627EHF_IN4, + SENSORS_W83627EHF_IN4, RW, + NOSYSCTL, VALUE(1), 3 }, + { SENSORS_W83627EHF_IN5_MIN, "in5_min", SENSORS_W83627EHF_IN5, + SENSORS_W83627EHF_IN5, RW, + NOSYSCTL, VALUE(1), 3 }, + { SENSORS_W83627EHF_IN6_MIN, "in6_min", SENSORS_W83627EHF_IN6, + SENSORS_W83627EHF_IN6, RW, + NOSYSCTL, VALUE(1), 3 }, + { SENSORS_W83627EHF_IN7_MIN, "in7_min", SENSORS_W83627EHF_IN7, + SENSORS_W83627EHF_IN7, RW, + NOSYSCTL, VALUE(1), 3 }, + { SENSORS_W83627EHF_IN8_MIN, "in8_min", SENSORS_W83627EHF_IN8, + SENSORS_W83627EHF_IN8, RW, + NOSYSCTL, VALUE(1), 3 }, + { SENSORS_W83627EHF_IN9_MIN, "in9_min", SENSORS_W83627EHF_IN9, + SENSORS_W83627EHF_IN9, RW, + NOSYSCTL, VALUE(1), 3 }, + { SENSORS_W83627EHF_IN0_MAX, "in0_max", SENSORS_W83627EHF_IN0, + SENSORS_W83627EHF_IN0, RW, + NOSYSCTL, VALUE(2), 3 }, + { SENSORS_W83627EHF_IN1_MAX, "in1_max", SENSORS_W83627EHF_IN1, + SENSORS_W83627EHF_IN1, RW, + NOSYSCTL, VALUE(2), 3 }, + { SENSORS_W83627EHF_IN2_MAX, "in2_max", SENSORS_W83627EHF_IN2, + SENSORS_W83627EHF_IN2, RW, + NOSYSCTL, VALUE(2), 3 }, + { SENSORS_W83627EHF_IN3_MAX, "in3_max", SENSORS_W83627EHF_IN3, + SENSORS_W83627EHF_IN3, RW, + NOSYSCTL, VALUE(2), 3 }, + { SENSORS_W83627EHF_IN4_MAX, "in4_max", SENSORS_W83627EHF_IN4, + SENSORS_W83627EHF_IN4, RW, + NOSYSCTL, VALUE(2), 3 }, + { SENSORS_W83627EHF_IN5_MAX, "in5_max", SENSORS_W83627EHF_IN5, + SENSORS_W83627EHF_IN5, RW, + NOSYSCTL, VALUE(2), 3 }, + { SENSORS_W83627EHF_IN6_MAX, "in6_max", SENSORS_W83627EHF_IN6, + SENSORS_W83627EHF_IN6, RW, + NOSYSCTL, VALUE(2), 3 }, + { SENSORS_W83627EHF_IN7_MAX, "in7_max", SENSORS_W83627EHF_IN7, + SENSORS_W83627EHF_IN7, RW, + NOSYSCTL, VALUE(2), 3 }, + { SENSORS_W83627EHF_IN8_MAX, "in8_max", SENSORS_W83627EHF_IN8, + SENSORS_W83627EHF_IN8, RW, + NOSYSCTL, VALUE(2), 3 }, + { SENSORS_W83627EHF_IN9_MAX, "in9_max", SENSORS_W83627EHF_IN9, + SENSORS_W83627EHF_IN9, RW, + NOSYSCTL, VALUE(2), 3 }, { SENSORS_W83627EHF_FAN1, "fan1", NOMAP, NOMAP, R, NOSYSCTL, VALUE(2), 0 }, { SENSORS_W83627EHF_FAN2, "fan2", NOMAP, NOMAP, @@ -1885,6 +2610,16 @@ static sensors_chip_feature w83627ehf_fe R, NOSYSCTL, VALUE(2), 0 }, { SENSORS_W83627EHF_FAN5, "fan5", NOMAP, NOMAP, R, NOSYSCTL, VALUE(2), 0 }, + { SENSORS_W83627EHF_FAN1_ALARM, "fan1_alarm", SENSORS_W83627EHF_FAN1, + NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_W83627EHF_FAN2_ALARM, "fan2_alarm", SENSORS_W83627EHF_FAN2, + NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_W83627EHF_FAN3_ALARM, "fan3_alarm", SENSORS_W83627EHF_FAN3, + NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_W83627EHF_FAN4_ALARM, "fan4_alarm", SENSORS_W83627EHF_FAN4, + NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_W83627EHF_FAN5_ALARM, "fan5_alarm", SENSORS_W83627EHF_FAN5, + NOMAP, R, NOSYSCTL, VALUE(1), 0 }, { SENSORS_W83627EHF_FAN1_MIN, "fan1_min", SENSORS_W83627EHF_FAN1, SENSORS_W83627EHF_FAN1, RW, NOSYSCTL, VALUE(1), 0 }, @@ -1921,6 +2656,12 @@ static sensors_chip_feature w83627ehf_fe R, NOSYSCTL, VALUE(3), 1 }, { SENSORS_W83627EHF_TEMP3, "temp3", NOMAP, NOMAP, R, NOSYSCTL, VALUE(3), 1 }, + { SENSORS_W83627EHF_TEMP1_ALARM, "temp1_alarm", SENSORS_W83627EHF_TEMP1, + NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_W83627EHF_TEMP2_ALARM, "temp2_alarm", SENSORS_W83627EHF_TEMP2, + NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_W83627EHF_TEMP3_ALARM, "temp3_alarm", SENSORS_W83627EHF_TEMP3, + NOMAP, R, NOSYSCTL, VALUE(1), 0 }, { SENSORS_W83627EHF_TEMP1_OVER, "temp1_over", SENSORS_W83627EHF_TEMP1, SENSORS_W83627EHF_TEMP1, RW, NOSYSCTL, VALUE(1), 0 }, @@ -4636,6 +5377,106 @@ static sensors_chip_feature smsc47m1_fea { 0 } }; +static sensors_chip_feature smsc47m192_features[] = + { + { SENSORS_SMSC47M192_IN(0), "in0", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_SMSC47M192_IN(1), "in1", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_SMSC47M192_IN(2), "in2", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_SMSC47M192_IN(3), "in3", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_SMSC47M192_IN(4), "in4", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_SMSC47M192_IN(5), "in5", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_SMSC47M192_IN(6), "in6", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_SMSC47M192_IN(7), "in7", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 3 }, + { SENSORS_SMSC47M192_IN_MIN(0), "in0_min", SENSORS_SMSC47M192_IN(0), + SENSORS_SMSC47M192_IN(0), RW, NOSYSCTL, VALUE(1), 3 }, + { SENSORS_SMSC47M192_IN_MIN(1), "in1_min", SENSORS_SMSC47M192_IN(1), + SENSORS_SMSC47M192_IN(1), RW, NOSYSCTL, VALUE(1), 3 }, + { SENSORS_SMSC47M192_IN_MIN(2), "in2_min", SENSORS_SMSC47M192_IN(2), + SENSORS_SMSC47M192_IN(2), RW, NOSYSCTL, VALUE(1), 3 }, + { SENSORS_SMSC47M192_IN_MIN(3), "in3_min", SENSORS_SMSC47M192_IN(3), + SENSORS_SMSC47M192_IN(3), RW, NOSYSCTL, VALUE(1), 3 }, + { SENSORS_SMSC47M192_IN_MIN(4), "in4_min", SENSORS_SMSC47M192_IN(4), + SENSORS_SMSC47M192_IN(4), RW, NOSYSCTL, VALUE(1), 3 }, + { SENSORS_SMSC47M192_IN_MIN(5), "in5_min", SENSORS_SMSC47M192_IN(5), + SENSORS_SMSC47M192_IN(5), RW, NOSYSCTL, VALUE(1), 3 }, + { SENSORS_SMSC47M192_IN_MIN(6), "in6_min", SENSORS_SMSC47M192_IN(6), + SENSORS_SMSC47M192_IN(6), RW, NOSYSCTL, VALUE(1), 3 }, + { SENSORS_SMSC47M192_IN_MIN(7), "in7_min", SENSORS_SMSC47M192_IN(7), + SENSORS_SMSC47M192_IN(7), RW, NOSYSCTL, VALUE(1), 3 }, + { SENSORS_SMSC47M192_IN_MAX(0), "in0_max", SENSORS_SMSC47M192_IN(0), + SENSORS_SMSC47M192_IN(0), RW, NOSYSCTL, VALUE(2), 3 }, + { SENSORS_SMSC47M192_IN_MAX(1), "in1_max", SENSORS_SMSC47M192_IN(1), + SENSORS_SMSC47M192_IN(1), RW, NOSYSCTL, VALUE(2), 3 }, + { SENSORS_SMSC47M192_IN_MAX(2), "in2_max", SENSORS_SMSC47M192_IN(2), + SENSORS_SMSC47M192_IN(2), RW, NOSYSCTL, VALUE(2), 3 }, + { SENSORS_SMSC47M192_IN_MAX(3), "in3_max", SENSORS_SMSC47M192_IN(3), + SENSORS_SMSC47M192_IN(3), RW, NOSYSCTL, VALUE(2), 3 }, + { SENSORS_SMSC47M192_IN_MAX(4), "in4_max", SENSORS_SMSC47M192_IN(4), + SENSORS_SMSC47M192_IN(4), RW, NOSYSCTL, VALUE(2), 3 }, + { SENSORS_SMSC47M192_IN_MAX(5), "in5_max", SENSORS_SMSC47M192_IN(5), + SENSORS_SMSC47M192_IN(5), RW, NOSYSCTL, VALUE(2), 3 }, + { SENSORS_SMSC47M192_IN_MAX(6), "in6_max", SENSORS_SMSC47M192_IN(6), + SENSORS_SMSC47M192_IN(6), RW, NOSYSCTL, VALUE(2), 3 }, + { SENSORS_SMSC47M192_IN_MAX(7), "in7_max", SENSORS_SMSC47M192_IN(7), + SENSORS_SMSC47M192_IN(7), RW, NOSYSCTL, VALUE(2), 3 }, + { SENSORS_SMSC47M192_IN_ALARM(0), "in0_alarm", SENSORS_SMSC47M192_IN(0), + NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_SMSC47M192_IN_ALARM(1), "in1_alarm", SENSORS_SMSC47M192_IN(1), + NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_SMSC47M192_IN_ALARM(2), "in2_alarm", SENSORS_SMSC47M192_IN(2), + NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_SMSC47M192_IN_ALARM(3), "in3_alarm", SENSORS_SMSC47M192_IN(3), + NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_SMSC47M192_IN_ALARM(4), "in4_alarm", SENSORS_SMSC47M192_IN(4), + NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_SMSC47M192_IN_ALARM(5), "in5_alarm", SENSORS_SMSC47M192_IN(5), + NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_SMSC47M192_IN_ALARM(6), "in6_alarm", SENSORS_SMSC47M192_IN(6), + NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_SMSC47M192_IN_ALARM(7), "in7_alarm", SENSORS_SMSC47M192_IN(7), + NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_SMSC47M192_TEMP(1), "temp1", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 0 }, + { SENSORS_SMSC47M192_TEMP(2), "temp2", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 0 }, + { SENSORS_SMSC47M192_TEMP(3), "temp3", NOMAP, NOMAP, + R, NOSYSCTL, VALUE(3), 0 }, + { SENSORS_SMSC47M192_TEMP_MIN(1), "temp1_min", SENSORS_SMSC47M192_TEMP(1), + SENSORS_SMSC47M192_TEMP(1), RW, NOSYSCTL, VALUE(2), 0 }, + { SENSORS_SMSC47M192_TEMP_MIN(2), "temp2_min", SENSORS_SMSC47M192_TEMP(2), + SENSORS_SMSC47M192_TEMP(2), RW, NOSYSCTL, VALUE(2), 0 }, + { SENSORS_SMSC47M192_TEMP_MIN(3), "temp3_min", SENSORS_SMSC47M192_TEMP(3), + SENSORS_SMSC47M192_TEMP(3), RW, NOSYSCTL, VALUE(2), 0 }, + { SENSORS_SMSC47M192_TEMP_MAX(1), "temp1_max", SENSORS_SMSC47M192_TEMP(1), + SENSORS_SMSC47M192_TEMP(1), RW, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_SMSC47M192_TEMP_MAX(2), "temp2_max", SENSORS_SMSC47M192_TEMP(2), + SENSORS_SMSC47M192_TEMP(2), RW, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_SMSC47M192_TEMP_MAX(3), "temp3_max", SENSORS_SMSC47M192_TEMP(3), + SENSORS_SMSC47M192_TEMP(3), RW, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_SMSC47M192_TEMP_ALARM(1), "temp1_alarm", + SENSORS_SMSC47M192_TEMP(1), NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_SMSC47M192_TEMP_ALARM(2), "temp2_alarm", + SENSORS_SMSC47M192_TEMP(2), NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_SMSC47M192_TEMP_ALARM(3), "temp3_alarm", + SENSORS_SMSC47M192_TEMP(3), NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_SMSC47M192_TEMP_FAULT(2), "temp2_input_fault", + SENSORS_SMSC47M192_TEMP(2), NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_SMSC47M192_TEMP_FAULT(3), "temp3_input_fault", + SENSORS_SMSC47M192_TEMP(3), NOMAP, R, NOSYSCTL, VALUE(1), 0 }, + { SENSORS_SMSC47M192_VID, "vid", NOMAP, NOMAP, R, NOSYSCTL, VALUE(1), 3 }, + { SENSORS_SMSC47M192_VRM, "vrm", NOMAP, NOMAP, RW, NOSYSCTL, VALUE(1), 1 }, + { 0 } + }; + + static sensors_chip_feature pc87360_features[] = { { SENSORS_PC87360_FAN1, "fan1", NOMAP, NOMAP, R, @@ -5556,6 +6397,75 @@ static sensors_chip_feature f71805f_feat { 0 } }; +#define SENSORS_ABITUGURU_IN_FEATURES(nr) \ + { SENSORS_ABITUGURU_IN(nr), "in" #nr, NOMAP, NOMAP, R, NOSYSCTL, \ + VALUE(3), 3 }, \ + { SENSORS_ABITUGURU_IN_MIN(nr), "in" #nr "_min", \ + SENSORS_ABITUGURU_IN(nr), SENSORS_ABITUGURU_IN(nr), RW, \ + NOSYSCTL, VALUE(1), 3 }, \ + { SENSORS_ABITUGURU_IN_MIN_ALARM(nr), "in" #nr "_min_alarm", \ + SENSORS_ABITUGURU_IN(nr), NOMAP, R, NOSYSCTL, \ + VALUE(1), 0 }, \ + { SENSORS_ABITUGURU_IN_MAX(nr), "in" #nr "_max", \ + SENSORS_ABITUGURU_IN(nr), SENSORS_ABITUGURU_IN(nr), RW, \ + NOSYSCTL, VALUE(2), 3 }, \ + { SENSORS_ABITUGURU_IN_MAX_ALARM(nr), "in" #nr "_max_alarm", \ + SENSORS_ABITUGURU_IN(nr), NOMAP, R, NOSYSCTL, \ + VALUE(2), 0 } + +#define SENSORS_ABITUGURU_TEMP_FEATURES(nr) \ + { SENSORS_ABITUGURU_TEMP(nr), "temp" #nr, NOMAP, NOMAP, R, NOSYSCTL, \ + VALUE(3), 3 }, \ + { SENSORS_ABITUGURU_TEMP_ALARM(nr), "temp" #nr "_alarm", \ + SENSORS_ABITUGURU_TEMP(nr), NOMAP, R, NOSYSCTL, \ + VALUE(1), 0 }, \ + { SENSORS_ABITUGURU_TEMP_MAX(nr), "temp" #nr "_max", \ + SENSORS_ABITUGURU_TEMP(nr), SENSORS_ABITUGURU_TEMP(nr), RW, \ + NOSYSCTL, VALUE(1), 3 }, \ + { SENSORS_ABITUGURU_TEMP_CRIT(nr), "temp" #nr "_crit", \ + SENSORS_ABITUGURU_TEMP(nr), SENSORS_ABITUGURU_TEMP(nr), RW, \ + NOSYSCTL, VALUE(2), 3 } + +#define SENSORS_ABITUGURU_FAN_FEATURES(nr) \ + { SENSORS_ABITUGURU_FAN(nr), "fan" #nr, NOMAP, NOMAP, R, NOSYSCTL, \ + VALUE(2), 0 }, \ + { SENSORS_ABITUGURU_FAN_ALARM(nr), "fan" #nr "_alarm", \ + SENSORS_ABITUGURU_FAN(nr), NOMAP, R, NOSYSCTL, \ + VALUE(1), 0 }, \ + { SENSORS_ABITUGURU_FAN_MIN(nr), "fan" #nr "_min", \ + SENSORS_ABITUGURU_FAN(nr), SENSORS_ABITUGURU_FAN(nr), RW, \ + NOSYSCTL, VALUE(1), 0 } + +static sensors_chip_feature abituguru_features[] = +{ + SENSORS_ABITUGURU_IN_FEATURES(0), + SENSORS_ABITUGURU_IN_FEATURES(1), + SENSORS_ABITUGURU_IN_FEATURES(2), + SENSORS_ABITUGURU_IN_FEATURES(3), + SENSORS_ABITUGURU_IN_FEATURES(4), + SENSORS_ABITUGURU_IN_FEATURES(5), + SENSORS_ABITUGURU_IN_FEATURES(6), + SENSORS_ABITUGURU_IN_FEATURES(7), + SENSORS_ABITUGURU_IN_FEATURES(8), + SENSORS_ABITUGURU_IN_FEATURES(9), + SENSORS_ABITUGURU_IN_FEATURES(10), + SENSORS_ABITUGURU_TEMP_FEATURES(1), + SENSORS_ABITUGURU_TEMP_FEATURES(2), + SENSORS_ABITUGURU_TEMP_FEATURES(3), + SENSORS_ABITUGURU_TEMP_FEATURES(4), + SENSORS_ABITUGURU_TEMP_FEATURES(5), + SENSORS_ABITUGURU_TEMP_FEATURES(6), + SENSORS_ABITUGURU_TEMP_FEATURES(7), + SENSORS_ABITUGURU_FAN_FEATURES(1), + SENSORS_ABITUGURU_FAN_FEATURES(2), + SENSORS_ABITUGURU_FAN_FEATURES(3), + SENSORS_ABITUGURU_FAN_FEATURES(4), + SENSORS_ABITUGURU_FAN_FEATURES(5), + SENSORS_ABITUGURU_FAN_FEATURES(6), + { 0 } +}; + + sensors_chip_features sensors_chip_features_list[] = { { SENSORS_LM78_PREFIX, lm78_features }, @@ -5568,14 +6478,11 @@ sensors_chip_features sensors_chip_featu { SENSORS_W83781D_PREFIX, w83781d_features }, { SENSORS_W83782D_PREFIX, w83782d_features }, { SENSORS_W83783S_PREFIX, w83783s_features }, - { SENSORS_W83697HF_PREFIX, w83782d_features }, /* same as 782d */ - /* Cheat on 83627HF for now - no separate #defines */ - { SENSORS_W83627HF_PREFIX, w83782d_features }, - /* Cheat on 83627THF for now - no separate #defines */ - { SENSORS_W83627THF_PREFIX, w83782d_features }, - /* Cheat on 83637HF for now - no separate #defines */ - { SENSORS_W83637HF_PREFIX, w83782d_features }, - { SENSORS_W83687THF_PREFIX, w83782d_features }, /* Same as W83627THF */ + { SENSORS_W83697HF_PREFIX, w83697hf_features }, + { SENSORS_W83627HF_PREFIX, w83627hf_features }, + { SENSORS_W83627THF_PREFIX, w83627thf_features }, + { SENSORS_W83637HF_PREFIX, w83637hf_features }, + { SENSORS_W83687THF_PREFIX, w83627thf_features }, /* Same as W83627THF */ { SENSORS_W83791D_PREFIX, w83791d_features }, { SENSORS_W83792D_PREFIX, w83792d_features }, { SENSORS_W83L785TS_PREFIX, w83l785ts_features }, @@ -5624,6 +6531,7 @@ sensors_chip_features sensors_chip_featu { SENSORS_FSCHER_PREFIX, fscher_features }, { SENSORS_PCF8591_PREFIX, pcf8591_features }, { SENSORS_VT1211_PREFIX, vt1211_features }, + { SENSORS_SMSC47M192_PREFIX, smsc47m192_features }, { SENSORS_SMSC47M1_PREFIX, smsc47m1_features }, { SENSORS_PC87360_PREFIX, pc87360_features }, { SENSORS_PC87363_PREFIX, pc87360_features }, @@ -5656,5 +6564,6 @@ sensors_chip_features sensors_chip_featu { SENSORS_LM93_PREFIX, lm93_features }, { SENSORS_SMSC47B397_PREFIX, smsc47b397_features }, { SENSORS_F71805F_PREFIX, f71805f_features }, + { SENSORS_ABITUGURU_PREFIX, abituguru_features }, { 0 } }; diff -uprN lm_sensors-2.10.0.orig/lib/chips.h lm_sensors-2.10.0/lib/chips.h --- lm_sensors-2.10.0.orig/lib/chips.h 2006-02-15 02:46:48.000000000 +0100 +++ lm_sensors-2.10.0/lib/chips.h 2006-07-24 11:37:24.000000000 +0200 @@ -566,19 +566,250 @@ #define SENSORS_W83781D_SENS2 92 /* RW */ #define SENSORS_W83781D_SENS3 93 /* RW */ +/* Winbond W83627HF chips */ -/* Winbond W83782D chips */ -/* Cheat on 627HF for now - no separate #defines */ -/* Cheat on 127F for now - no separate #defines */ - -#define SENSORS_W83782D_PREFIX "w83782d" #define SENSORS_W83627HF_PREFIX "w83627hf" + +#define SENSORS_W83627HF_IN0 1 /* R */ +#define SENSORS_W83627HF_IN1 2 /* R */ +#define SENSORS_W83627HF_IN2 3 /* R */ +#define SENSORS_W83627HF_IN3 4 /* R */ +#define SENSORS_W83627HF_IN4 5 /* R */ +#define SENSORS_W83627HF_IN5 6 /* R */ +#define SENSORS_W83627HF_IN6 7 /* R */ +#define SENSORS_W83627HF_IN7 8 /* R */ +#define SENSORS_W83627HF_IN8 9 /* R */ +#define SENSORS_W83627HF_IN0_MIN 11 /* RW */ +#define SENSORS_W83627HF_IN1_MIN 12 /* RW */ +#define SENSORS_W83627HF_IN2_MIN 13 /* RW */ +#define SENSORS_W83627HF_IN3_MIN 14 /* RW */ +#define SENSORS_W83627HF_IN4_MIN 15 /* RW */ +#define SENSORS_W83627HF_IN5_MIN 16 /* RW */ +#define SENSORS_W83627HF_IN6_MIN 17 /* RW */ +#define SENSORS_W83627HF_IN7_MIN 18 /* RW */ +#define SENSORS_W83627HF_IN8_MIN 19 /* RW */ +#define SENSORS_W83627HF_IN0_MAX 21 /* RW */ +#define SENSORS_W83627HF_IN1_MAX 22 /* RW */ +#define SENSORS_W83627HF_IN2_MAX 23 /* RW */ +#define SENSORS_W83627HF_IN3_MAX 24 /* RW */ +#define SENSORS_W83627HF_IN4_MAX 25 /* RW */ +#define SENSORS_W83627HF_IN5_MAX 26 /* RW */ +#define SENSORS_W83627HF_IN6_MAX 27 /* RW */ +#define SENSORS_W83627HF_IN7_MAX 28 /* RW */ +#define SENSORS_W83627HF_IN8_MAX 29 /* RW */ +#define SENSORS_W83627HF_FAN1 31 /* R */ +#define SENSORS_W83627HF_FAN2 32 /* R */ +#define SENSORS_W83627HF_FAN3 33 /* R */ +#define SENSORS_W83627HF_FAN1_MIN 41 /* RW */ +#define SENSORS_W83627HF_FAN2_MIN 42 /* RW */ +#define SENSORS_W83627HF_FAN3_MIN 43 /* RW */ +#define SENSORS_W83627HF_TEMP1 51 /* R */ +#define SENSORS_W83627HF_TEMP1_HYST 52 /* RW */ +#define SENSORS_W83627HF_TEMP1_OVER 53 /* RW */ +#define SENSORS_W83627HF_TEMP2 54 /* R */ +#define SENSORS_W83627HF_TEMP2_HYST 55 /* RW */ +#define SENSORS_W83627HF_TEMP2_OVER 56 /* RW */ +#define SENSORS_W83627HF_TEMP3 57 /* R */ +#define SENSORS_W83627HF_TEMP3_HYST 58 /* RW */ +#define SENSORS_W83627HF_TEMP3_OVER 59 /* RW */ +#define SENSORS_W83627HF_VID 61 /* R */ +#define SENSORS_W83627HF_VRM 62 /* RW */ +#define SENSORS_W83627HF_FAN1_DIV 71 /* RW */ +#define SENSORS_W83627HF_FAN2_DIV 72 /* RW */ +#define SENSORS_W83627HF_FAN3_DIV 73 /* R (yes, really! */ +#define SENSORS_W83627HF_ALARMS 81 /* R */ +#define SENSORS_W83627HF_BEEP_ENABLE 82 /* RW */ +#define SENSORS_W83627HF_BEEPS 83 /* RW */ +#define SENSORS_W83627HF_SENS1 91 /* RW */ +#define SENSORS_W83627HF_SENS2 92 /* RW */ +#define SENSORS_W83627HF_SENS3 93 /* RW */ +#define SENSORS_W83627HF_PWM1 131 /* RW */ +#define SENSORS_W83627HF_PWM2 132 /* RW */ +#define SENSORS_W83627HF_PWMCLK1 231 /* RW */ +#define SENSORS_W83627HF_PWMCLK2 232 /* RW */ + +/* Winbond W836X7THF chips */ + #define SENSORS_W83627THF_PREFIX "w83627thf" -#define SENSORS_W83637HF_PREFIX "w83637hf" #define SENSORS_W83687THF_PREFIX "w83687thf" -#define SENSORS_W83791D_PREFIX "w83791d" +#define SENSORS_W83627THF_IN0 1 /* R */ +#define SENSORS_W83627THF_IN1 2 /* R */ +#define SENSORS_W83627THF_IN2 3 /* R */ +#define SENSORS_W83627THF_IN3 4 /* R */ +#define SENSORS_W83627THF_IN4 5 /* R */ +#define SENSORS_W83627THF_IN5 6 /* R */ +#define SENSORS_W83627THF_IN6 7 /* R */ +#define SENSORS_W83627THF_IN7 8 /* R */ +#define SENSORS_W83627THF_IN8 9 /* R */ +#define SENSORS_W83627THF_IN0_MIN 11 /* RW */ +#define SENSORS_W83627THF_IN1_MIN 12 /* RW */ +#define SENSORS_W83627THF_IN2_MIN 13 /* RW */ +#define SENSORS_W83627THF_IN3_MIN 14 /* RW */ +#define SENSORS_W83627THF_IN4_MIN 15 /* RW */ +#define SENSORS_W83627THF_IN5_MIN 16 /* RW */ +#define SENSORS_W83627THF_IN6_MIN 17 /* RW */ +#define SENSORS_W83627THF_IN7_MIN 18 /* RW */ +#define SENSORS_W83627THF_IN8_MIN 19 /* RW */ +#define SENSORS_W83627THF_IN0_MAX 21 /* RW */ +#define SENSORS_W83627THF_IN1_MAX 22 /* RW */ +#define SENSORS_W83627THF_IN2_MAX 23 /* RW */ +#define SENSORS_W83627THF_IN3_MAX 24 /* RW */ +#define SENSORS_W83627THF_IN4_MAX 25 /* RW */ +#define SENSORS_W83627THF_IN5_MAX 26 /* RW */ +#define SENSORS_W83627THF_IN6_MAX 27 /* RW */ +#define SENSORS_W83627THF_IN7_MAX 28 /* RW */ +#define SENSORS_W83627THF_IN8_MAX 29 /* RW */ +#define SENSORS_W83627THF_FAN1 31 /* R */ +#define SENSORS_W83627THF_FAN2 32 /* R */ +#define SENSORS_W83627THF_FAN3 33 /* R */ +#define SENSORS_W83627THF_FAN1_MIN 41 /* RW */ +#define SENSORS_W83627THF_FAN2_MIN 42 /* RW */ +#define SENSORS_W83627THF_FAN3_MIN 43 /* RW */ +#define SENSORS_W83627THF_TEMP1 51 /* R */ +#define SENSORS_W83627THF_TEMP1_HYST 52 /* RW */ +#define SENSORS_W83627THF_TEMP1_OVER 53 /* RW */ +#define SENSORS_W83627THF_TEMP2 54 /* R */ +#define SENSORS_W83627THF_TEMP2_HYST 55 /* RW */ +#define SENSORS_W83627THF_TEMP2_OVER 56 /* RW */ +#define SENSORS_W83627THF_TEMP3 57 /* R */ +#define SENSORS_W83627THF_TEMP3_HYST 58 /* RW */ +#define SENSORS_W83627THF_TEMP3_OVER 59 /* RW */ +#define SENSORS_W83627THF_VID 61 /* R */ +#define SENSORS_W83627THF_VRM 62 /* RW */ +#define SENSORS_W83627THF_FAN1_DIV 71 /* RW */ +#define SENSORS_W83627THF_FAN2_DIV 72 /* RW */ +#define SENSORS_W83627THF_FAN3_DIV 73 /* R (yes, really! */ +#define SENSORS_W83627THF_ALARMS 81 /* R */ +#define SENSORS_W83627THF_BEEP_ENABLE 82 /* RW */ +#define SENSORS_W83627THF_BEEPS 83 /* RW */ +#define SENSORS_W83627THF_SENS1 91 /* RW */ +#define SENSORS_W83627THF_SENS2 92 /* RW */ +#define SENSORS_W83627THF_SENS3 93 /* RW */ +#define SENSORS_W83627THF_PWM1 131 /* RW */ +#define SENSORS_W83627THF_PWM2 132 /* RW */ +#define SENSORS_W83627THF_PWM3 133 /* RW */ +/* Winbond W83637HF chips */ + +#define SENSORS_W83637HF_PREFIX "w83637hf" + +#define SENSORS_W83637HF_IN0 1 /* R */ +#define SENSORS_W83637HF_IN1 2 /* R */ +#define SENSORS_W83637HF_IN2 3 /* R */ +#define SENSORS_W83637HF_IN3 4 /* R */ +#define SENSORS_W83637HF_IN4 5 /* R */ +#define SENSORS_W83637HF_IN5 6 /* R */ +#define SENSORS_W83637HF_IN6 7 /* R */ +#define SENSORS_W83637HF_IN7 8 /* R */ +#define SENSORS_W83637HF_IN8 9 /* R */ +#define SENSORS_W83637HF_IN0_MIN 11 /* RW */ +#define SENSORS_W83637HF_IN1_MIN 12 /* RW */ +#define SENSORS_W83637HF_IN2_MIN 13 /* RW */ +#define SENSORS_W83637HF_IN3_MIN 14 /* RW */ +#define SENSORS_W83637HF_IN4_MIN 15 /* RW */ +#define SENSORS_W83637HF_IN5_MIN 16 /* RW */ +#define SENSORS_W83637HF_IN6_MIN 17 /* RW */ +#define SENSORS_W83637HF_IN7_MIN 18 /* RW */ +#define SENSORS_W83637HF_IN8_MIN 19 /* RW */ +#define SENSORS_W83637HF_IN0_MAX 21 /* RW */ +#define SENSORS_W83637HF_IN1_MAX 22 /* RW */ +#define SENSORS_W83637HF_IN2_MAX 23 /* RW */ +#define SENSORS_W83637HF_IN3_MAX 24 /* RW */ +#define SENSORS_W83637HF_IN4_MAX 25 /* RW */ +#define SENSORS_W83637HF_IN5_MAX 26 /* RW */ +#define SENSORS_W83637HF_IN6_MAX 27 /* RW */ +#define SENSORS_W83637HF_IN7_MAX 28 /* RW */ +#define SENSORS_W83637HF_IN8_MAX 29 /* RW */ +#define SENSORS_W83637HF_FAN1 31 /* R */ +#define SENSORS_W83637HF_FAN2 32 /* R */ +#define SENSORS_W83637HF_FAN3 33 /* R */ +#define SENSORS_W83637HF_FAN1_MIN 41 /* RW */ +#define SENSORS_W83637HF_FAN2_MIN 42 /* RW */ +#define SENSORS_W83637HF_FAN3_MIN 43 /* RW */ +#define SENSORS_W83637HF_TEMP1 51 /* R */ +#define SENSORS_W83637HF_TEMP1_HYST 52 /* RW */ +#define SENSORS_W83637HF_TEMP1_OVER 53 /* RW */ +#define SENSORS_W83637HF_TEMP2 54 /* R */ +#define SENSORS_W83637HF_TEMP2_HYST 55 /* RW */ +#define SENSORS_W83637HF_TEMP2_OVER 56 /* RW */ +#define SENSORS_W83637HF_TEMP3 57 /* R */ +#define SENSORS_W83637HF_TEMP3_HYST 58 /* RW */ +#define SENSORS_W83637HF_TEMP3_OVER 59 /* RW */ +#define SENSORS_W83637HF_VID 61 /* R */ +#define SENSORS_W83637HF_VRM 62 /* RW */ +#define SENSORS_W83637HF_FAN1_DIV 71 /* RW */ +#define SENSORS_W83637HF_FAN2_DIV 72 /* RW */ +#define SENSORS_W83637HF_FAN3_DIV 73 /* R (yes, really! */ +#define SENSORS_W83637HF_ALARMS 81 /* R */ +#define SENSORS_W83637HF_BEEP_ENABLE 82 /* RW */ +#define SENSORS_W83637HF_BEEPS 83 /* RW */ +#define SENSORS_W83637HF_SENS1 91 /* RW */ +#define SENSORS_W83637HF_SENS2 92 /* RW */ +#define SENSORS_W83637HF_SENS3 93 /* RW */ +#define SENSORS_W83637HF_PWM1 131 /* RW */ +#define SENSORS_W83637HF_PWM2 132 /* RW */ +#define SENSORS_W83637HF_PWM3 133 /* RW */ +#define SENSORS_W83637HF_PWMCLK1 231 /* RW */ +#define SENSORS_W83637HF_PWMCLK2 232 /* RW */ +#define SENSORS_W83637HF_PWMCLK3 233 /* RW */ + +/* Winbond W83697HF chips */ +/* Same as w83782d but no in1, fan3, sensor3, vrm and vid */ + +#define SENSORS_W83697HF_PREFIX "w83697hf" + +#define SENSORS_W83697HF_IN0 1 /* R */ +#define SENSORS_W83697HF_IN2 3 /* R */ +#define SENSORS_W83697HF_IN3 4 /* R */ +#define SENSORS_W83697HF_IN4 5 /* R */ +#define SENSORS_W83697HF_IN5 6 /* R */ +#define SENSORS_W83697HF_IN6 7 /* R */ +#define SENSORS_W83697HF_IN7 8 /* R */ +#define SENSORS_W83697HF_IN8 9 /* R */ +#define SENSORS_W83697HF_IN0_MIN 11 /* RW */ +#define SENSORS_W83697HF_IN2_MIN 13 /* RW */ +#define SENSORS_W83697HF_IN3_MIN 14 /* RW */ +#define SENSORS_W83697HF_IN4_MIN 15 /* RW */ +#define SENSORS_W83697HF_IN5_MIN 16 /* RW */ +#define SENSORS_W83697HF_IN6_MIN 17 /* RW */ +#define SENSORS_W83697HF_IN7_MIN 18 /* RW */ +#define SENSORS_W83697HF_IN8_MIN 19 /* RW */ +#define SENSORS_W83697HF_IN0_MAX 21 /* RW */ +#define SENSORS_W83697HF_IN2_MAX 23 /* RW */ +#define SENSORS_W83697HF_IN3_MAX 24 /* RW */ +#define SENSORS_W83697HF_IN4_MAX 25 /* RW */ +#define SENSORS_W83697HF_IN5_MAX 26 /* RW */ +#define SENSORS_W83697HF_IN6_MAX 27 /* RW */ +#define SENSORS_W83697HF_IN7_MAX 28 /* RW */ +#define SENSORS_W83697HF_IN8_MAX 29 /* RW */ +#define SENSORS_W83697HF_FAN1 31 /* R */ +#define SENSORS_W83697HF_FAN2 32 /* R */ +#define SENSORS_W83697HF_FAN1_MIN 41 /* RW */ +#define SENSORS_W83697HF_FAN2_MIN 42 /* RW */ +#define SENSORS_W83697HF_TEMP1 51 /* R */ +#define SENSORS_W83697HF_TEMP1_HYST 52 /* RW */ +#define SENSORS_W83697HF_TEMP1_OVER 53 /* RW */ +#define SENSORS_W83697HF_TEMP2 54 /* R */ +#define SENSORS_W83697HF_TEMP2_HYST 55 /* RW */ +#define SENSORS_W83697HF_TEMP2_OVER 56 /* RW */ +#define SENSORS_W83697HF_TEMP3 57 /* R */ +#define SENSORS_W83697HF_TEMP3_HYST 58 /* RW */ +#define SENSORS_W83697HF_TEMP3_OVER 59 /* RW */ +#define SENSORS_W83697HF_FAN1_DIV 71 /* RW */ +#define SENSORS_W83697HF_FAN2_DIV 72 /* RW */ +#define SENSORS_W83697HF_ALARMS 81 /* R */ +#define SENSORS_W83697HF_BEEP_ENABLE 82 /* RW */ +#define SENSORS_W83697HF_BEEPS 83 /* RW */ +#define SENSORS_W83697HF_SENS1 91 /* RW */ +#define SENSORS_W83697HF_SENS2 92 /* RW */ +#define SENSORS_W83697HF_PWM1 131 /* RW */ +#define SENSORS_W83697HF_PWM2 132 /* RW */ +#define SENSORS_W83697HF_PWMCLK1 231 /* RW */ +#define SENSORS_W83697HF_PWMCLK2 232 /* RW */ + +/* Winbond W83791D chips */ +#define SENSORS_W83791D_PREFIX "w83791d" #define SENSORS_W83791D_IN0 1 /* R */ #define SENSORS_W83791D_IN1 2 /* R */ @@ -650,11 +881,18 @@ #define SENSORS_W83791D_SENS2 92 /* RW */ #define SENSORS_W83791D_SENS3 93 /* RW */ - +#define SENSORS_W83791D_PWM1 131 /* RW */ +#define SENSORS_W83791D_PWM2 132 /* RW */ +#define SENSORS_W83791D_PWM3 133 /* RW */ +#define SENSORS_W83791D_PWM4 134 /* RW */ +#define SENSORS_W83791D_PWMCLK1 231 /* RW */ +#define SENSORS_W83791D_PWMCLK2 232 /* RW */ +#define SENSORS_W83791D_PWMCLK3 233 /* RW */ +#define SENSORS_W83791D_PWMCLK4 234 /* RW */ /* Winbond W83792AD/D chip */ -#define SENSORS_W83792D_PREFIX "w83792d" +#define SENSORS_W83792D_PREFIX "w83792d" #define SENSORS_W83792D_IN0 1 /* R */ #define SENSORS_W83792D_IN1 2 /* R */ @@ -727,10 +965,68 @@ #define SENSORS_W83792D_FAN6_DIV 76 /* RW */ #define SENSORS_W83792D_FAN7_DIV 77 /* RW */ - +/* Asus AS99127F - Winbond W83782D clone - No PWM */ #define SENSORS_AS99127F_PREFIX "as99127f" +#define SENSORS_AS99127F_IN0 1 /* R */ +#define SENSORS_AS99127F_IN1 2 /* R */ +#define SENSORS_AS99127F_IN2 3 /* R */ +#define SENSORS_AS99127F_IN3 4 /* R */ +#define SENSORS_AS99127F_IN4 5 /* R */ +#define SENSORS_AS99127F_IN5 6 /* R */ +#define SENSORS_AS99127F_IN6 7 /* R */ +#define SENSORS_AS99127F_IN7 8 /* R */ +#define SENSORS_AS99127F_IN8 9 /* R */ +#define SENSORS_AS99127F_IN0_MIN 11 /* RW */ +#define SENSORS_AS99127F_IN1_MIN 12 /* RW */ +#define SENSORS_AS99127F_IN2_MIN 13 /* RW */ +#define SENSORS_AS99127F_IN3_MIN 14 /* RW */ +#define SENSORS_AS99127F_IN4_MIN 15 /* RW */ +#define SENSORS_AS99127F_IN5_MIN 16 /* RW */ +#define SENSORS_AS99127F_IN6_MIN 17 /* RW */ +#define SENSORS_AS99127F_IN7_MIN 18 /* RW */ +#define SENSORS_AS99127F_IN8_MIN 19 /* RW */ +#define SENSORS_AS99127F_IN0_MAX 21 /* RW */ +#define SENSORS_AS99127F_IN1_MAX 22 /* RW */ +#define SENSORS_AS99127F_IN2_MAX 23 /* RW */ +#define SENSORS_AS99127F_IN3_MAX 24 /* RW */ +#define SENSORS_AS99127F_IN4_MAX 25 /* RW */ +#define SENSORS_AS99127F_IN5_MAX 26 /* RW */ +#define SENSORS_AS99127F_IN6_MAX 27 /* RW */ +#define SENSORS_AS99127F_IN7_MAX 28 /* RW */ +#define SENSORS_AS99127F_IN8_MAX 29 /* RW */ +#define SENSORS_AS99127F_FAN1 31 /* R */ +#define SENSORS_AS99127F_FAN2 32 /* R */ +#define SENSORS_AS99127F_FAN3 33 /* R */ +#define SENSORS_AS99127F_FAN1_MIN 41 /* RW */ +#define SENSORS_AS99127F_FAN2_MIN 42 /* RW */ +#define SENSORS_AS99127F_FAN3_MIN 43 /* RW */ +#define SENSORS_AS99127F_TEMP1 51 /* R */ +#define SENSORS_AS99127F_TEMP1_HYST 52 /* RW */ +#define SENSORS_AS99127F_TEMP1_OVER 53 /* RW */ +#define SENSORS_AS99127F_TEMP2 54 /* R */ +#define SENSORS_AS99127F_TEMP2_HYST 55 /* RW */ +#define SENSORS_AS99127F_TEMP2_OVER 56 /* RW */ +#define SENSORS_AS99127F_TEMP3 57 /* R */ +#define SENSORS_AS99127F_TEMP3_HYST 58 /* RW */ +#define SENSORS_AS99127F_TEMP3_OVER 59 /* RW */ +#define SENSORS_AS99127F_VID 61 /* R */ +#define SENSORS_AS99127F_VRM 62 /* RW */ +#define SENSORS_AS99127F_FAN1_DIV 71 /* RW */ +#define SENSORS_AS99127F_FAN2_DIV 72 /* RW */ +#define SENSORS_AS99127F_FAN3_DIV 73 /* R (yes, really! */ +#define SENSORS_AS99127F_ALARMS 81 /* R */ +#define SENSORS_AS99127F_BEEP_ENABLE 82 /* RW */ +#define SENSORS_AS99127F_BEEPS 83 /* RW */ +#define SENSORS_AS99127F_SENS1 91 /* RW */ +#define SENSORS_AS99127F_SENS2 92 /* RW */ +#define SENSORS_AS99127F_SENS3 93 /* RW */ + +/* Winbond W83782D chips */ + +#define SENSORS_W83782D_PREFIX "w83782d" + #define SENSORS_W83782D_IN0 1 /* R */ #define SENSORS_W83782D_IN1 2 /* R */ #define SENSORS_W83782D_IN2 3 /* R */ @@ -784,13 +1080,18 @@ #define SENSORS_W83782D_SENS1 91 /* RW */ #define SENSORS_W83782D_SENS2 92 /* RW */ #define SENSORS_W83782D_SENS3 93 /* RW */ - +#define SENSORS_W83782D_PWM1 131 /* RW */ +#define SENSORS_W83782D_PWM2 132 /* RW */ +#define SENSORS_W83782D_PWM3 133 /* RW (only for i2c) */ +#define SENSORS_W83782D_PWM4 134 /* RW (only for i2c) */ +#define SENSORS_W83782D_PWMCLK1 231 /* RW */ +#define SENSORS_W83782D_PWMCLK2 232 /* RW */ +#define SENSORS_W83782D_PWMCLK3 233 /* RW (only for i2c) */ +#define SENSORS_W83782D_PWMCLK4 234 /* RW (only for i2c) */ /* Winbond W83783S chips */ -/* Cheat on 697HF for now - no separate #defines */ #define SENSORS_W83783S_PREFIX "w83783s" -#define SENSORS_W83697HF_PREFIX "w83697hf" #define SENSORS_W83783S_IN0 1 /* R */ #define SENSORS_W83783S_IN1 2 /* R */ @@ -835,6 +1136,10 @@ #define SENSORS_W83783S_BEEPS 83 /* RW */ #define SENSORS_W83783S_SENS1 91 /* RW */ #define SENSORS_W83783S_SENS2 92 /* RW */ +#define SENSORS_W83783S_PWM1 131 /* RW */ +#define SENSORS_W83783S_PWM2 132 /* RW */ +#define SENSORS_W83783S_PWMCLK1 231 /* RW */ +#define SENSORS_W83783S_PWMCLK2 232 /* RW */ /* W83L785TS-S chips */ @@ -849,11 +1154,56 @@ #define SENSORS_W83627EHF_PREFIX "w83627ehf" +#define SENSORS_W83627EHF_IN0 1 /* R */ +#define SENSORS_W83627EHF_IN1 2 /* R */ +#define SENSORS_W83627EHF_IN2 3 /* R */ +#define SENSORS_W83627EHF_IN3 4 /* R */ +#define SENSORS_W83627EHF_IN4 5 /* R */ +#define SENSORS_W83627EHF_IN5 6 /* R */ +#define SENSORS_W83627EHF_IN6 7 /* R */ +#define SENSORS_W83627EHF_IN7 8 /* R */ +#define SENSORS_W83627EHF_IN8 9 /* R */ +#define SENSORS_W83627EHF_IN9 10 /* R */ +#define SENSORS_W83627EHF_IN0_ALARM 111 /* R */ +#define SENSORS_W83627EHF_IN1_ALARM 112 /* R */ +#define SENSORS_W83627EHF_IN2_ALARM 113 /* R */ +#define SENSORS_W83627EHF_IN3_ALARM 114 /* R */ +#define SENSORS_W83627EHF_IN4_ALARM 115 /* R */ +#define SENSORS_W83627EHF_IN5_ALARM 116 /* R */ +#define SENSORS_W83627EHF_IN6_ALARM 117 /* R */ +#define SENSORS_W83627EHF_IN7_ALARM 118 /* R */ +#define SENSORS_W83627EHF_IN8_ALARM 119 /* R */ +#define SENSORS_W83627EHF_IN9_ALARM 120 /* R */ +#define SENSORS_W83627EHF_IN0_MIN 11 /* RW */ +#define SENSORS_W83627EHF_IN1_MIN 12 /* RW */ +#define SENSORS_W83627EHF_IN2_MIN 13 /* RW */ +#define SENSORS_W83627EHF_IN3_MIN 14 /* RW */ +#define SENSORS_W83627EHF_IN4_MIN 15 /* RW */ +#define SENSORS_W83627EHF_IN5_MIN 16 /* RW */ +#define SENSORS_W83627EHF_IN6_MIN 17 /* RW */ +#define SENSORS_W83627EHF_IN7_MIN 18 /* RW */ +#define SENSORS_W83627EHF_IN8_MIN 19 /* RW */ +#define SENSORS_W83627EHF_IN9_MIN 20 /* RW */ +#define SENSORS_W83627EHF_IN0_MAX 21 /* RW */ +#define SENSORS_W83627EHF_IN1_MAX 22 /* RW */ +#define SENSORS_W83627EHF_IN2_MAX 23 /* RW */ +#define SENSORS_W83627EHF_IN3_MAX 24 /* RW */ +#define SENSORS_W83627EHF_IN4_MAX 25 /* RW */ +#define SENSORS_W83627EHF_IN5_MAX 26 /* RW */ +#define SENSORS_W83627EHF_IN6_MAX 27 /* RW */ +#define SENSORS_W83627EHF_IN7_MAX 28 /* RW */ +#define SENSORS_W83627EHF_IN8_MAX 29 /* RW */ +#define SENSORS_W83627EHF_IN9_MAX 30 /* RW */ #define SENSORS_W83627EHF_FAN1 31 /* R */ #define SENSORS_W83627EHF_FAN2 32 /* R */ #define SENSORS_W83627EHF_FAN3 33 /* R */ #define SENSORS_W83627EHF_FAN4 34 /* R */ #define SENSORS_W83627EHF_FAN5 35 /* R */ +#define SENSORS_W83627EHF_FAN1_ALARM 131 /* R */ +#define SENSORS_W83627EHF_FAN2_ALARM 132 /* R */ +#define SENSORS_W83627EHF_FAN3_ALARM 133 /* R */ +#define SENSORS_W83627EHF_FAN4_ALARM 134 /* R */ +#define SENSORS_W83627EHF_FAN5_ALARM 135 /* R */ #define SENSORS_W83627EHF_FAN1_MIN 41 /* RW */ #define SENSORS_W83627EHF_FAN2_MIN 42 /* RW */ #define SENSORS_W83627EHF_FAN3_MIN 43 /* RW */ @@ -867,6 +1217,9 @@ #define SENSORS_W83627EHF_TEMP1 61 /* R */ #define SENSORS_W83627EHF_TEMP2 62 /* R */ #define SENSORS_W83627EHF_TEMP3 63 /* R */ +#define SENSORS_W83627EHF_TEMP1_ALARM 161 /* R */ +#define SENSORS_W83627EHF_TEMP2_ALARM 162 /* R */ +#define SENSORS_W83627EHF_TEMP3_ALARM 163 /* R */ #define SENSORS_W83627EHF_TEMP1_OVER 71 /* RW */ #define SENSORS_W83627EHF_TEMP2_OVER 72 /* RW */ #define SENSORS_W83627EHF_TEMP3_OVER 73 /* RW */ @@ -1747,6 +2100,21 @@ #define SENSORS_SMSC47M1_FAN2_DIV 76 /* RW */ #define SENSORS_SMSC47M1_ALARMS 81 /* R */ +#define SENSORS_SMSC47M192_PREFIX "smsc47m192" + +#define SENSORS_SMSC47M192_IN(n) (1 + (n)) /* R */ +#define SENSORS_SMSC47M192_IN_MIN(n) (21 + (n)) /* RW */ +#define SENSORS_SMSC47M192_IN_MAX(n) (41 + (n)) /* RW */ +#define SENSORS_SMSC47M192_IN_ALARM(n) (61 + (n)) /* R */ +#define SENSORS_SMSC47M192_TEMP(n) (100 + (n)) /* R */ +#define SENSORS_SMSC47M192_TEMP_MAX(n) (120 + (n)) /* RW */ +#define SENSORS_SMSC47M192_TEMP_MIN(n) (140 + (n)) /* RW */ +#define SENSORS_SMSC47M192_TEMP_OFFSET(n) (160 + (n)) /* RW */ +#define SENSORS_SMSC47M192_TEMP_ALARM(n) (180 + (n)) /* R */ +#define SENSORS_SMSC47M192_TEMP_FAULT(n) (200 + (n)) /* R */ +#define SENSORS_SMSC47M192_VID 301 /* R */ +#define SENSORS_SMSC47M192_VRM 302 /* RW */ + #define SENSORS_PC87360_PREFIX "pc87360" #define SENSORS_PC87363_PREFIX "pc87363" #define SENSORS_PC87364_PREFIX "pc87364" @@ -2105,4 +2473,23 @@ #define SENSORS_F71805F_ALARMS_FAN 201 #define SENSORS_F71805F_ALARMS_TEMP 202 +/* Abit uGuru chip */ +#define SENSORS_ABITUGURU_PREFIX "abituguru" + +/* in n from 0 to 10 */ +#define SENSORS_ABITUGURU_IN(n) (0x01 + (n)) /* R */ +#define SENSORS_ABITUGURU_IN_MIN(n) (0x11 + (n)) /* RW */ +#define SENSORS_ABITUGURU_IN_MIN_ALARM(n) (0x21 + (n)) /* R */ +#define SENSORS_ABITUGURU_IN_MAX(n) (0x31 + (n)) /* RW */ +#define SENSORS_ABITUGURU_IN_MAX_ALARM(n) (0x41 + (n)) /* R */ +/* temp n from 1 to 7 */ +#define SENSORS_ABITUGURU_TEMP(n) (0x50 + (n)) /* R */ +#define SENSORS_ABITUGURU_TEMP_ALARM(n) (0x60 + (n)) /* R */ +#define SENSORS_ABITUGURU_TEMP_MAX(n) (0x70 + (n)) /* RW */ +#define SENSORS_ABITUGURU_TEMP_CRIT(n) (0x80 + (n)) /* RW */ +/* fan n from 1 to 6 */ +#define SENSORS_ABITUGURU_FAN(n) (0x90 + (n)) /* R */ +#define SENSORS_ABITUGURU_FAN_ALARM(n) (0xA0 + (n)) /* R */ +#define SENSORS_ABITUGURU_FAN_MIN(n) (0xB0 + (n)) /* RW */ + #endif /* def LIB_SENSORS_CHIPS_H */