tlv320aic3xxx: add i2c shutdown implementation
Adds i2c shutdown related checks
Bug 1226744
Change-Id: Ic9833dd620f108d6c4a339579b71e80c790503f9
Signed-off-by: Rahul Mittal <rmittal@nvidia.com>
Reviewed-on: http://git-master/r/197860
Reviewed-by: Vijay Mali <vmali@nvidia.com>
Reviewed-by: Scott Peterson <speterson@nvidia.com>
diff --git a/drivers/mfd/tlv320aic3xxx-i2c.c b/drivers/mfd/tlv320aic3xxx-i2c.c
index 9de5dae..c824975 100644
--- a/drivers/mfd/tlv320aic3xxx-i2c.c
+++ b/drivers/mfd/tlv320aic3xxx-i2c.c
@@ -105,6 +105,14 @@
return 0;
}
+static void aic3xxx_i2c_shutdown(struct i2c_client *i2c)
+{
+ struct aic3xxx *aic3xxx = dev_get_drvdata(&i2c->dev);
+ mutex_lock(&aic3xxx->io_lock);
+ aic3xxx->shutdown_complete = 1;
+ mutex_unlock(&aic3xxx->io_lock);
+}
+
static const struct i2c_device_id aic3xxx_i2c_id[] = {
{"tlv320aic3262", TLV320AIC3262},
{"tlv320aic3285", TLV320AIC3285},
@@ -124,6 +132,7 @@
.probe = aic3xxx_i2c_probe,
.remove = __devexit_p(aic3xxx_i2c_remove),
.id_table = aic3xxx_i2c_id,
+ .shutdown = aic3xxx_i2c_shutdown,
};
module_i2c_driver(aic3xxx_i2c_driver);