diff --git a/lib/chips.c b/lib/chips.c index 3696ad3e..be0bc8ae 100644 --- a/lib/chips.c +++ b/lib/chips.c @@ -665,6 +665,245 @@ static sensors_chip_feature w83781d_features[] = { 0 } }; +static sensors_chip_feature w83782d_features[] = + { + { SENSORS_W83782D_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_IN0, VALUE(3), 2 }, + { SENSORS_W83782D_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_IN1, VALUE(3), 2 }, + { SENSORS_W83782D_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_IN2, VALUE(3), 2 }, + { SENSORS_W83782D_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_IN3, VALUE(3), 2 }, + { SENSORS_W83782D_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_IN4, VALUE(3), 2 }, + { SENSORS_W83782D_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_IN5, VALUE(3), 2 }, + { SENSORS_W83782D_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_IN6, VALUE(3), 2 }, + { SENSORS_W83782D_IN7, "in7", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_IN7, VALUE(3), 2 }, + { SENSORS_W83782D_IN8, "in8", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_IN8, VALUE(3), 2 }, + { SENSORS_W83782D_IN0_MIN, "in0_min", SENSORS_W83782D_IN0, + SENSORS_W83782D_IN0, SENSORS_MODE_RW, + W83781D_SYSCTL_IN0, VALUE(1), 2 }, + { SENSORS_W83782D_IN1_MIN, "in1_min", SENSORS_W83782D_IN1, + SENSORS_W83782D_IN1, SENSORS_MODE_RW, + W83781D_SYSCTL_IN1, VALUE(1), 2 }, + { SENSORS_W83782D_IN2_MIN, "in2_min", SENSORS_W83782D_IN2, + SENSORS_W83782D_IN2, SENSORS_MODE_RW, + W83781D_SYSCTL_IN2, VALUE(1), 2 }, + { SENSORS_W83782D_IN3_MIN, "in3_min", SENSORS_W83782D_IN3, + SENSORS_W83782D_IN3, SENSORS_MODE_RW, + W83781D_SYSCTL_IN3, VALUE(1), 2 }, + { SENSORS_W83782D_IN4_MIN, "in4_min", SENSORS_W83782D_IN4, + SENSORS_W83782D_IN4, SENSORS_MODE_RW, + W83781D_SYSCTL_IN4, VALUE(1), 2 }, + { SENSORS_W83782D_IN5_MIN, "in5_min", SENSORS_W83782D_IN5, + SENSORS_W83782D_IN5, SENSORS_MODE_RW, + W83781D_SYSCTL_IN5, VALUE(1), 2 }, + { SENSORS_W83782D_IN6_MIN, "in6_min", SENSORS_W83782D_IN6, + SENSORS_W83782D_IN6, SENSORS_MODE_RW, + W83781D_SYSCTL_IN6, VALUE(1), 2 }, + { SENSORS_W83782D_IN7_MIN, "in7_min", SENSORS_W83782D_IN7, + SENSORS_W83782D_IN7, SENSORS_MODE_RW, + W83781D_SYSCTL_IN7, VALUE(1), 2 }, + { SENSORS_W83782D_IN8_MIN, "in8_min", SENSORS_W83782D_IN8, + SENSORS_W83782D_IN8, SENSORS_MODE_RW, + W83781D_SYSCTL_IN8, VALUE(1), 2 }, + { SENSORS_W83782D_IN0_MAX, "in0_max", SENSORS_W83782D_IN0, + SENSORS_W83782D_IN0, SENSORS_MODE_RW, + W83781D_SYSCTL_IN0, VALUE(2), 2 }, + { SENSORS_W83782D_IN1_MAX, "in1_max", SENSORS_W83782D_IN1, + SENSORS_W83782D_IN1, SENSORS_MODE_RW, + W83781D_SYSCTL_IN1, VALUE(2), 2 }, + { SENSORS_W83782D_IN2_MAX, "in2_max", SENSORS_W83782D_IN2, + SENSORS_W83782D_IN2, SENSORS_MODE_RW, + W83781D_SYSCTL_IN2, VALUE(2), 2 }, + { SENSORS_W83782D_IN3_MAX, "in3_max", SENSORS_W83782D_IN3, + SENSORS_W83782D_IN3, SENSORS_MODE_RW, + W83781D_SYSCTL_IN3, VALUE(2), 2 }, + { SENSORS_W83782D_IN4_MAX, "in4_max", SENSORS_W83782D_IN4, + SENSORS_W83782D_IN4, SENSORS_MODE_RW, + W83781D_SYSCTL_IN4, VALUE(2), 2 }, + { SENSORS_W83782D_IN5_MAX, "in5_max", SENSORS_W83782D_IN5, + SENSORS_W83782D_IN5, SENSORS_MODE_RW, + W83781D_SYSCTL_IN5, VALUE(2), 2 }, + { SENSORS_W83782D_IN6_MAX, "in6_max", SENSORS_W83782D_IN6, + SENSORS_W83782D_IN6, SENSORS_MODE_RW, + W83781D_SYSCTL_IN6, VALUE(2), 2 }, + { SENSORS_W83782D_IN7_MAX, "in7_max", SENSORS_W83782D_IN7, + SENSORS_W83782D_IN7, SENSORS_MODE_RW, + W83781D_SYSCTL_IN7, VALUE(2), 2 }, + { SENSORS_W83782D_IN8_MAX, "in8_max", SENSORS_W83782D_IN8, + SENSORS_W83782D_IN8, SENSORS_MODE_RW, + W83781D_SYSCTL_IN8, VALUE(2), 2 }, + { SENSORS_W83782D_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_FAN1, VALUE(2), 0 }, + { SENSORS_W83782D_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_FAN2, VALUE(2), 0 }, + { SENSORS_W83782D_FAN1_MIN, "fan1_min", SENSORS_W83782D_FAN1, + SENSORS_NO_MAPPING, SENSORS_MODE_RW, + W83781D_SYSCTL_FAN1, VALUE(1), 0 }, + { SENSORS_W83782D_FAN2_MIN, "fan2_min", SENSORS_W83782D_FAN2, + SENSORS_NO_MAPPING, SENSORS_MODE_RW, + W83781D_SYSCTL_FAN2, VALUE(1), 0 }, + { SENSORS_W83782D_TEMP1, "temp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_TEMP1, VALUE(3), 1 }, + { SENSORS_W83782D_TEMP1_HYST, "temp1_hyst", SENSORS_W83782D_TEMP1, + SENSORS_W83782D_TEMP1, SENSORS_MODE_RW, + W83781D_SYSCTL_TEMP1, VALUE(2), 1 }, + { SENSORS_W83782D_TEMP1_OVER, "temp1_over", SENSORS_W83782D_TEMP1, + SENSORS_W83782D_TEMP1, SENSORS_MODE_RW, + W83781D_SYSCTL_TEMP1, VALUE(1), 1 }, + { SENSORS_W83782D_TEMP2, "temp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_TEMP2, VALUE(3), 1 }, + { SENSORS_W83782D_TEMP2_HYST, "temp2_hyst", SENSORS_W83782D_TEMP2, + SENSORS_W83782D_TEMP2, SENSORS_MODE_RW, + W83781D_SYSCTL_TEMP2, VALUE(2), 1 }, + { SENSORS_W83782D_TEMP2_OVER, "temp2_over", SENSORS_W83782D_TEMP2, + SENSORS_W83782D_TEMP2, SENSORS_MODE_RW, + W83781D_SYSCTL_TEMP2, VALUE(1), 1 }, + { SENSORS_W83782D_TEMP3, "temp3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_TEMP3, VALUE(3), 1 }, + { SENSORS_W83782D_TEMP3_HYST, "temp3_hyst", SENSORS_W83782D_TEMP3, + SENSORS_W83782D_TEMP3, SENSORS_MODE_RW, + W83781D_SYSCTL_TEMP3, VALUE(2), 1 }, + { SENSORS_W83782D_TEMP3_OVER, "temp3_over", SENSORS_W83782D_TEMP3, + SENSORS_W83782D_TEMP3, SENSORS_MODE_RW, + W83781D_SYSCTL_TEMP3, VALUE(1), 1 }, + + { SENSORS_W83782D_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_VID, VALUE(1), 2 }, + { SENSORS_W83782D_FAN1_DIV, "fan1_div", SENSORS_W83782D_FAN1, + SENSORS_NO_MAPPING, SENSORS_MODE_RW, + W83781D_SYSCTL_FAN_DIV, VALUE(1), 0 }, + { SENSORS_W83782D_FAN2_DIV, "fan2_div", SENSORS_W83782D_FAN2, + SENSORS_NO_MAPPING, SENSORS_MODE_RW, + W83781D_SYSCTL_FAN_DIV, VALUE(2), 0 }, + { SENSORS_W83782D_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_ALARMS, VALUE(1), 0 }, + { SENSORS_W83782D_BEEP_ENABLE, "beep_enable", SENSORS_W83782D_ALARMS, + SENSORS_NO_MAPPING, SENSORS_MODE_RW, + W83781D_SYSCTL_BEEP, VALUE(1), 0 }, + { SENSORS_W83782D_BEEPS, "beeps", SENSORS_W83782D_ALARMS, + SENSORS_W83782D_ALARMS, SENSORS_MODE_RW, + W83781D_SYSCTL_BEEP, VALUE(2), 0 }, + { 0 } + }; + +static sensors_chip_feature w83783s_features[] = + { + { SENSORS_W83783S_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_IN0, VALUE(3), 2 }, + { SENSORS_W83783S_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_IN1, VALUE(3), 2 }, + { SENSORS_W83783S_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_IN2, VALUE(3), 2 }, + { SENSORS_W83783S_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_IN3, VALUE(3), 2 }, + { SENSORS_W83783S_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_IN4, VALUE(3), 2 }, + { SENSORS_W83783S_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_IN5, VALUE(3), 2 }, + { SENSORS_W83783S_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_IN6, VALUE(3), 2 }, + { SENSORS_W83783S_IN0_MIN, "in0_min", SENSORS_W83783S_IN0, + SENSORS_W83783S_IN0, SENSORS_MODE_RW, + W83781D_SYSCTL_IN0, VALUE(1), 2 }, + { SENSORS_W83783S_IN1_MIN, "in1_min", SENSORS_W83783S_IN1, + SENSORS_W83783S_IN1, SENSORS_MODE_RW, + W83781D_SYSCTL_IN1, VALUE(1), 2 }, + { SENSORS_W83783S_IN2_MIN, "in2_min", SENSORS_W83783S_IN2, + SENSORS_W83783S_IN2, SENSORS_MODE_RW, + W83781D_SYSCTL_IN2, VALUE(1), 2 }, + { SENSORS_W83783S_IN3_MIN, "in3_min", SENSORS_W83783S_IN3, + SENSORS_W83783S_IN3, SENSORS_MODE_RW, + W83781D_SYSCTL_IN3, VALUE(1), 2 }, + { SENSORS_W83783S_IN4_MIN, "in4_min", SENSORS_W83783S_IN4, + SENSORS_W83783S_IN4, SENSORS_MODE_RW, + W83781D_SYSCTL_IN4, VALUE(1), 2 }, + { SENSORS_W83783S_IN5_MIN, "in5_min", SENSORS_W83783S_IN5, + SENSORS_W83783S_IN5, SENSORS_MODE_RW, + W83781D_SYSCTL_IN5, VALUE(1), 2 }, + { SENSORS_W83783S_IN6_MIN, "in6_min", SENSORS_W83783S_IN6, + SENSORS_W83783S_IN6, SENSORS_MODE_RW, + W83781D_SYSCTL_IN6, VALUE(1), 2 }, + { SENSORS_W83783S_IN0_MAX, "in0_max", SENSORS_W83783S_IN0, + SENSORS_W83783S_IN0, SENSORS_MODE_RW, + W83781D_SYSCTL_IN0, VALUE(2), 2 }, + { SENSORS_W83783S_IN1_MAX, "in1_max", SENSORS_W83783S_IN1, + SENSORS_W83783S_IN1, SENSORS_MODE_RW, + W83781D_SYSCTL_IN1, VALUE(2), 2 }, + { SENSORS_W83783S_IN2_MAX, "in2_max", SENSORS_W83783S_IN2, + SENSORS_W83783S_IN2, SENSORS_MODE_RW, + W83781D_SYSCTL_IN2, VALUE(2), 2 }, + { SENSORS_W83783S_IN3_MAX, "in3_max", SENSORS_W83783S_IN3, + SENSORS_W83783S_IN3, SENSORS_MODE_RW, + W83781D_SYSCTL_IN3, VALUE(2), 2 }, + { SENSORS_W83783S_IN4_MAX, "in4_max", SENSORS_W83783S_IN4, + SENSORS_W83783S_IN4, SENSORS_MODE_RW, + W83781D_SYSCTL_IN4, VALUE(2), 2 }, + { SENSORS_W83783S_IN5_MAX, "in5_max", SENSORS_W83783S_IN5, + SENSORS_W83783S_IN5, SENSORS_MODE_RW, + W83781D_SYSCTL_IN5, VALUE(2), 2 }, + { SENSORS_W83783S_IN6_MAX, "in6_max", SENSORS_W83783S_IN6, + SENSORS_W83783S_IN6, SENSORS_MODE_RW, + W83781D_SYSCTL_IN6, VALUE(2), 2 }, + { SENSORS_W83783S_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_FAN1, VALUE(2), 0 }, + { SENSORS_W83783S_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_FAN2, VALUE(2), 0 }, + { SENSORS_W83783S_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_FAN3, VALUE(2), 0 }, + { SENSORS_W83783S_FAN1_MIN, "fan1_min", SENSORS_W83783S_FAN1, + SENSORS_NO_MAPPING, SENSORS_MODE_RW, + W83781D_SYSCTL_FAN1, VALUE(1), 0 }, + { SENSORS_W83783S_FAN2_MIN, "fan2_min", SENSORS_W83783S_FAN2, + SENSORS_NO_MAPPING, SENSORS_MODE_RW, + W83781D_SYSCTL_FAN2, VALUE(1), 0 }, + { SENSORS_W83783S_FAN3_MIN, "fan3_min", SENSORS_W83783S_FAN3, + SENSORS_NO_MAPPING, SENSORS_MODE_RW, + W83781D_SYSCTL_FAN3, VALUE(1), 0 }, + { SENSORS_W83783S_TEMP1, "temp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_TEMP1, VALUE(3), 1 }, + { SENSORS_W83783S_TEMP1_HYST, "temp1_hyst", SENSORS_W83783S_TEMP1, + SENSORS_W83783S_TEMP1, SENSORS_MODE_RW, + W83781D_SYSCTL_TEMP1, VALUE(2), 1 }, + { SENSORS_W83783S_TEMP1_OVER, "temp1_over", SENSORS_W83783S_TEMP1, + SENSORS_W83783S_TEMP1, SENSORS_MODE_RW, + W83781D_SYSCTL_TEMP1, VALUE(1), 1 }, + { SENSORS_W83783S_TEMP2, "temp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_TEMP2, VALUE(3), 1 }, + { SENSORS_W83783S_TEMP2_HYST, "temp2_hyst", SENSORS_W83783S_TEMP2, + SENSORS_W83783S_TEMP2, SENSORS_MODE_RW, + W83781D_SYSCTL_TEMP2, VALUE(2), 1 }, + { SENSORS_W83783S_TEMP2_OVER, "temp2_over", SENSORS_W83783S_TEMP2, + SENSORS_W83783S_TEMP2, SENSORS_MODE_RW, + W83781D_SYSCTL_TEMP2, VALUE(1), 1 }, + { SENSORS_W83783S_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_VID, VALUE(1), 2 }, + { SENSORS_W83783S_FAN1_DIV, "fan1_div", SENSORS_W83783S_FAN1, + SENSORS_NO_MAPPING, SENSORS_MODE_RW, + W83781D_SYSCTL_FAN_DIV, VALUE(1), 0 }, + { SENSORS_W83783S_FAN2_DIV, "fan2_div", SENSORS_W83783S_FAN2, + SENSORS_NO_MAPPING, SENSORS_MODE_RW, + W83781D_SYSCTL_FAN_DIV, VALUE(2), 0 }, + { SENSORS_W83783S_FAN3_DIV, "fan3_div", SENSORS_W83783S_FAN3, + SENSORS_NO_MAPPING, SENSORS_MODE_R, + W83781D_SYSCTL_FAN_DIV, VALUE(3), 0 }, + { SENSORS_W83783S_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, W83781D_SYSCTL_ALARMS, VALUE(1), 0 }, + { SENSORS_W83783S_BEEP_ENABLE, "beep_enable", SENSORS_W83783S_ALARMS, + SENSORS_NO_MAPPING, SENSORS_MODE_RW, + W83781D_SYSCTL_BEEP, VALUE(1), 0 }, + { SENSORS_W83783S_BEEPS, "beeps", SENSORS_W83783S_ALARMS, + SENSORS_W83783S_ALARMS, SENSORS_MODE_RW, + W83781D_SYSCTL_BEEP, VALUE(2), 0 }, + { 0 } + }; + static sensors_chip_feature adm9240_features[] = { { SENSORS_ADM9240_IN0, "2.5V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, @@ -840,6 +1079,8 @@ sensors_chip_features sensors_chip_features_list[] = { SENSORS_GL518R80_PREFIX, gl518r80_features }, { SENSORS_LM80_PREFIX, lm80_features }, { SENSORS_W83781D_PREFIX, w83781d_features }, + { SENSORS_W83782D_PREFIX, w83782d_features }, + { SENSORS_W83783S_PREFIX, w83783s_features }, { SENSORS_ADM9240_PREFIX, adm9240_features }, { SENSORS_ADM1021_PREFIX, adm1021_features }, { SENSORS_SIS5595_PREFIX, sis5595_features }, diff --git a/lib/chips.h b/lib/chips.h index 15acc1c1..1399bfb4 100644 --- a/lib/chips.h +++ b/lib/chips.h @@ -330,6 +330,104 @@ #define SENSORS_W83781D_BEEPS 83 /* 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 */ +#define SENSORS_W83782D_IN3 4 /* R */ +#define SENSORS_W83782D_IN4 5 /* R */ +#define SENSORS_W83782D_IN5 6 /* R */ +#define SENSORS_W83782D_IN6 7 /* R */ +#define SENSORS_W83782D_IN7 8 /* R */ +#define SENSORS_W83782D_IN8 9 /* R */ +#define SENSORS_W83782D_IN0_MIN 11 /* RW */ +#define SENSORS_W83782D_IN1_MIN 12 /* RW */ +#define SENSORS_W83782D_IN2_MIN 13 /* RW */ +#define SENSORS_W83782D_IN3_MIN 14 /* RW */ +#define SENSORS_W83782D_IN4_MIN 15 /* RW */ +#define SENSORS_W83782D_IN5_MIN 16 /* RW */ +#define SENSORS_W83782D_IN6_MIN 17 /* RW */ +#define SENSORS_W83782D_IN7_MIN 18 /* RW */ +#define SENSORS_W83782D_IN8_MIN 19 /* RW */ +#define SENSORS_W83782D_IN0_MAX 21 /* RW */ +#define SENSORS_W83782D_IN1_MAX 22 /* RW */ +#define SENSORS_W83782D_IN2_MAX 23 /* RW */ +#define SENSORS_W83782D_IN3_MAX 24 /* RW */ +#define SENSORS_W83782D_IN4_MAX 25 /* RW */ +#define SENSORS_W83782D_IN5_MAX 26 /* RW */ +#define SENSORS_W83782D_IN6_MAX 27 /* RW */ +#define SENSORS_W83782D_IN7_MAX 28 /* RW */ +#define SENSORS_W83782D_IN8_MAX 29 /* RW */ +#define SENSORS_W83782D_FAN1 31 /* R */ +#define SENSORS_W83782D_FAN2 32 /* R */ +#define SENSORS_W83782D_FAN1_MIN 41 /* RW */ +#define SENSORS_W83782D_FAN2_MIN 42 /* RW */ +#define SENSORS_W83782D_TEMP1 51 /* R */ +#define SENSORS_W83782D_TEMP1_HYST 52 /* RW */ +#define SENSORS_W83782D_TEMP1_OVER 53 /* RW */ +#define SENSORS_W83782D_TEMP2 54 /* R */ +#define SENSORS_W83782D_TEMP2_HYST 55 /* RW */ +#define SENSORS_W83782D_TEMP2_OVER 56 /* RW */ +#define SENSORS_W83782D_TEMP3 57 /* R */ +#define SENSORS_W83782D_TEMP3_HYST 58 /* RW */ +#define SENSORS_W83782D_TEMP3_OVER 59 /* RW */ +#define SENSORS_W83782D_VID 61 /* R */ +#define SENSORS_W83782D_FAN1_DIV 71 /* RW */ +#define SENSORS_W83782D_FAN2_DIV 72 /* RW */ +#define SENSORS_W83782D_ALARMS 81 /* R */ +#define SENSORS_W83782D_BEEP_ENABLE 82 /* RW */ +#define SENSORS_W83782D_BEEPS 83 /* RW */ + + +/* Winbond W83783S chips */ + +#define SENSORS_W83783S_PREFIX "w83783s" + +#define SENSORS_W83783S_IN0 1 /* R */ +#define SENSORS_W83783S_IN1 2 /* R */ +#define SENSORS_W83783S_IN2 3 /* R */ +#define SENSORS_W83783S_IN3 4 /* R */ +#define SENSORS_W83783S_IN4 5 /* R */ +#define SENSORS_W83783S_IN5 6 /* R */ +#define SENSORS_W83783S_IN6 7 /* R */ +#define SENSORS_W83783S_IN0_MIN 11 /* RW */ +#define SENSORS_W83783S_IN1_MIN 12 /* RW */ +#define SENSORS_W83783S_IN2_MIN 13 /* RW */ +#define SENSORS_W83783S_IN3_MIN 14 /* RW */ +#define SENSORS_W83783S_IN4_MIN 15 /* RW */ +#define SENSORS_W83783S_IN5_MIN 16 /* RW */ +#define SENSORS_W83783S_IN6_MIN 17 /* RW */ +#define SENSORS_W83783S_IN0_MAX 21 /* RW */ +#define SENSORS_W83783S_IN1_MAX 22 /* RW */ +#define SENSORS_W83783S_IN2_MAX 23 /* RW */ +#define SENSORS_W83783S_IN3_MAX 24 /* RW */ +#define SENSORS_W83783S_IN4_MAX 25 /* RW */ +#define SENSORS_W83783S_IN5_MAX 26 /* RW */ +#define SENSORS_W83783S_IN6_MAX 27 /* RW */ +#define SENSORS_W83783S_FAN1 31 /* R */ +#define SENSORS_W83783S_FAN2 32 /* R */ +#define SENSORS_W83783S_FAN3 33 /* R */ +#define SENSORS_W83783S_FAN1_MIN 41 /* RW */ +#define SENSORS_W83783S_FAN2_MIN 42 /* RW */ +#define SENSORS_W83783S_FAN3_MIN 43 /* RW */ +#define SENSORS_W83783S_TEMP1 51 /* R */ +#define SENSORS_W83783S_TEMP1_HYST 52 /* RW */ +#define SENSORS_W83783S_TEMP1_OVER 53 /* RW */ +#define SENSORS_W83783S_TEMP2 54 /* R */ +#define SENSORS_W83783S_TEMP2_HYST 55 /* RW */ +#define SENSORS_W83783S_TEMP2_OVER 56 /* RW */ +#define SENSORS_W83783S_VID 61 /* R */ +#define SENSORS_W83783S_FAN1_DIV 71 /* RW */ +#define SENSORS_W83783S_FAN2_DIV 72 /* RW */ +#define SENSORS_W83783S_FAN3_DIV 73 /* R (yes, really! */ +#define SENSORS_W83783S_ALARMS 81 /* R */ +#define SENSORS_W83783S_BEEP_ENABLE 82 /* RW */ +#define SENSORS_W83783S_BEEPS 83 /* RW */ + + /* Analog Devices ADM9240 chips */ #define SENSORS_ADM9240_PREFIX "adm9240" diff --git a/prog/sensors/chips.c b/prog/sensors/chips.c index 488bf7e5..fe2a7a56 100644 --- a/prog/sensors/chips.c +++ b/prog/sensors/chips.c @@ -532,7 +532,10 @@ void print_w83781d(const sensors_chip_name *name) char *label = NULL; double cur,min,max,fdiv; int alarms,beeps; + int is82d, is83s; + is82d = !strcmp(name->prefix,"w83782d"); + is83s = !strcmp(name->prefix,"w83782s"); if (!sensors_get_feature(*name,SENSORS_W83781D_ALARMS,&cur)) alarms = cur + 0.5; else { @@ -613,17 +616,44 @@ void print_w83781d(const sensors_chip_name *name) } else printf("ERROR: Can't get IN5 data!\n"); free_the_label(&label); - if (!sensors_get_label(*name,SENSORS_W83781D_IN6,&label) && - !sensors_get_feature(*name,SENSORS_W83781D_IN6,&cur) && - !sensors_get_feature(*name,SENSORS_W83781D_IN6_MIN,&min) && - !sensors_get_feature(*name,SENSORS_W83781D_IN6_MAX,&max)) { - print_label(label,10); - printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s %s\n", - cur,min,max,alarms&W83781D_ALARM_IN6?"ALARM":" ", - beeps&W83781D_ALARM_IN6?"(beep)":""); - } else - printf("ERROR: Can't get IN6 data!\n"); - free_the_label(&label); + if (!is83s) { + if (!sensors_get_label(*name,SENSORS_W83781D_IN6,&label) && + !sensors_get_feature(*name,SENSORS_W83781D_IN6,&cur) && + !sensors_get_feature(*name,SENSORS_W83781D_IN6_MIN,&min) && + !sensors_get_feature(*name,SENSORS_W83781D_IN6_MAX,&max)) { + print_label(label,10); + printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s %s\n", + cur,min,max,alarms&W83781D_ALARM_IN6?"ALARM":" ", + beeps&W83781D_ALARM_IN6?"(beep)":""); + } else + printf("ERROR: Can't get IN6 data!\n"); + free_the_label(&label); + } +/* FIXME - add alarms 7 and 8 */ + if (is82d) { + if (!sensors_get_label(*name,SENSORS_W83782D_IN7,&label) && + !sensors_get_feature(*name,SENSORS_W83782D_IN7,&cur) && + !sensors_get_feature(*name,SENSORS_W83782D_IN7_MIN,&min) && + !sensors_get_feature(*name,SENSORS_W83782D_IN7_MAX,&max)) { + print_label(label,10); + printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s %s\n", + cur,min,max,alarms&W83781D_ALARM_IN6?"ALARM":" ", + beeps&W83781D_ALARM_IN6?"(beep)":""); + } else + printf("ERROR: Can't get IN7 data!\n"); + free_the_label(&label); + if (!sensors_get_label(*name,SENSORS_W83782D_IN8,&label) && + !sensors_get_feature(*name,SENSORS_W83782D_IN8,&cur) && + !sensors_get_feature(*name,SENSORS_W83782D_IN8_MIN,&min) && + !sensors_get_feature(*name,SENSORS_W83782D_IN8_MAX,&max)) { + print_label(label,10); + printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s %s\n", + cur,min,max,alarms&W83781D_ALARM_IN6?"ALARM":" ", + beeps&W83781D_ALARM_IN6?"(beep)":""); + } else + printf("ERROR: Can't get IN6 data!\n"); + free_the_label(&label); + } if (!sensors_get_label(*name,SENSORS_W83781D_FAN1,&label) && !sensors_get_feature(*name,SENSORS_W83781D_FAN1,&cur) && @@ -647,16 +677,18 @@ void print_w83781d(const sensors_chip_name *name) } else printf("ERROR: Can't get FAN2 data!\n"); free_the_label(&label); - if (!sensors_get_label(*name,SENSORS_W83781D_FAN3,&label) && - !sensors_get_feature(*name,SENSORS_W83781D_FAN3,&cur) && - !sensors_get_feature(*name,SENSORS_W83781D_FAN3_DIV,&fdiv) && - !sensors_get_feature(*name,SENSORS_W83781D_FAN3_MIN,&min)) { - print_label(label,10); - printf("%4.0f RPM (min = %4.0f RPM, div = %1.0f) %s %s\n", - cur,min,fdiv, alarms&W83781D_ALARM_FAN3?"ALARM":" ", - beeps&W83781D_ALARM_FAN3?"(beep)":""); - } else - printf("ERROR: Can't get FAN3 data!\n"); + if (!is82d) { + if (!sensors_get_label(*name,SENSORS_W83781D_FAN3,&label) && + !sensors_get_feature(*name,SENSORS_W83781D_FAN3,&cur) && + !sensors_get_feature(*name,SENSORS_W83781D_FAN3_DIV,&fdiv) && + !sensors_get_feature(*name,SENSORS_W83781D_FAN3_MIN,&min)) { + print_label(label,10); + printf("%4.0f RPM (min = %4.0f RPM, div = %1.0f) %s %s\n", + cur,min,fdiv, alarms&W83781D_ALARM_FAN3?"ALARM":" ", + beeps&W83781D_ALARM_FAN3?"(beep)":""); + } else + printf("ERROR: Can't get FAN3 data!\n"); + } free_the_label(&label); if (!sensors_get_label(*name,SENSORS_W83781D_TEMP1,&label) && diff --git a/prog/sensors/main.c b/prog/sensors/main.c index 61fb43e3..0411745d 100644 --- a/prog/sensors/main.c +++ b/prog/sensors/main.c @@ -254,7 +254,9 @@ void do_a_print(sensors_chip_name name) else if (!strcmp(name.prefix,"gl518sm-r00") || !strcmp(name.prefix,"gl518sm-r80")) print_gl518(&name); - else if (!strcmp(name.prefix,"w83781d")) + else if ((!strcmp(name.prefix,"w83781d")) || + (!strcmp(name.prefix,"w83782d")) || + (!strcmp(name.prefix,"w83783s"))) print_w83781d(&name); else print_unknown_chip(&name);