@@ -206,6 +206,14 @@ static int __devexit mcs_touchkey_remove(struct i2c_client *client)
return 0;
}
+static void mcs_touchkey_shutdown(struct i2c_client *client)
+{
+ struct mcs_touchkey_data *data = i2c_get_clientdata(client);
+
+ if (data->poweron)
+ data->poweron(0);
+}
+
#ifdef CONFIG_PM
static int mcs_touchkey_suspend(struct i2c_client *client, pm_message_t mesg)
{
@@ -255,6 +263,7 @@ static struct i2c_driver mcs_touchkey_driver = {
},
.probe = mcs_touchkey_probe,
.remove = __devexit_p(mcs_touchkey_remove),
+ .shutdown = mcs_touchkey_shutdown,
.suspend = mcs_touchkey_suspend,
.resume = mcs_touchkey_resume,
.id_table = mcs_touchkey_id,