Add support for hardware monitoring chips on SPI buses.

SPI bus statements in the configuration file are not yet supported, as
SPI buses don't have a name attribute yet, it's not possible to identify
them and thus no substitution is possible.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/branches/lm-sensors-3.0.0@4689 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Jean Delvare committed 2007-08-19 15:07:05 +00:00
1 parent f1cc941e29
commit 5524486161
5 files changed
+19 -3

No files matched your search

+1
View File
@@ -23,6 +23,7 @@ SVN HEAD
Drop support for dummy type
New function sensors_snprintf_chip_name()
Drop support for dashes in chip names
Add support for devices on SPI adapters
Makefile: Drop the package and version targets
Man page sensors.conf.5: Update the chip statement section
Programs doc/*: Delete, obsolete
+4
View File
@@ -322,6 +322,10 @@ const char *sensors_get_adapter_name(const sensors_bus_id *bus)
return "ISA adapter";
case SENSORS_BUS_TYPE_PCI:
return "PCI adapter";
/* SPI should not be here, but for now SPI adapters have no name
so we don't have any custom string to return. */
case SENSORS_BUS_TYPE_SPI:
return "SPI adapter";
}
/* bus types with several instances */
+9 -3
View File
@@ -106,15 +106,18 @@ int sensors_parse_chip_name(const char *name, sensors_chip_name *res)
res->bus.type = SENSORS_BUS_TYPE_ISA;
else if (!strncmp(name, "pci", dash - name))
res->bus.type = SENSORS_BUS_TYPE_PCI;
else if (!strncmp(name, "spi", dash - name))
res->bus.type = SENSORS_BUS_TYPE_SPI;
else
goto ERROR;
name = dash + 1;
/* Some bus types (i2c) have an additional bus number. For these, the
next part is either a "*" (any bus of that type) or a decimal
number. */
/* Some bus types (i2c, spi) have an additional bus number.
For these, the next part is either a "*" (any bus of that type)
or a decimal number. */
switch (res->bus.type) {
case SENSORS_BUS_TYPE_I2C:
case SENSORS_BUS_TYPE_SPI:
if (!strncmp(name, "*-", 2)) {
res->bus.nr = SENSORS_BUS_NR_ANY;
name += 2;
@@ -162,6 +165,9 @@ int sensors_snprintf_chip_name(char *str, size_t size,
case SENSORS_BUS_TYPE_I2C:
return snprintf(str, size, "%s-i2c-%hd-%02x", chip->prefix,
chip->bus.nr, chip->addr);
case SENSORS_BUS_TYPE_SPI:
return snprintf(str, size, "%s-spi-%hd-%x", chip->prefix,
chip->bus.nr, chip->addr);
}
return -SENSORS_ERR_CHIP_NAME;
+1
View File
@@ -33,6 +33,7 @@
#define SENSORS_BUS_TYPE_I2C 0
#define SENSORS_BUS_TYPE_ISA 1
#define SENSORS_BUS_TYPE_PCI 2
#define SENSORS_BUS_TYPE_SPI 3
#define SENSORS_BUS_NR_ANY (-1)
#define SENSORS_BUS_NR_IGNORE (-2)
+4
View File
@@ -252,6 +252,10 @@ static int sensors_read_one_sysfs_chip(struct sysfs_device *dev)
sysfs_close_attribute(bus_attr);
}
}
} else if (sscanf(dev->name, "spi%hd.%d", &entry.chip.bus.nr,
&entry.chip.addr) == 2) {
/* SPI */
entry.chip.bus.type = SENSORS_BUS_TYPE_SPI;
} else if (sscanf(dev->name, "%*[a-z0-9_].%d", &entry.chip.addr) == 1) {
/* must be new ISA (platform driver) */
entry.chip.bus.type = SENSORS_BUS_TYPE_ISA;