NFC: Fix NFC enable issue after firmware download
Changes made to fix NFC enable after firmware
upgrade,downgrade and self-update.
Changes done to align with 9.0.11 MW release from third party.
Change-Id: Ie720866de3f6295caf946c63845d8a35ae34b5b0
Signed-off-by: Bhuvan Varshney <bvarshne@codeaurora.org>
diff --git a/drivers/nfc/nq-nci.c b/drivers/nfc/nq-nci.c
index 0280d42..b3774c7 100644
--- a/drivers/nfc/nq-nci.c
+++ b/drivers/nfc/nq-nci.c
@@ -534,6 +534,32 @@
usleep_range(10000, 10100);
gpio_set_value(nqx_dev->en_gpio, 1);
usleep_range(10000, 10100);
+ } else if (arg == 4) {
+ /*
+ * Setting firmware download gpio to HIGH for SN100U
+ * before FW download start
+ */
+ dev_dbg(&nqx_dev->client->dev, "SN100 fw gpio HIGH\n");
+ if (gpio_is_valid(nqx_dev->firm_gpio)) {
+ gpio_set_value(nqx_dev->firm_gpio, 1);
+ usleep_range(10000, 10100);
+ } else {
+ dev_err(&nqx_dev->client->dev,
+ "firm_gpio is invalid\n");
+ }
+ } else if (arg == 6) {
+ /*
+ * Setting firmware download gpio to LOW for SN100U
+ * FW download finished
+ */
+ dev_dbg(&nqx_dev->client->dev, "SN100 fw gpio LOW\n");
+ if (gpio_is_valid(nqx_dev->firm_gpio)) {
+ gpio_set_value(nqx_dev->firm_gpio, 0);
+ usleep_range(10000, 10100);
+ } else {
+ dev_err(&nqx_dev->client->dev,
+ "firm_gpio is invalid\n");
+ }
} else {
r = -ENOIOCTLCMD;
}