linux/Documentation/i2c/busses
Daniel Kurtz 636752bcb5 i2c-i801: Enable IRQ for SMBus transactions
Add a new 'feature' to i2c-i801 to enable using PCI interrupts.
When the feature is enabled, then an isr is installed for the device's
PCI IRQ.

An I2C/SMBus transaction is always terminated by one of the following
interrupt sources: FAILED, BUS_ERR, DEV_ERR, or on success: INTR.

When the isr fires for one of these cases, it sets the ->status variable
and wakes up the waitq.  The waitq then saves off the status code, and
clears ->status (in preparation for some future transaction).
The SMBus controller generates an INTR irq at the end of each
transaction where INTREN was set in the HST_CNT register.

No locking is needed around accesses to priv->status since all writes to
it are serialized: it is only ever set once in the isr at the end of a
transaction, and cleared while no interrupts can occur.  In addition, the
I2C adapter lock guarantees that entire I2C transactions for a single
adapter are always serialized.

For this patch, the INTREN bit is set only for SMBus block, byte and word
transactions, but not for I2C reads or writes.  The use of the DS
(BYTE_DONE) interrupt with byte-by-byte I2C transactions is implemented in
a subsequent patch.

The interrupt feature has only been enabled for COUGARPOINT hardware.
In addition, it is disabled if SMBus is using the SMI# interrupt.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
2012-07-24 14:13:58 +02:00
..
i2c-ali15x3 Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
i2c-ali1535 Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
i2c-ali1563 Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
i2c-amd756 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
i2c-amd8111 i2c: Fix documentation typos 2006-12-10 21:21:28 +01:00
i2c-diolan-u2c i2c/busses: Add support for Diolan U2C-12 USB-I2C adapter 2011-01-27 00:39:30 +00:00
i2c-i801 i2c-i801: Enable IRQ for SMBus transactions 2012-07-24 14:13:58 +02:00
i2c-nforce2 i2c-nforce2: Add support for MCP67, MCP73, MCP78S and MCP79 2009-03-28 21:34:41 +01:00
i2c-ocores i2c-ocores: Can add I2C devices to the bus 2009-06-13 10:39:28 +01:00
i2c-parport i2c-parport: Add SMBus alert support 2010-03-02 12:23:44 +01:00
i2c-parport-light Fix common misspellings 2011-03-31 11:26:23 -03:00
i2c-pca-isa Documentation/i2c: Checkpatch cleanup 2010-06-03 11:33:50 +02:00
i2c-piix4 i2c-piix4: Support AMD auxiliary SMBus controller 2012-07-24 14:13:57 +02:00
i2c-sis96x Fix common misspellings 2011-03-31 11:26:23 -03:00
i2c-sis630 Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
i2c-sis5595 Documentation/i2c: Checkpatch cleanup 2010-06-03 11:33:50 +02:00
i2c-taos-evm Fix common misspellings 2011-03-31 11:26:23 -03:00
i2c-via documentation: convert the Documentation directory to UTF-8 2007-05-09 08:58:19 +02:00
i2c-viapro i2c-viapro: Add new PCI device ID for VX855 2009-06-15 18:01:49 +02:00
scx200_acb Documentation: remove references to /etc/modprobe.conf 2012-03-30 16:03:15 -07:00