linux/drivers/i2c
Daniel Vetter b0209b3995 i2c: export bit-banging algo functions
i915 has a hw i2c controller (gmbus) but for a bunch of stupid reasons
we need to be able to fall back to the bit-banging algo on gpio pins.

The current code sets up a 2nd i2c controller for the same i2c bus using
the bit-banging algo. This has a bunch of issues, the major one being
that userspace can directly access this fallback i2c adaptor behind
the drivers back.

But we need to frob a few registers before and after using fallback
gpio bit-banging, so this horribly fails.

The new plan is to only set up one i2c adaptor and transparently fall
back to bit-banging by directly calling the xfer function of the bit-
banging algo in the i2c core.

To make that possible, export the 2 i2c algo functions.

v2: As suggested by Jean Delvare, simply export the i2c_bit_algo
vtable instead of the individual functions.

Acked-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-02-29 20:47:42 +01:00
..
algos i2c: export bit-banging algo functions 2012-02-29 20:47:42 +01:00
busses Merge branches 'for-33/i2c/eg20t' and 'for-33/i2c/omap' into for-linus/i2c-33 2012-01-17 23:30:41 +00:00
muxes i2c/gpio-i2cmux: Convert to use module_platform_driver() 2012-01-12 20:32:04 +01:00
i2c-boardinfo.c i2c: add export.h to i2c-boardinfo.c for EXPORT_SYMBOL 2011-10-31 19:31:29 -04:00
i2c-core.c i2c: Fix device name for 10-bit slave address 2011-11-23 11:33:07 +01:00
i2c-core.h i2c: Use rwsem instead of mutex for board info 2009-06-19 16:58:20 +02:00
i2c-dev.c i2c-dev: Use memdup_user 2012-01-12 20:32:04 +01:00
i2c-mux.c i2c: Mark i2c_adapter.id as deprecated 2010-11-15 22:40:38 +01:00
i2c-smbus.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
Kconfig doc: Kconfig: Typo: square -> squared 2011-07-11 14:22:32 +02:00
Makefile i2c: Deprecate i2c_driver.attach_adapter and .detach_adapter 2011-03-20 14:50:53 +01:00