diff options
Diffstat (limited to 'Documentation/i2c')
-rw-r--r-- | Documentation/i2c/busses/i2c-ali1535 | 4 | ||||
-rw-r--r-- | Documentation/i2c/busses/i2c-ali1563 | 2 | ||||
-rw-r--r-- | Documentation/i2c/busses/i2c-ali15x3 | 16 | ||||
-rw-r--r-- | Documentation/i2c/busses/i2c-i801 | 11 | ||||
-rw-r--r-- | Documentation/i2c/busses/i2c-parport | 3 | ||||
-rw-r--r-- | Documentation/i2c/busses/i2c-parport-light | 11 | ||||
-rw-r--r-- | Documentation/i2c/busses/i2c-pca-isa | 14 | ||||
-rw-r--r-- | Documentation/i2c/busses/i2c-sis5595 | 58 | ||||
-rw-r--r-- | Documentation/i2c/busses/i2c-sis630 | 8 | ||||
-rw-r--r-- | Documentation/i2c/smbus-protocol | 16 | ||||
-rw-r--r-- | Documentation/i2c/ten-bit-addresses | 6 | ||||
-rw-r--r-- | Documentation/i2c/writing-clients | 10 |
12 files changed, 101 insertions, 58 deletions
diff --git a/Documentation/i2c/busses/i2c-ali1535 b/Documentation/i2c/busses/i2c-ali1535 index 0db3b4c74ad1..acbc65a08097 100644 --- a/Documentation/i2c/busses/i2c-ali1535 +++ b/Documentation/i2c/busses/i2c-ali1535 | |||
@@ -6,12 +6,12 @@ Supported adapters: | |||
6 | http://www.ali.com.tw/eng/support/datasheet_request.php | 6 | http://www.ali.com.tw/eng/support/datasheet_request.php |
7 | 7 | ||
8 | Authors: | 8 | Authors: |
9 | Frodo Looijaard <frodol@dds.nl>, | 9 | Frodo Looijaard <frodol@dds.nl>, |
10 | Philip Edelbrock <phil@netroedge.com>, | 10 | Philip Edelbrock <phil@netroedge.com>, |
11 | Mark D. Studebaker <mdsxyz123@yahoo.com>, | 11 | Mark D. Studebaker <mdsxyz123@yahoo.com>, |
12 | Dan Eaton <dan.eaton@rocketlogix.com>, | 12 | Dan Eaton <dan.eaton@rocketlogix.com>, |
13 | Stephen Rousset<stephen.rousset@rocketlogix.com> | 13 | Stephen Rousset<stephen.rousset@rocketlogix.com> |
14 | 14 | ||
15 | Description | 15 | Description |
16 | ----------- | 16 | ----------- |
17 | 17 | ||
diff --git a/Documentation/i2c/busses/i2c-ali1563 b/Documentation/i2c/busses/i2c-ali1563 index 99ad4b9bcc32..54691698d2dd 100644 --- a/Documentation/i2c/busses/i2c-ali1563 +++ b/Documentation/i2c/busses/i2c-ali1563 | |||
@@ -18,7 +18,7 @@ For an overview of these chips see http://www.acerlabs.com | |||
18 | The M1563 southbridge is deceptively similar to the M1533, with a few | 18 | The M1563 southbridge is deceptively similar to the M1533, with a few |
19 | notable exceptions. One of those happens to be the fact they upgraded the | 19 | notable exceptions. One of those happens to be the fact they upgraded the |
20 | i2c core to be SMBus 2.0 compliant, and happens to be almost identical to | 20 | i2c core to be SMBus 2.0 compliant, and happens to be almost identical to |
21 | the i2c controller found in the Intel 801 south bridges. | 21 | the i2c controller found in the Intel 801 south bridges. |
22 | 22 | ||
23 | Features | 23 | Features |
24 | -------- | 24 | -------- |
diff --git a/Documentation/i2c/busses/i2c-ali15x3 b/Documentation/i2c/busses/i2c-ali15x3 index ff28d381bebe..600da90b8f12 100644 --- a/Documentation/i2c/busses/i2c-ali15x3 +++ b/Documentation/i2c/busses/i2c-ali15x3 | |||
@@ -6,8 +6,8 @@ Supported adapters: | |||
6 | http://www.ali.com.tw/eng/support/datasheet_request.php | 6 | http://www.ali.com.tw/eng/support/datasheet_request.php |
7 | 7 | ||
8 | Authors: | 8 | Authors: |
9 | Frodo Looijaard <frodol@dds.nl>, | 9 | Frodo Looijaard <frodol@dds.nl>, |
10 | Philip Edelbrock <phil@netroedge.com>, | 10 | Philip Edelbrock <phil@netroedge.com>, |
11 | Mark D. Studebaker <mdsxyz123@yahoo.com> | 11 | Mark D. Studebaker <mdsxyz123@yahoo.com> |
12 | 12 | ||
13 | Module Parameters | 13 | Module Parameters |
@@ -40,10 +40,10 @@ M1541 and M1543C South Bridges. | |||
40 | The M1543C is a South bridge for desktop systems. | 40 | The M1543C is a South bridge for desktop systems. |
41 | The M1541 is a South bridge for portable systems. | 41 | The M1541 is a South bridge for portable systems. |
42 | They are part of the following ALI chipsets: | 42 | They are part of the following ALI chipsets: |
43 | 43 | ||
44 | * "Aladdin Pro 2" includes the M1621 Slot 1 North bridge with AGP and | 44 | * "Aladdin Pro 2" includes the M1621 Slot 1 North bridge with AGP and |
45 | 100MHz CPU Front Side bus | 45 | 100MHz CPU Front Side bus |
46 | * "Aladdin V" includes the M1541 Socket 7 North bridge with AGP and 100MHz | 46 | * "Aladdin V" includes the M1541 Socket 7 North bridge with AGP and 100MHz |
47 | CPU Front Side bus | 47 | CPU Front Side bus |
48 | Some Aladdin V motherboards: | 48 | Some Aladdin V motherboards: |
49 | Asus P5A | 49 | Asus P5A |
@@ -77,7 +77,7 @@ output of lspci will show something similar to the following: | |||
77 | ** then run lspci. | 77 | ** then run lspci. |
78 | ** If you see the 1533 and 5229 devices but NOT the 7101 device, | 78 | ** If you see the 1533 and 5229 devices but NOT the 7101 device, |
79 | ** then you must enable ACPI, the PMU, SMB, or something similar | 79 | ** then you must enable ACPI, the PMU, SMB, or something similar |
80 | ** in the BIOS. | 80 | ** in the BIOS. |
81 | ** The driver won't work if it can't find the M7101 device. | 81 | ** The driver won't work if it can't find the M7101 device. |
82 | 82 | ||
83 | The SMB controller is part of the M7101 device, which is an ACPI-compliant | 83 | The SMB controller is part of the M7101 device, which is an ACPI-compliant |
@@ -87,8 +87,8 @@ The whole M7101 device has to be enabled for the SMB to work. You can't | |||
87 | just enable the SMB alone. The SMB and the ACPI have separate I/O spaces. | 87 | just enable the SMB alone. The SMB and the ACPI have separate I/O spaces. |
88 | We make sure that the SMB is enabled. We leave the ACPI alone. | 88 | We make sure that the SMB is enabled. We leave the ACPI alone. |
89 | 89 | ||
90 | Features | 90 | Features |
91 | -------- | 91 | -------- |
92 | 92 | ||
93 | This driver controls the SMB Host only. The SMB Slave | 93 | This driver controls the SMB Host only. The SMB Slave |
94 | controller on the M15X3 is not enabled. This driver does not use | 94 | controller on the M15X3 is not enabled. This driver does not use |
diff --git a/Documentation/i2c/busses/i2c-i801 b/Documentation/i2c/busses/i2c-i801 index 81c0c59a60ea..e307914a3eda 100644 --- a/Documentation/i2c/busses/i2c-i801 +++ b/Documentation/i2c/busses/i2c-i801 | |||
@@ -15,7 +15,8 @@ Supported adapters: | |||
15 | * Intel 82801I (ICH9) | 15 | * Intel 82801I (ICH9) |
16 | * Intel EP80579 (Tolapai) | 16 | * Intel EP80579 (Tolapai) |
17 | * Intel 82801JI (ICH10) | 17 | * Intel 82801JI (ICH10) |
18 | * Intel PCH | 18 | * Intel 3400/5 Series (PCH) |
19 | * Intel Cougar Point (PCH) | ||
19 | Datasheets: Publicly available at the Intel website | 20 | Datasheets: Publicly available at the Intel website |
20 | 21 | ||
21 | Authors: | 22 | Authors: |
@@ -26,7 +27,13 @@ Authors: | |||
26 | Module Parameters | 27 | Module Parameters |
27 | ----------------- | 28 | ----------------- |
28 | 29 | ||
29 | None. | 30 | * disable_features (bit vector) |
31 | Disable selected features normally supported by the device. This makes it | ||
32 | possible to work around possible driver or hardware bugs if the feature in | ||
33 | question doesn't work as intended for whatever reason. Bit values: | ||
34 | 1 disable SMBus PEC | ||
35 | 2 disable the block buffer | ||
36 | 8 disable the I2C block read functionality | ||
30 | 37 | ||
31 | 38 | ||
32 | Description | 39 | Description |
diff --git a/Documentation/i2c/busses/i2c-parport b/Documentation/i2c/busses/i2c-parport index dceaba1ad930..2461c7b53b2c 100644 --- a/Documentation/i2c/busses/i2c-parport +++ b/Documentation/i2c/busses/i2c-parport | |||
@@ -29,6 +29,9 @@ can be easily added when needed. | |||
29 | Earlier kernels defaulted to type=0 (Philips). But now, if the type | 29 | Earlier kernels defaulted to type=0 (Philips). But now, if the type |
30 | parameter is missing, the driver will simply fail to initialize. | 30 | parameter is missing, the driver will simply fail to initialize. |
31 | 31 | ||
32 | SMBus alert support is available on adapters which have this line properly | ||
33 | connected to the parallel port's interrupt pin. | ||
34 | |||
32 | 35 | ||
33 | Building your own adapter | 36 | Building your own adapter |
34 | ------------------------- | 37 | ------------------------- |
diff --git a/Documentation/i2c/busses/i2c-parport-light b/Documentation/i2c/busses/i2c-parport-light index 287436478520..bdc9cbb2e0f2 100644 --- a/Documentation/i2c/busses/i2c-parport-light +++ b/Documentation/i2c/busses/i2c-parport-light | |||
@@ -9,3 +9,14 @@ parport handling is not an option. The drawback is a reduced portability | |||
9 | and the impossibility to daisy-chain other parallel port devices. | 9 | and the impossibility to daisy-chain other parallel port devices. |
10 | 10 | ||
11 | Please see i2c-parport for documentation. | 11 | Please see i2c-parport for documentation. |
12 | |||
13 | Module parameters: | ||
14 | |||
15 | * type: type of adapter (see i2c-parport or modinfo) | ||
16 | |||
17 | * base: base I/O address | ||
18 | Default is 0x378 which is fairly common for parallel ports, at least on PC. | ||
19 | |||
20 | * irq: optional IRQ | ||
21 | This must be passed if you want SMBus alert support, assuming your adapter | ||
22 | actually supports this. | ||
diff --git a/Documentation/i2c/busses/i2c-pca-isa b/Documentation/i2c/busses/i2c-pca-isa index 6fc8f4c27c3c..b044e5265488 100644 --- a/Documentation/i2c/busses/i2c-pca-isa +++ b/Documentation/i2c/busses/i2c-pca-isa | |||
@@ -1,10 +1,10 @@ | |||
1 | Kernel driver i2c-pca-isa | 1 | Kernel driver i2c-pca-isa |
2 | 2 | ||
3 | Supported adapters: | 3 | Supported adapters: |
4 | This driver supports ISA boards using the Philips PCA 9564 | 4 | This driver supports ISA boards using the Philips PCA 9564 |
5 | Parallel bus to I2C bus controller | 5 | Parallel bus to I2C bus controller |
6 | 6 | ||
7 | Author: Ian Campbell <icampbell@arcom.com>, Arcom Control Systems | 7 | Author: Ian Campbell <icampbell@arcom.com>, Arcom Control Systems |
8 | 8 | ||
9 | Module Parameters | 9 | Module Parameters |
10 | ----------------- | 10 | ----------------- |
@@ -12,12 +12,12 @@ Module Parameters | |||
12 | * base int | 12 | * base int |
13 | I/O base address | 13 | I/O base address |
14 | * irq int | 14 | * irq int |
15 | IRQ interrupt | 15 | IRQ interrupt |
16 | * clock int | 16 | * clock int |
17 | Clock rate as described in table 1 of PCA9564 datasheet | 17 | Clock rate as described in table 1 of PCA9564 datasheet |
18 | 18 | ||
19 | Description | 19 | Description |
20 | ----------- | 20 | ----------- |
21 | 21 | ||
22 | This driver supports ISA boards using the Philips PCA 9564 | 22 | This driver supports ISA boards using the Philips PCA 9564 |
23 | Parallel bus to I2C bus controller | 23 | Parallel bus to I2C bus controller |
diff --git a/Documentation/i2c/busses/i2c-sis5595 b/Documentation/i2c/busses/i2c-sis5595 index cc47db7d00a9..ecd21fb49a8f 100644 --- a/Documentation/i2c/busses/i2c-sis5595 +++ b/Documentation/i2c/busses/i2c-sis5595 | |||
@@ -1,41 +1,41 @@ | |||
1 | Kernel driver i2c-sis5595 | 1 | Kernel driver i2c-sis5595 |
2 | 2 | ||
3 | Authors: | 3 | Authors: |
4 | Frodo Looijaard <frodol@dds.nl>, | 4 | Frodo Looijaard <frodol@dds.nl>, |
5 | Mark D. Studebaker <mdsxyz123@yahoo.com>, | 5 | Mark D. Studebaker <mdsxyz123@yahoo.com>, |
6 | Philip Edelbrock <phil@netroedge.com> | 6 | Philip Edelbrock <phil@netroedge.com> |
7 | 7 | ||
8 | Supported adapters: | 8 | Supported adapters: |
9 | * Silicon Integrated Systems Corp. SiS5595 Southbridge | 9 | * Silicon Integrated Systems Corp. SiS5595 Southbridge |
10 | Datasheet: Publicly available at the Silicon Integrated Systems Corp. site. | 10 | Datasheet: Publicly available at the Silicon Integrated Systems Corp. site. |
11 | 11 | ||
12 | Note: all have mfr. ID 0x1039. | 12 | Note: all have mfr. ID 0x1039. |
13 | 13 | ||
14 | SUPPORTED PCI ID | 14 | SUPPORTED PCI ID |
15 | 5595 0008 | 15 | 5595 0008 |
16 | 16 | ||
17 | Note: these chips contain a 0008 device which is incompatible with the | 17 | Note: these chips contain a 0008 device which is incompatible with the |
18 | 5595. We recognize these by the presence of the listed | 18 | 5595. We recognize these by the presence of the listed |
19 | "blacklist" PCI ID and refuse to load. | 19 | "blacklist" PCI ID and refuse to load. |
20 | 20 | ||
21 | NOT SUPPORTED PCI ID BLACKLIST PCI ID | 21 | NOT SUPPORTED PCI ID BLACKLIST PCI ID |
22 | 540 0008 0540 | 22 | 540 0008 0540 |
23 | 550 0008 0550 | 23 | 550 0008 0550 |
24 | 5513 0008 5511 | 24 | 5513 0008 5511 |
25 | 5581 0008 5597 | 25 | 5581 0008 5597 |
26 | 5582 0008 5597 | 26 | 5582 0008 5597 |
27 | 5597 0008 5597 | 27 | 5597 0008 5597 |
28 | 5598 0008 5597/5598 | 28 | 5598 0008 5597/5598 |
29 | 630 0008 0630 | 29 | 630 0008 0630 |
30 | 645 0008 0645 | 30 | 645 0008 0645 |
31 | 646 0008 0646 | 31 | 646 0008 0646 |
32 | 648 0008 0648 | 32 | 648 0008 0648 |
33 | 650 0008 0650 | 33 | 650 0008 0650 |
34 | 651 0008 0651 | 34 | 651 0008 0651 |
35 | 730 0008 0730 | 35 | 730 0008 0730 |
36 | 735 0008 0735 | 36 | 735 0008 0735 |
37 | 745 0008 0745 | 37 | 745 0008 0745 |
38 | 746 0008 0746 | 38 | 746 0008 0746 |
39 | 39 | ||
40 | Module Parameters | 40 | Module Parameters |
41 | ----------------- | 41 | ----------------- |
diff --git a/Documentation/i2c/busses/i2c-sis630 b/Documentation/i2c/busses/i2c-sis630 index 9aca6889f748..629ea2c356fd 100644 --- a/Documentation/i2c/busses/i2c-sis630 +++ b/Documentation/i2c/busses/i2c-sis630 | |||
@@ -14,9 +14,9 @@ Module Parameters | |||
14 | * force = [1|0] Forcibly enable the SIS630. DANGEROUS! | 14 | * force = [1|0] Forcibly enable the SIS630. DANGEROUS! |
15 | This can be interesting for chipsets not named | 15 | This can be interesting for chipsets not named |
16 | above to check if it works for you chipset, but DANGEROUS! | 16 | above to check if it works for you chipset, but DANGEROUS! |
17 | 17 | ||
18 | * high_clock = [1|0] Forcibly set Host Master Clock to 56KHz (default, | 18 | * high_clock = [1|0] Forcibly set Host Master Clock to 56KHz (default, |
19 | what your BIOS use). DANGEROUS! This should be a bit | 19 | what your BIOS use). DANGEROUS! This should be a bit |
20 | faster, but freeze some systems (i.e. my Laptop). | 20 | faster, but freeze some systems (i.e. my Laptop). |
21 | 21 | ||
22 | 22 | ||
@@ -44,6 +44,6 @@ Philip Edelbrock <phil@netroedge.com> | |||
44 | - testing SiS730 support | 44 | - testing SiS730 support |
45 | Mark M. Hoffman <mhoffman@lightlink.com> | 45 | Mark M. Hoffman <mhoffman@lightlink.com> |
46 | - bug fixes | 46 | - bug fixes |
47 | 47 | ||
48 | To anyone else which I forgot here ;), thanks! | 48 | To anyone else which I forgot here ;), thanks! |
49 | 49 | ||
diff --git a/Documentation/i2c/smbus-protocol b/Documentation/i2c/smbus-protocol index 9df47441f0e7..7c19d1a2bea0 100644 --- a/Documentation/i2c/smbus-protocol +++ b/Documentation/i2c/smbus-protocol | |||
@@ -185,6 +185,22 @@ the protocol. All ARP communications use slave address 0x61 and | |||
185 | require PEC checksums. | 185 | require PEC checksums. |
186 | 186 | ||
187 | 187 | ||
188 | SMBus Alert | ||
189 | =========== | ||
190 | |||
191 | SMBus Alert was introduced in Revision 1.0 of the specification. | ||
192 | |||
193 | The SMBus alert protocol allows several SMBus slave devices to share a | ||
194 | single interrupt pin on the SMBus master, while still allowing the master | ||
195 | to know which slave triggered the interrupt. | ||
196 | |||
197 | This is implemented the following way in the Linux kernel: | ||
198 | * I2C bus drivers which support SMBus alert should call | ||
199 | i2c_setup_smbus_alert() to setup SMBus alert support. | ||
200 | * I2C drivers for devices which can trigger SMBus alerts should implement | ||
201 | the optional alert() callback. | ||
202 | |||
203 | |||
188 | I2C Block Transactions | 204 | I2C Block Transactions |
189 | ====================== | 205 | ====================== |
190 | 206 | ||
diff --git a/Documentation/i2c/ten-bit-addresses b/Documentation/i2c/ten-bit-addresses index 200074f81360..e9890709c508 100644 --- a/Documentation/i2c/ten-bit-addresses +++ b/Documentation/i2c/ten-bit-addresses | |||
@@ -1,17 +1,17 @@ | |||
1 | The I2C protocol knows about two kinds of device addresses: normal 7 bit | 1 | The I2C protocol knows about two kinds of device addresses: normal 7 bit |
2 | addresses, and an extended set of 10 bit addresses. The sets of addresses | 2 | addresses, and an extended set of 10 bit addresses. The sets of addresses |
3 | do not intersect: the 7 bit address 0x10 is not the same as the 10 bit | 3 | do not intersect: the 7 bit address 0x10 is not the same as the 10 bit |
4 | address 0x10 (though a single device could respond to both of them). You | 4 | address 0x10 (though a single device could respond to both of them). You |
5 | select a 10 bit address by adding an extra byte after the address | 5 | select a 10 bit address by adding an extra byte after the address |
6 | byte: | 6 | byte: |
7 | S Addr7 Rd/Wr .... | 7 | S Addr7 Rd/Wr .... |
8 | becomes | 8 | becomes |
9 | S 11110 Addr10 Rd/Wr | 9 | S 11110 Addr10 Rd/Wr |
10 | S is the start bit, Rd/Wr the read/write bit, and if you count the number | 10 | S is the start bit, Rd/Wr the read/write bit, and if you count the number |
11 | of bits, you will see the there are 8 after the S bit for 7 bit addresses, | 11 | of bits, you will see the there are 8 after the S bit for 7 bit addresses, |
12 | and 16 after the S bit for 10 bit addresses. | 12 | and 16 after the S bit for 10 bit addresses. |
13 | 13 | ||
14 | WARNING! The current 10 bit address support is EXPERIMENTAL. There are | 14 | WARNING! The current 10 bit address support is EXPERIMENTAL. There are |
15 | several places in the code that will cause SEVERE PROBLEMS with 10 bit | 15 | several places in the code that will cause SEVERE PROBLEMS with 10 bit |
16 | addresses, even though there is some basic handling and hooks. Also, | 16 | addresses, even though there is some basic handling and hooks. Also, |
17 | almost no supported adapter handles the 10 bit addresses correctly. | 17 | almost no supported adapter handles the 10 bit addresses correctly. |
diff --git a/Documentation/i2c/writing-clients b/Documentation/i2c/writing-clients index 0a74603eb671..5ebf5af1d716 100644 --- a/Documentation/i2c/writing-clients +++ b/Documentation/i2c/writing-clients | |||
@@ -74,6 +74,11 @@ structure at all. You should use this to keep device-specific data. | |||
74 | /* retrieve the value */ | 74 | /* retrieve the value */ |
75 | void *i2c_get_clientdata(const struct i2c_client *client); | 75 | void *i2c_get_clientdata(const struct i2c_client *client); |
76 | 76 | ||
77 | Note that starting with kernel 2.6.34, you don't have to set the `data' field | ||
78 | to NULL in remove() or if probe() failed anymore. The i2c-core does this | ||
79 | automatically on these occasions. Those are also the only times the core will | ||
80 | touch this field. | ||
81 | |||
77 | 82 | ||
78 | Accessing the client | 83 | Accessing the client |
79 | ==================== | 84 | ==================== |
@@ -318,8 +323,9 @@ Plain I2C communication | |||
318 | These routines read and write some bytes from/to a client. The client | 323 | These routines read and write some bytes from/to a client. The client |
319 | contains the i2c address, so you do not have to include it. The second | 324 | contains the i2c address, so you do not have to include it. The second |
320 | parameter contains the bytes to read/write, the third the number of bytes | 325 | parameter contains the bytes to read/write, the third the number of bytes |
321 | to read/write (must be less than the length of the buffer.) Returned is | 326 | to read/write (must be less than the length of the buffer, also should be |
322 | the actual number of bytes read/written. | 327 | less than 64k since msg.len is u16.) Returned is the actual number of bytes |
328 | read/written. | ||
323 | 329 | ||
324 | int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msg, | 330 | int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msg, |
325 | int num); | 331 | int num); |