Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f447ed8b authored by Olof Johansson's avatar Olof Johansson Committed by Linus Walleij
Browse files

gpio: samsung: add flags specifier to device-tree binding



This adds a flags field to the gpio specifier for Samsung. I didn't
want to add yet another field in the already quite long specifier, so
I decided to compress it together with the Pull Up/Down settings instead.

This is needed to, for example, have a gpio-keys input that is active low.

Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 31ba56f2
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -11,14 +11,15 @@ Required properties:
     <[phandle of the gpio controller node]
      [pin number within the gpio controller]
      [mux function]
      [pull up/down]
      [flags and pull up/down]
      [drive strength]>

  Values for gpio specifier:
  - Pin number: is a value between 0 to 7.
  - Pull Up/Down: 0 - Pull Up/Down Disabled.
  - Flags and Pull Up/Down: 0 - Pull Up/Down Disabled.
                            1 - Pull Down Enabled.
                            3 - Pull Up Enabled.
          Bit 16 (0x00010000) - Input is active low.
  - Drive Strength: 0 - 1x,
                    1 - 3x,
                    2 - 2x,
+4 −1
Original line number Diff line number Diff line
@@ -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];
}