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);