gpiolib: Extract gpio_set_config_with_argument() for future use
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 9 Nov 2020 20:53:20 +0000 (22:53 +0200)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 16 Nov 2020 12:14:34 +0000 (14:14 +0200)
In the future we will need to have a separate function
that takes an arbitrary argument value.

Extract gpio_set_config_with_argument() for that purpose.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/gpio/gpiolib.c

index 13653bb..df9f6ed 100644 (file)
@@ -2093,10 +2093,19 @@ static int gpio_do_set_config(struct gpio_chip *gc, unsigned int offset,
        return gc->set_config(gc, offset, config);
 }
 
-static int gpio_set_config(struct gpio_desc *desc, enum pin_config_param mode)
+static int gpio_set_config_with_argument(struct gpio_desc *desc,
+                                        enum pin_config_param mode,
+                                        u32 argument)
 {
        struct gpio_chip *gc = desc->gdev->chip;
        unsigned long config;
+
+       config = pinconf_to_config_packed(mode, argument);
+       return gpio_do_set_config(gc, gpio_chip_hwgpio(desc), config);
+}
+
+static int gpio_set_config(struct gpio_desc *desc, enum pin_config_param mode)
+{
        unsigned int arg;
 
        switch (mode) {
@@ -2110,8 +2119,7 @@ static int gpio_set_config(struct gpio_desc *desc, enum pin_config_param mode)
                break;
        }
 
-       config = pinconf_to_config_packed(mode, arg);
-       return gpio_do_set_config(gc, gpio_chip_hwgpio(desc), config);
+       return gpio_set_config_with_argument(desc, mode, arg);
 }
 
 static int gpio_set_bias(struct gpio_desc *desc)