From: Ashok Reddy Soma <ashok.reddy.s...@xilinx.com>

Add support to handle 'output-enable' and 'bias-high-impedance'
configurations. DT property output-enable brings out the pins from
tri-state, whereas bias-high-impedance changes the pins state to
tri-state.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.s...@xilinx.com>
Signed-off-by: Michal Simek <michal.si...@amd.com>
---

 drivers/pinctrl/pinctrl-zynqmp.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/pinctrl/pinctrl-zynqmp.c b/drivers/pinctrl/pinctrl-zynqmp.c
index 7c5a02db1b98..52d428f566fc 100644
--- a/drivers/pinctrl/pinctrl-zynqmp.c
+++ b/drivers/pinctrl/pinctrl-zynqmp.c
@@ -467,6 +467,10 @@ static int zynqmp_pinconf_set(struct udevice *dev, 
unsigned int pin,
                                 pin);
                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_LOW_POWER_MODE:
                /*
                 * This cases are mentioned in dts but configurable
@@ -475,6 +479,11 @@ static int zynqmp_pinconf_set(struct udevice *dev, 
unsigned int pin,
                 */
                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(dev, "unsupported configuration parameter '%u'\n",
                         param);
-- 
2.36.1

Reply via email to