| 178 | | /** DS1621 */ |
| 179 | | |
| 180 | | static const char * |
| 181 | | fmtTemps_DS1621 |
| 182 | | (const double values[], int alarm, int beep) { |
| 183 | | sprintf (buff, "%.2f C (min = %.1f C, max = %.1f C)", values[0], values[1], values[2]); |
| 184 | | if (alarm) |
| 185 | | sprintf (buff + strlen (buff), " [ALARM(%s)]", (alarm == DS1621_ALARM_TEMP_LOW) ? "LOW" : (alarm == DS1621_ALARM_TEMP_HIGH) ? "HIGH" : "LOW,HIGH"); |
| 186 | | return buff; |
| 187 | | } |
| 188 | | |
| 189 | | static const char *ds1621_names[] = { |
| 190 | | SENSORS_DS1621_PREFIX, NULL |
| 191 | | }; |
| 192 | | |
| 193 | | static const FeatureDescriptor ds1621_features[] = { |
| 194 | | { fmtTemps_DS1621, rrdF2, DataType_temperature, DS1621_ALARM_TEMP_LOW | DS1621_ALARM_TEMP_HIGH, 0, |
| 195 | | { SENSORS_DS1621_TEMP, SENSORS_DS1621_TEMP_HYST, SENSORS_DS1621_TEMP_OVER, -1 } }, /* hyst=min, over=max */ |
| 196 | | { NULL } |
| 197 | | }; |
| 198 | | |
| 199 | | static const ChipDescriptor ds1621_chip = { |
| 200 | | ds1621_names, ds1621_features, SENSORS_DS1621_ALARMS, 0 |
| 201 | | }; |
| 202 | | |
| 203 | | /** LM75 **/ |
| 204 | | |
| 205 | | static const char *lm75_names[] = { |
| 206 | | SENSORS_LM75_PREFIX, NULL |
| 207 | | }; |
| 208 | | |
| 209 | | static const FeatureDescriptor lm75_features[] = { |
| 210 | | { fmtTemps_1, rrdF1, DataType_temperature, 0, 0, |
| 211 | | { SENSORS_LM75_TEMP, SENSORS_LM75_TEMP_OVER, SENSORS_LM75_TEMP_HYST, -1 } }, |
| 212 | | { NULL } |
| 213 | | }; |
| 214 | | |
| 215 | | static const ChipDescriptor lm75_chip = { |
| 216 | | lm75_names, lm75_features, 0, 0 |
| 217 | | }; |
| 218 | | |
| 219 | | /** ADM1021 **/ |
| 220 | | |
| 221 | | static const char * |
| 222 | | fmtTemps_ADM1021_0 |
| 223 | | (const double values[], int alarm, int beep) { |
| 224 | | sprintf (buff, "%.0f C (min = %.0f C, max = %.0f C)", values[0], values[1], values[2]); |
| 225 | | if (alarm) { |
| 226 | | int low = alarm & ADM1021_ALARM_TEMP_LOW, high = alarm & ADM1021_ALARM_TEMP_HIGH; |
| 227 | | sprintf (buff + strlen (buff), " [ALARM(%s%s%s)]", low ? "LOW" : "", (low && high) ? "," : "", high ? "HIGH" : ""); |
| 228 | | } |
| 229 | | return buff; |
| 230 | | } |
| 231 | | |
| 232 | | static const char * |
| 233 | | fmtTemps_ADM1021_1 |
| 234 | | (const double values[], int alarm, int beep) { |
| 235 | | sprintf (buff, "%.0f C (min = %.0f C, max = %.0f C)", values[0], values[1], values[2]); |
| 236 | | if (alarm) { |
| 237 | | int na = alarm & ADM1021_ALARM_RTEMP_NA, low = alarm & ADM1021_ALARM_RTEMP_LOW, |
| 238 | | high = alarm & ADM1021_ALARM_RTEMP_HIGH; |
| 239 | | sprintf (buff + strlen (buff), " [ALARM(%s%s%s%s%s)]", na ? "N/A" : "", (na && (low || high)) ? "," : "", low ? "LOW" : "", (low && high) ? "," : "", high ? "HIGH" : ""); |
| 240 | | } |
| 241 | | return buff; |
| 242 | | } |
| 243 | | |
| 244 | | static const char *adm1021_names[] = { |
| 245 | | SENSORS_ADM1021_PREFIX, SENSORS_ADM1023_PREFIX, NULL |
| 246 | | }; /* N.B: Assume bs sensors 1023 is =~ 1021 */ |
| 247 | | |
| 248 | | static const FeatureDescriptor adm1021_features[] = { |
| 249 | | { fmtTemps_ADM1021_0, rrdF0, DataType_temperature, ADM1021_ALARM_TEMP_HIGH | ADM1021_ALARM_TEMP_LOW, 0, |
| 250 | | { SENSORS_ADM1021_TEMP, SENSORS_ADM1021_TEMP_HYST, SENSORS_ADM1021_TEMP_OVER, -1 } }, /* hyst=min, over=max */ |
| 251 | | { fmtTemps_ADM1021_1, rrdF0, DataType_temperature, ADM1021_ALARM_RTEMP_HIGH | ADM1021_ALARM_RTEMP_LOW | ADM1021_ALARM_RTEMP_NA, 0, |
| 252 | | { SENSORS_ADM1021_REMOTE_TEMP, SENSORS_ADM1021_REMOTE_TEMP_HYST, SENSORS_ADM1021_REMOTE_TEMP_OVER, -1 } }, /* hyst=min, over=max */ |
| 253 | | { fmtValu_0, NULL, DataType_other, 0, 0, |
| 254 | | { SENSORS_ADM1021_DIE_CODE, -1 } }, |
| 255 | | { NULL } |
| 256 | | }; |
| 257 | | |
| 258 | | static const ChipDescriptor adm1021_chip = { |
| 259 | | adm1021_names, adm1021_features, SENSORS_ADM1021_ALARMS, 0 |
| 260 | | }; |
| 261 | | |
| 262 | | /** MAX1617 **/ |
| 263 | | |
| 264 | | static const char *max1617_names[] = { |
| 265 | | SENSORS_MAX1617_PREFIX, SENSORS_MAX1617A_PREFIX, SENSORS_THMC10_PREFIX, SENSORS_LM84_PREFIX, SENSORS_GL523_PREFIX, NULL |
| 266 | | }; /* N.B: Assume vs sensors these have no die code */ |
| 267 | | |
| 268 | | static const FeatureDescriptor max1617_features[] = { |
| 269 | | { fmtTemps_ADM1021_0, rrdF0, DataType_temperature, ADM1021_ALARM_TEMP_HIGH | ADM1021_ALARM_TEMP_LOW, 0, |
| 270 | | { SENSORS_MAX1617_TEMP, SENSORS_MAX1617_TEMP_HYST, SENSORS_MAX1617_TEMP_OVER, -1 } }, /* hyst=min, over=max */ |
| 271 | | { fmtTemps_ADM1021_1, rrdF0, DataType_temperature, ADM1021_ALARM_RTEMP_HIGH | ADM1021_ALARM_RTEMP_LOW | ADM1021_ALARM_RTEMP_NA, 0, |
| 272 | | { SENSORS_MAX1617_REMOTE_TEMP, SENSORS_MAX1617_REMOTE_TEMP_HYST, SENSORS_MAX1617_REMOTE_TEMP_OVER, -1 } }, /* hyst=min, over=max */ |
| 273 | | { NULL } |
| 274 | | }; |
| 275 | | |
| 276 | | static const ChipDescriptor max1617_chip = { |
| 277 | | max1617_names, max1617_features, SENSORS_MAX1617_ALARMS, 0 |
| 278 | | }; |
| 279 | | |
| 280 | | /** ADM9240 **/ |
| 281 | | |
| 282 | | static const char *adm9240_names[] = { |
| 283 | | SENSORS_ADM9240_PREFIX, SENSORS_DS1780_PREFIX, SENSORS_LM81_PREFIX, NULL |
| 284 | | }; |
| 285 | | |
| 286 | | static const FeatureDescriptor adm9240_features[] = { |
| 287 | | { fmtVolts_2, rrdF2, DataType_voltage, ADM9240_ALARM_IN0, 0, |
| 288 | | { SENSORS_ADM9240_IN0, SENSORS_ADM9240_IN0_MIN, SENSORS_ADM9240_IN0_MAX, -1 } }, |
| 289 | | { fmtVolts_2, rrdF2, DataType_voltage, ADM9240_ALARM_IN1, 0, |
| 290 | | { SENSORS_ADM9240_IN1, SENSORS_ADM9240_IN1_MIN, SENSORS_ADM9240_IN1_MAX, -1 } }, |
| 291 | | { fmtVolts_2, rrdF2, DataType_voltage, ADM9240_ALARM_IN2, 0, |
| 292 | | { SENSORS_ADM9240_IN2, SENSORS_ADM9240_IN2_MIN, SENSORS_ADM9240_IN2_MAX, -1 } }, |
| 293 | | { fmtVolts_2, rrdF2, DataType_voltage, ADM9240_ALARM_IN3, 0, |
| 294 | | { SENSORS_ADM9240_IN3, SENSORS_ADM9240_IN3_MIN, SENSORS_ADM9240_IN3_MAX, -1 } }, |
| 295 | | { fmtVolts_2, rrdF2, DataType_voltage, ADM9240_ALARM_IN4, 0, |
| 296 | | { SENSORS_ADM9240_IN4, SENSORS_ADM9240_IN4_MIN, SENSORS_ADM9240_IN4_MAX, -1 } }, |
| 297 | | { fmtVolts_2, rrdF2, DataType_voltage, ADM9240_ALARM_IN5, 0, |
| 298 | | { SENSORS_ADM9240_IN5, SENSORS_ADM9240_IN5_MIN, SENSORS_ADM9240_IN5_MAX, -1 } }, |
| 299 | | { fmtFans_0, rrdF0, DataType_rpm, ADM9240_ALARM_FAN1, 0, |
| 300 | | { SENSORS_ADM9240_FAN1, SENSORS_ADM9240_FAN1_MIN, SENSORS_ADM9240_FAN1_DIV, -1 } }, |
| 301 | | { fmtFans_0, rrdF0, DataType_rpm, ADM9240_ALARM_FAN2, 0, |
| 302 | | { SENSORS_ADM9240_FAN2, SENSORS_ADM9240_FAN2_MIN, SENSORS_ADM9240_FAN2_DIV, -1 } }, |
| 303 | | { fmtTemps_1_0, rrdF1, DataType_temperature, ADM9240_ALARM_TEMP, 0, |
| 304 | | { SENSORS_ADM9240_TEMP, SENSORS_ADM9240_TEMP_OVER, SENSORS_ADM9240_TEMP_HYST, -1 } }, |
| 305 | | { fmtVolt_2, rrdF2, DataType_voltage, 0, 0, |
| 306 | | { SENSORS_ADM9240_VID, -1 } }, |
| 307 | | { fmtChassisIntrusionDetection, NULL, DataType_other, ADM9240_ALARM_CHAS, 0, |
| 308 | | { SENSORS_ADM9240_ALARMS, -1 } }, |
| 309 | | { NULL } |
| 310 | | }; |
| 311 | | |
| 312 | | static const ChipDescriptor adm9240_chip = { |
| 313 | | adm9240_names, adm9240_features, SENSORS_ADM9240_ALARMS, 0 |
| 314 | | }; |
| 315 | | |
| 316 | | /** SIS5595 **/ |
| 317 | | |
| 318 | | static const char *sis5595_names[] = { |
| 319 | | SENSORS_SIS5595_PREFIX, NULL |
| 320 | | }; |
| 321 | | |
| 322 | | static const FeatureDescriptor sis5595_features[] = { |
| 323 | | { fmtVolts_2, rrdF2, DataType_voltage, SIS5595_ALARM_IN0, 0, |
| 324 | | { SENSORS_SIS5595_IN0, SENSORS_SIS5595_IN0_MIN, SENSORS_SIS5595_IN0_MAX, -1 } }, |
| 325 | | { fmtVolts_2, rrdF2, DataType_voltage, SIS5595_ALARM_IN1, 0, |
| 326 | | { SENSORS_SIS5595_IN1, SENSORS_SIS5595_IN1_MIN, SENSORS_SIS5595_IN1_MAX, -1 } }, |
| 327 | | { fmtVolts_2, rrdF2, DataType_voltage, SIS5595_ALARM_IN2, 0, |
| 328 | | { SENSORS_SIS5595_IN2, SENSORS_SIS5595_IN2_MIN, SENSORS_SIS5595_IN2_MAX, -1 } }, |
| 329 | | { fmtVolts_2, rrdF2, DataType_voltage, SIS5595_ALARM_IN3, 0, |
| 330 | | { SENSORS_SIS5595_IN3, SENSORS_SIS5595_IN3_MIN, SENSORS_SIS5595_IN3_MAX, -1 } }, |
| 331 | | { fmtVolts_2, rrdF2, DataType_voltage, SIS5595_ALARM_IN4, 0, |
| 332 | | { SENSORS_SIS5595_IN4, SENSORS_SIS5595_IN4_MIN, SENSORS_SIS5595_IN4_MAX, -1 } }, |
| 333 | | { fmtFans_0, rrdF0, DataType_rpm, SIS5595_ALARM_FAN1, 0, |
| 334 | | { SENSORS_SIS5595_FAN1, SENSORS_SIS5595_FAN1_MIN, SENSORS_SIS5595_FAN1_DIV, -1 } }, |
| 335 | | { fmtFans_0, rrdF0, DataType_rpm, SIS5595_ALARM_FAN2, 0, |
| 336 | | { SENSORS_SIS5595_FAN2, SENSORS_SIS5595_FAN2_MIN, SENSORS_SIS5595_FAN2_DIV, -1 } }, |
| 337 | | { fmtTemps_0, rrdF0, DataType_temperature, SIS5595_ALARM_TEMP, 0, |
| 338 | | { SENSORS_SIS5595_TEMP, SENSORS_SIS5595_TEMP_OVER, SENSORS_SIS5595_TEMP_HYST, -1 } }, |
| 339 | | { fmtBoardTemperatureInput, NULL, DataType_other, SIS5595_ALARM_BTI, 0, |
| 340 | | { SENSORS_SIS5595_ALARMS, -1 } }, |
| 341 | | { NULL } |
| 342 | | }; |
| 343 | | |
| 344 | | static const ChipDescriptor sis5595_chip = { |
| 345 | | sis5595_names, sis5595_features, SENSORS_SIS5595_ALARMS, 0 |
| 346 | | }; |
| 347 | | |
| 348 | | /** VIA686A **/ |
| 349 | | |
| 350 | | static const char *via686a_names[] = { |
| 351 | | SENSORS_VIA686A_PREFIX, NULL |
| 352 | | }; |
| 353 | | |
| 354 | | static const FeatureDescriptor via686a_features[] = { |
| 355 | | { fmtVolts_2, rrdF2, DataType_voltage, VIA686A_ALARM_IN0, 0, |
| 356 | | { SENSORS_VIA686A_IN0, SENSORS_VIA686A_IN0_MIN, SENSORS_VIA686A_IN0_MAX, -1 } }, |
| 357 | | { fmtVolts_2, rrdF2, DataType_voltage, VIA686A_ALARM_IN1, 0, |
| 358 | | { SENSORS_VIA686A_IN1, SENSORS_VIA686A_IN1_MIN, SENSORS_VIA686A_IN1_MAX, -1 } }, |
| 359 | | { fmtVolts_2, rrdF2, DataType_voltage, VIA686A_ALARM_IN2, 0, |
| 360 | | { SENSORS_VIA686A_IN2, SENSORS_VIA686A_IN2_MIN, SENSORS_VIA686A_IN2_MAX, -1 } }, |
| 361 | | { fmtVolts_2, rrdF2, DataType_voltage, VIA686A_ALARM_IN3, 0, |
| 362 | | { SENSORS_VIA686A_IN3, SENSORS_VIA686A_IN3_MIN, SENSORS_VIA686A_IN3_MAX, -1 } }, |
| 363 | | { fmtVolts_2, rrdF2, DataType_voltage, VIA686A_ALARM_IN4, 0, |
| 364 | | { SENSORS_VIA686A_IN4, SENSORS_VIA686A_IN4_MIN, SENSORS_VIA686A_IN4_MAX, -1 } }, |
| 365 | | { fmtFans_0, rrdF0, DataType_rpm, VIA686A_ALARM_FAN1, 0, |
| 366 | | { SENSORS_VIA686A_FAN1, SENSORS_VIA686A_FAN1_MIN, SENSORS_VIA686A_FAN1_DIV, -1 } }, |
| 367 | | { fmtFans_0, rrdF0, DataType_rpm, VIA686A_ALARM_FAN2, 0, |
| 368 | | { SENSORS_VIA686A_FAN2, SENSORS_VIA686A_FAN2_MIN, SENSORS_VIA686A_FAN2_DIV, -1 } }, |
| 369 | | { fmtTemps_1_0, rrdF1, DataType_temperature, VIA686A_ALARM_TEMP, 0, |
| 370 | | { SENSORS_VIA686A_TEMP, SENSORS_VIA686A_TEMP_OVER, SENSORS_VIA686A_TEMP_HYST, -1 } }, |
| 371 | | { fmtTemps_1_0, rrdF1, DataType_temperature, VIA686A_ALARM_TEMP2, 0, |
| 372 | | { SENSORS_VIA686A_TEMP2, SENSORS_VIA686A_TEMP2_OVER, SENSORS_VIA686A_TEMP2_HYST, -1 } }, |
| 373 | | { fmtTemps_1_0, rrdF1, DataType_temperature, VIA686A_ALARM_TEMP3, 0, |
| 374 | | { SENSORS_VIA686A_TEMP3, SENSORS_VIA686A_TEMP3_OVER, SENSORS_VIA686A_TEMP3_HYST, -1 } }, |
| 375 | | { NULL } |
| 376 | | }; |
| 377 | | |
| 378 | | static const ChipDescriptor via686a_chip = { |
| 379 | | via686a_names, via686a_features, SENSORS_VIA686A_ALARMS, 0 |
| 380 | | }; |
| 381 | | |
| 382 | | /** LM78 **/ |
| 383 | | |
| 384 | | static const char *lm78_names[] = { |
| 385 | | SENSORS_LM78_PREFIX, SENSORS_LM78J_PREFIX, SENSORS_LM79_PREFIX, NULL |
| 386 | | }; |
| 387 | | |
| 388 | | static const FeatureDescriptor lm78_features[] = { |
| 389 | | { fmtVolts_2, rrdF2, DataType_voltage, LM78_ALARM_IN0, 0, |
| 390 | | { SENSORS_LM78_IN0, SENSORS_LM78_IN0_MIN, SENSORS_LM78_IN0_MAX, -1 } }, |
| 391 | | { fmtVolts_2, rrdF2, DataType_voltage, LM78_ALARM_IN1, 0, |
| 392 | | { SENSORS_LM78_IN1, SENSORS_LM78_IN1_MIN, SENSORS_LM78_IN1_MAX, -1 } }, |
| 393 | | { fmtVolts_2, rrdF2, DataType_voltage, LM78_ALARM_IN2, 0, |
| 394 | | { SENSORS_LM78_IN2, SENSORS_LM78_IN2_MIN, SENSORS_LM78_IN2_MAX, -1 } }, |
| 395 | | { fmtVolts_2, rrdF2, DataType_voltage, LM78_ALARM_IN3, 0, |
| 396 | | { SENSORS_LM78_IN3, SENSORS_LM78_IN3_MIN, SENSORS_LM78_IN3_MAX, -1 } }, |
| 397 | | { fmtVolts_2, rrdF2, DataType_voltage, LM78_ALARM_IN4, 0, |
| 398 | | { SENSORS_LM78_IN4, SENSORS_LM78_IN4_MIN, SENSORS_LM78_IN4_MAX, -1 } }, |
| 399 | | { fmtVolts_2, rrdF2, DataType_voltage, LM78_ALARM_IN5, 0, |
| 400 | | { SENSORS_LM78_IN5, SENSORS_LM78_IN5_MIN, SENSORS_LM78_IN5_MAX, -1 } }, |
| 401 | | { fmtVolts_2, rrdF2, DataType_voltage, LM78_ALARM_IN6, 0, |
| 402 | | { SENSORS_LM78_IN6, SENSORS_LM78_IN6_MIN, SENSORS_LM78_IN6_MAX, -1 } }, |
| 403 | | { fmtFans_0, rrdF0, DataType_rpm, LM78_ALARM_FAN1, 0, |
| 404 | | { SENSORS_LM78_FAN1, SENSORS_LM78_FAN1_MIN, SENSORS_LM78_FAN1_DIV, -1 } }, |
| 405 | | { fmtFans_0, rrdF0, DataType_rpm, LM78_ALARM_FAN2, 0, |
| 406 | | { SENSORS_LM78_FAN2, SENSORS_LM78_FAN2_MIN, SENSORS_LM78_FAN2_DIV, -1 } }, |
| 407 | | { fmtFans_0, rrdF0, DataType_rpm, LM78_ALARM_FAN3, 0, |
| 408 | | { SENSORS_LM78_FAN3, SENSORS_LM78_FAN3_MIN, SENSORS_LM78_FAN3_DIV, -1 } }, |
| 409 | | { fmtTemps_1_0, rrdF1, DataType_rpm, LM78_ALARM_TEMP, 0, |
| 410 | | { SENSORS_LM78_TEMP, SENSORS_LM78_TEMP_OVER, SENSORS_LM78_TEMP_HYST, -1 } }, |
| 411 | | { fmtVolt_2, rrdF2, DataType_voltage, 0, 0, |
| 412 | | { SENSORS_LM78_VID, -1 } }, |
| 413 | | { fmtBoardTemperatureInput, NULL, DataType_other, LM78_ALARM_BTI, 0, |
| 414 | | { SENSORS_LM78_ALARMS, -1 } }, |
| 415 | | { fmtChassisIntrusionDetection, NULL, DataType_other, LM78_ALARM_CHAS, 0, |
| 416 | | { SENSORS_LM78_ALARMS, -1 } }, |
| 417 | | { NULL } |
| 418 | | }; |
| 419 | | |
| 420 | | static const ChipDescriptor lm78_chip = { |
| 421 | | lm78_names, lm78_features, SENSORS_LM78_ALARMS, 0 |
| 422 | | }; |
| 423 | | |
| 424 | | /** GL518 **/ |
| 425 | | |
| 426 | | /* N.B: sensors supports a "gl518sm-r00" but it is not picked up in main.c... |
| 427 | | static const char * |
| 428 | | fmtVolts_GL518_R00 |
| 429 | | (const double values[], int alarm, int beep) { |
| 430 | | if (values[0] == 0.0) |
| 431 | | sprintf (buff, "n/a (min = %+.2f V, max = %+.2f V)", values[1], values[2]); |
| 432 | | else |
| 433 | | sprintf (buff, "%+.2f V (min = %+.2f V, max = %+.2f V)", values[0], values[1], values[2]); |
| 434 | | return fmtExtra (alarm, beep); |
| 435 | | } |
| 436 | | */ |
| 437 | | |
| 438 | | static const char *gl518_names[] = { |
| 439 | | SENSORS_GL518_PREFIX, NULL |
| 440 | | }; |
| 441 | | |
| 442 | | static const FeatureDescriptor gl518_features[] = { |
| 443 | | { fmtVolts_2, rrdF2, DataType_voltage, GL518_ALARM_VDD, GL518_ALARM_VDD, |
| 444 | | { SENSORS_GL518_VDD, SENSORS_GL518_VDD_MIN, SENSORS_GL518_VDD_MAX, -1 } }, |
| 445 | | { fmtVolts_2, rrdF2, DataType_voltage, GL518_ALARM_VIN1, GL518_ALARM_VIN1, |
| 446 | | { SENSORS_GL518_VIN1, SENSORS_GL518_VIN1_MIN, SENSORS_GL518_VIN1_MAX, -1 } }, |
| 447 | | { fmtVolts_2, rrdF2, DataType_voltage, GL518_ALARM_VIN2, GL518_ALARM_VIN2, |
| 448 | | { SENSORS_GL518_VIN2, SENSORS_GL518_VIN2_MIN, SENSORS_GL518_VIN2_MAX, -1 } }, |
| 449 | | { fmtVolts_2, rrdF2, DataType_voltage, GL518_ALARM_VIN3, GL518_ALARM_VIN3, |
| 450 | | { SENSORS_GL518_VIN3, SENSORS_GL518_VIN3_MIN, SENSORS_GL518_VIN3_MAX, -1 } }, |
| 451 | | { fmtFans_0, rrdF0, DataType_rpm, GL518_ALARM_FAN1, GL518_ALARM_FAN1, |
| 452 | | { SENSORS_GL518_FAN1, SENSORS_GL518_FAN1_MIN, SENSORS_GL518_FAN1_DIV, -1 } }, |
| 453 | | { fmtFans_0, rrdF0, DataType_rpm, GL518_ALARM_FAN2, GL518_ALARM_FAN2, |
| 454 | | { SENSORS_GL518_FAN2, SENSORS_GL518_FAN2_MIN, SENSORS_GL518_FAN2_DIV, -1 } }, |
| 455 | | { fmtTemps_1_0, rrdF1, DataType_temperature, GL518_ALARM_TEMP, GL518_ALARM_TEMP, |
| 456 | | { SENSORS_GL518_TEMP, SENSORS_GL518_TEMP_OVER, SENSORS_GL518_TEMP_HYST, -1 } }, |
| 457 | | { fmtSoundAlarm, NULL, DataType_other, 0, 0, |
| 458 | | { SENSORS_GL518_BEEP_ENABLE, -1 } }, |
| 459 | | { NULL } |
| 460 | | }; |
| 461 | | |
| 462 | | static const ChipDescriptor gl518_chip = { |
| 463 | | gl518_names, gl518_features, SENSORS_GL518_ALARMS, SENSORS_GL518_BEEPS |
| 464 | | }; |
| 465 | | |
| 466 | | /** ADM1025 **/ |
| 467 | | |
| 468 | | static const char * |
| 469 | | fmtTemps_ADM1025 |
| 470 | | (const double values[], int alarm, int beep) { |
| 471 | | sprintf (buff, "%.1f C (min = %.0f C, max = %.0f C)", values[0], values[1], values[2]); |
| 472 | | return fmtExtra (alarm, beep); |
| 473 | | } |
| 474 | | |
| 475 | | static const char *adm1025_names[] = { |
| 476 | | SENSORS_ADM1025_PREFIX, NULL |
| 477 | | }; |
| 478 | | |
| 479 | | static const FeatureDescriptor adm1025_features[] = { |
| 480 | | { fmtVolts_2, rrdF2, DataType_voltage, ADM1025_ALARM_IN0, 0, |
| 481 | | { SENSORS_ADM1025_IN0, SENSORS_ADM1025_IN0_MIN, SENSORS_ADM1025_IN0_MAX, -1 } }, |
| 482 | | { fmtVolts_2, rrdF2, DataType_voltage, ADM1025_ALARM_IN1, 0, |
| 483 | | { SENSORS_ADM1025_IN1, SENSORS_ADM1025_IN1_MIN, SENSORS_ADM1025_IN1_MAX, -1 } }, |
| 484 | | { fmtVolts_2, rrdF2, DataType_voltage, ADM1025_ALARM_IN2, 0, |
| 485 | | { SENSORS_ADM1025_IN2, SENSORS_ADM1025_IN2_MIN, SENSORS_ADM1025_IN2_MAX, -1 } }, |
| 486 | | { fmtVolts_2, rrdF2, DataType_voltage, ADM1025_ALARM_IN3, 0, |
| 487 | | { SENSORS_ADM1025_IN3, SENSORS_ADM1025_IN3_MIN, SENSORS_ADM1025_IN3_MAX, -1 } }, |
| 488 | | { fmtVolts_2, rrdF2, DataType_voltage, ADM1025_ALARM_IN4, 0, |
| 489 | | { SENSORS_ADM1025_IN4, SENSORS_ADM1025_IN4_MIN, SENSORS_ADM1025_IN4_MAX, -1 } }, |
| 490 | | { fmtVolts_2, rrdF2, DataType_voltage, ADM1025_ALARM_IN5, 0, |
| 491 | | { SENSORS_ADM1025_IN5, SENSORS_ADM1025_IN5_MIN, SENSORS_ADM1025_IN5_MAX, -1 } }, |
| 492 | | { fmtTemps_ADM1025, rrdF1, DataType_temperature, ADM1025_ALARM_TEMP, 0, |
| 493 | | { SENSORS_ADM1025_TEMP1, SENSORS_ADM1025_TEMP1_LOW, SENSORS_ADM1025_TEMP1_HIGH, -1 } }, |
| 494 | | { fmtTemps_ADM1025, rrdF1, DataType_temperature, ADM1025_ALARM_RTEMP, 0, |
| 495 | | { SENSORS_ADM1025_TEMP2, SENSORS_ADM1025_TEMP2_LOW, SENSORS_ADM1025_TEMP2_HIGH, -1 } }, |
| 496 | | { NULL } |
| 497 | | }; |
| 498 | | |
| 499 | | static const ChipDescriptor adm1025_chip = { |
| 500 | | adm1025_names, adm1025_features, SENSORS_ADM1025_ALARMS, 0 |
| 501 | | }; |
| 502 | | |
| 503 | | /** LM80 **/ |
| 504 | | |
| 505 | | static const char * |
| 506 | | fmtTemps_LM80 |
| 507 | | (const double values[], int alarm, int beep) { |
| 508 | | sprintf (buff, "%.2f C (hot limit = %.0f C, hot hysteresis = %.0f C, os limit = %.0f C, os hysteresis = %.0f C)", values[0], values[1], values[2], values[3], values[4]); |
| 509 | | return fmtExtra (alarm, beep); |
| 510 | | } |
| 511 | | |
| 512 | | static const char *lm80_names[] = { |
| 513 | | SENSORS_LM80_PREFIX, NULL |
| 514 | | }; |
| 515 | | |
| 516 | | static const FeatureDescriptor lm80_features[] = { |
| 517 | | { fmtVolts_2, rrdF2, DataType_voltage, LM80_ALARM_IN0, 0, |
| 518 | | { SENSORS_LM80_IN0, SENSORS_LM80_IN0_MIN, SENSORS_LM80_IN0_MAX, -1 } }, |
| 519 | | { fmtVolts_2, rrdF2, DataType_voltage, LM80_ALARM_IN1, 0, |
| 520 | | { SENSORS_LM80_IN1, SENSORS_LM80_IN1_MIN, SENSORS_LM80_IN1_MAX, -1 } }, |
| 521 | | { fmtVolts_2, rrdF2, DataType_voltage, LM80_ALARM_IN2, 0, |
| 522 | | { SENSORS_LM80_IN2, SENSORS_LM80_IN2_MIN, SENSORS_LM80_IN2_MAX, -1 } }, |
| 523 | | { fmtVolts_2, rrdF2, DataType_voltage, LM80_ALARM_IN3, 0, |
| 524 | | { SENSORS_LM80_IN3, SENSORS_LM80_IN3_MIN, SENSORS_LM80_IN3_MAX, -1 } }, |
| 525 | | { fmtVolts_2, rrdF2, DataType_voltage, LM80_ALARM_IN4, 0, |
| 526 | | { SENSORS_LM80_IN4, SENSORS_LM80_IN4_MIN, SENSORS_LM80_IN4_MAX, -1 } }, |
| 527 | | { fmtVolts_2, rrdF2, DataType_voltage, LM80_ALARM_IN5, 0, |
| 528 | | { SENSORS_LM80_IN5, SENSORS_LM80_IN5_MIN, SENSORS_LM80_IN5_MAX, -1 } }, |
| 529 | | { fmtVolts_2, rrdF2, DataType_voltage, LM80_ALARM_IN6, 0, |
| 530 | | { SENSORS_LM80_IN6, SENSORS_LM80_IN6_MIN, SENSORS_LM80_IN6_MAX, -1 } }, |
| 531 | | { fmtFans_0, rrdF0, DataType_rpm, LM80_ALARM_FAN1, 0, |
| 532 | | { SENSORS_LM80_FAN1, SENSORS_LM80_FAN1_MIN, SENSORS_LM80_FAN1_DIV, -1 } }, |
| 533 | | { fmtFans_0, rrdF0, DataType_rpm, LM80_ALARM_FAN2, 0, |
| 534 | | { SENSORS_LM80_FAN2, SENSORS_LM80_FAN2_MIN, SENSORS_LM80_FAN2_DIV, -1 } }, |
| 535 | | { fmtTemps_LM80, rrdF2, DataType_temperature, LM80_ALARM_TEMP_HOT, 0, |
| 536 | | { SENSORS_LM80_TEMP, SENSORS_LM80_TEMP_HOT_MAX, SENSORS_LM80_TEMP_HOT_HYST, SENSORS_LM80_TEMP_OS_MAX, SENSORS_LM80_TEMP_OS_HYST, -1 } }, |
| 537 | | { fmtBoardTemperatureInput, NULL, DataType_other, LM80_ALARM_BTI, 0, |
| 538 | | { SENSORS_LM80_ALARMS, -1 } }, |
| 539 | | { fmtChassisIntrusionDetection, NULL, DataType_other, LM80_ALARM_CHAS, 0, |
| 540 | | { SENSORS_LM80_ALARMS, -1 } }, |
| 541 | | { NULL } |
| 542 | | }; |
| 543 | | |
| 544 | | static const ChipDescriptor lm80_chip = { |
| 545 | | lm80_names, lm80_features, SENSORS_LM80_ALARMS, 0 |
| 546 | | }; |
| 547 | | |
| 548 | | /** IT87 (thanks to Mike Black) **/ |
| 549 | | |
| 550 | | static const char *it87_names[] = { |
| 551 | | SENSORS_IT87_PREFIX, SENSORS_IT8712_PREFIX, |
| 552 | | SENSORS_IT8716_PREFIX, SENSORS_IT8718_PREFIX, NULL |
| 553 | | }; |
| 554 | | |
| 555 | | static const FeatureDescriptor it87_features[] = { |
| 556 | | { fmtVolts_2, rrdF2, DataType_voltage, IT87_ALARM_IN0, 0, |
| 557 | | { SENSORS_IT87_IN0, SENSORS_IT87_IN0_MIN, SENSORS_IT87_IN0_MAX, -1 } }, |
| 558 | | { fmtVolts_2, rrdF2, DataType_voltage, IT87_ALARM_IN1, 0, |
| 559 | | { SENSORS_IT87_IN1, SENSORS_IT87_IN1_MIN, SENSORS_IT87_IN1_MAX, -1 } }, |
| 560 | | { fmtVolts_2, rrdF2, DataType_voltage, IT87_ALARM_IN2, 0, |
| 561 | | { SENSORS_IT87_IN2, SENSORS_IT87_IN2_MIN, SENSORS_IT87_IN2_MAX, -1 } }, |
| 562 | | { fmtVolts_2, rrdF2, DataType_voltage, IT87_ALARM_IN3, 0, |
| 563 | | { SENSORS_IT87_IN3, SENSORS_IT87_IN3_MIN, SENSORS_IT87_IN3_MAX, -1 } }, |
| 564 | | { fmtVolts_2, rrdF2, DataType_voltage, IT87_ALARM_IN4, 0, |
| 565 | | { SENSORS_IT87_IN4, SENSORS_IT87_IN4_MIN, SENSORS_IT87_IN4_MAX, -1 } }, |
| 566 | | { fmtVolts_2, rrdF2, DataType_voltage, IT87_ALARM_IN5, 0, |
| 567 | | { SENSORS_IT87_IN5, SENSORS_IT87_IN5_MIN, SENSORS_IT87_IN5_MAX, -1 } }, |
| 568 | | { fmtVolts_2, rrdF2, DataType_voltage, IT87_ALARM_IN6, 0, |
| 569 | | { SENSORS_IT87_IN6, SENSORS_IT87_IN6_MIN, SENSORS_IT87_IN6_MAX, -1 } }, |
| 570 | | { fmtVolts_2, rrdF2, DataType_voltage, IT87_ALARM_IN7, 0, |
| 571 | | { SENSORS_IT87_IN7, SENSORS_IT87_IN7_MIN, SENSORS_IT87_IN7_MAX, -1 } }, |
| 572 | | { fmtFans_0, rrdF0, DataType_rpm, IT87_ALARM_FAN1, 0, |
| 573 | | { SENSORS_IT87_FAN1, SENSORS_IT87_FAN1_MIN, -1 } }, |
| 574 | | { fmtFans_0, rrdF0, DataType_rpm, IT87_ALARM_FAN2, 0, |
| 575 | | { SENSORS_IT87_FAN2, SENSORS_IT87_FAN2_MIN, -1 } }, |
| 576 | | { fmtFans_0, rrdF0, DataType_rpm, IT87_ALARM_FAN3, 0, |
| 577 | | { SENSORS_IT87_FAN3, SENSORS_IT87_FAN3_MIN, -1 } }, |
| 578 | | { fmtTemps_minmax_0, rrdF1, DataType_temperature, IT87_ALARM_TEMP1, 0, |
| 579 | | { SENSORS_IT87_TEMP1, SENSORS_IT87_TEMP1_LOW, SENSORS_IT87_TEMP1_HIGH, -1 } }, |
| 580 | | { fmtTemps_minmax_0, rrdF1, DataType_temperature, IT87_ALARM_TEMP2, 0, |
| 581 | | { SENSORS_IT87_TEMP2, SENSORS_IT87_TEMP2_LOW, SENSORS_IT87_TEMP2_HIGH, -1 } }, |
| 582 | | { fmtTemps_minmax_0, rrdF1, DataType_temperature, IT87_ALARM_TEMP3, 0, |
| 583 | | { SENSORS_IT87_TEMP3, SENSORS_IT87_TEMP3_LOW, SENSORS_IT87_TEMP3_HIGH, -1 } }, |
| 584 | | { NULL } |
| 585 | | }; |
| 586 | | |
| 587 | | static const ChipDescriptor it87_chip = { |
| 588 | | it87_names, it87_features, SENSORS_IT87_ALARMS, 0 |
| 589 | | }; |
| 590 | | |
| 591 | | /** W83781D **/ |
| 592 | | |
| 593 | | static const char * |
| 594 | | fmtTemps_W83781D |
| 595 | | (const double values[], int alarm, int beep) { |
| 596 | | if (values[2] == 127) { |
| 597 | | sprintf (buff, "%.0f C (limit = %.0f C)", |
| 598 | | values[0], values[1]); |
| 599 | | } else { |
| 600 | | sprintf (buff, "%.0f C (limit = %.0f C, hysteresis = %.0f C)", |
| 601 | | values[0], values[1], values[2]); |
| 602 | | } |
| 603 | | return fmtExtra (alarm, beep); |
| 604 | | } |
| 605 | | |
| 606 | | static const char *w83781d_names[] = { |
| 607 | | SENSORS_W83781D_PREFIX, NULL |
| 608 | | }; |
| 609 | | |
| 610 | | static const FeatureDescriptor w83781d_features[] = { |
| 611 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN0, W83781D_ALARM_IN0, |
| 612 | | { SENSORS_W83781D_IN0, SENSORS_W83781D_IN0_MIN, SENSORS_W83781D_IN0_MAX, -1 } }, |
| 613 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN1, W83781D_ALARM_IN1, |
| 614 | | { SENSORS_W83781D_IN1, SENSORS_W83781D_IN1_MIN, SENSORS_W83781D_IN1_MAX, -1 } }, |
| 615 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN2, W83781D_ALARM_IN2, |
| 616 | | { SENSORS_W83781D_IN2, SENSORS_W83781D_IN2_MIN, SENSORS_W83781D_IN2_MAX, -1 } }, |
| 617 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN3, W83781D_ALARM_IN3, |
| 618 | | { SENSORS_W83781D_IN3, SENSORS_W83781D_IN3_MIN, SENSORS_W83781D_IN3_MAX, -1 } }, |
| 619 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN4, W83781D_ALARM_IN4, |
| 620 | | { SENSORS_W83781D_IN4, SENSORS_W83781D_IN4_MIN, SENSORS_W83781D_IN4_MAX, -1 } }, |
| 621 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN5, W83781D_ALARM_IN5, |
| 622 | | { SENSORS_W83781D_IN5, SENSORS_W83781D_IN5_MIN, SENSORS_W83781D_IN5_MAX, -1 } }, |
| 623 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN6, W83781D_ALARM_IN6, |
| 624 | | { SENSORS_W83781D_IN6, SENSORS_W83781D_IN6_MIN, SENSORS_W83781D_IN6_MAX, -1 } }, |
| 625 | | { fmtFans_0, rrdF0, DataType_rpm, W83781D_ALARM_FAN1, W83781D_ALARM_FAN1, |
| 626 | | { SENSORS_W83781D_FAN1, SENSORS_W83781D_FAN1_MIN, SENSORS_W83781D_FAN1_DIV, -1 } }, |
| 627 | | { fmtFans_0, rrdF0, DataType_rpm, W83781D_ALARM_FAN2, W83781D_ALARM_FAN2, |
| 628 | | { SENSORS_W83781D_FAN2, SENSORS_W83781D_FAN2_MIN, SENSORS_W83781D_FAN2_DIV, -1 } }, |
| 629 | | { fmtFans_0, rrdF0, DataType_rpm, W83781D_ALARM_FAN3, W83781D_ALARM_FAN3, |
| 630 | | { SENSORS_W83781D_FAN3, SENSORS_W83781D_FAN3_MIN, SENSORS_W83781D_FAN3_DIV, -1 } }, |
| 631 | | { fmtTemps_W83781D, rrdF0, DataType_temperature, W83781D_ALARM_TEMP1, W83781D_ALARM_TEMP1, |
| 632 | | { SENSORS_W83781D_TEMP1, SENSORS_W83781D_TEMP1_OVER, SENSORS_W83781D_TEMP1_HYST, -1 } }, |
| 633 | | { fmtTemps_1_0, rrdF1, DataType_temperature, W83781D_ALARM_TEMP23, W83781D_ALARM_TEMP23, |
| 634 | | { SENSORS_W83781D_TEMP2, SENSORS_W83781D_TEMP2_OVER, SENSORS_W83781D_TEMP2_HYST, -1 } }, |
| 635 | | { fmtTemps_1_0, rrdF1, DataType_temperature, W83781D_ALARM_TEMP23, W83781D_ALARM_TEMP23, |
| 636 | | { SENSORS_W83781D_TEMP3, SENSORS_W83781D_TEMP3_OVER, SENSORS_W83781D_TEMP3_HYST, -1 } }, |
| 637 | | { fmtVolt_3, rrdF3, DataType_voltage, 0, 0, |
| 638 | | { SENSORS_W83781D_VID, -1 } }, |
| 639 | | { fmtChassisIntrusionDetection, NULL, DataType_other, W83781D_ALARM_CHAS, W83781D_ALARM_CHAS, |
| 640 | | { SENSORS_W83781D_ALARMS, -1 } }, |
| 641 | | { fmtSoundAlarm, NULL, DataType_other, 0, 0, |
| 642 | | { SENSORS_W83781D_BEEP_ENABLE, -1 } }, |
| 643 | | { NULL } |
| 644 | | }; |
| 645 | | |
| 646 | | static const ChipDescriptor w83781d_chip = { |
| 647 | | w83781d_names, w83781d_features, SENSORS_W83781D_ALARMS, SENSORS_W83781D_BEEPS |
| 648 | | }; |
| 649 | | |
| 650 | | /** AS99127F **/ |
| 651 | | |
| 652 | | static const char *as99127f_names[] = { |
| 653 | | SENSORS_AS99127F_PREFIX, NULL |
| 654 | | }; |
| 655 | | |
| 656 | | static const FeatureDescriptor as99127f_features[] = { |
| 657 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN0, W83781D_ALARM_IN0, |
| 658 | | { SENSORS_W83781D_IN0, SENSORS_W83781D_IN0_MIN, SENSORS_W83781D_IN0_MAX, -1 } }, |
| 659 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN1, W83781D_ALARM_IN1, |
| 660 | | { SENSORS_W83781D_IN1, SENSORS_W83781D_IN1_MIN, SENSORS_W83781D_IN1_MAX, -1 } }, |
| 661 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN2, W83781D_ALARM_IN2, |
| 662 | | { SENSORS_W83781D_IN2, SENSORS_W83781D_IN2_MIN, SENSORS_W83781D_IN2_MAX, -1 } }, |
| 663 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN3, W83781D_ALARM_IN3, |
| 664 | | { SENSORS_W83781D_IN3, SENSORS_W83781D_IN3_MIN, SENSORS_W83781D_IN3_MAX, -1 } }, |
| 665 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN4, W83781D_ALARM_IN4, |
| 666 | | { SENSORS_W83781D_IN4, SENSORS_W83781D_IN4_MIN, SENSORS_W83781D_IN4_MAX, -1 } }, |
| 667 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN5, W83781D_ALARM_IN5, |
| 668 | | { SENSORS_W83781D_IN5, SENSORS_W83781D_IN5_MIN, SENSORS_W83781D_IN5_MAX, -1 } }, |
| 669 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN6, W83781D_ALARM_IN6, |
| 670 | | { SENSORS_W83781D_IN6, SENSORS_W83781D_IN6_MIN, SENSORS_W83781D_IN6_MAX, -1 } }, |
| 671 | | { fmtFans_0, rrdF0, DataType_rpm, W83781D_ALARM_FAN1, W83781D_ALARM_FAN1, |
| 672 | | { SENSORS_W83781D_FAN1, SENSORS_W83781D_FAN1_MIN, SENSORS_W83781D_FAN1_DIV, -1 } }, |
| 673 | | { fmtFans_0, rrdF0, DataType_rpm, W83781D_ALARM_FAN2, W83781D_ALARM_FAN2, |
| 674 | | { SENSORS_W83781D_FAN2, SENSORS_W83781D_FAN2_MIN, SENSORS_W83781D_FAN2_DIV, -1 } }, |
| 675 | | { fmtFans_0, rrdF0, DataType_rpm, W83781D_ALARM_FAN3, W83781D_ALARM_FAN3, |
| 676 | | { SENSORS_W83781D_FAN3, SENSORS_W83781D_FAN3_MIN, SENSORS_W83781D_FAN3_DIV, -1 } }, |
| 677 | | { fmtTemps_W83781D, rrdF0, DataType_temperature, W83781D_ALARM_TEMP1, W83781D_ALARM_TEMP1, |
| 678 | | { SENSORS_W83781D_TEMP1, SENSORS_W83781D_TEMP1_OVER, SENSORS_W83781D_TEMP1_HYST, -1 } }, |
| 679 | | { fmtTemps_1_0, rrdF1, DataType_temperature, W83781D_ALARM_TEMP2, W83781D_ALARM_TEMP2, |
| 680 | | { SENSORS_W83781D_TEMP2, SENSORS_W83781D_TEMP2_OVER, SENSORS_W83781D_TEMP2_HYST, -1 } }, |
| 681 | | { fmtTemps_1_0, rrdF1, DataType_temperature, W83781D_ALARM_TEMP3, W83781D_ALARM_TEMP3, |
| 682 | | { SENSORS_W83781D_TEMP3, SENSORS_W83781D_TEMP3_OVER, SENSORS_W83781D_TEMP3_HYST, -1 } }, |
| 683 | | { fmtVolt_3, rrdF3, DataType_voltage, 0, 0, |
| 684 | | { SENSORS_W83781D_VID, -1 } }, |
| 685 | | { fmtChassisIntrusionDetection, NULL, DataType_other, W83781D_ALARM_CHAS, W83781D_ALARM_CHAS, |
| 686 | | { SENSORS_W83781D_ALARMS, -1 } }, |
| 687 | | { fmtSoundAlarm, NULL, DataType_other, 0, 0, |
| 688 | | { SENSORS_W83781D_BEEP_ENABLE, -1 } }, |
| 689 | | { NULL } |
| 690 | | }; |
| 691 | | |
| 692 | | static const ChipDescriptor as99127f_chip = { |
| 693 | | as99127f_names, as99127f_features, SENSORS_W83781D_ALARMS, SENSORS_W83781D_BEEPS |
| 694 | | }; |
| 695 | | |
| 696 | | /** W83782D **/ |
| 697 | | |
| 698 | | static const char * |
| 699 | | fmtTemps_W8378x_0 |
| 700 | | (const double values[], int alarm, int beep) { |
| 701 | | int sensorID = (int) values[3]; |
| 702 | | const char *sensor = (sensorID == 1) ? "PII/Celeron diode" : |
| 703 | | (sensorID == 2) ? "3904 transistor" : "thermistor"; |
| 704 | | if (values[2] == 127) { |
| 705 | | sprintf (buff, "%.0f C (limit = %.0f C, sensors = %s)", |
| 706 | | values[0], values[1], sensor); |
| 707 | | } else { |
| 708 | | sprintf (buff, "%.0f C (limit = %.0f C, hysteresis = %.0f C, sensors = %s)", |
| 709 | | values[0], values[1], values[2], sensor); |
| 710 | | } |
| 711 | | return fmtExtra (alarm, beep); |
| 712 | | } |
| 713 | | |
| 714 | | static const char * |
| 715 | | fmtTemps_W8378x_1 |
| 716 | | (const double values[], int alarm, int beep) { |
| 717 | | int sensorID = (int) values[3]; |
| 718 | | const char *sensor = (sensorID == 1) ? "PII/Celeron diode" : |
| 719 | | (sensorID == 2) ? "3904 transistor" : "thermistor"; |
| 720 | | sprintf (buff, "%.1f C (limit = %.0f C, hysteresis = %.0f C, sensor = %s)", |
| 721 | | values[0], values[1], values[2], sensor); |
| 722 | | return fmtExtra (alarm, beep); |
| 723 | | } |
| 724 | | |
| 725 | | static const char *w83782d_names[] = { |
| 726 | | SENSORS_W83782D_PREFIX, SENSORS_W83627HF_PREFIX, SENSORS_W83627THF_PREFIX, SENSORS_W83637HF_PREFIX, NULL |
| 727 | | }; |
| 728 | | |
| 729 | | static const FeatureDescriptor w83782d_features[] = { |
| 730 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN0, W83781D_ALARM_IN0, |
| 731 | | { SENSORS_W83782D_IN0, SENSORS_W83782D_IN0_MIN, SENSORS_W83782D_IN0_MAX, -1 } }, |
| 732 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN1, W83781D_ALARM_IN1, |
| 733 | | { SENSORS_W83782D_IN1, SENSORS_W83782D_IN1_MIN, SENSORS_W83782D_IN1_MAX, -1 } }, |
| 734 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN2, W83781D_ALARM_IN2, |
| 735 | | { SENSORS_W83782D_IN2, SENSORS_W83782D_IN2_MIN, SENSORS_W83782D_IN2_MAX, -1 } }, |
| 736 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN3, W83781D_ALARM_IN3, |
| 737 | | { SENSORS_W83782D_IN3, SENSORS_W83782D_IN3_MIN, SENSORS_W83782D_IN3_MAX, -1 } }, |
| 738 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN4, W83781D_ALARM_IN4, |
| 739 | | { SENSORS_W83782D_IN4, SENSORS_W83782D_IN4_MIN, SENSORS_W83782D_IN4_MAX, -1 } }, |
| 740 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN5, W83781D_ALARM_IN5, |
| 741 | | { SENSORS_W83782D_IN5, SENSORS_W83782D_IN5_MIN, SENSORS_W83782D_IN5_MAX, -1 } }, |
| 742 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN6, W83781D_ALARM_IN6, |
| 743 | | { SENSORS_W83782D_IN6, SENSORS_W83782D_IN6_MIN, SENSORS_W83782D_IN6_MAX, -1 } }, |
| 744 | | { fmtVolts_2, rrdF2, DataType_voltage, W83782D_ALARM_IN7, W83782D_ALARM_IN7, |
| 745 | | { SENSORS_W83782D_IN7, SENSORS_W83782D_IN7_MIN, SENSORS_W83782D_IN7_MAX, -1 } }, |
| 746 | | { fmtVolts_2, rrdF2, DataType_voltage, W83782D_ALARM_IN8, W83782D_ALARM_IN8, |
| 747 | | { SENSORS_W83782D_IN8, SENSORS_W83782D_IN8_MIN, SENSORS_W83782D_IN8_MAX, -1 } }, |
| 748 | | { fmtFans_0, rrdF0, DataType_rpm, W83781D_ALARM_FAN1, W83781D_ALARM_FAN1, |
| 749 | | { SENSORS_W83782D_FAN1, SENSORS_W83782D_FAN1_MIN, SENSORS_W83782D_FAN1_DIV, -1 } }, |
| 750 | | { fmtFans_0, rrdF0, DataType_rpm, W83781D_ALARM_FAN2, W83781D_ALARM_FAN2, |
| 751 | | { SENSORS_W83782D_FAN2, SENSORS_W83782D_FAN2_MIN, SENSORS_W83782D_FAN2_DIV, -1 } }, |
| 752 | | { fmtFans_0, rrdF0, DataType_rpm, W83781D_ALARM_FAN3, W83781D_ALARM_FAN3, |
| 753 | | { SENSORS_W83782D_FAN3, SENSORS_W83782D_FAN3_MIN, SENSORS_W83782D_FAN3_DIV, -1 } }, |
| 754 | | { fmtTemps_W8378x_0, rrdF0, DataType_temperature, W83781D_ALARM_TEMP1, W83781D_ALARM_TEMP1, |
| 755 | | { SENSORS_W83782D_TEMP1, SENSORS_W83782D_TEMP1_OVER, SENSORS_W83782D_TEMP1_HYST, SENSORS_W83782D_SENS1, -1 } }, |
| 756 | | { fmtTemps_W8378x_1, rrdF1, DataType_temperature, W83781D_ALARM_TEMP2, W83781D_ALARM_TEMP2, |
| 757 | | { SENSORS_W83782D_TEMP2, SENSORS_W83782D_TEMP2_OVER, SENSORS_W83782D_TEMP2_HYST, SENSORS_W83782D_SENS2, -1 } }, |
| 758 | | { fmtTemps_W8378x_1, rrdF1, DataType_temperature, W83781D_ALARM_TEMP3, W83781D_ALARM_TEMP3, |
| 759 | | { SENSORS_W83782D_TEMP3, SENSORS_W83782D_TEMP3_OVER, SENSORS_W83782D_TEMP3_HYST, SENSORS_W83782D_SENS3, -1 } }, |
| 760 | | { fmtVolt_3, rrdF3, DataType_voltage, 0, 0, |
| 761 | | { SENSORS_W83782D_VID, -1 } }, |
| 762 | | { fmtChassisIntrusionDetection, NULL, DataType_other, W83781D_ALARM_CHAS, W83781D_ALARM_CHAS, |
| 763 | | { SENSORS_W83781D_ALARMS, -1 } }, |
| 764 | | { fmtSoundAlarm, NULL, DataType_other, 0, 0, |
| 765 | | { SENSORS_W83781D_BEEP_ENABLE, -1 } }, |
| 766 | | { NULL } |
| 767 | | }; |
| 768 | | |
| 769 | | static const ChipDescriptor w83782d_chip = { |
| 770 | | w83782d_names, w83782d_features, SENSORS_W83782D_ALARMS, SENSORS_W83782D_BEEPS |
| 771 | | }; |
| 772 | | |
| 773 | | /** W83783S **/ |
| 774 | | |
| 775 | | static const char *w83783s_names[] = { |
| 776 | | SENSORS_W83783S_PREFIX, NULL |
| 777 | | }; |
| 778 | | |
| 779 | | static const FeatureDescriptor w83783s_features[] = { |
| 780 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN0, W83781D_ALARM_IN0, |
| 781 | | { SENSORS_W83783S_IN0, SENSORS_W83783S_IN0_MIN, SENSORS_W83783S_IN0_MAX, -1 } }, |
| 782 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN2, W83781D_ALARM_IN2, |
| 783 | | { SENSORS_W83783S_IN2, SENSORS_W83783S_IN2_MIN, SENSORS_W83783S_IN2_MAX, -1 } }, |
| 784 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN3, W83781D_ALARM_IN3, |
| 785 | | { SENSORS_W83783S_IN3, SENSORS_W83783S_IN3_MIN, SENSORS_W83783S_IN3_MAX, -1 } }, |
| 786 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN4, W83781D_ALARM_IN4, |
| 787 | | { SENSORS_W83783S_IN4, SENSORS_W83783S_IN4_MIN, SENSORS_W83783S_IN4_MAX, -1 } }, |
| 788 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN5, W83781D_ALARM_IN5, |
| 789 | | { SENSORS_W83783S_IN5, SENSORS_W83783S_IN5_MIN, SENSORS_W83783S_IN5_MAX, -1 } }, |
| 790 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN6, W83781D_ALARM_IN6, |
| 791 | | { SENSORS_W83782D_IN6, SENSORS_W83782D_IN6_MIN, SENSORS_W83782D_IN6_MAX, -1 } }, |
| 792 | | { fmtFans_0, rrdF0, DataType_rpm, W83781D_ALARM_FAN1, W83781D_ALARM_FAN1, |
| 793 | | { SENSORS_W83783S_FAN1, SENSORS_W83783S_FAN1_MIN, SENSORS_W83783S_FAN1_DIV, -1 } }, |
| 794 | | { fmtFans_0, rrdF0, DataType_rpm, W83781D_ALARM_FAN2, W83781D_ALARM_FAN2, |
| 795 | | { SENSORS_W83783S_FAN2, SENSORS_W83783S_FAN2_MIN, SENSORS_W83783S_FAN2_DIV, -1 } }, |
| 796 | | { fmtFans_0, rrdF0, DataType_rpm, W83781D_ALARM_FAN3, W83781D_ALARM_FAN3, |
| 797 | | { SENSORS_W83783S_FAN3, SENSORS_W83783S_FAN3_MIN, SENSORS_W83783S_FAN3_DIV, -1 } }, |
| 798 | | { fmtTemps_W8378x_0, rrdF0, DataType_temperature, W83781D_ALARM_TEMP1, W83781D_ALARM_TEMP1, |
| 799 | | { SENSORS_W83783S_TEMP1, SENSORS_W83783S_TEMP1_OVER, SENSORS_W83783S_TEMP1_HYST, SENSORS_W83783S_SENS1, -1 } }, |
| 800 | | { fmtTemps_W8378x_1, rrdF1, DataType_temperature, W83781D_ALARM_TEMP2, W83781D_ALARM_TEMP2, |
| 801 | | { SENSORS_W83783S_TEMP2, SENSORS_W83783S_TEMP2_OVER, SENSORS_W83783S_TEMP2_HYST, SENSORS_W83783S_SENS2, -1 } }, |
| 802 | | { fmtVolt_3, rrdF3, DataType_voltage, 0, 0, |
| 803 | | { SENSORS_W83783S_VID, -1 } }, |
| 804 | | { fmtSoundAlarm, NULL, DataType_other, 0, 0, |
| 805 | | { SENSORS_W83781D_BEEP_ENABLE, -1 } }, |
| 806 | | { NULL } |
| 807 | | }; |
| 808 | | |
| 809 | | static const ChipDescriptor w83783s_chip = { |
| 810 | | w83783s_names, w83783s_features, SENSORS_W83783S_ALARMS, SENSORS_W83783S_BEEPS |
| 811 | | }; |
| 812 | | |
| 813 | | /** W83697HF **/ |
| 814 | | |
| 815 | | static const char *w83697hf_names[] = { |
| 816 | | SENSORS_W83697HF_PREFIX, NULL |
| 817 | | }; |
| 818 | | |
| 819 | | static const FeatureDescriptor w83697hf_features[] = { |
| 820 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN0, W83781D_ALARM_IN0, |
| 821 | | { SENSORS_W83782D_IN0, SENSORS_W83782D_IN0_MIN, SENSORS_W83782D_IN0_MAX, -1 } }, |
| 822 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN2, W83781D_ALARM_IN2, |
| 823 | | { SENSORS_W83782D_IN2, SENSORS_W83782D_IN2_MIN, SENSORS_W83782D_IN2_MAX, -1 } }, |
| 824 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN3, W83781D_ALARM_IN3, |
| 825 | | { SENSORS_W83782D_IN3, SENSORS_W83782D_IN3_MIN, SENSORS_W83782D_IN3_MAX, -1 } }, |
| 826 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN4, W83781D_ALARM_IN4, |
| 827 | | { SENSORS_W83782D_IN4, SENSORS_W83782D_IN4_MIN, SENSORS_W83782D_IN4_MAX, -1 } }, |
| 828 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN5, W83781D_ALARM_IN5, |
| 829 | | { SENSORS_W83782D_IN5, SENSORS_W83782D_IN5_MIN, SENSORS_W83782D_IN5_MAX, -1 } }, |
| 830 | | { fmtVolts_2, rrdF2, DataType_voltage, W83781D_ALARM_IN6, W83781D_ALARM_IN6, |
| 831 | | { SENSORS_W83782D_IN6, SENSORS_W83782D_IN6_MIN, SENSORS_W83782D_IN6_MAX, -1 } }, |
| 832 | | { fmtFans_0, rrdF0, DataType_rpm, W83781D_ALARM_FAN1, W83781D_ALARM_FAN1, |
| 833 | | { SENSORS_W83782D_FAN1, SENSORS_W83782D_FAN1_MIN, SENSORS_W83782D_FAN1_DIV, -1 } }, |
| 834 | | { fmtFans_0, rrdF0, DataType_rpm, W83781D_ALARM_FAN2, W83781D_ALARM_FAN2, |
| 835 | | { SENSORS_W83782D_FAN2, SENSORS_W83782D_FAN2_MIN, SENSORS_W83782D_FAN2_DIV, -1 } }, |
| 836 | | { fmtTemps_W8378x_0, rrdF0, DataType_temperature, W83781D_ALARM_TEMP1, W83781D_ALARM_TEMP1, |
| 837 | | { SENSORS_W83782D_TEMP1, SENSORS_W83782D_TEMP1_OVER, SENSORS_W83782D_TEMP1_HYST, SENSORS_W83782D_SENS1, -1 } }, |
| 838 | | { fmtTemps_W8378x_1, rrdF1, DataType_temperature, W83781D_ALARM_TEMP2, W83781D_ALARM_TEMP2, |
| 839 | | { SENSORS_W83782D_TEMP2, SENSORS_W83782D_TEMP2_OVER, SENSORS_W83782D_TEMP2_HYST, SENSORS_W83782D_SENS2, -1 } }, |
| 840 | | { fmtChassisIntrusionDetection, NULL, DataType_other, W83781D_ALARM_CHAS, W83781D_ALARM_CHAS, |
| 841 | | { SENSORS_W83781D_ALARMS, -1 } }, |
| 842 | | { fmtSoundAlarm, NULL, DataType_other, 0, 0, |
| 843 | | { SENSORS_W83781D_BEEP_ENABLE, -1 } }, |
| 844 | | { NULL } |
| 845 | | }; |
| 846 | | |
| 847 | | static const ChipDescriptor w83697hf_chip = { |
| 848 | | w83697hf_names, w83697hf_features, SENSORS_W83781D_ALARMS, SENSORS_W83781D_BEEPS |
| 849 | | }; |
| 850 | | |
| 851 | | |
| 852 | | /** MAXILIFE **/ |
| 853 | | |
| 854 | | static const char * |
| 855 | | fmtTemps_Maxilife |
| 856 | | (const double values[], int alarm, int beep) { |
| 857 | | if (!values[0] && !values[1] && !values[2]) |
| 858 | | return NULL; |
| 859 | | return fmtTemps_1_0 (values, alarm, beep); |
| 860 | | } |
| 861 | | |
| 862 | | static const char * |
| 863 | | rrdTemps_Maxilife |
| 864 | | (const double values[]) { |
| 865 | | if (!values[0] && !values[1] && !values[2]) |
| 866 | | return NULL; |
| 867 | | return rrdF1 (values); |
| 868 | | } |
| 869 | | |
| 870 | | static const char * |
| 871 | | fmtFans_Maxilife |
| 872 | | (const double values[], int alarm, int beep) { |
| 873 | | if (!values[0] && !values[1] && !values[2]) |
| 874 | | return NULL; |
| 875 | | if (values[0] < 0) { |
| 876 | | sprintf (buff, "Off (min = %.0f RPM, div = %.0f)", values[1], values[2]); |
| 877 | | } else { |
| 878 | | sprintf (buff, "%.0f RPM (min = %.0f RPM, div = %.0f)", values[0] / values[2], values[1] / values[2], values[2]); |
| 879 | | } |
| 880 | | return fmtExtra (alarm, beep); |
| 881 | | } |
| 882 | | |
| 883 | | static const char * |
| 884 | | rrdFans_Maxilife |
| 885 | | (const double values[]) { |
| 886 | | if (!values[0] && !values[1] && !values[2]) |
| 887 | | return NULL; |
| 888 | | if (values[0] < 0) { |
| 889 | | return NULL; |
| 890 | | } else { |
| 891 | | sprintf (buff, "%.0f", values[0] / values[2]); |
| 892 | | return buff; |
| 893 | | } |
| 894 | | } |
| 895 | | |
| 896 | | static const char * |
| 897 | | fmtMHz_Maxilife |
| 898 | | (const double values[], int alarm, int beep) { |
| 899 | | if (!values[0] && !values[1] && !values[2]) |
| 900 | | return NULL; |
| 901 | | return fmtMHz_2 (values, alarm, beep); |
| 902 | | } |
| 903 | | |
| 904 | | static const char * |
| 905 | | rrdMHz_Maxilife |
| 906 | | (const double values[]) { |
| 907 | | if (!values[0] && !values[1] && !values[2]) |
| 908 | | return NULL; |
| 909 | | return rrdF2 (values); |
| 910 | | } |
| 911 | | |
| 912 | | static const char * |
| 913 | | fmtVolts_Maxilife |
| 914 | | (const double values[], int alarm, int beep) { |
| 915 | | if (!values[0] && !values[1] && !values[2]) |
| 916 | | return NULL; |
| 917 | | return fmtVolts_2 (values, alarm, beep); |
| 918 | | } |
| 919 | | |
| 920 | | static const char * |
| 921 | | rrdVolts_Maxilife |
| 922 | | (const double values[]) { |
| 923 | | if (!values[0] && !values[1] && !values[2]) |
| 924 | | return NULL; |
| 925 | | return rrdF2 (values); |
| 926 | | } |
| 927 | | |
| 928 | | static const char *maxilife_names[] = { |
| 929 | | SENSORS_MAXI_CG_PREFIX, SENSORS_MAXI_CO_PREFIX, SENSORS_MAXI_AS_PREFIX, SENSORS_MAXI_NBA_PREFIX, NULL |
| 930 | | }; |
| 931 | | |
| 932 | | static const FeatureDescriptor maxilife_features[] = { |
| 933 | | { fmtTemps_Maxilife, rrdTemps_Maxilife, DataType_temperature, 0, 0, |
| 934 | | { SENSORS_MAXI_CG_TEMP1, SENSORS_MAXI_CG_TEMP1_MAX, SENSORS_MAXI_CG_TEMP1_HYST, -1 } }, |
| 935 | | { fmtTemps_Maxilife, rrdTemps_Maxilife, DataType_temperature, MAXI_ALARM_TEMP2, 0, |
| 936 | | { SENSORS_MAXI_CG_TEMP2, SENSORS_MAXI_CG_TEMP2_MAX, SENSORS_MAXI_CG_TEMP2_HYST, -1 } }, |
| 937 | | { fmtTemps_Maxilife, rrdTemps_Maxilife, DataType_temperature, 0, 0, |
| 938 | | { SENSORS_MAXI_CG_TEMP3, SENSORS_MAXI_CG_TEMP3_MAX, SENSORS_MAXI_CG_TEMP3_HYST, -1 } }, |
| 939 | | { fmtTemps_Maxilife, rrdTemps_Maxilife, DataType_temperature, MAXI_ALARM_TEMP4, 0, |
| 940 | | { SENSORS_MAXI_CG_TEMP4, SENSORS_MAXI_CG_TEMP4_MAX, SENSORS_MAXI_CG_TEMP4_HYST, -1 } }, |
| 941 | | { fmtTemps_Maxilife, rrdTemps_Maxilife, DataType_temperature, MAXI_ALARM_TEMP5, 0, |
| 942 | | { SENSORS_MAXI_CG_TEMP5, SENSORS_MAXI_CG_TEMP5_MAX, SENSORS_MAXI_CG_TEMP4_HYST, -1 } }, |
| 943 | | { fmtFans_Maxilife, rrdFans_Maxilife, DataType_rpm, MAXI_ALARM_FAN1, 0, |
| 944 | | { SENSORS_MAXI_CG_FAN1, SENSORS_MAXI_CG_FAN1_MIN, SENSORS_MAXI_CG_FAN1_DIV, -1 } }, |
| 945 | | { fmtFans_Maxilife, rrdFans_Maxilife, DataType_rpm, MAXI_ALARM_FAN2, 0, |
| 946 | | { SENSORS_MAXI_CG_FAN2, SENSORS_MAXI_CG_FAN2_MIN, SENSORS_MAXI_CG_FAN2_DIV, -1 } }, |
| 947 | | { fmtFans_Maxilife, rrdFans_Maxilife, DataType_rpm, MAXI_ALARM_FAN3, 0, |
| 948 | | { SENSORS_MAXI_CG_FAN3, SENSORS_MAXI_CG_FAN3_MIN, SENSORS_MAXI_CG_FAN3_DIV, -1 } }, |
| 949 | | { fmtVolts_Maxilife, rrdVolts_Maxilife, DataType_voltage, MAXI_ALARM_VID1, 0, |
| 950 | | { SENSORS_MAXI_CG_VID1, SENSORS_MAXI_CG_VID1_MIN, SENSORS_MAXI_CG_VID1_MAX, -1 } }, |
| 951 | | { fmtVolts_Maxilife, rrdVolts_Maxilife, DataType_voltage, MAXI_ALARM_VID2, 0, |
| 952 | | { SENSORS_MAXI_CG_VID2, SENSORS_MAXI_CG_VID2_MIN, SENSORS_MAXI_CG_VID2_MAX, -1 } }, |
| 953 | | { fmtVolts_Maxilife, rrdVolts_Maxilife, DataType_voltage, MAXI_ALARM_VID3, 0, |
| 954 | | { SENSORS_MAXI_CG_VID3, SENSORS_MAXI_CG_VID3_MIN, SENSORS_MAXI_CG_VID3_MAX, -1 } }, |
| 955 | | { fmtVolts_Maxilife, rrdVolts_Maxilife, DataType_voltage, MAXI_ALARM_VID4, 0, |
| 956 | | { SENSORS_MAXI_CG_VID4, SENSORS_MAXI_CG_VID4_MIN, SENSORS_MAXI_CG_VID4_MAX, -1 } }, |
| 957 | | { NULL } |
| 958 | | }; |
| 959 | | |
| 960 | | static const ChipDescriptor maxilife_chip = { |
| 961 | | maxilife_names, maxilife_features, SENSORS_MAXI_CG_ALARMS, 0 |
| 962 | | }; |
| 963 | | |
| 964 | | /** ASB100 **/ |
| 965 | | |
| 966 | | static const char *asb100_names[] = { |
| 967 | | SENSORS_ASB100_PREFIX, NULL |
| 968 | | }; |
| 969 | | |
| 970 | | static const FeatureDescriptor asb100_features[] = { |
| 971 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 972 | | { SENSORS_ASB100_IN0, SENSORS_ASB100_IN0_MIN, SENSORS_ASB100_IN0_MAX, -1 } }, |
| 973 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 974 | | { SENSORS_ASB100_IN1, SENSORS_ASB100_IN1_MIN, SENSORS_ASB100_IN1_MAX, -1 } }, |
| 975 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 976 | | { SENSORS_ASB100_IN2, SENSORS_ASB100_IN2_MIN, SENSORS_ASB100_IN2_MAX, -1 } }, |
| 977 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 978 | | { SENSORS_ASB100_IN3, SENSORS_ASB100_IN3_MIN, SENSORS_ASB100_IN3_MAX, -1 } }, |
| 979 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 980 | | { SENSORS_ASB100_IN4, SENSORS_ASB100_IN4_MIN, SENSORS_ASB100_IN4_MAX, -1 } }, |
| 981 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 982 | | { SENSORS_ASB100_IN5, SENSORS_ASB100_IN5_MIN, SENSORS_ASB100_IN5_MAX, -1 } }, |
| 983 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 984 | | { SENSORS_ASB100_IN6, SENSORS_ASB100_IN6_MIN, SENSORS_ASB100_IN6_MAX, -1 } }, |
| 985 | | |
| 986 | | { fmtFans_0, rrdF0, DataType_rpm, 0, 0, |
| 987 | | { SENSORS_ASB100_FAN1, SENSORS_ASB100_FAN1_MIN, -1 } }, |
| 988 | | { fmtFans_0, rrdF0, DataType_rpm, 0, 0, |
| 989 | | { SENSORS_ASB100_FAN2, SENSORS_ASB100_FAN2_MIN, -1 } }, |
| 990 | | { fmtFans_0, rrdF0, DataType_rpm, 0, 0, |
| 991 | | { SENSORS_ASB100_FAN3, SENSORS_ASB100_FAN3_MIN, -1 } }, |
| 992 | | |
| 993 | | { fmtTemps_1_0, rrdF1, DataType_temperature, 0, 0, |
| 994 | | { SENSORS_ASB100_TEMP1, SENSORS_ASB100_TEMP1_HYST, SENSORS_ASB100_TEMP1_OVER, -1 } }, |
| 995 | | { fmtTemps_1_0, rrdF1, DataType_temperature, 0, 0, |
| 996 | | { SENSORS_ASB100_TEMP2, SENSORS_ASB100_TEMP2_HYST, SENSORS_ASB100_TEMP2_OVER, -1 } }, |
| 997 | | { fmtTemps_1_0, rrdF1, DataType_temperature, 0, 0, |
| 998 | | { SENSORS_ASB100_TEMP3, SENSORS_ASB100_TEMP3_HYST, SENSORS_ASB100_TEMP3_OVER, -1 } }, |
| 999 | | { fmtTemps_1_0, rrdF1, DataType_temperature, 0, 0, |
| 1000 | | { SENSORS_ASB100_TEMP4, SENSORS_ASB100_TEMP4_HYST, SENSORS_ASB100_TEMP4_OVER, -1 } }, |
| 1001 | | |
| 1002 | | { NULL } |
| 1003 | | }; |
| 1004 | | |
| 1005 | | static const ChipDescriptor asb100_chip = { |
| 1006 | | asb100_names, asb100_features, 0, 0 |
| 1007 | | }; |
| 1008 | | |
| 1009 | | /** PC87360 **/ |
| 1010 | | |
| 1011 | | static const char * |
| 1012 | | fmtTemps_PC87360_0 |
| 1013 | | (const double values[], int alarm, int beep) { |
| 1014 | | sprintf (buff, "%.0f C (min = %.0f C, max = %.0f C, crit = %.0f C)", |
| 1015 | | values[0], values[1], values[2], values[3]); |
| 1016 | | return fmtExtra (alarm, beep); |
| 1017 | | } |
| 1018 | | |
| 1019 | | static const char * |
| 1020 | | fmtTemps_PC87360_1 |
| 1021 | | (const double values[], int alarm, int beep) { |
| 1022 | | sprintf (buff, "%.1f C (min = %.1f C, max = %.1f C, crit = %.1f C)", |
| 1023 | | values[0], values[1], values[2], values[3]); |
| 1024 | | return fmtExtra (alarm, beep); |
| 1025 | | } |
| 1026 | | |
| 1027 | | static const char *pc87360_names[] = { |
| 1028 | | SENSORS_PC87360_PREFIX, |
| 1029 | | SENSORS_PC87363_PREFIX, |
| 1030 | | SENSORS_PC87364_PREFIX, |
| 1031 | | SENSORS_PC87365_PREFIX, |
| 1032 | | SENSORS_PC87366_PREFIX, |
| 1033 | | NULL |
| 1034 | | }; |
| 1035 | | |
| 1036 | | static const FeatureDescriptor pc87360_features[] = { |
| 1037 | | { fmtFans_0, rrdF0, DataType_rpm, 0, 0, |
| 1038 | | { SENSORS_PC87360_FAN1, SENSORS_PC87360_FAN1_MIN, SENSORS_PC87360_FAN1_DIV, -1 } }, |
| 1039 | | { fmtFans_0, rrdF0, DataType_rpm, 0, 0, |
| 1040 | | { SENSORS_PC87360_FAN2, SENSORS_PC87360_FAN2_MIN, SENSORS_PC87360_FAN2_DIV, -1 } }, |
| 1041 | | { fmtFans_0, rrdF0, DataType_rpm, 0, 0, |
| 1042 | | { SENSORS_PC87360_FAN3, SENSORS_PC87360_FAN3_MIN, SENSORS_PC87360_FAN3_DIV, -1 } }, |
| 1043 | | |
| 1044 | | { fmtTemps_PC87360_0, rrdF0, DataType_temperature, 3 << 0, 0, |
| 1045 | | { SENSORS_PC87360_TEMP1, SENSORS_PC87360_TEMP1_MIN, SENSORS_PC87360_TEMP1_MAX, |
| 1046 | | SENSORS_PC87360_TEMP1_CRIT, -1 } }, |
| 1047 | | { fmtTemps_PC87360_0, rrdF0, DataType_temperature, 3 << 2, 0, |
| 1048 | | { SENSORS_PC87360_TEMP2, SENSORS_PC87360_TEMP2_MIN, SENSORS_PC87360_TEMP2_MAX, |
| 1049 | | SENSORS_PC87360_TEMP2_CRIT, -1 } }, |
| 1050 | | { fmtTemps_PC87360_0, rrdF0, DataType_temperature, 3 << 4, 0, |
| 1051 | | { SENSORS_PC87360_TEMP3, SENSORS_PC87360_TEMP3_MIN, SENSORS_PC87360_TEMP3_MAX, |
| 1052 | | SENSORS_PC87360_TEMP3_CRIT, -1 } }, |
| 1053 | | { fmtTemps_PC87360_1, rrdF1, DataType_temperature, 0, 0, |
| 1054 | | { SENSORS_PC87360_TEMP4, SENSORS_PC87360_TEMP4_MIN, SENSORS_PC87360_TEMP4_MAX, |
| 1055 | | SENSORS_PC87360_TEMP4_CRIT, -1 } }, |
| 1056 | | { fmtTemps_PC87360_1, rrdF1, DataType_temperature, 0, 0, |
| 1057 | | { SENSORS_PC87360_TEMP5, SENSORS_PC87360_TEMP5_MIN, SENSORS_PC87360_TEMP5_MAX, |
| 1058 | | SENSORS_PC87360_TEMP5_CRIT, -1 } }, |
| 1059 | | { fmtTemps_PC87360_1, rrdF1, DataType_temperature, 0, 0, |
| 1060 | | { SENSORS_PC87360_TEMP6, SENSORS_PC87360_TEMP6_MIN, SENSORS_PC87360_TEMP6_MAX, |
| 1061 | | SENSORS_PC87360_TEMP6_CRIT, -1 } }, |
| 1062 | | |
| 1063 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1064 | | { SENSORS_PC87360_IN0, SENSORS_PC87360_IN0_MIN, SENSORS_PC87360_IN0_MAX, -1 } }, |
| 1065 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1066 | | { SENSORS_PC87360_IN1, SENSORS_PC87360_IN1_MIN, SENSORS_PC87360_IN1_MAX, -1 } }, |
| 1067 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1068 | | { SENSORS_PC87360_IN2, SENSORS_PC87360_IN2_MIN, SENSORS_PC87360_IN2_MAX, -1 } }, |
| 1069 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1070 | | { SENSORS_PC87360_IN3, SENSORS_PC87360_IN3_MIN, SENSORS_PC87360_IN3_MAX, -1 } }, |
| 1071 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1072 | | { SENSORS_PC87360_IN4, SENSORS_PC87360_IN4_MIN, SENSORS_PC87360_IN4_MAX, -1 } }, |
| 1073 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1074 | | { SENSORS_PC87360_IN5, SENSORS_PC87360_IN5_MIN, SENSORS_PC87360_IN5_MAX, -1 } }, |
| 1075 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1076 | | { SENSORS_PC87360_IN6, SENSORS_PC87360_IN6_MIN, SENSORS_PC87360_IN6_MAX, -1 } }, |
| 1077 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1078 | | { SENSORS_PC87360_IN7, SENSORS_PC87360_IN7_MIN, SENSORS_PC87360_IN7_MAX, -1 } }, |
| 1079 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1080 | | { SENSORS_PC87360_IN8, SENSORS_PC87360_IN8_MIN, SENSORS_PC87360_IN8_MAX, -1 } }, |
| 1081 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1082 | | { SENSORS_PC87360_IN9, SENSORS_PC87360_IN9_MIN, SENSORS_PC87360_IN9_MAX, -1 } }, |
| 1083 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1084 | | { SENSORS_PC87360_IN10, SENSORS_PC87360_IN10_MIN, SENSORS_PC87360_IN10_MAX, -1 } }, |
| 1085 | | |
| 1086 | | { fmtVolt_3, rrdF3, DataType_voltage, 0, 0, |
| 1087 | | { SENSORS_PC87360_VID, -1 } }, |
| 1088 | | { NULL } |
| 1089 | | }; |
| 1090 | | |
| 1091 | | static const ChipDescriptor pc87360_chip = { |
| 1092 | | /* No room for SENSORS_PC87360_ALARMS_IN */ |
| 1093 | | pc87360_names, pc87360_features, SENSORS_PC87360_ALARMS_TEMP, 0 |
| 1094 | | }; |
| 1095 | | |
| 1096 | | /** PC87427 **/ |
| 1097 | | |
| 1098 | | static const char *pc87427_names[] = { |
| 1099 | | SENSORS_PC87427_PREFIX, |
| 1100 | | NULL |
| 1101 | | }; |
| 1102 | | |
| 1103 | | static const FeatureDescriptor pc87427_features[] = { |
| 1104 | | { fmtFans_nodiv_0, rrdF0, DataType_rpm, 0, 0, |
| 1105 | | { SENSORS_PC87427_FAN(1), SENSORS_PC87427_FAN_MIN(1), -1, -1 } }, |
| 1106 | | { fmtFans_nodiv_0, rrdF0, DataType_rpm, 0, 0, |
| 1107 | | { SENSORS_PC87427_FAN(2), SENSORS_PC87427_FAN_MIN(2), -1, -1 } }, |
| 1108 | | { fmtFans_nodiv_0, rrdF0, DataType_rpm, 0, 0, |
| 1109 | | { SENSORS_PC87427_FAN(3), SENSORS_PC87427_FAN_MIN(3), -1, -1 } }, |
| 1110 | | { fmtFans_nodiv_0, rrdF0, DataType_rpm, 0, 0, |
| 1111 | | { SENSORS_PC87427_FAN(4), SENSORS_PC87427_FAN_MIN(4), -1, -1 } }, |
| 1112 | | { fmtFans_nodiv_0, rrdF0, DataType_rpm, 0, 0, |
| 1113 | | { SENSORS_PC87427_FAN(5), SENSORS_PC87427_FAN_MIN(5), -1, -1 } }, |
| 1114 | | { fmtFans_nodiv_0, rrdF0, DataType_rpm, 0, 0, |
| 1115 | | { SENSORS_PC87427_FAN(6), SENSORS_PC87427_FAN_MIN(6), -1, -1 } }, |
| 1116 | | { fmtFans_nodiv_0, rrdF0, DataType_rpm, 0, 0, |
| 1117 | | { SENSORS_PC87427_FAN(7), SENSORS_PC87427_FAN_MIN(7), -1, -1 } }, |
| 1118 | | { fmtFans_nodiv_0, rrdF0, DataType_rpm, 0, 0, |
| 1119 | | { SENSORS_PC87427_FAN(8), SENSORS_PC87427_FAN_MIN(8), -1, -1 } }, |
| 1120 | | { NULL } |
| 1121 | | }; |
| 1122 | | |
| 1123 | | static const ChipDescriptor pc87427_chip = { |
| 1124 | | pc87427_names, pc87427_features, 0, 0 |
| 1125 | | }; |
| 1126 | | |
| 1127 | | /** W83627EHF & W83627DHG **/ |
| 1128 | | |
| 1129 | | static const char *w83627ehf_names[] = { |
| 1130 | | SENSORS_W83627EHF_PREFIX, SENSORS_W83627DHG_PREFIX, NULL |
| 1131 | | }; |
| 1132 | | |
| 1133 | | static const FeatureDescriptor w83627ehf_features[] = { |
| 1134 | | { fmtFans_0, rrdF0, DataType_rpm, 0, 0, |
| 1135 | | { SENSORS_W83627EHF_FAN1, SENSORS_W83627EHF_FAN1_MIN, SENSORS_W83627EHF_FAN1_DIV, -1 } }, |
| 1136 | | { fmtFans_0, rrdF0, DataType_rpm, 0, 0, |
| 1137 | | { SENSORS_W83627EHF_FAN2, SENSORS_W83627EHF_FAN2_MIN, SENSORS_W83627EHF_FAN2_DIV, -1 } }, |
| 1138 | | { fmtFans_0, rrdF0, DataType_rpm, 0, 0, |
| 1139 | | { SENSORS_W83627EHF_FAN3, SENSORS_W83627EHF_FAN3_MIN, SENSORS_W83627EHF_FAN3_DIV, -1 } }, |
| 1140 | | { fmtFans_0, rrdF0, DataType_rpm, 0, 0, |
| 1141 | | { SENSORS_W83627EHF_FAN4, SENSORS_W83627EHF_FAN4_MIN, SENSORS_W83627EHF_FAN4_DIV, -1 } }, |
| 1142 | | { fmtFans_0, rrdF0, DataType_rpm, 0, 0, |
| 1143 | | { SENSORS_W83627EHF_FAN5, SENSORS_W83627EHF_FAN5_MIN, SENSORS_W83627EHF_FAN5_DIV, -1 } }, |
| 1144 | | { fmtTemps_0, rrdF0, DataType_temperature, 0, 0, |
| 1145 | | { SENSORS_W83627EHF_TEMP1, SENSORS_W83627EHF_TEMP1_OVER, SENSORS_W83627EHF_TEMP1_HYST, -1 } }, |
| 1146 | | { fmtTemps_1, rrdF1, DataType_temperature, 0, 0, |
| 1147 | | { SENSORS_W83627EHF_TEMP2, SENSORS_W83627EHF_TEMP2_OVER, SENSORS_W83627EHF_TEMP2_HYST, -1 } }, |
| 1148 | | { fmtTemps_1, rrdF1, DataType_temperature, 0, 0, |
| 1149 | | { SENSORS_W83627EHF_TEMP3, SENSORS_W83627EHF_TEMP3_OVER, SENSORS_W83627EHF_TEMP3_HYST, -1 } }, |
| 1150 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1151 | | { SENSORS_W83627EHF_IN0, SENSORS_W83627EHF_IN0_MIN, SENSORS_W83627EHF_IN0_MAX, -1 } }, |
| 1152 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1153 | | { SENSORS_W83627EHF_IN1, SENSORS_W83627EHF_IN1_MIN, SENSORS_W83627EHF_IN1_MAX, -1 } }, |
| 1154 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1155 | | { SENSORS_W83627EHF_IN2, SENSORS_W83627EHF_IN2_MIN, SENSORS_W83627EHF_IN2_MAX, -1 } }, |
| 1156 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1157 | | { SENSORS_W83627EHF_IN3, SENSORS_W83627EHF_IN3_MIN, SENSORS_W83627EHF_IN3_MAX, -1 } }, |
| 1158 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1159 | | { SENSORS_W83627EHF_IN4, SENSORS_W83627EHF_IN4_MIN, SENSORS_W83627EHF_IN4_MAX, -1 } }, |
| 1160 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1161 | | { SENSORS_W83627EHF_IN5, SENSORS_W83627EHF_IN5_MIN, SENSORS_W83627EHF_IN5_MAX, -1 } }, |
| 1162 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1163 | | { SENSORS_W83627EHF_IN6, SENSORS_W83627EHF_IN6_MIN, SENSORS_W83627EHF_IN6_MAX, -1 } }, |
| 1164 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1165 | | { SENSORS_W83627EHF_IN7, SENSORS_W83627EHF_IN7_MIN, SENSORS_W83627EHF_IN7_MAX, -1 } }, |
| 1166 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1167 | | { SENSORS_W83627EHF_IN8, SENSORS_W83627EHF_IN8_MIN, SENSORS_W83627EHF_IN8_MAX, -1 } }, |
| 1168 | | { fmtVolts_2, rrdF2, DataType_voltage, 0, 0, |
| 1169 | | { SENSORS_W83627EHF_IN9, SENSORS_W83627EHF_IN9_MIN, SENSORS_W83627EHF_IN9_MAX, -1 } }, |
| 1170 | | { NULL } |
| 1171 | | }; |
| 1172 | | |
| 1173 | | static const ChipDescriptor w83627ehf_chip = { |
| 1174 | | w83627ehf_names, w83627ehf_features, 0, 0 |
| 1175 | | }; |
| 1176 | | |
| 1177 | | /** F71805F **/ |
| 1178 | | |
| 1179 | | static const char *f71805f_names[] = { |
| 1180 | | SENSORS_F71805F_PREFIX, NULL |
| 1181 | | }; |
| 1182 | | |
| 1183 | | static const FeatureDescriptor f71805f_features[] = { |
| 1184 | | { fmtVolts_2, rrdF3, DataType_voltage, 0, 0, |
| 1185 | | { SENSORS_F71805F_IN(0), SENSORS_F71805F_IN_MIN(0), SENSORS_F71805F_IN_MAX(0), -1 } }, |
| 1186 | | { fmtVolts_2, rrdF3, DataType_voltage, 0, 0, |
| 1187 | | { SENSORS_F71805F_IN(1), SENSORS_F71805F_IN_MIN(1), SENSORS_F71805F_IN_MAX(1), -1 } }, |
| 1188 | | { fmtVolts_2, rrdF3, DataType_voltage, 0, 0, |
| 1189 | | { SENSORS_F71805F_IN(2), SENSORS_F71805F_IN_MIN(2), SENSORS_F71805F_IN_MAX(2), -1 } }, |
| 1190 | | { fmtVolts_2, rrdF3, DataType_voltage, 0, 0, |
| 1191 | | { SENSORS_F71805F_IN(3), SENSORS_F71805F_IN_MIN(3), SENSORS_F71805F_IN_MAX(3), -1 } }, |
| 1192 | | { fmtVolts_2, rrdF3, DataType_voltage, 0, 0, |
| 1193 | | { SENSORS_F71805F_IN(4), SENSORS_F71805F_IN_MIN(4), SENSORS_F71805F_IN_MAX(4), -1 } }, |
| 1194 | | { fmtVolts_2, rrdF3, DataType_voltage, 0, 0, |
| 1195 | | { SENSORS_F71805F_IN(5), SENSORS_F71805F_IN_MIN(5), SENSORS_F71805F_IN_MAX(5), -1 } }, |
| 1196 | | { fmtVolts_2, rrdF3, DataType_voltage, 0, 0, |
| 1197 | | { SENSORS_F71805F_IN(6), SENSORS_F71805F_IN_MIN(6), SENSORS_F71805F_IN_MAX(6), -1 } }, |
| 1198 | | { fmtVolts_2, rrdF3, DataType_voltage, 0, 0, |
| 1199 | | { SENSORS_F71805F_IN(7), SENSORS_F71805F_IN_MIN(7), SENSORS_F71805F_IN_MAX(7), -1 } }, |
| 1200 | | { fmtVolts_2, rrdF3, DataType_voltage, 0, 0, |
| 1201 | | { SENSORS_F71805F_IN(8), SENSORS_F71805F_IN_MIN(8), SENSORS_F71805F_IN_MAX(8), -1 } }, |
| 1202 | | { fmtFans_0, rrdF0, DataType_rpm, 0, 0, |
| 1203 | | { SENSORS_F71805F_FAN(1), SENSORS_F71805F_FAN_MIN(1), -1, -1 } }, |
| 1204 | | { fmtFans_0, rrdF0, DataType_rpm, 0, 0, |
| 1205 | | { SENSORS_F71805F_FAN(2), SENSORS_F71805F_FAN_MIN(2), -1, -1 } }, |
| 1206 | | { fmtFans_0, rrdF0, DataType_rpm, 0, 0, |
| 1207 | | { SENSORS_F71805F_FAN(3), SENSORS_F71805F_FAN_MIN(3), -1, -1 } }, |
| 1208 | | { fmtTemps_0, rrdF0, DataType_temperature, 1 << 0, 0, |
| 1209 | | { SENSORS_F71805F_TEMP(1), SENSORS_F71805F_TEMP_MAX(1), SENSORS_F71805F_TEMP_HYST(1), -1 } }, |
| 1210 | | { fmtTemps_0, rrdF0, DataType_temperature, 1 << 1, 0, |
| 1211 | | { SENSORS_F71805F_TEMP(2), SENSORS_F71805F_TEMP_MAX(2), SENSORS_F71805F_TEMP_HYST(2), -1 } }, |
| 1212 | | { fmtTemps_0, rrdF0, DataType_temperature, 1 << 2, 0, |
| 1213 | | { SENSORS_F71805F_TEMP(3), SENSORS_F71805F_TEMP_MAX(3), SENSORS_F71805F_TEMP_HYST(3), -1 } }, |
| 1214 | | { NULL } |
| 1215 | | }; |
| 1216 | | |
| 1217 | | static const ChipDescriptor f71805f_chip = { |
| 1218 | | /* No room for SENSORS_F71805F_ALARMS_IN nor SENSORS_F71805F_ALARMS_FAN */ |
| 1219 | | f71805f_names, f71805f_features, SENSORS_F71805F_ALARMS_TEMP, 0 |
| 1220 | | }; |
| 1221 | | |
| 1222 | | /** VT1211 **/ |
| 1223 | | |
| 1224 | | static const char *vt1211_names[] = { |
| 1225 | | SENSORS_VT1211_PREFIX, NULL |
| 1226 | | }; |
| 1227 | | |
| 1228 | | static const FeatureDescriptor vt1211_features[] = { |
| 1229 | | { fmtVolts_2, rrdF2, DataType_voltage, VT1211_ALARM_IN0, 0, |
| 1230 | | { SENSORS_VT1211_IN0, SENSORS_VT1211_IN0_MIN, SENSORS_VT1211_IN0_MAX, -1 } }, |
| 1231 | | { fmtVolts_2, rrdF2, DataType_voltage, VT1211_ALARM_IN1, 0, |
| 1232 | | { SENSORS_VT1211_IN1, SENSORS_VT1211_IN1_MIN, SENSORS_VT1211_IN1_MAX, -1 } }, |
| 1233 | | { fmtVolts_2, rrdF2, DataType_voltage, VT1211_ALARM_IN2, 0, |
| 1234 | | { SENSORS_VT1211_IN2, SENSORS_VT1211_IN2_MIN, SENSORS_VT1211_IN2_MAX, -1 } }, |
| 1235 | | { fmtVolts_2, rrdF2, DataType_voltage, VT1211_ALARM_IN3, 0, |
| 1236 | | { SENSORS_VT1211_IN3, SENSORS_VT1211_IN3_MIN, SENSORS_VT1211_IN3_MAX, -1 } }, |
| 1237 | | { fmtVolts_2, rrdF2, DataType_voltage, VT1211_ALARM_IN4, 0, |
| 1238 | | { SENSORS_VT1211_IN4, SENSORS_VT1211_IN4_MIN, SENSORS_VT1211_IN4_MAX, -1 } }, |
| 1239 | | { fmtVolts_2, rrdF2, DataType_voltage, VT1211_ALARM_IN5, 0, |
| 1240 | | { SENSORS_VT1211_IN5, SENSORS_VT1211_IN5_MIN, SENSORS_VT1211_IN5_MAX, -1 } }, |
| 1241 | | { fmtFans_0, rrdF0, DataType_rpm, VT1211_ALARM_FAN1, 0, |
| 1242 | | { SENSORS_VT1211_FAN1, SENSORS_VT1211_FAN1_MIN, SENSORS_VT1211_FAN1_DIV, -1 } }, |
| 1243 | | { fmtFans_0, rrdF0, DataType_rpm, VT1211_ALARM_FAN2, 0, |
| 1244 | | { SENSORS_VT1211_FAN2, SENSORS_VT1211_FAN2_MIN, SENSORS_VT1211_FAN2_DIV, -1 } }, |
| 1245 | | { fmtTemps_1_0, rrdF1, DataType_temperature, VT1211_ALARM_TEMP1, 0, |
| 1246 | | { SENSORS_VT1211_TEMP1, SENSORS_VT1211_TEMP1_OVER, SENSORS_VT1211_TEMP1_HYST, -1 } }, |
| 1247 | | { fmtTemps_1_0, rrdF1, DataType_temperature, VT1211_ALARM_TEMP2, 0, |
| 1248 | | { SENSORS_VT1211_TEMP2, SENSORS_VT1211_TEMP2_OVER, SENSORS_VT1211_TEMP2_HYST, -1 } }, |
| 1249 | | { fmtTemps_1_0, rrdF1, DataType_temperature, VT1211_ALARM_TEMP3, 0, |
| 1250 | | { SENSORS_VT1211_TEMP3, SENSORS_VT1211_TEMP3_OVER, SENSORS_VT1211_TEMP3_HYST, -1 } }, |
| 1251 | | { fmtTemps_1_0, rrdF1, DataType_temperature, VT1211_ALARM_TEMP4, 0, |
| 1252 | | { SENSORS_VT1211_TEMP4, SENSORS_VT1211_TEMP4_OVER, SENSORS_VT1211_TEMP4_HYST, -1 } }, |
| 1253 | | { fmtTemps_1_0, rrdF1, DataType_temperature, VT1211_ALARM_TEMP5, 0, |
| 1254 | | { SENSORS_VT1211_TEMP5, SENSORS_VT1211_TEMP5_OVER, SENSORS_VT1211_TEMP5_HYST, -1 } }, |
| 1255 | | { fmtTemps_1_0, rrdF1, DataType_temperature, VT1211_ALARM_TEMP6, 0, |
| 1256 | | { SENSORS_VT1211_TEMP6, SENSORS_VT1211_TEMP6_OVER, SENSORS_VT1211_TEMP6_HYST, -1 } }, |
| 1257 | | { fmtTemps_1_0, rrdF1, DataType_temperature, VT1211_ALARM_TEMP7, 0, |
| 1258 | | { SENSORS_VT1211_TEMP7, SENSORS_VT1211_TEMP7_OVER, SENSORS_VT1211_TEMP7_HYST, -1 } }, |
| 1259 | | { fmtVolt_3, rrdF3, DataType_voltage, 0, 0, |
| 1260 | | { SENSORS_VT1211_VID, -1 } }, |
| 1261 | | { NULL } |
| 1262 | | }; |
| 1263 | | |
| 1264 | | static const ChipDescriptor vt1211_chip = { |
| 1265 | | vt1211_names, vt1211_features, SENSORS_VT1211_ALARMS, 0 |
| 1266 | | }; |
| 1267 | | |
| 1268 | | /** K8 **/ |
| 1269 | | |
| 1270 | | static const char *k8temp_names[] = { |
| 1271 | | SENSORS_K8TEMP_PREFIX, NULL |
| 1272 | | }; |
| 1273 | | |
| 1274 | | static const FeatureDescriptor k8temp_features[] = { |
| 1275 | | { fmtTemp_only, rrdF0, DataType_temperature, 0, 0, |
| 1276 | | { SENSORS_K8TEMP_TEMP1, -1 } }, |
| 1277 | | { NULL } |
| 1278 | | }; |
| 1279 | | |
| 1280 | | static const ChipDescriptor k8temp_chip = { |
| 1281 | | k8temp_names, k8temp_features, 0, 0 |
| 1282 | | }; |
| 1283 | | |
| 1284 | | |