i2c: Add SMBus alert support
authorJean Delvare <khali@linux-fr.org>
Tue, 2 Mar 2010 11:23:42 +0000 (12:23 +0100)
committerJean Delvare <khali@linux-fr.org>
Tue, 2 Mar 2010 11:23:42 +0000 (12:23 +0100)
commitb5527a7766f0505dc72efe3cefe5e9dea826f611
tree0282f6f16a1377a8070d317cc385541e9c651b2c
parent6d376fcc28d98f7f8f652755ae4dca1ff7240563
i2c: Add SMBus alert support

SMBus alert support. The SMBus alert protocol allows several SMBus
slave devices to share a single interrupt pin on the SMBus master,
while still allowing the master to know which slave triggered the
interrupt.

This is based on preliminary work by David Brownell. The key
difference between David's implementation and mine is that his was
part of i2c-core, while mine is split into a separate, standalone
module named i2c-smbus. The i2c-smbus module is meant to include
support for all SMBus extensions to the I2C protocol in the future.

The benefit of this approach is a zero cost for I2C bus segments which
do not need SMBus alert support. Where David's implementation
increased the size of struct i2c_adapter by 7% (40 bytes on i386),
mine doesn't touch it. Where David's implementation added over 150
lines of code to i2c-core (+10%), mine doesn't touch it. The only
change that touches all the users of the i2c subsystem is a new
callback in struct i2c_driver (common to both implementations.) I seem
to remember Trent was worried about the footprint of David'd
implementation, hopefully mine addresses the issue.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Acked-by: Jonathan Cameron <jic23@cam.ac.uk>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Cc: Trent Piepho <tpiepho@freescale.com>
Documentation/i2c/smbus-protocol
drivers/i2c/Makefile
drivers/i2c/i2c-smbus.c [new file with mode: 0644]
include/linux/i2c-smbus.h [new file with mode: 0644]
include/linux/i2c.h