summaryrefslogtreecommitdiff
path: root/drivers/pinctrl/pinctrl-zynqmp.c
diff options
context:
space:
mode:
authorSai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com>2022-06-17 13:46:58 +0300
committerLinus Walleij <linus.walleij@linaro.org>2022-06-28 11:29:39 +0300
commitad2bea79ef0144043721d4893eef719c907e2e63 (patch)
tree42b5201fb14dac73ea9fd29990c864e028ba9b23 /drivers/pinctrl/pinctrl-zynqmp.c
parent133ad0d9af99bdca90705dadd8d31c20bfc9919f (diff)
downloadlinux-ad2bea79ef0144043721d4893eef719c907e2e63.tar.xz
pinctrl: pinctrl-zynqmp: Add support for output-enable and bias-high-impedance
Add support to handle 'output-enable' and 'bias-high-impedance' configurations. As part of the output-enable configuration, ZynqMP pinctrl driver takes care of removing the pins from tri-state. Signed-off-by: Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com> Link: https://lore.kernel.org/r/1655462819-28801-4-git-send-email-lakshmi.sai.krishna.potthuri@xilinx.com Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/pinctrl-zynqmp.c')
-rw-r--r--drivers/pinctrl/pinctrl-zynqmp.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/pinctrl/pinctrl-zynqmp.c b/drivers/pinctrl/pinctrl-zynqmp.c
index e14012209992..b25e9e76fbf8 100644
--- a/drivers/pinctrl/pinctrl-zynqmp.c
+++ b/drivers/pinctrl/pinctrl-zynqmp.c
@@ -410,6 +410,10 @@ static int zynqmp_pinconf_cfg_set(struct pinctrl_dev *pctldev,
break;
case PIN_CONFIG_BIAS_HIGH_IMPEDANCE:
+ param = PM_PINCTRL_CONFIG_TRI_STATE;
+ arg = PM_PINCTRL_TRI_STATE_ENABLE;
+ ret = zynqmp_pm_pinctrl_set_config(pin, param, arg);
+ break;
case PIN_CONFIG_MODE_LOW_POWER:
/*
* These cases are mentioned in dts but configurable
@@ -418,6 +422,11 @@ static int zynqmp_pinconf_cfg_set(struct pinctrl_dev *pctldev,
*/
ret = 0;
break;
+ case PIN_CONFIG_OUTPUT_ENABLE:
+ param = PM_PINCTRL_CONFIG_TRI_STATE;
+ arg = PM_PINCTRL_TRI_STATE_DISABLE;
+ ret = zynqmp_pm_pinctrl_set_config(pin, param, arg);
+ break;
default:
dev_warn(pctldev->dev,
"unsupported configuration parameter '%u'\n",