Select Intel Baytrail platforms support PMIC's whose i2c bus may be controlled exclusively by platform hardware. This patch set adds support for i2c bus locking to the designware core and provides a driver module for managing the lock on these platforms. Since the lock on these systems isn't enumerable outside of the i2c platform driver, the locking functions are assigned at compile time.
V2: Moved semaphore detection out of dw platform driver Replaced function pointers with defined acquire/release functions in dw core. This helps elliminate the ifdefery in the dw platform driver. Use new has_hw_lock flag to check if the lock exists on a given bus. Use new pm_runtime_disabled flag to conditionally turnoff runtime pm in the dw platform driver. V3: Split lock support and driver into separate patches Change module build to bool. Platforms running without this driver cannot perform critical functions such as charging. Futhermore attempts by other drivers to access the i2c bus without a lock will hang the platform. Replaced has_hw_lock flag with acquire/release function pointers. Replaced acquire/release ifdef code with single i2c_dw_eval_lock_support() test for cleaner (if still undesireable) compile time scalability. Future Intel platforms will however continue to use the Baytrail driver. David E. Box (2): i2c-designware: Add i2c bus locking support i2c-designware: Add Intel Baytrail PMIC I2C bus support drivers/i2c/busses/Kconfig | 12 +++ drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-designware-baytrail.c | 155 +++++++++++++++++++++++++++ drivers/i2c/busses/i2c-designware-core.c | 11 ++ drivers/i2c/busses/i2c-designware-core.h | 12 +++ drivers/i2c/busses/i2c-designware-platdrv.c | 18 +++- 6 files changed, 204 insertions(+), 5 deletions(-) create mode 100644 drivers/i2c/busses/i2c-designware-baytrail.c -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/