2
0
mirror of https://github.com/lm-sensors/lm-sensors synced 2025-08-31 06:15:15 +00:00

Move non-hwmon I2C device definitions to a separate array.

git-svn-id: http://lm-sensors.org/svn/lm-sensors/branches/lm-sensors-3.0.0@5460 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Jean Delvare
2008-11-30 09:09:04 +00:00
parent 12576458a9
commit ea71934c18

View File

@@ -39,8 +39,8 @@ foreach ('/usr/sbin', '/usr/local/sbin', '/sbin') {
#########################
use constant NO_CACHE => 1;
use vars qw(@pci_adapters @chip_ids $i2c_addresses_to_scan @superio_ids
@cpu_ids $revision @i2c_byte_cache);
use vars qw(@pci_adapters @chip_ids @non_hwmon_chip_ids $i2c_addresses_to_scan
@superio_ids @cpu_ids $revision @i2c_byte_cache);
$revision = '$Revision$ ($Date$)';
$revision =~ s/\$\w+: (.*?) \$/$1/g;
@@ -439,7 +439,6 @@ use vars qw(@i2c_adapter_names);
# name: The full chip name
# driver: The driver name. Put in exactly:
# * "to-be-written" if it is not yet available
# * "not-a-sensor" if it is not a hardware monitoring chip
# * "use-isa-instead" if no i2c driver will be written
# i2c_addrs (optional): For I2C chips, the list of I2C addresses to
# probe.
@@ -638,11 +637,6 @@ use vars qw(@i2c_adapter_names);
driver => "w83793",
i2c_addrs => [0x2c..0x2f],
i2c_detect => sub { w83793_detect(@_); },
}, {
name => "Winbond W83791SD",
driver => "not-a-sensor",
i2c_addrs => [0x2c..0x2f],
i2c_detect => sub { w83791sd_detect(@_); },
}, {
name => "Winbond W83627HF",
driver => "use-isa-instead",
@@ -1000,24 +994,6 @@ use vars qw(@i2c_adapter_names);
driver => "it87",
i2c_addrs => [0x28..0x2f],
i2c_detect => sub { it8712_i2c_detect(@_); },
}, {
name => "ITE IT8201R/IT8203R/IT8206R/IT8266R",
driver => "not-a-sensor",
i2c_addrs => [0x4e],
i2c_detect => sub { ite_overclock_detect(@_); },
}, {
name => "SPD EEPROM",
driver => "not-a-sensor",
# Can also live at 0x54-0x57, but we don't care: we only check
# for SPD and EDID EEPROMs because some hardware monitoring
# chips can live at 0x50-0x53.
i2c_addrs => [0x50..0x53],
i2c_detect => sub { eeprom_detect(@_); },
}, {
name => "EDID EEPROM",
driver => "not-a-sensor",
i2c_addrs => [0x50..0x53],
i2c_detect => sub { ddcmonitor_detect(@_); },
}, {
name => "FSC Poseidon I",
driver => sub { kernel_version_at_least(2, 6, 24) ? "fschmd" : "fscpos" },
@@ -1068,11 +1044,6 @@ use vars qw(@i2c_adapter_names);
driver => "dme1737",
i2c_addrs => [0x2c..0x2e],
i2c_detect => sub { dme1737_detect(@_, 2); },
}, {
name => "Fintek F75111R/RG/N (GPIO)",
driver => "not-a-sensor",
i2c_addrs => [0x4e], # 0x37 not probed
i2c_detect => sub { fintek_detect(@_, 1); },
}, {
name => "Fintek F75121R/F75122R/RG (VID+GPIO)",
driver => "to-be-written",
@@ -1126,6 +1097,38 @@ use vars qw(@i2c_adapter_names);
}
);
# Here is a similar list, but for devices which are not hardware monitoring
# chips. We only list popular devices which happen to live at the same I2C
# address as recognized hardware monitoring chips. The idea is to make it
# clear that the chip in question is of no interest for lm-sensors.
@non_hwmon_chip_ids = (
{
name => "Winbond W83791SD",
driver => "not-a-sensor",
i2c_addrs => [0x2c..0x2f],
i2c_detect => sub { w83791sd_detect(@_); },
}, {
name => "Fintek F75111R/RG/N (GPIO)",
driver => "not-a-sensor",
i2c_addrs => [0x37, 0x4e],
i2c_detect => sub { fintek_detect(@_, 1); },
}, {
name => "ITE IT8201R/IT8203R/IT8206R/IT8266R",
driver => "not-a-sensor",
i2c_addrs => [0x4e],
i2c_detect => sub { ite_overclock_detect(@_); },
}, {
name => "SPD EEPROM",
driver => "not-a-sensor",
i2c_addrs => [0x50..0x57],
i2c_detect => sub { eeprom_detect(@_); },
}, {
name => "EDID EEPROM",
driver => "not-a-sensor",
i2c_addrs => [0x50],
i2c_detect => sub { ddcmonitor_detect(@_); },
}
);
# This is a list of all recognized superio chips.
# Each entry must have the following fields:
@@ -2138,7 +2141,6 @@ sub initialize_modules_supported
{
foreach my $chip (@chip_ids) {
next if $chip->{driver} eq "to-be-written";
next if $chip->{driver} eq "not-a-sensor";
next if $chip->{driver} eq "use-isa-instead";
my $normalized = $chip->{driver};
@@ -2733,7 +2735,6 @@ sub i2c_addresses_to_scan
foreach my $chip (@chip_ids) {
next unless defined $chip->{i2c_addrs};
next if $chip->{driver} eq 'not-a-sensor';
foreach $addr (@{$chip->{i2c_addrs}}) {
$used[$addr]++;
}
@@ -2833,7 +2834,7 @@ sub scan_adapter
}
$| = 1;
foreach $chip (@chip_ids) {
foreach $chip (@chip_ids, @non_hwmon_chip_ids) {
if (exists $chip->{i2c_addrs} and contains($addr, @{$chip->{i2c_addrs}})) {
printf("\%-60s", sprintf("Probing for `\%s'... ", $chip->{name}));
if (($conf, @chips) = &{$chip->{i2c_detect}} (\*FILE, $addr)) {