aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/i2c/busses
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2008-01-27 12:14:49 -0500
committerJean Delvare <khali@hyperion.delvare>2008-01-27 12:14:49 -0500
commitae7b0497b8280ad5ecfe7bd045c5106f35950c8a (patch)
tree87c31cc331aa3487369e2104e71342906a6d1b6a /drivers/i2c/busses
parent6d16bfb5e81d3925a7efb38b5cc3e0021b57d03a (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/i2c/busses')
-rw-r--r--drivers/i2c/busses/i2c-i801.c57
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