gpio: samsung: add flags specifier to device-tree binding
[cascardo/linux.git] / drivers / gpio / gpio-samsung.c
index 7bb0044..92f7b2b 100644 (file)
@@ -2681,11 +2681,14 @@ static int exynos_gpio_xlate(struct gpio_chip *gc,
 
        if (s3c_gpio_cfgpin(pin, S3C_GPIO_SFN(gpiospec->args[1])))
                pr_warn("gpio_xlate: failed to set pin function\n");
-       if (s3c_gpio_setpull(pin, gpiospec->args[2]))
+       if (s3c_gpio_setpull(pin, gpiospec->args[2] & 0xffff))
                pr_warn("gpio_xlate: failed to set pin pull up/down\n");
        if (s5p_gpio_set_drvstr(pin, gpiospec->args[3]))
                pr_warn("gpio_xlate: failed to set pin drive strength\n");
 
+       if (flags)
+               *flags = gpiospec->args[2] >> 16;
+
        return gpiospec->args[0];
 }
 
@@ -2833,7 +2836,7 @@ static __init void exynos5_gpiolib_init(void)
        }
 
        /* need to set base address for gpc4 */
-       exonys5_gpios_1[11].base = gpio_base1 + 0x2E0;
+       exynos5_gpios_1[11].base = gpio_base1 + 0x2E0;
 
        /* need to set base address for gpx */
        chip = &exynos5_gpios_1[21];