From 0e1a7fc53f166a097248f442c19204ed32a16142 Mon Sep 17 00:00:00 2001 From: Umesh Vats Date: Thu, 25 Feb 2021 17:07:33 -0800 Subject: [PATCH] Bluetooth: Free the XO clk GPIO after use Add change to immediately free the XO Clk GPIO after its usage. Change-Id: Ie54e55175898e0c3e799ff8db8f3399011559f25 Signed-off-by: Umesh Vats --- drivers/bluetooth/btpower.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/bluetooth/btpower.c b/drivers/bluetooth/btpower.c index d44379321481..d9d2558e91ea 100644 --- a/drivers/bluetooth/btpower.c +++ b/drivers/bluetooth/btpower.c @@ -409,19 +409,20 @@ static int bt_configure_gpios(int on) } else { pr_info("%s: gpio_request for xo_reset_gpio succeed\n", __func__); - //pull GPIO high + // XO clk GPIO must be asserted for some time rc = gpio_direction_output(xo_reset_gpio, 1); if (rc) { pr_err("%s: Unable to set direction of xo_reset_gpio\n", __func__); } - udelay(2000); - //pull GPIO low after 2 ms delay + usleep_range(2000, 5000); + // pull XO clk GPIO low after 2 ms delay rc = gpio_direction_output(xo_reset_gpio, 0); if (rc) { pr_err("%s: Unable to set direction of xo_reset_gpio\n", __func__); } + gpio_free(xo_reset_gpio); } } msleep(50); @@ -520,8 +521,6 @@ gpio_fail: gpio_free(bt_power_pdata->bt_gpio_sys_rst); if (bt_power_pdata->wl_gpio_sys_rst > 0) gpio_free(bt_power_pdata->wl_gpio_sys_rst); - if (bt_power_pdata->xo_gpio_sys_rst > 0) - gpio_free(bt_power_pdata->xo_gpio_sys_rst); if (bt_power_pdata->bt_gpio_sw_ctrl > 0) gpio_free(bt_power_pdata->bt_gpio_sw_ctrl); if (bt_power_pdata->bt_gpio_debug > 0)