Changeset 5275
- Timestamp:
- 06/07/08 23:14:07 (6 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
lm-sensors/branches/lm-sensors-3.0.0/CHANGES
r5271 r5275 11 11 Add National Semiconductor LM95231 support 12 12 Add Analog Devices ADT7481 support 13 Refactor alias detection functions 13 14 14 15 3.0.2 (2008-05-18) lm-sensors/branches/lm-sensors-3.0.0/prog/detect/sensors-detect
r5274 r5275 626 626 isa_addrs => [0x290], 627 627 isa_detect => sub { lm78_isa_detect(0, @_); }, 628 alias_detect => sub { lm78_alias_detect(0, @_); },628 alias_detect => sub { winbond_alias_detect(0x2b, 0x3d, @_); }, 629 629 }, 630 630 { … … 635 635 isa_addrs => [0x290], 636 636 isa_detect => sub { lm78_isa_detect(1, @_); }, 637 alias_detect => sub { lm78_alias_detect(1, @_); },637 alias_detect => sub { winbond_alias_detect(0x2b, 0x3d, @_); }, 638 638 }, 639 639 { … … 644 644 isa_addrs => [0x290], 645 645 isa_detect => sub { lm78_isa_detect(2, @_); }, 646 alias_detect => sub { lm78_alias_detect(2, @_); },646 alias_detect => sub { winbond_alias_detect(0x2b, 0x3d, @_); }, 647 647 }, 648 648 { … … 799 799 isa_addrs => [0x290], 800 800 isa_detect => sub { w83781d_isa_detect(0, @_); }, 801 alias_detect => sub { w 83781d_alias_detect(0, @_); },801 alias_detect => sub { winbond_alias_detect(0x2b, 0x3d, @_); }, 802 802 }, 803 803 { … … 808 808 isa_addrs => [0x290], 809 809 isa_detect => sub { w83781d_isa_detect(1, @_); }, 810 alias_detect => sub { w 83781d_alias_detect(1, @_); },810 alias_detect => sub { winbond_alias_detect(0x2b, 0x3d, @_); }, 811 811 }, 812 812 { … … 1888 1888 devid => 0x3c, 1889 1889 logdev => 0x0b, 1890 alias_detect => sub { vt1211_alias_detect( 0,@_); },1890 alias_detect => sub { vt1211_alias_detect(@_); }, 1891 1891 }, 1892 1892 { … … 1895 1895 devid => 0x52, 1896 1896 logdev => 0x0b, 1897 alias_detect => sub { w 83781d_alias_detect(3, @_); },1897 alias_detect => sub { winbond_alias_detect(0x2b, 0x3d, @_); }, 1898 1898 }, 1899 1899 { … … 1935 1935 devid_mask => 0xFFC0, 1936 1936 logdev => 0x0b, 1937 alias_detect => sub { w 83781d_alias_detect(9, @_); },1937 alias_detect => sub { winbond_alias_detect(0x2b, 0x3e, @_); }, 1938 1938 }, 1939 1939 { … … 1943 1943 devid_mask => 0xFFF0, 1944 1944 logdev => 0x0b, 1945 alias_detect => sub { w 83781d_alias_detect(10, @_); },1945 alias_detect => sub { winbond_alias_detect(0x2b, 0x3e, @_); }, 1946 1946 }, 1947 1947 { … … 2031 2031 devid => 0x8712, 2032 2032 logdev => 0x04, 2033 alias_detect => sub { ite_alias_detect(0, @_); },2033 alias_detect => sub { winbond_alias_detect(0x30, 0x45, @_); }, 2034 2034 }, 2035 2035 { … … 3602 3602 } 3603 3603 3604 3605 # $_[0]: Chip to detect (0 = LM78, 1 = LM78-J, 2 = LM79)3606 # $_[1]: ISA address3607 # $_[2]: I2C file handle3608 # $_[3]: I2C address3609 sub lm78_alias_detect3610 {3611 my ($chip, $isa_addr, $file, $i2c_addr) = @_;3612 my $i;3613 3614 return 0 unless isa_read_i5d6($isa_addr, 0x48) == $i2c_addr;3615 for ($i = 0x2b; $i <= 0x3d; $i ++) {3616 return 0 unless isa_read_i5d6($isa_addr, $i) == i2c_smbus_read_byte_data($file, $i);3617 }3618 return 1;3619 }3620 3621 3604 # $_[0]: Chip to detect (0 = LM75, 1 = DS75) 3622 3605 # $_[1]: A reference to the file descriptor to access this chip. … … 4669 4652 } 4670 4653 4671 # $_[0]: Chip to detect (0 = W83781D, 1 = W83782D, 3 = W83627HF,4672 # 9 = W83627EHF 10, = W83627DHG)4673 # $_[ 1]: ISA address4674 # $_[ 2]: I2C file handle4675 # $_[ 3]: I2C address4676 sub w 83781d_alias_detect4677 { 4678 my ($ chip, $isa_addr, $file, $i2c_addr) = @_;4654 # $_[0]: First limit register to compare 4655 # $_[1]: Last limit register to compare 4656 # $_[2]: ISA address 4657 # $_[3]: I2C file handle 4658 # $_[4]: I2C address 4659 sub winbond_alias_detect 4660 { 4661 my ($first, $last, $isa_addr, $file, $i2c_addr) = @_; 4679 4662 my $i; 4680 my $max = ($chip == 9 || $chip == 10) ? 0x3e : 0x3d;4681 4663 4682 4664 return 0 unless isa_read_i5d6($isa_addr, 0x48) == $i2c_addr; 4683 for ($i = 0x2b; $i <= $max; $i++) {4665 for ($i = $first; $i <= $last; $i++) { 4684 4666 return 0 unless isa_read_i5d6($isa_addr, $i) == i2c_smbus_read_byte_data($file, $i); 4685 4667 } … … 5055 5037 return if $chip == 0 and i2c_smbus_read_byte_data($file, 0x5b) != 0x12; 5056 5038 return (7 + ($addr == 0x2d)); 5057 }5058 5059 5060 # $_[0]: Chip to detect (0 = IT8712F)5061 # $_[1]: ISA address5062 # $_[2]: I2C file handle5063 # $_[3]: I2C address5064 sub ite_alias_detect5065 {5066 my ($chip, $isa_addr, $file, $i2c_addr) = @_;5067 my $i;5068 5069 return 0 unless isa_read_i5d6($isa_addr, 0x48) == $i2c_addr;5070 for ($i = 0x30; $i <= 0x45; $i++) {5071 return 0 unless isa_read_i5d6($isa_addr, $i) == i2c_smbus_read_byte_data($file, $i);5072 }5073 return 1;5074 5039 } 5075 5040 … … 5538 5503 } 5539 5504 5540 # $_[0]: Chip to detect (0 = VT1211) 5541 # $_[1]: ISA address 5542 # $_[2]: I2C file handle 5543 # $_[3]: I2C address 5505 # $_[0]: ISA address 5506 # $_[1]: I2C file handle 5507 # $_[2]: I2C address 5544 5508 sub vt1211_alias_detect 5545 5509 { 5546 my ($ chip, $isa_addr, $file, $i2c_addr) = @_;5510 my ($isa_addr, $file, $i2c_addr) = @_; 5547 5511 my $i; 5548 5512 return 0 unless (inb($isa_addr + 0x48) & 0x7f) == $i2c_addr; 5549 for ($i = 0x2b; $i <= 0x3d; $i ++) {5513 for ($i = 0x2b; $i <= 0x3d; $i++) { 5550 5514 return 0 unless inb($isa_addr + $i) == i2c_smbus_read_byte_data($file, $i); 5551 5515 }
