In the GPIO with version number 0x01000C2B, debounce configuration is already supported. Signed-off-by: Ye Zhang <ye.zhang@xxxxxxxxxxxxxx> --- drivers/gpio/gpio-rockchip.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/drivers/gpio/gpio-rockchip.c b/drivers/gpio/gpio-rockchip.c index c246f116a3b5..aff8bec79062 100644 --- a/drivers/gpio/gpio-rockchip.c +++ b/drivers/gpio/gpio-rockchip.c @@ -250,6 +250,8 @@ static int rockchip_gpio_set_debounce(struct gpio_chip *gc, clk_prepare_enable(bank->db_clk); else clk_disable_unprepare(bank->db_clk); + } else { + return -ENOTSUPP; } return 0; @@ -278,22 +280,11 @@ static int rockchip_gpio_set_config(struct gpio_chip *gc, unsigned int offset, unsigned long config) { enum pin_config_param param = pinconf_to_config_param(config); + unsigned int debounce = pinconf_to_config_argument(config); switch (param) { case PIN_CONFIG_INPUT_DEBOUNCE: - rockchip_gpio_set_debounce(gc, offset, true); - /* - * Rockchip's gpio could only support up to one period - * of the debounce clock(pclk), which is far away from - * satisftying the requirement, as pclk is usually near - * 100MHz shared by all peripherals. So the fact is it - * has crippled debounce capability could only be useful - * to prevent any spurious glitches from waking up the system - * if the gpio is conguired as wakeup interrupt source. Let's - * still return -ENOTSUPP as before, to make sure the caller - * of gpiod_set_debounce won't change its behaviour. - */ - return -ENOTSUPP; + return rockchip_gpio_set_debounce(gc, offset, debounce); default: return -ENOTSUPP; } -- 2.34.1