Changeset 2564

Show
Ignore:
Timestamp:
05/24/04 22:25:13 (5 years ago)
Author:
khali
Message:

Initial MAX1619 support, contributed by Alexey Fisher.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • lm-sensors/trunk/CONTRIBUTORS

    r2296 r2564  
    8282  Author of the decode-edid.pl EDID data decoder. 
    8383  Perl scripts maintainer, tester, bug fixer, general support. 
    84   Author of the lm83 and lm90 chip drivers. 
     84  Author of the lm83, lm90, pca9540 and pc87360 chip drivers. 
    8585* Vojtech Pavlik <vojtech@suse.cz>       
    8686  Author of the i2c-amd8111 bus driver. 
     
    9191* Sascha Volkenandt <sascha@akv-soft.de> 
    9292  Author of the SAA1064 chip driver. 
    93 * John Morris (john.morris@spirentcom.com) 
     93* John Morris <john.morris@spirentcom.com> 
    9494  Author of the MAX6650 chip driver. 
    9595* Reinhard Nissl <rnissl@gmx.de> 
    9696  Author of the fscher driver. 
    97  
     97* Alexey Fisher <fishor@mail.ru> 
     98  Author of the max1619 chip driver. 
  • lm-sensors/trunk/doc/chips/SUMMARY

    r2556 r2564  
    150150        lm76            1       -       -       -       yes     no 
    151151 
     152max1619 
     153        max1619         2       -       -       -       yes     no 
     154 
     155max6650 
     156        (all are reported as a "max6650") 
     157        max6650         -       -       1       1 pwm   yes     no 
     158        max6651         -       -       4       1 pwm   yes     no 
     159 
    152160maxilife 
    153161        maxilife-as     5       4       3       -       yes     no 
  • lm-sensors/trunk/etc/sensors.conf.eg

    r2557 r2564  
    17191719#   set tcrit 85 
    17201720 
     1721 
     1722chip "max1619-*" 
     1723 
     1724   label temp1 "M/B Temp" 
     1725   label temp2 "CPU Temp" 
     1726 
     1727# change high and low limits to fit your needs 
     1728   set temp2_min   10 
     1729   set temp2_max   100 
     1730 
     1731# change critical limit and hysteresis to fit your needs 
     1732   set temp2_crit  55 
     1733   set temp2_hyst  50 
     1734 
     1735 
    17211736chip "lm90-*" "adm1032-*" 
    17221737 
  • lm-sensors/trunk/kernel/chips/Module.mk

    r2418 r2564  
    3232KERNELCHIPSTARGETS += $(MODULE_DIR)/lm83.o 
    3333KERNELCHIPSTARGETS += $(MODULE_DIR)/lm90.o 
     34KERNELCHIPSTARGETS += $(MODULE_DIR)/max1619.o 
    3435KERNELCHIPSTARGETS += $(MODULE_DIR)/max6650.o 
    3536KERNELCHIPSTARGETS += $(MODULE_DIR)/saa1064.o 
  • lm-sensors/trunk/lib/chips.c

    r2562 r2564  
    49704970  }; 
    49714971 
     4972static sensors_chip_feature max1619_features[] = 
     4973  { 
     4974    { SENSORS_MAX1619_LOCAL_TEMP, "temp1", 
     4975     NOMAP, NOMAP, 
     4976      R, MAX1619_SYSCTL_LOCAL_TEMP, VALUE(1), 0 }, 
     4977    { SENSORS_MAX1619_REMOTE_TEMP, "temp2", 
     4978     NOMAP, NOMAP, 
     4979      R, MAX1619_SYSCTL_REMOTE_TEMP, VALUE(3), 0 }, 
     4980    { SENSORS_MAX1619_REMOTE_HIGH, "temp2_min", 
     4981      NOMAP,NOMAP, 
     4982      RW, MAX1619_SYSCTL_REMOTE_TEMP, VALUE(2), 0 }, 
     4983    { SENSORS_MAX1619_REMOTE_LOW, "temp2_max", 
     4984      NOMAP, NOMAP, 
     4985      RW, MAX1619_SYSCTL_REMOTE_TEMP, VALUE(1), 0 }, 
     4986    { SENSORS_MAX1619_REMOTE_MAX, "temp2_crit", 
     4987      NOMAP,NOMAP, 
     4988      RW, MAX1619_SYSCTL_REMOTE_CRIT, VALUE(1), 0 }, 
     4989    { SENSORS_MAX1619_REMOTE_HYST, "temp2_hyst", 
     4990      NOMAP, NOMAP, 
     4991      RW, MAX1619_SYSCTL_REMOTE_CRIT, VALUE(2), 0 }, 
     4992    { SENSORS_MAX1619_ALARMS, "alarms", 
     4993      NOMAP, NOMAP, 
     4994      R, MAX1619_SYSCTL_ALARMS, VALUE(1), 0 }, 
     4995    { 0 } 
     4996  }; 
     4997 
    49724998static sensors_chip_feature max6650_features[] = 
    49734999  { 
     
    50725098 { SENSORS_ADM1032_PREFIX, lm90_features }, 
    50735099 { SENSORS_LM99_PREFIX, lm90_features }, 
     5100 { SENSORS_MAX1619_PREFIX, max1619_features }, 
    50745101 { SENSORS_XEONTEMP_PREFIX, xeontemp_features }, 
    50755102 { SENSORS_MAX6650_PREFIX, max6650_features }, 
  • lm-sensors/trunk/lib/chips.h

    r2562 r2564  
    18561856#define SENSORS_XEONTEMP_ALARMS 81 /* R */ 
    18571857 
     1858/* MAX1619 chip */ 
     1859 
     1860#define SENSORS_MAX1619_PREFIX "max1619" 
     1861 
     1862#define SENSORS_MAX1619_LOCAL_TEMP      51      /* R */ 
     1863#define SENSORS_MAX1619_REMOTE_TEMP     52      /* R */ 
     1864#define SENSORS_MAX1619_REMOTE_LOW      53      /* RW */ 
     1865#define SENSORS_MAX1619_REMOTE_HIGH     54      /* RW */ 
     1866#define SENSORS_MAX1619_REMOTE_MAX      55      /* RW */ 
     1867#define SENSORS_MAX1619_REMOTE_HYST     56      /* RW */ 
     1868#define SENSORS_MAX1619_ALARMS          81      /* R */ 
     1869 
    18581870/* MAX6650 / 1 chips */ 
    18591871 
  • lm-sensors/trunk/prog/detect/sensors-detect

    r2560 r2564  
    11641164     { 
    11651165       name => "Maxim MAX1619", 
    1166        driver => "to-be-written", 
     1166       driver => "max1619", 
    11671167       i2c_addrs => [0x18..0x1a, 0x29..0x2b, 0x4c..0x4e], 
    11681168       i2c_detect => sub { max1619_detect 0, @_ }, 
  • lm-sensors/trunk/prog/sensors/chips.c

    r2550 r2564  
    47714771} 
    47724772 
     4773 
     4774void print_max1619(const sensors_chip_name *name) 
     4775{ 
     4776  char *label; 
     4777  double cur, high, low; 
     4778  int valid, alarms; 
     4779 
     4780  if (!sensors_get_feature(*name, SENSORS_MAX1619_ALARMS, &cur)) 
     4781    alarms = cur + 0.5; 
     4782  else { 
     4783    printf("ERROR: Can't get alarm data!\n"); 
     4784    alarms = 0; 
     4785  } 
     4786 
     4787  if (!sensors_get_label_and_valid(*name, SENSORS_MAX1619_LOCAL_TEMP, 
     4788                                   &label, &valid) 
     4789   && !sensors_get_feature(*name, SENSORS_MAX1619_LOCAL_TEMP, &cur)) { 
     4790    if (valid) { 
     4791        print_label(label, 10); 
     4792        print_temp_info(cur,0 ,0 ,SINGLE , 0, 0); 
     4793        printf("\n"); 
     4794    } 
     4795  } else 
     4796    printf("ERROR: Can't get local temperature data!\n"); 
     4797  free_the_label(&label); 
     4798 
     4799  if (!sensors_get_label_and_valid(*name, SENSORS_MAX1619_REMOTE_TEMP, 
     4800                                   &label, &valid) 
     4801   && !sensors_get_feature(*name, SENSORS_MAX1619_REMOTE_TEMP, &cur) 
     4802   && !sensors_get_feature(*name, SENSORS_MAX1619_REMOTE_LOW, &low) 
     4803   && !sensors_get_feature(*name, SENSORS_MAX1619_REMOTE_HIGH, &high)) { 
     4804    if (valid) { 
     4805      print_label(label, 10); 
     4806      print_temp_info(cur, low, high, MINMAX, 0, 0); 
     4807      printf(" %s\n", 
     4808        alarms&MAX1619_ALARM_REMOTE_OPEN?"DISCONNECT": 
     4809        alarms&(MAX1619_ALARM_REMOTE_THIGH|MAX1619_ALARM_REMOTE_TLOW)?"ALARM":""); 
     4810    } 
     4811  } else 
     4812    printf("ERROR: Can't get remote temperature data!\n"); 
     4813  free_the_label(&label); 
     4814 
     4815  if (!sensors_get_label_and_valid(*name, SENSORS_MAX1619_REMOTE_MAX, 
     4816                                   &label, &valid) 
     4817   && !sensors_get_feature(*name, SENSORS_MAX1619_REMOTE_MAX, &high) 
     4818   && !sensors_get_feature(*name, SENSORS_MAX1619_REMOTE_HYST, &low)) { 
     4819    if (valid) { 
     4820      print_label(label, 10); 
     4821      print_temp_info(high, low, 0, HYSTONLY, 0, 0); 
     4822      printf("\n"); 
     4823    } 
     4824  } else 
     4825    printf("ERROR: Can't get remote temperature max data!\n"); 
     4826  free_the_label(&label); 
     4827} 
     4828 
    47734829void print_max6650(const sensors_chip_name *name) 
    47744830{ 
  • lm-sensors/trunk/prog/sensors/chips.h

    r2453 r2564  
    6161extern void print_lm83(const sensors_chip_name *name); 
    6262extern void print_lm90(const sensors_chip_name *name); 
     63extern void print_max1619(const sensors_chip_name *name); 
    6364extern void print_xeontemp(const sensors_chip_name *name); 
    6465extern void print_max6650(const sensors_chip_name *name);