diff options
author | Jean Delvare <khali@linux-fr.org> | 2008-01-27 12:14:49 -0500 |
---|---|---|
committer | Jean Delvare <khali@hyperion.delvare> | 2008-01-27 12:14:49 -0500 |
commit | ae7b0497b8280ad5ecfe7bd045c5106f35950c8a (patch) | |
tree | 87c31cc331aa3487369e2104e71342906a6d1b6a /drivers | |
parent | 6d16bfb5e81d3925a7efb38b5cc3e0021b57d03a (diff) |
i2c-i801: Document which chip support what feature
Provide a clearer documentation of which additional features each
ICH chip support, and which of these the driver supports.
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/i2c/busses/i2c-i801.c | 57 |
1 files changed, 33 insertions, 24 deletions
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c index ac27e5f84ebe..8f16a47bcaf9 100644 --- a/drivers/i2c/busses/i2c-i801.c +++ b/drivers/i2c/busses/i2c-i801.c | |||
@@ -21,25 +21,34 @@ | |||
21 | */ | 21 | */ |
22 | 22 | ||
23 | /* | 23 | /* |
24 | SUPPORTED DEVICES PCI ID | 24 | Supports the following Intel I/O Controller Hubs (ICH): |
25 | 82801AA 2413 | 25 | |
26 | 82801AB 2423 | 26 | I/O Block I2C |
27 | 82801BA 2443 | 27 | region SMBus Block proc. block |
28 | 82801CA/CAM 2483 | 28 | Chip name PCI ID size PEC buffer call read |
29 | 82801DB 24C3 (HW PEC supported) | 29 | ---------------------------------------------------------------------- |
30 | 82801EB 24D3 (HW PEC supported) | 30 | 82801AA (ICH) 0x2413 16 no no no no |
31 | 6300ESB 25A4 | 31 | 82801AB (ICH0) 0x2423 16 no no no no |
32 | ICH6 266A | 32 | 82801BA (ICH2) 0x2443 16 no no no no |
33 | ICH7 27DA | 33 | 82801CA (ICH3) 0x2483 32 soft no no no |
34 | ESB2 269B | 34 | 82801DB (ICH4) 0x24c3 32 hard yes no no |
35 | ICH8 283E | 35 | 82801E (ICH5) 0x24d3 32 hard yes yes yes |
36 | ICH9 2930 | 36 | 6300ESB 0x25a4 32 hard yes yes yes |
37 | Tolapai 5032 | 37 | 82801F (ICH6) 0x266a 32 hard yes yes yes |
38 | This driver supports several versions of Intel's I/O Controller Hubs (ICH). | 38 | 6310ESB/6320ESB 0x269b 32 hard yes yes yes |
39 | For SMBus support, they are similar to the PIIX4 and are part | 39 | 82801G (ICH7) 0x27da 32 hard yes yes yes |
40 | of Intel's '810' and other chipsets. | 40 | 82801H (ICH8) 0x283e 32 hard yes yes yes |
41 | See the file Documentation/i2c/busses/i2c-i801 for details. | 41 | 82801I (ICH9) 0x2930 32 hard yes yes yes |
42 | I2C Block Read and Process Call are not supported. | 42 | Tolapai 0x5032 32 hard yes ? ? |
43 | |||
44 | Features supported by this driver: | ||
45 | Software PEC no | ||
46 | Hardware PEC yes | ||
47 | Block buffer yes | ||
48 | Block process call transaction no | ||
49 | I2C block read transaction no | ||
50 | |||
51 | See the file Documentation/i2c/busses/i2c-i801 for details. | ||
43 | */ | 52 | */ |
44 | 53 | ||
45 | /* Note: we assume there can only be one I801, with one SMBus interface */ | 54 | /* Note: we assume there can only be one I801, with one SMBus interface */ |
@@ -62,9 +71,9 @@ | |||
62 | #define SMBHSTDAT0 (5 + i801_smba) | 71 | #define SMBHSTDAT0 (5 + i801_smba) |
63 | #define SMBHSTDAT1 (6 + i801_smba) | 72 | #define SMBHSTDAT1 (6 + i801_smba) |
64 | #define SMBBLKDAT (7 + i801_smba) | 73 | #define SMBBLKDAT (7 + i801_smba) |
65 | #define SMBPEC (8 + i801_smba) /* ICH4 only */ | 74 | #define SMBPEC (8 + i801_smba) /* ICH3 and later */ |
66 | #define SMBAUXSTS (12 + i801_smba) /* ICH4 only */ | 75 | #define SMBAUXSTS (12 + i801_smba) /* ICH4 and later */ |
67 | #define SMBAUXCTL (13 + i801_smba) /* ICH4 only */ | 76 | #define SMBAUXCTL (13 + i801_smba) /* ICH4 and later */ |
68 | 77 | ||
69 | /* PCI Address Constants */ | 78 | /* PCI Address Constants */ |
70 | #define SMBBAR 4 | 79 | #define SMBBAR 4 |
@@ -91,13 +100,13 @@ | |||
91 | #define I801_BYTE 0x04 | 100 | #define I801_BYTE 0x04 |
92 | #define I801_BYTE_DATA 0x08 | 101 | #define I801_BYTE_DATA 0x08 |
93 | #define I801_WORD_DATA 0x0C | 102 | #define I801_WORD_DATA 0x0C |
94 | #define I801_PROC_CALL 0x10 /* later chips only, unimplemented */ | 103 | #define I801_PROC_CALL 0x10 /* unimplemented */ |
95 | #define I801_BLOCK_DATA 0x14 | 104 | #define I801_BLOCK_DATA 0x14 |
96 | #define I801_I2C_BLOCK_DATA 0x18 /* unimplemented */ | 105 | #define I801_I2C_BLOCK_DATA 0x18 /* unimplemented */ |
97 | #define I801_BLOCK_LAST 0x34 | 106 | #define I801_BLOCK_LAST 0x34 |
98 | #define I801_I2C_BLOCK_LAST 0x38 /* unimplemented */ | 107 | #define I801_I2C_BLOCK_LAST 0x38 /* unimplemented */ |
99 | #define I801_START 0x40 | 108 | #define I801_START 0x40 |
100 | #define I801_PEC_EN 0x80 /* ICH4 only */ | 109 | #define I801_PEC_EN 0x80 /* ICH3 and later */ |
101 | 110 | ||
102 | /* I801 Hosts Status register bits */ | 111 | /* I801 Hosts Status register bits */ |
103 | #define SMBHSTSTS_BYTE_DONE 0x80 | 112 | #define SMBHSTSTS_BYTE_DONE 0x80 |