Skip to content

Commit

Permalink
gpio: samsung: add flags specifier to device-tree binding
Browse files Browse the repository at this point in the history
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: Olof Johansson <olof@lixom.net>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  • Loading branch information
Olof Johansson authored and Linus Walleij committed Jul 17, 2012
1 parent 31ba56f commit f447ed8
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 5 deletions.
9 changes: 5 additions & 4 deletions Documentation/devicetree/bindings/gpio/gpio-samsung.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
1 - Pull Down Enabled.
3 - Pull Up Enabled.
- 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,
Expand Down
5 changes: 4 additions & 1 deletion drivers/gpio/gpio-samsung.c
Original file line number Diff line number Diff line change
Expand Up @@ -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];
}

Expand Down

0 comments on commit f447ed8

Please sign in to comment.