Changeset 173
- Timestamp:
- 01/24/99 01:15:12 (14 years ago)
- Location:
- lm-sensors/trunk
- Files:
-
- 6 modified
-
kernel/chips/adm9240.c (modified) (6 diffs)
-
kernel/include/sensors.h (modified) (1 diff)
-
lib/chips.c (modified) (3 diffs)
-
lib/chips.h (modified) (2 diffs)
-
src/adm9240.c (modified) (6 diffs)
-
src/sensors.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lm-sensors/trunk/kernel/chips/adm9240.c
r154 r173 133 133 #define DIV_TO_REG(val) (val==1?0:(val==2?1:(val==4?2:3))) 134 134 135 #define VID_FROM_REG(val) ((val)==0x1f?0:(val)>=0x10?510-(val)*10:\ 136 (val)>=0x06?0:205-(val)*5) 137 135 138 /* Initial limits */ 136 139 #define ADM9240_INIT_IN_0 190 … … 202 205 u8 temp_os_hyst; /* Register value */ 203 206 u16 alarms; /* Register encoding, combined */ 204 u8 analog_out; /* Register value */ 207 u8 analog_out; /* Register value */ 208 u8 vid; /* Register value combined */ 205 209 }; 206 210 … … 238 242 int *nrels_mag, long *results); 239 243 static void adm9240_analog_out(struct i2c_client *client, int operation, int ctl_name, 244 int *nrels_mag, long *results); 245 static void adm9240_vid(struct i2c_client *client, int operation, int ctl_name, 240 246 int *nrels_mag, long *results); 241 247 … … 293 299 { ADM9240_SYSCTL_ANALOG_OUT, "analog_out", NULL, 0, 0644, NULL, &sensors_proc_real, 294 300 &sensors_sysctl_real, NULL, &adm9240_analog_out }, 301 { ADM9240_SYSCTL_VID, "vid", NULL, 0, 0644, NULL, &sensors_proc_real, 302 &sensors_sysctl_real, NULL, &adm9240_vid }, 295 303 { 0 } 296 304 }; … … 524 532 data->fan_div[0] = (i >> 4) & 0x03; 525 533 data->fan_div[1] = (i >> 6) & 0x03; 534 data->vid = i & 0x0f; 535 data->vid |= (adm9240_read_value(client,ADM9240_REG_VID4) & 0x01) << 4; 536 526 537 data->alarms = adm9240_read_value(client,ADM9240_REG_INT1_STAT) + 527 538 (adm9240_read_value(client,ADM9240_REG_INT2_STAT) << 8); … … 683 694 } 684 695 696 void adm9240_vid(struct i2c_client *client, int operation, int ctl_name, 697 int *nrels_mag, long *results) 698 { 699 struct adm9240_data *data = client->data; 700 701 if (operation == SENSORS_PROC_REAL_INFO) 702 *nrels_mag = 2; 703 else if (operation == SENSORS_PROC_REAL_READ) { 704 adm9240_update_client(client); 705 results[0] = VID_FROM_REG(data->vid); 706 *nrels_mag = 1; 707 } 708 } 709 685 710 int adm9240_init(void) 686 711 { -
lm-sensors/trunk/kernel/include/sensors.h
r158 r173 232 232 #define ADM9240_SYSCTL_ALARMS 2001 /* bitvector */ 233 233 #define ADM9240_SYSCTL_ANALOG_OUT 2002 234 #define ADM9240_SYSCTL_VID 2003 234 235 235 236 #define LTC1710_SYSCTL_SWITCH_1 1000 -
lm-sensors/trunk/lib/chips.c
r171 r173 293 293 SENSORS_LM75_TEMP, SENSORS_MODE_RW, 294 294 LM75_SYSCTL_TEMP, VALUE(1), 1 }, 295 { 0 } 296 }; 297 298 299 static sensors_chip_feature adm1021_features[] = 300 { 301 { SENSORS_ADM1021_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 302 SENSORS_MODE_R, ADM1021_SYSCTL_TEMP, VALUE(3), 0 }, 303 { SENSORS_ADM1021_TEMP_HYST, "temp_low", SENSORS_ADM1021_TEMP, 304 SENSORS_ADM1021_TEMP, SENSORS_MODE_RW, 305 ADM1021_SYSCTL_TEMP, VALUE(2), 0 }, 306 { SENSORS_ADM1021_TEMP_OVER, "temp_over", SENSORS_ADM1021_TEMP, 307 SENSORS_ADM1021_TEMP, SENSORS_MODE_RW, 308 ADM1021_SYSCTL_TEMP, VALUE(1), 0 }, 309 { SENSORS_ADM1021_REMOTE_TEMP, "remote_temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 310 SENSORS_MODE_R, ADM1021_SYSCTL_REMOTE_TEMP, VALUE(3), 0 }, 311 { SENSORS_ADM1021_REMOTE_TEMP_HYST, "remote_temp_low", SENSORS_ADM1021_REMOTE_TEMP, 312 SENSORS_ADM1021_REMOTE_TEMP, SENSORS_MODE_RW, 313 ADM1021_SYSCTL_REMOTE_TEMP, VALUE(2), 0 }, 314 { SENSORS_ADM1021_REMOTE_TEMP_OVER, "remote_temp_over", SENSORS_ADM1021_REMOTE_TEMP, 315 SENSORS_ADM1021_REMOTE_TEMP, SENSORS_MODE_RW, 316 ADM1021_SYSCTL_REMOTE_TEMP, VALUE(1), 0 }, 317 { SENSORS_ADM1021_STATUS, "status", SENSORS_NO_MAPPING, 318 SENSORS_NO_MAPPING, SENSORS_MODE_R, 319 ADM1021_SYSCTL_STATUS, VALUE(1), 0 }, 295 320 { 0 } 296 321 }; … … 642 667 { 0 } 643 668 }; 669 670 static sensors_chip_feature adm9240_features[] = 671 { 672 { SENSORS_ADM9240_IN0, "2.5V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 673 SENSORS_MODE_R, ADM9240_SYSCTL_IN0, VALUE(3), 2 }, 674 { SENSORS_ADM9240_IN1, "Vccp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 675 SENSORS_MODE_R, ADM9240_SYSCTL_IN1, VALUE(3), 2 }, 676 { SENSORS_ADM9240_IN2, "3.3V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 677 SENSORS_MODE_R, ADM9240_SYSCTL_IN2, VALUE(3), 2 }, 678 { SENSORS_ADM9240_IN3, "5V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 679 SENSORS_MODE_R, ADM9240_SYSCTL_IN3, VALUE(3), 2 }, 680 { SENSORS_ADM9240_IN4, "12V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 681 SENSORS_MODE_R, ADM9240_SYSCTL_IN4, VALUE(3), 2 }, 682 { SENSORS_ADM9240_IN5, "Vccp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 683 SENSORS_MODE_R, ADM9240_SYSCTL_IN5, VALUE(3), 2 }, 684 { SENSORS_ADM9240_IN0_MIN, "2.5V_min", SENSORS_ADM9240_IN0, 685 SENSORS_ADM9240_IN0, SENSORS_MODE_RW, 686 ADM9240_SYSCTL_IN0, VALUE(1), 2 }, 687 { SENSORS_ADM9240_IN1_MIN, "Vccp1_min", SENSORS_ADM9240_IN1, 688 SENSORS_ADM9240_IN1, SENSORS_MODE_RW, 689 ADM9240_SYSCTL_IN1, VALUE(1), 2 }, 690 { SENSORS_ADM9240_IN2_MIN, "3.3V_min", SENSORS_ADM9240_IN2, 691 SENSORS_ADM9240_IN2, SENSORS_MODE_RW, 692 ADM9240_SYSCTL_IN2, VALUE(1), 2 }, 693 { SENSORS_ADM9240_IN3_MIN, "5V_min", SENSORS_ADM9240_IN3, 694 SENSORS_ADM9240_IN3, SENSORS_MODE_RW, 695 ADM9240_SYSCTL_IN3, VALUE(1), 2 }, 696 { SENSORS_ADM9240_IN4_MIN, "12V_min", SENSORS_ADM9240_IN4, 697 SENSORS_ADM9240_IN4, SENSORS_MODE_RW, 698 ADM9240_SYSCTL_IN4, VALUE(1), 2 }, 699 { SENSORS_ADM9240_IN5_MIN, "Vccp2_min", SENSORS_ADM9240_IN5, 700 SENSORS_ADM9240_IN5, SENSORS_MODE_RW, 701 ADM9240_SYSCTL_IN5, VALUE(1), 2 }, 702 { SENSORS_ADM9240_IN0_MAX, "2.5V_max", SENSORS_ADM9240_IN0, 703 SENSORS_ADM9240_IN0, SENSORS_MODE_RW, 704 ADM9240_SYSCTL_IN0, VALUE(2), 2 }, 705 { SENSORS_ADM9240_IN1_MAX, "Vccp1_max", SENSORS_ADM9240_IN1, 706 SENSORS_ADM9240_IN1, SENSORS_MODE_RW, 707 ADM9240_SYSCTL_IN1, VALUE(2), 2 }, 708 { SENSORS_ADM9240_IN2_MAX, "3.3V_max", SENSORS_ADM9240_IN2, 709 SENSORS_ADM9240_IN2, SENSORS_MODE_RW, 710 ADM9240_SYSCTL_IN2, VALUE(2), 2 }, 711 { SENSORS_ADM9240_IN3_MAX, "5V_max", SENSORS_ADM9240_IN3, 712 SENSORS_ADM9240_IN3, SENSORS_MODE_RW, 713 ADM9240_SYSCTL_IN3, VALUE(2), 2 }, 714 { SENSORS_ADM9240_IN4_MAX, "12V_max", SENSORS_ADM9240_IN4, 715 SENSORS_ADM9240_IN4, SENSORS_MODE_RW, 716 ADM9240_SYSCTL_IN4, VALUE(2), 2 }, 717 { SENSORS_ADM9240_IN5_MAX, "Vccp2_max", SENSORS_ADM9240_IN5, 718 SENSORS_ADM9240_IN5, SENSORS_MODE_RW, 719 ADM9240_SYSCTL_IN5, VALUE(2), 2 }, 720 { SENSORS_ADM9240_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 721 SENSORS_MODE_R, ADM9240_SYSCTL_FAN1, VALUE(2), 0 }, 722 { SENSORS_ADM9240_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 723 SENSORS_MODE_R, ADM9240_SYSCTL_FAN2, VALUE(2), 0 }, 724 { SENSORS_ADM9240_FAN1_MIN, "fan1_min", SENSORS_ADM9240_FAN1, 725 SENSORS_NO_MAPPING, SENSORS_MODE_RW, 726 ADM9240_SYSCTL_FAN1, VALUE(1), 0 }, 727 { SENSORS_ADM9240_FAN2_MIN, "fan2_min", SENSORS_ADM9240_FAN2, 728 SENSORS_NO_MAPPING, SENSORS_MODE_RW, 729 ADM9240_SYSCTL_FAN2, VALUE(1), 0 }, 730 { SENSORS_ADM9240_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 731 SENSORS_MODE_R, ADM9240_SYSCTL_TEMP, VALUE(3), 1 }, 732 { SENSORS_ADM9240_TEMP_HYST, "temp_hyst", SENSORS_ADM9240_TEMP, 733 SENSORS_ADM9240_TEMP, SENSORS_MODE_RW, 734 ADM9240_SYSCTL_TEMP, VALUE(2), 1 }, 735 { SENSORS_ADM9240_TEMP_OVER, "temp_over", SENSORS_ADM9240_TEMP, 736 SENSORS_ADM9240_TEMP, SENSORS_MODE_RW, 737 ADM9240_SYSCTL_TEMP, VALUE(1), 1 }, 738 739 { SENSORS_ADM9240_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 740 SENSORS_MODE_R, ADM9240_SYSCTL_VID, VALUE(1), 2 }, 741 { SENSORS_ADM9240_FAN1_DIV, "fan1_div", SENSORS_ADM9240_FAN1, 742 SENSORS_NO_MAPPING, SENSORS_MODE_RW, 743 ADM9240_SYSCTL_FAN_DIV, VALUE(1), 0 }, 744 { SENSORS_ADM9240_FAN2_DIV, "fan2_div", SENSORS_ADM9240_FAN2, 745 SENSORS_NO_MAPPING, SENSORS_MODE_RW, 746 ADM9240_SYSCTL_FAN_DIV, VALUE(2), 0 }, 747 { SENSORS_ADM9240_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 748 SENSORS_MODE_R, ADM9240_SYSCTL_ALARMS, VALUE(1), 0 }, 749 { SENSORS_ADM9240_ANALOG_OUT, "analog_out", SENSORS_NO_MAPPING, 750 SENSORS_NO_MAPPING, SENSORS_MODE_RW, 751 ADM9240_SYSCTL_ANALOG_OUT, VALUE(1), 0 }, 752 { 0 } 753 }; 644 754 645 755 sensors_chip_features sensors_chip_features_list[] = … … 653 763 { SENSORS_LM80_PREFIX, lm80_features }, 654 764 { SENSORS_W83781D_PREFIX, w83781d_features }, 765 { SENSORS_ADM9240_PREFIX, adm9240_features }, 766 { SENSORS_ADM1021_PREFIX, adm1021_features }, 655 767 { 0 } 656 768 }; -
lm-sensors/trunk/lib/chips.h
r129 r173 167 167 #define SENSORS_LM75_TEMP_OVER 53 /* RW */ 168 168 169 /* ADM1021 chips. */ 170 171 #define SENSORS_ADM1021_PREFIX "adm1021" 172 173 #define SENSORS_ADM1021_TEMP 51 /* R */ 174 #define SENSORS_ADM1021_TEMP_HYST 52 /* RW */ 175 #define SENSORS_ADM1021_TEMP_OVER 53 /* RW */ 176 #define SENSORS_ADM1021_REMOTE_TEMP 54 /* R */ 177 #define SENSORS_ADM1021_REMOTE_TEMP_HYST 55 /* RW */ 178 #define SENSORS_ADM1021_REMOTE_TEMP_OVER 56 /* RW */ 179 #define SENSORS_ADM1021_STATUS 81 /* R */ 169 180 170 181 /* GL518SM revision 0x00 chips. You may also use the revision 0x80 defines, … … 319 330 #define SENSORS_W83781D_BEEPS 83 /* RW */ 320 331 332 333 /* Analog Devices ADM9240 chips */ 334 335 #define SENSORS_ADM9240_PREFIX "adm9240" 336 337 #define SENSORS_ADM9240_IN0 1 /* R */ 338 #define SENSORS_ADM9240_IN1 2 /* R */ 339 #define SENSORS_ADM9240_IN2 3 /* R */ 340 #define SENSORS_ADM9240_IN3 4 /* R */ 341 #define SENSORS_ADM9240_IN4 5 /* R */ 342 #define SENSORS_ADM9240_IN5 6 /* R */ 343 #define SENSORS_ADM9240_IN0_MIN 11 /* RW */ 344 #define SENSORS_ADM9240_IN1_MIN 12 /* RW */ 345 #define SENSORS_ADM9240_IN2_MIN 13 /* RW */ 346 #define SENSORS_ADM9240_IN3_MIN 14 /* RW */ 347 #define SENSORS_ADM9240_IN4_MIN 15 /* RW */ 348 #define SENSORS_ADM9240_IN5_MIN 16 /* RW */ 349 #define SENSORS_ADM9240_IN0_MAX 21 /* RW */ 350 #define SENSORS_ADM9240_IN1_MAX 22 /* RW */ 351 #define SENSORS_ADM9240_IN2_MAX 23 /* RW */ 352 #define SENSORS_ADM9240_IN3_MAX 24 /* RW */ 353 #define SENSORS_ADM9240_IN4_MAX 25 /* RW */ 354 #define SENSORS_ADM9240_IN5_MAX 26 /* RW */ 355 #define SENSORS_ADM9240_FAN1 31 /* R */ 356 #define SENSORS_ADM9240_FAN2 32 /* R */ 357 #define SENSORS_ADM9240_FAN1_MIN 41 /* RW */ 358 #define SENSORS_ADM9240_FAN2_MIN 42 /* RW */ 359 #define SENSORS_ADM9240_TEMP 51 /* R */ 360 #define SENSORS_ADM9240_TEMP_HYST 52 /* RW */ 361 #define SENSORS_ADM9240_TEMP_OVER 53 /* RW */ 362 #define SENSORS_ADM9240_VID 61 /* R */ 363 #define SENSORS_ADM9240_FAN1_DIV 71 /* RW */ 364 #define SENSORS_ADM9240_FAN2_DIV 72 /* RW */ 365 #define SENSORS_ADM9240_ALARMS 81 /* R */ 366 #define SENSORS_ADM9240_ANALOG_OUT 82 /* RW */ 367 368 321 369 #endif /* def LIB_SENSORS_CHIPS_H */ -
lm-sensors/trunk/src/adm9240.c
r154 r173 133 133 #define DIV_TO_REG(val) (val==1?0:(val==2?1:(val==4?2:3))) 134 134 135 #define VID_FROM_REG(val) ((val)==0x1f?0:(val)>=0x10?510-(val)*10:\ 136 (val)>=0x06?0:205-(val)*5) 137 135 138 /* Initial limits */ 136 139 #define ADM9240_INIT_IN_0 190 … … 202 205 u8 temp_os_hyst; /* Register value */ 203 206 u16 alarms; /* Register encoding, combined */ 204 u8 analog_out; /* Register value */ 207 u8 analog_out; /* Register value */ 208 u8 vid; /* Register value combined */ 205 209 }; 206 210 … … 238 242 int *nrels_mag, long *results); 239 243 static void adm9240_analog_out(struct i2c_client *client, int operation, int ctl_name, 244 int *nrels_mag, long *results); 245 static void adm9240_vid(struct i2c_client *client, int operation, int ctl_name, 240 246 int *nrels_mag, long *results); 241 247 … … 293 299 { ADM9240_SYSCTL_ANALOG_OUT, "analog_out", NULL, 0, 0644, NULL, &sensors_proc_real, 294 300 &sensors_sysctl_real, NULL, &adm9240_analog_out }, 301 { ADM9240_SYSCTL_VID, "vid", NULL, 0, 0644, NULL, &sensors_proc_real, 302 &sensors_sysctl_real, NULL, &adm9240_vid }, 295 303 { 0 } 296 304 }; … … 524 532 data->fan_div[0] = (i >> 4) & 0x03; 525 533 data->fan_div[1] = (i >> 6) & 0x03; 534 data->vid = i & 0x0f; 535 data->vid |= (adm9240_read_value(client,ADM9240_REG_VID4) & 0x01) << 4; 536 526 537 data->alarms = adm9240_read_value(client,ADM9240_REG_INT1_STAT) + 527 538 (adm9240_read_value(client,ADM9240_REG_INT2_STAT) << 8); … … 683 694 } 684 695 696 void adm9240_vid(struct i2c_client *client, int operation, int ctl_name, 697 int *nrels_mag, long *results) 698 { 699 struct adm9240_data *data = client->data; 700 701 if (operation == SENSORS_PROC_REAL_INFO) 702 *nrels_mag = 2; 703 else if (operation == SENSORS_PROC_REAL_READ) { 704 adm9240_update_client(client); 705 results[0] = VID_FROM_REG(data->vid); 706 *nrels_mag = 1; 707 } 708 } 709 685 710 int adm9240_init(void) 686 711 { -
lm-sensors/trunk/src/sensors.h
r158 r173 232 232 #define ADM9240_SYSCTL_ALARMS 2001 /* bitvector */ 233 233 #define ADM9240_SYSCTL_ANALOG_OUT 2002 234 #define ADM9240_SYSCTL_VID 2003 234 235 235 236 #define LTC1710_SYSCTL_SWITCH_1 1000
