From ddcb1352e369ca8588c3074638ea39544276eb49 Mon Sep 17 00:00:00 2001 From: Raghavendra Rao Ananta Date: Thu, 3 Dec 2020 14:14:11 -0800 Subject: [PATCH] pinctrl: qcom: Add flexibility to disable the wakeup capability By default, the system firmware enables the mpm wakeup functionality of all the supported GPIOs. However, certain usecases demand that this capability be disabled on certain gpios. Hence, provide a generic interface to disable the GPIOs as needed. Change-Id: I3b051bf676a157410880a3c596b784212a927a36 Signed-off-by: Raghavendra Rao Ananta --- drivers/pinctrl/qcom/pinctrl-lahaina.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/drivers/pinctrl/qcom/pinctrl-lahaina.c b/drivers/pinctrl/qcom/pinctrl-lahaina.c index ca7b3e63c145..d9545cb1fe59 100644 --- a/drivers/pinctrl/qcom/pinctrl-lahaina.c +++ b/drivers/pinctrl/qcom/pinctrl-lahaina.c @@ -1981,9 +1981,32 @@ static const struct msm_pinctrl_soc_data lahaina_pinctrl = { .nwakeirq_map = ARRAY_SIZE(lahaina_pdc_map), }; +/* By default, all the gpios that are mpm wake capable are enabled. + * The following list disables the gpios explicitly + */ +static const unsigned int config_mpm_wake_disable_gpios[] = { +}; + +static void lahaina_pinctrl_config_mpm_wake_disable_gpios(void) +{ + unsigned int i; + unsigned int n_gpios = ARRAY_SIZE(config_mpm_wake_disable_gpios); + + for (i = 0; i < n_gpios; i++) + msm_gpio_mpm_wake_set(config_mpm_wake_disable_gpios[i], false); +} + static int lahaina_pinctrl_probe(struct platform_device *pdev) { - return msm_pinctrl_probe(pdev, &lahaina_pinctrl); + int ret; + + ret = msm_pinctrl_probe(pdev, &lahaina_pinctrl); + if (ret) + return ret; + + lahaina_pinctrl_config_mpm_wake_disable_gpios(); + + return 0; } static const struct of_device_id lahaina_pinctrl_of_match[] = {