Changeset 4529

Show
Ignore:
Timestamp:
06/30/07 17:21:46 (6 years ago)
Author:
khali
Message:

Drop all references to non-sensor chips. We will still detect some of these
(in particular SPD and EDID EEPROMS) at addresses where hardware monitoring
chips are known to live, to prevent misdetections, but we no longer point
the user to drivers for these chips.

Location:
lm-sensors/branches/lm-sensors-3.0.0
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/branches/lm-sensors-3.0.0/CONTRIBUTORS

    r4491 r4529  
    3333  Added DDC support and i2c-algo-bit layer to the i2c-voodoo3 bus driver. 
    3434  Added the RRD interface. 
    35   Author of the ddcmon, icspll, smbus-arp, smsc47m1, 
    36   vt1211, and vt8231 chip drivers. 
     35  Author of the smsc47m1, vt1211, and vt8231 chip drivers. 
    3736* Bob Dougherty <bobd@stanford.edu> 
    3837  Author (with MDS) of the via686a driver. 
     
    7170  Author of the pcf8591 driver. 
    7271* Abraham vd Merwe <abraham@2d3d.co.za> 
    73   Author of the LM92 and DS1307 drivers. 
     72  Author of the LM92 driver. 
    7473* Mark M. Hoffman <mhoffman@lightlink.com> 
    7574  Author of the i2c-sis645 bus driver. 
     
    8180  Author of the lm63, lm83, lm90 and w83l785ts SMBus chip drivers. 
    8281  Author of the f71805f and pc87360 Super-I/O chip drivers. 
    83   Author of the i2c-amd756-s4882 and pca9540 SMBus multiplexing drivers. 
     82  Author of the i2c-amd756-s4882 SMBus multiplexing driver. 
    8483  Perl scripts maintainer, tester, bug fixer, general support. 
    8584* Vojtech Pavlik <vojtech@suse.cz>       
     
    8988  Author of the LM85 chip driver. 
    9089  Author of the ADM1026 chip driver. 
    91 * Sascha Volkenandt <sascha@akv-soft.de> 
    92   Author of the SAA1064 chip driver. 
    9390* John Morris <john.morris@spirentcom.com> 
    9491  Author of the MAX6650 chip driver. 
  • lm-sensors/branches/lm-sensors-3.0.0/README

    r4386 r4529  
    6363                         LM89, LM90, LM92, LM93, LM99, PC87360, 
    6464                         PC87363, PC87364, PC87365, PC87366 
    65   Philips NE1617, NE1617A, NE1619 
     65  Philips NE1617, NE1617A, NE1619, PCF8591 
    6666  SiS 5595, 950 embedded sensors 
    6767  SMSC 47M1xx embedded sensors, EMC6D100, EMC6D101, EMC6D102 
     
    7070  Winbond W83781D, W83782D, W83783S, W83791D, W83792D, 
    7171          W83627HF, W83627THF, W83637HF, W83687THF and W83697HF 
    72  
    73  
    74 We also support some miscellaneous chips: 
    75   Dallas DS1307 real time clock 
    76   Intel Xeon processor embedded EEPROMs 
    77   Linear Technologies LTC1710 
    78   Philips Semiconductors PCF8574, PCF8591   
    79   DDC Monitor embedded EEPROMs 
    80   SDRAM Dimms with Serial Presence Detect EEPROMs 
    8172  Smart Battery sensors 
    8273  IPMI-BMC sensors 
    83   Philips Semiconductors SAA1064 
    8474 
    8575 
  • lm-sensors/branches/lm-sensors-3.0.0/doc/chips/SUMMARY

    r4526 r4529  
    205205        pc87366         3-4     11      3       3 pwm   no      yes (LPC) 
    206206 
     207pcf8591 
     208        pcf8591         -       2-4     -       1 dac   yes     no 
     209 
    207210sis5595 
    208211        sis5595         0-1     4-5     2       -       no      yes 
     
    261264xeontemp 
    262265        xeontemp        1       -       -       -       yes     no 
    263  
    264  
    265  
    266 SUPPORTED NON-SENSOR CHIPS 
    267 -------------------------- 
    268  
    269 Driver  Chips 
    270 ------  ----- 
    271  
    272 bmcsensors 
    273         An interface to an IPMI BMC (Baseboard management controller) 
    274  
    275 bt869 
    276         bt869 video modulator chip 
    277  
    278 ddcmon 
    279         DDC-compliant monitor integrated eeproms - reads locations only 
    280  
    281 ds1307 
    282         real-time clock 
    283  
    284 eeprom 
    285         Memory SPD (serial presence detect) eeproms - reads locations only 
    286         Xeon scratch eeproms - reads locations only 
    287  
    288 ltc1710 
    289         ltc1710 two switches only 
    290  
    291 pca9540 
    292         2-channel I2C multiplexer 
    293  
    294 pcf8574 & pcf8574a 
    295         Simple eight-bit parallel I/O 
    296  
    297 pcf8591 
    298         Quad A/D + one D/A 
    299  
    300 saa1064 
    301         4-digit LED-driver 
    302  
    303 smbus-arp 
    304         An SMBus 2.0 ARP client 
    305266 
    306267 
  • lm-sensors/branches/lm-sensors-3.0.0/doc/useful_addresses.html

    r4357 r4529  
    8787        <li><a href="http://www.hp.com/">Hewlett Packard</a> (Maxilife) 
    8888                <br />Datasheets only under NDA.</li> 
    89         <li><a href="http://www.linear.com/">Linear Technologies</a> 
    90                 (<a href="http://www.linear.com/prod/datasheet.html?datasheet=434">LTC1710</a>) 
    91                 <br />Datasheets available for 
    92                 <a href="http://www.linear.com/prod/pft.html">download</a> (choose "Special Functions").</li> 
    9389        <li><a href="http://www.maxim-ic.com/">Maxim IC</a> (includes Dallas Semiconductor) 
    9490                (<a href="http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2952">DS75</a>, 
     
    306302        <li><a href="http://www.thermometrics.com/assets/images/ntcnotes.pdf">NTC thermistors</a> 
    307303                <br />A comprehensive description of the physics and mathematics of NTC thermistors.</li> 
    308         <li><a href="http://www.jedec.org/DOWNLOAD/jedec/JEP106I.pdf">Standard manufacturer's 
    309                 identification code</a> 
    310                 <br />The official list of Manufacturer IDs for EEPROMs.</li> 
    311304        <li><a href="http://www.temperatures.com/">About temperature sensors</a> 
    312305                <br />A web guide to devices that measure temperature. General information.</li> 
  • lm-sensors/branches/lm-sensors-3.0.0/prog/detect/sensors-detect

    r4479 r4529  
    13891389     { 
    13901390       name => "SPD EEPROM", 
    1391        driver => "eeprom", 
    1392        i2c_addrs => [0x50..0x57], 
    1393        i2c_detect => sub { eeprom_detect(0, @_); }, 
    1394      }, 
    1395      { 
    1396        name => "Sony Vaio EEPROM", 
    1397        driver => "eeprom", 
    1398        i2c_addrs => [0x57], 
    1399        i2c_detect => sub { eeprom_detect(1, @_); }, 
     1391       driver => "not-a-sensor", 
     1392       # Can also live at 0x54-0x57, but we don't care: we only check 
     1393       # for SPD and EDID EEPROMs because some hardware monitoring chips 
     1394       # can live at 0x50-0x53. 
     1395       i2c_addrs => [0x50..0x53], 
     1396       i2c_detect => sub { eeprom_detect(@_); }, 
    14001397     }, 
    14011398     { 
    14021399       name => "EDID EEPROM", 
    1403        driver => "eeprom", 
    1404        i2c_addrs => [0x50], 
     1400       driver => "not-a-sensor", 
     1401       i2c_addrs => [0x50..0x53], 
    14051402       i2c_detect => sub { ddcmonitor_detect(@_); }, 
    14061403     }, 
     
    14431440     { 
    14441441       name => "Fintek F75111R/RG/N (GPIO)", 
    1445        driver => "to-be-written", 
     1442       driver => "not-a-sensor", 
    14461443       i2c_addrs => [0x4e], # 0x37 not probed 
    14471444       i2c_detect => sub { fintek_detect(1, @_); }, 
     
    14901487     }, 
    14911488     { 
    1492        name => "Philips Semiconductors SAA1064", 
    1493        driver => "saa1064", 
    1494        i2c_addrs => [0x38..0x3b], 
    1495        i2c_detect => sub { saa1064_detect(@_); }, 
    1496      }, 
    1497      { 
    14981489       name => "Philips Semiconductors PCA9540", 
    14991490       driver => "pca9540", 
    15001491       i2c_addrs => [0x70], 
    15011492       i2c_detect => sub { pca9540_detect(@_); }, 
    1502      }, 
    1503      { 
    1504        name => "Philips Semiconductors PCA9556", 
    1505        driver => "to-be-written", 
    1506        i2c_addrs => [0x18..0x1f], 
    1507        i2c_detect => sub { pca9556_detect(@_); }, 
    1508      }, 
    1509      { 
    1510        name => "Maxim MAX6900", 
    1511        driver => "not-a-sensor", 
    1512        i2c_addrs => [0x50], 
    1513        i2c_detect => sub { max6900_detect(@_); }, 
    1514      }, 
    1515      { 
    1516        name => "Smart Battery Charger", 
    1517        driver => "to-be-written", 
    1518        i2c_addrs => [0x09], 
    1519        i2c_detect => sub { smartbatt_chgr_detect(@_); }, 
    1520      }, 
    1521      { 
    1522        name => "Smart Battery Manager/Selector", 
    1523        driver => "to-be-written", 
    1524        i2c_addrs => [0x0a], 
    1525        i2c_detect => sub { smartbatt_mgr_detect(@_); }, 
    15261493     }, 
    15271494     { 
     
    48074774} 
    48084775 
    4809 # $_[0]: Chip to detect (0 = SPD EEPROM, 1 = Sony Vaio EEPROM) 
    4810 # $_[1]: A reference to the file descriptor to access this chip 
    4811 # $_[2]: Address 
     4776# $_[0]: A reference to the file descriptor to access this chip 
     4777# $_[1]: Address 
    48124778# Returns: 8 for a memory eeprom 
    4813 #          4 to 9 for a Sony Vaio eeprom 
    48144779# Registers used: 
    48154780#   0-63: SPD Data and Checksum 
    4816 #   0x80-0x83: Sony Vaio Data ("PCG-") 
    4817 #   0xe2, 0xe5, 0xe8, 0xeb, Oxee: Sony Vaio Timestamp constant bytes. 
    4818 #   0x1a-0x1c: Sony Vaio MAC address 
    4819 # This detection function is a bit tricky; this is to workaround 
    4820 # wrong misdetection messages that would else arise. 
    48214781sub eeprom_detect 
    48224782{ 
    4823   my ($chip,$file,$addr) = @_; 
     4783  my ($file, $addr) = @_; 
    48244784  my $checksum = 0; 
    48254785 
    48264786  # Check the checksum for validity (works for most DIMMs and RIMMs) 
    4827   if ($chip == 0) { 
    4828         for (my $i = 0; $i <= 62; $i++) { 
    4829           $checksum += i2c_smbus_read_byte_data($file, $i); 
    4830         } 
    4831         $checksum &= 255; 
    4832  
    4833         return 8 
    4834           if $checksum == i2c_smbus_read_byte_data($file, 63); 
    4835         return; 
    4836   } 
    4837  
    4838   # Look for a Sony Vaio EEPROM ($chip == 1) 
    4839   my $vaioconf = 1; 
    4840   $vaioconf += 4 
    4841     if i2c_smbus_read_byte_data($file,0x80) == 0x50 
    4842     && i2c_smbus_read_byte_data($file,0x81) == 0x43 
    4843     && i2c_smbus_read_byte_data($file,0x82) == 0x47 
    4844     && i2c_smbus_read_byte_data($file,0x83) == 0x2d; 
    4845   $vaioconf += 5 
    4846     if i2c_smbus_read_byte_data($file,0xe2) == 0x2f 
    4847     && i2c_smbus_read_byte_data($file,0xe5) == 0x2f 
    4848     && i2c_smbus_read_byte_data($file,0xe8) == 0x20 
    4849     && i2c_smbus_read_byte_data($file,0xeb) == 0x3a 
    4850     && i2c_smbus_read_byte_data($file,0xee) == 0x3a; 
    4851   $vaioconf += 3 
    4852     if i2c_smbus_read_byte_data($file,0x1a) == 0x08 
    4853     && i2c_smbus_read_byte_data($file,0x1b) == 0x00 
    4854     && i2c_smbus_read_byte_data($file,0x1c) == 0x46; 
    4855   $vaioconf = 9 
    4856     if $vaioconf > 9; 
    4857  
    4858   if ($vaioconf > 1) { 
    4859     return $vaioconf; 
    4860   } 
     4787  for (my $i = 0; $i <= 62; $i++) { 
     4788    $checksum += i2c_smbus_read_byte_data($file, $i); 
     4789  } 
     4790  $checksum &= 255; 
     4791 
     4792  return 8 
     4793    if $checksum == i2c_smbus_read_byte_data($file, 63); 
     4794 
    48614795  return; 
    48624796} 
     
    48814815    i2c_smbus_read_byte_data($file,0x07) == 0x00; 
    48824816 
    4883   return (8,$addr+1,$addr+2,$addr+3,$addr+4,$addr+5,$addr+6,$addr+7); 
     4817  return 8; 
    48844818} 
    48854819 
     
    50685002# $_[0]: A reference to the file descriptor to access this chip. 
    50695003# $_[1]: Address 
    5070 # Returns: undef if not detected, 4 or 7 if detected 
    5071 # Detection is based on the fact that the SAA1064 has only one readable 
    5072 # register, and thus ignores the read address. This register can have value 
    5073 # 0x80 (first read since power-up) or 0x00. 
    5074 sub saa1064_detect 
    5075 { 
    5076         my ($file,$addr) = @_; 
    5077         my $status = i2c_smbus_read_byte_data ($file, 0x00); 
    5078  
    5079         return if ($status & 0x7f) != 0x00; 
    5080  
    5081         for (my $i=0 ; $i<256; $i++) { 
    5082                 return if i2c_smbus_read_byte_data ($file, $i) != 0x00; 
    5083         } 
    5084  
    5085         return 7 
    5086                 if $status == 0x80; 
    5087         return 4; 
    5088 } 
    5089  
    5090 # $_[0]: A reference to the file descriptor to access this chip. 
    5091 # $_[1]: Address 
    50925004# Returns: undef if not detected, 1 if detected 
    50935005# Detection is rather difficult, since the PCA9540 has a single register. 
     
    51045016 
    51055017        return 1; 
    5106 } 
    5107  
    5108 # $_[0]: A reference to the file descriptor to access this chip. 
    5109 # $_[1]: Address (unused) 
    5110 # Returns: undef if not detected, 1 if detected 
    5111 # Detection is rather difficult, since the PCA9556 only has 4 registers 
    5112 # and no unused bit. We use the fact that the registers cycle over 
    5113 # 4 addresses boundaries, and the logic rules between registers. 
    5114 sub pca9556_detect 
    5115 { 
    5116         my ($file, $addr) = @_; 
    5117         my $input = i2c_smbus_read_byte_data($file, 0x00); 
    5118         my $output = i2c_smbus_read_byte_data($file, 0x01); 
    5119         my $invert = i2c_smbus_read_byte_data($file, 0x02); 
    5120         my $config = i2c_smbus_read_byte_data($file, 0x03); 
    5121  
    5122         # Pins configured for output (config = 0) must obey the following 
    5123         # rule: input = output ^ invert 
    5124  
    5125         return unless ($input & ~$config) == (($output ^ $invert) & ~$config); 
    5126  
    5127         for (my $i = 5; $i < 254 ; $i+=4) { 
    5128                 return unless i2c_smbus_read_byte_data($file, $i) == $output; 
    5129                 return unless i2c_smbus_read_byte_data($file, $i+1) == $invert; 
    5130                 return unless i2c_smbus_read_byte_data($file, $i+2) == $config; 
    5131         } 
    5132  
    5133         return 1; 
    5134 } 
    5135  
    5136 # $_[0]: A reference to the file descriptor to access this chip. 
    5137 # $_[1]: Address 
    5138 # Returns: undef if not detected, 3 if detected 
    5139 sub max6900_detect 
    5140 { 
    5141         my ($file,$addr) = @_; 
    5142         my $reg; 
    5143          
    5144         # SEC 
    5145         $reg = i2c_smbus_read_byte_data ($file, 0x81); 
    5146         return if 
    5147                 ($reg & 0xF0) > 0x50 or 
    5148                 ($reg & 0x0F) > 9; 
    5149  
    5150         # MIN 
    5151         $reg = i2c_smbus_read_byte_data ($file, 0x83); 
    5152         return if 
    5153                 ($reg & 0xF0) > 0x50 or 
    5154                 ($reg & 0x0F) > 9; 
    5155  
    5156         # HR 
    5157         $reg = i2c_smbus_read_byte_data ($file, 0x85); 
    5158         return if 
    5159                 ($reg & 0x40) != 0x00 or 
    5160                 ($reg & 0x0F) > 9; 
    5161  
    5162         # DATE 
    5163         $reg = i2c_smbus_read_byte_data ($file, 0x87); 
    5164         return if 
    5165                 $reg == 0x00 or 
    5166                 ($reg & 0xF0) > 0x30 or 
    5167                 ($reg & 0x0F) > 9; 
    5168  
    5169         # MONTH 
    5170         $reg = i2c_smbus_read_byte_data ($file, 0x89); 
    5171         return if 
    5172                 $reg == 0x00 or 
    5173                 ($reg & 0xF0) > 0x10 or 
    5174                 ($reg & 0x0F) > 9; 
    5175  
    5176         # DAY 
    5177         $reg = i2c_smbus_read_byte_data ($file, 0x8B); 
    5178         return if 
    5179                 $reg == 0 or 
    5180                 $reg > 7; 
    5181  
    5182         # YEAR 
    5183         $reg = i2c_smbus_read_byte_data ($file, 0x8D); 
    5184         return if 
    5185                 ($reg & 0xF0) > 0x90 or 
    5186                 ($reg & 0x0F) > 9; 
    5187  
    5188         # CONTROL 
    5189         $reg = i2c_smbus_read_byte_data ($file, 0x8F); 
    5190         return if 
    5191                 ($reg & 0x7F) != 0x00; 
    5192  
    5193         # CENTURY 
    5194         $reg = i2c_smbus_read_byte_data ($file, 0x93); 
    5195         return if 
    5196                 ($reg & 0xF0) > 0x90 or 
    5197                 ($reg & 0x0F) > 9; 
    5198  
    5199         return 3; 
    5200 } 
    5201  
    5202 # This checks for non-FFFF values for SpecInfo and Status. 
    5203 # The address (0x09) is specified by the SMBus standard so it's likely 
    5204 # that this really is a smart battery charger. 
    5205 # $_[0]: A reference to the file descriptor to access this chip. 
    5206 # $_[1]: Address 
    5207 # Returns: 5 
    5208 sub smartbatt_chgr_detect 
    5209 { 
    5210   my ($file,$addr) = @_; 
    5211   # check some registers 
    5212   if (i2c_smbus_read_word_data($file,0x11) == 0xffff) { 
    5213         return; 
    5214   } 
    5215   if (i2c_smbus_read_word_data($file,0x13) == 0xffff) { 
    5216         return; 
    5217   } 
    5218   return (5); 
    5219 } 
    5220  
    5221 # This checks for non-FFFF values for State and Info. 
    5222 # The address (0x0a) is specified by the SMBus standard so it's likely 
    5223 # that this really is a smart battery manager/selector. 
    5224 # $_[0]: A reference to the file descriptor to access this chip. 
    5225 # $_[1]: Address 
    5226 # Returns: 5 
    5227 sub smartbatt_mgr_detect 
    5228 { 
    5229   my ($file,$addr) = @_; 
    5230   # check some registers 
    5231   if (i2c_smbus_read_word_data($file,0x01) == 0xffff) { 
    5232         return; 
    5233   } 
    5234   if (i2c_smbus_read_word_data($file,0x04) == 0xffff) { 
    5235         return; 
    5236   } 
    5237   return (5); 
    52385018} 
    52395019 
     
    58635643      print "  Misdetects:\n"; 
    58645644      print_chips_report $chip->{misdetected}; 
    5865     } 
    5866  
    5867     # People are easily confused 
    5868     if ($chip->{driver} eq "eeprom") { 
    5869       print "\n  EEPROMs are *NOT* sensors! They are data storage chips commonly\n", 
    5870             "  found on memory modules (SPD), in monitors (EDID), or in some\n", 
    5871             "  laptops, for example.\n"; 
    58725645    } 
    58735646  }