|
@@ -2,6 +2,14 @@
|
|
|
it87.c - Part of lm_sensors, Linux kernel modules for hardware
|
|
|
monitoring.
|
|
|
|
|
|
+ The IT8705F is an LPC-based Super I/O part that contains UARTs, a
|
|
|
+ parallel port, an IR port, a MIDI port, a floppy controller, etc., in
|
|
|
+ addition to an Environment Controller (Enhanced Hardware Monitor and
|
|
|
+ Fan Controller)
|
|
|
+
|
|
|
+ This driver supports only the Environment Controller in the IT8705F and
|
|
|
+ similar parts. The other devices are supported by different drivers.
|
|
|
+
|
|
|
Supports: IT8705F Super I/O chip w/LPC interface
|
|
|
IT8712F Super I/O chip w/LPC interface
|
|
|
IT8716F Super I/O chip w/LPC interface
|
|
@@ -118,9 +126,15 @@ static int fix_pwm_polarity;
|
|
|
/* Length of ISA address segment */
|
|
|
#define IT87_EXTENT 8
|
|
|
|
|
|
-/* Where are the ISA address/data registers relative to the base address */
|
|
|
-#define IT87_ADDR_REG_OFFSET 5
|
|
|
-#define IT87_DATA_REG_OFFSET 6
|
|
|
+/* Length of ISA address segment for Environmental Controller */
|
|
|
+#define IT87_EC_EXTENT 2
|
|
|
+
|
|
|
+/* Offset of EC registers from ISA base address */
|
|
|
+#define IT87_EC_OFFSET 5
|
|
|
+
|
|
|
+/* Where are the ISA address/data registers relative to the EC base address */
|
|
|
+#define IT87_ADDR_REG_OFFSET 0
|
|
|
+#define IT87_DATA_REG_OFFSET 1
|
|
|
|
|
|
/*----- The IT87 registers -----*/
|
|
|
|
|
@@ -968,10 +982,10 @@ static int __devinit it87_probe(struct platform_device *pdev)
|
|
|
};
|
|
|
|
|
|
res = platform_get_resource(pdev, IORESOURCE_IO, 0);
|
|
|
- if (!request_region(res->start, IT87_EXTENT, DRVNAME)) {
|
|
|
+ if (!request_region(res->start, IT87_EC_EXTENT, DRVNAME)) {
|
|
|
dev_err(dev, "Failed to request region 0x%lx-0x%lx\n",
|
|
|
(unsigned long)res->start,
|
|
|
- (unsigned long)(res->start + IT87_EXTENT - 1));
|
|
|
+ (unsigned long)(res->start + IT87_EC_EXTENT - 1));
|
|
|
err = -EBUSY;
|
|
|
goto ERROR0;
|
|
|
}
|
|
@@ -1124,7 +1138,7 @@ ERROR2:
|
|
|
platform_set_drvdata(pdev, NULL);
|
|
|
kfree(data);
|
|
|
ERROR1:
|
|
|
- release_region(res->start, IT87_EXTENT);
|
|
|
+ release_region(res->start, IT87_EC_EXTENT);
|
|
|
ERROR0:
|
|
|
return err;
|
|
|
}
|
|
@@ -1137,7 +1151,7 @@ static int __devexit it87_remove(struct platform_device *pdev)
|
|
|
sysfs_remove_group(&pdev->dev.kobj, &it87_group);
|
|
|
sysfs_remove_group(&pdev->dev.kobj, &it87_group_opt);
|
|
|
|
|
|
- release_region(data->addr, IT87_EXTENT);
|
|
|
+ release_region(data->addr, IT87_EC_EXTENT);
|
|
|
platform_set_drvdata(pdev, NULL);
|
|
|
kfree(data);
|
|
|
|
|
@@ -1402,8 +1416,8 @@ static int __init it87_device_add(unsigned short address,
|
|
|
const struct it87_sio_data *sio_data)
|
|
|
{
|
|
|
struct resource res = {
|
|
|
- .start = address ,
|
|
|
- .end = address + IT87_EXTENT - 1,
|
|
|
+ .start = address + IT87_EC_OFFSET,
|
|
|
+ .end = address + IT87_EC_OFFSET + IT87_EC_EXTENT - 1,
|
|
|
.name = DRVNAME,
|
|
|
.flags = IORESOURCE_IO,
|
|
|
};
|