diff mbox series

pinctrl: zynqmp: Add support for output-enable and bias-high-impedance

Message ID 1a02cd41d183d397ebce23c497178281c7286692.1655286745.git.michal.simek@amd.com
State Accepted
Commit 123462e5e534d6e17b1b7d2006734bbe54b03e0a
Delegated to: Michal Simek
Headers show
Series pinctrl: zynqmp: Add support for output-enable and bias-high-impedance | expand

Commit Message

Michal Simek June 15, 2022, 9:52 a.m. UTC
From: Ashok Reddy Soma <ashok.reddy.soma@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.soma@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
---

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

Comments

Michal Simek June 24, 2022, 12:12 p.m. UTC | #1
st 15. 6. 2022 v 11:52 odesílatel Michal Simek <monstr@monstr.eu> napsal:
>
> From: Ashok Reddy Soma <ashok.reddy.soma@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.soma@xilinx.com>
> Signed-off-by: Michal Simek <michal.simek@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
>

Applied.
M
diff mbox series

Patch

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);