[PATCH v2 05/10] pinctrl: rockchip: Add gpio_request_enable() ops

Kever Yang kever.yang at rock-chips.com
Fri Aug 9 11:37:21 CEST 2024


On 2024/8/3 06:56, Jonas Karlman wrote:
> Implement gpio_request_enable() ops so that the gpio request() ops can
> be implemented and a gpio requested pin automatically is pinmuxed for
> gpio use, similar to Linux kernel.
>
> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
Reviewed-by: Kever Yang <kever.yang at rock-chips.com>

Thanks,
- Kever
> ---
> v2: New patch from "rockchip: Add gpio request() ops" series
> ---
>   drivers/pinctrl/rockchip/pinctrl-rockchip-core.c | 13 +++++++++++++
>   1 file changed, 13 insertions(+)
>
> diff --git a/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c b/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c
> index 345e0abdf5d1..e164af0d8f61 100644
> --- a/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c
> +++ b/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c
> @@ -358,6 +358,18 @@ static int rockchip_set_mux(struct rockchip_pin_bank *bank, int pin, int mux)
>   	return 0;
>   }
>   
> +static int rockchip_pinctrl_gpio_request_enable(struct udevice *dev,
> +						unsigned int selector)
> +{
> +	struct rockchip_pin_bank *bank;
> +
> +	bank = rockchip_pin_to_bank(dev, selector);
> +	if (!bank)
> +		return -EINVAL;
> +
> +	return rockchip_set_mux(bank, selector - bank->pin_base, RK_FUNC_GPIO);
> +}
> +
>   static int rockchip_perpin_drv_list[DRV_TYPE_MAX][8] = {
>   	{ 2, 4, 8, 12, -1, -1, -1, -1 },
>   	{ 3, 6, 9, 12, -1, -1, -1, -1 },
> @@ -608,6 +620,7 @@ const struct pinctrl_ops rockchip_pinctrl_ops = {
>   	.set_state			= rockchip_pinctrl_set_state,
>   	.get_gpio_mux			= rockchip_pinctrl_get_gpio_mux,
>   	.get_pin_muxing			= rockchip_pinctrl_get_pin_muxing,
> +	.gpio_request_enable		= rockchip_pinctrl_gpio_request_enable,
>   };
>   
>   /* retrieve the soc specific data */


More information about the U-Boot mailing list