diff options
author | Cheney Ni <cheneyni@google.com> | 2022-03-02 01:17:58 +0800 |
---|---|---|
committer | Cheney Ni <cheneyni@google.com> | 2022-03-02 01:23:57 +0800 |
commit | 50a13cc73c3ed7a52988bee97e39fcfb0dc689ce (patch) | |
tree | b24cf7268198f9284e2cb522faea97eb9932c80b | |
parent | da7e6b32a2f10cd5f65244678495f7a40d5e86d6 (diff) | |
download | qcom-50a13cc73c3ed7a52988bee97e39fcfb0dc689ce.tar.gz |
btpower: apply Bucks pinctrl default state
Initialze the state of GPIO pin which controls BT Buck.
Bug: 220142775
Bug: 214321488
Bug: 216250741
Test: Pass Bluetooth ON / OFF tests
Signed-off-by: Cheney Ni <cheneyni@google.com>
Change-Id: I97077b52b821303c3e93245f6e1b7f9fe43d8433
-rw-r--r-- | btpower.c | 12 | ||||
-rw-r--r-- | linux/btpower.h | 1 |
2 files changed, 13 insertions, 0 deletions
@@ -944,6 +944,13 @@ static int btpower_gpios_source_initialize(struct btpower_platform_data *drvdata pr_warn("%s: failed to set default pinctrl state rc=%d\n", __func__, rc); } + if (!IS_ERR_OR_NULL(drvdata->pinctrl_supply_state)) { + rc = pinctrl_select_state(drvdata->pinctrls, + drvdata->pinctrl_supply_state); + if (unlikely(rc)) + pr_warn("%s: failed to set supply pinctrl state rc=%d\n", + __func__, rc); + } rc = btpower_gpio_acquire_output(drvdata->bt_gpio_sys_rst, "bt_sys_rst_n", 0); @@ -1014,10 +1021,15 @@ static int bt_power_populate_dt_pinfo(struct platform_device *pdev, } else { drvdata->pinctrl_default_state = pinctrl_lookup_state(drvdata->pinctrls, "default"); + drvdata->pinctrl_supply_state = + pinctrl_lookup_state(drvdata->pinctrls, "supply"); } if (IS_ERR(drvdata->pinctrl_default_state)) pr_warn("%s: default pinctrl state not provided in device tree\n", __func__); + if (IS_ERR(drvdata->pinctrl_supply_state)) + pr_warn("%s: supply pinctrl state not provided in device tree\n", + __func__); drvdata->bt_gpio_sys_rst = of_get_named_gpio(pdev->dev.of_node, "qcom,bt-reset-gpio", 0); diff --git a/linux/btpower.h b/linux/btpower.h index 48efd2f..d1c3330 100644 --- a/linux/btpower.h +++ b/linux/btpower.h @@ -70,6 +70,7 @@ struct btpower_platform_data { /* GPIOs */ struct pinctrl *pinctrls; struct pinctrl_state *pinctrl_default_state; + struct pinctrl_state *pinctrl_supply_state; int bt_gpio_sys_rst; /* Bluetooth reset gpio */ int wl_gpio_sys_rst; /* Wlan reset gpio */ int bt_gpio_sw_ctrl; /* Bluetooth sw_ctrl gpio */ |