]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit3db90c3e0dee9598942ba5434d804e82cdcba30d
tree0282f6f16a1377a8070d317cc385541e9c651b2c
parenta44b3d1e04284f2a0e3ec503302b2789522cdd9b
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