Changeset 533

Show
Ignore:
Timestamp:
08/23/99 00:58:52 (15 years ago)
Author:
mds
Message:

(mds) add support for TI THMC10 to the adm1021 driver.

Location:
lm-sensors/trunk
Files:
7 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/trunk/CONTRIBUTORS

    r532 r533  
    2626  Author of the i2c-ali15x3 bus driver and the i2c-i810 bus driver. 
    2727  Added w83782d, w83783s, and w83627hf support to the w83781d driver. 
    28   Added max1617 support to the adm1021 driver. 
     28  Added max1617 and thmc10 support to the adm1021 driver. 
    2929  Added lm81 support to the adm9240 driver. 
    3030  Author of the decode-xeon.pl xeon EEPROM decoder. 
  • lm-sensors/trunk/README

    r532 r533  
    3939  Hewlett Packard Maxilife (several revisions) 
    4040  Intel Xeon processor embedded sensors 
     41  TI THMC10 
    4142 
    4243We also support some miscellaneous chips: 
  • lm-sensors/trunk/doc/chips/SUMMARY

    r532 r533  
    2828        max1617         2       -       -       -       yes     no 
    2929        max1617a        2       -       -       -       yes     no 
     30        thmc10          2       -       -       -       yes     no 
    3031        xeon            1       -       -       -       yes     no 
    3132 
     
    7475 
    7576Driver  Chips 
    76 ------------- 
     77------  ----- 
    7778 
    7879bt869 
     
    8990        ltc1710 two switches only 
    9091 
     92matorb 
     93        Matrox Orbital LCD displays 
  • lm-sensors/trunk/doc/chips/adm1021

    r395 r533  
    22========================= 
    33 
    4 Status: Complete; tested for the ADM1021 and MAX1617, untested for the MAX1617A. 
     4Status: Complete; tested for the ADM1021 and MAX1617, 
     5        untested for the MAX1617A and the THMC10. 
    56 
    67Supported chips: 
     
    1718    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e (inclusive) 
    1819    Datasheet: Publicly available at the Maxim website 
     20  * TI THMC10 
     21    Prefix `thmc10' 
     22    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e (inclusive) 
     23    Datasheet: Publicly available at the TI website 
    1924 
    2025 
     
    5358is the oldest; it has the problem that it is not very well detectable. 
    5459The MAX1617A solves that.  The ADM1021 is a straight clone of the MAX1617A. 
     60Ditto for the THMC10. 
    5561From here on, we will refer to all these chips as ADM1021-clones. 
    5662 
     
    8288 
    8389Chip `adm1021' 
     90             LABEL        LABEL CLASS      COMPUTE CLASS ACCESS MAGNITUDE 
     91              temp               NONE               NONE     R     0 
     92          temp_low               temp               temp     RW    0 
     93         temp_over               temp               temp     RW    0 
     94       remote_temp               NONE               NONE     R     0 
     95   remote_temp_low        remote_temp        remote_temp     RW    0 
     96  remote_temp_over        remote_temp        remote_temp     RW    0 
     97            alarms               NONE               NONE     R     0 
     98          die_code               NONE               NONE     R     0 
     99 
     100             LABEL                          FEATURE SYMBOL        SYSCTL FILE:NR 
     101              temp                    SENSORS_ADM1021_TEMP               temp:3 
     102          temp_low               SENSORS_ADM1021_TEMP_HYST               temp:2 
     103         temp_over               SENSORS_ADM1021_TEMP_OVER               temp:1 
     104       remote_temp             SENSORS_ADM1021_REMOTE_TEMP        remote_temp:3 
     105   remote_temp_low        SENSORS_ADM1021_REMOTE_TEMP_HYST        remote_temp:2 
     106  remote_temp_over        SENSORS_ADM1021_REMOTE_TEMP_OVER        remote_temp:1 
     107            alarms                  SENSORS_ADM1021_ALARMS             alarms:1 
     108          die_code                SENSORS_ADM1021_DIE_CODE           die_code:1 
     109 
     110 
     111Chip `thmc10' 
    84112             LABEL        LABEL CLASS      COMPUTE CLASS ACCESS MAGNITUDE 
    85113              temp               NONE               NONE     R     0 
  • lm-sensors/trunk/kernel/chips/adm1021.c

    r516 r533  
    4343 
    4444/* Insmod parameters */ 
    45 SENSORS_INSMOD_3(adm1021,max1617,max1617a); 
     45SENSORS_INSMOD_4(adm1021,max1617,max1617a,thmc10); 
    4646 
    4747/* adm1021 constants specified below */ 
     
    5252#define ADM1021_REG_REMOTE_TEMP 0x01 
    5353#define ADM1021_REG_STATUS 0x02 
    54 #define ADM1021_REG_MAN_ID 0x0FE  /* should always read 0x41 */ 
     54#define ADM1021_REG_MAN_ID 0x0FE  /* 0x41 = AMD, 0x49 = TI, 0x4D = Maxim */ 
    5555#define ADM1021_REG_DEV_ID 0x0FF /* ADM1021 */ 
    5656#define ADM1021_REG_DIE_CODE 0x0FF /* MAX1617A */ 
     
    139139/* This is the driver that will be inserted */ 
    140140static struct i2c_driver adm1021_driver = { 
    141   /* name */            "adm1021, MAX1617 sensor driver", 
     141  /* name */            "ADM1021, MAX1617 sensor driver", 
    142142  /* id */              I2C_DRIVERID_ADM1021, 
    143143  /* flags */           I2C_DF_NOTIFY, 
     
    243243    if (i == 0x41) 
    244244      kind = adm1021; 
     245    if (i == 0x49) 
     246      kind = thmc10; 
    245247    else if ((i== 0x4d) &&  
    246248             (adm1021_read_value(new_client,ADM1021_REG_DEV_ID) == 0x01)) 
     
    259261    type_name = "adm1021"; 
    260262    client_name = "ADM1021 chip"; 
     263  } else if (kind == thmc10) { 
     264    type_name = "thmc10"; 
     265    client_name = "THMC10 chip"; 
    261266  } else { 
    262267#ifdef DEBUG 
  • lm-sensors/trunk/prog/detect/sensors-detect

    r532 r533  
    284284     }, 
    285285     { 
     286       name => "TI THMC10", 
     287       driver => "adm1021", 
     288       i2c_addrs => [0x18..0x1a,0x29..0x2b,0x4c..0x4e], 
     289       i2c_detect => sub { adm1021_detect 3, @_ }, 
     290     }, 
     291     { 
    286292       name => "Silicon Integrated Systems SIS5595", 
    287293       driver => "sis5595", 
     
    13771383} 
    13781384 
    1379 # $_[0]: Chip to detect (0 = ADM1021, 1 = MAX1617, 2 = MAX1617A) 
     1385# $_[0]: Chip to detect (0 = ADM1021, 1 = MAX1617, 2 = MAX1617A, 3 = THMC10) 
    13801386# $_[1]: A reference to the file descriptor to access this chip. 
    13811387#        We may assume an i2c_set_slave_addr was already done. 
     
    13921398  my ($chip, $file,$addr) = @_; 
    13931399  return if $chip == 0 and i2c_smbus_read_byte_data($file,0xfe) != 0x41; 
     1400  return if $chip == 3 and i2c_smbus_read_byte_data($file,0xfe) != 0x49; 
    13941401  return if $chip == 2 and i2c_smbus_read_byte_data($file,0xfe) != 0x4d and 
    13951402                           i2c_smbus_read_byte_data($file,0xff) != 0x01; 
  • lm-sensors/trunk/prog/sensors/main.c

    r532 r533  
    251251    print_lm75(&name); 
    252252  else if (!strcmp(name.prefix,"adm1021") || !strcmp(name.prefix,"max1617") || 
    253            !strcmp(name.prefix,"max1617a")) 
     253           !strcmp(name.prefix,"max1617a") || !strcmp(name.prefix, "thmc10")) 
    254254    print_adm1021(&name); 
    255255  else if (!strcmp(name.prefix,"adm9240") ||