aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.1/0057-pinctrl-bcm2835-bcm2835_gpio_direction_output-must-s.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-4.1/0057-pinctrl-bcm2835-bcm2835_gpio_direction_output-must-s.patch')
-rw-r--r--target/linux/brcm2708/patches-4.1/0057-pinctrl-bcm2835-bcm2835_gpio_direction_output-must-s.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.1/0057-pinctrl-bcm2835-bcm2835_gpio_direction_output-must-s.patch b/target/linux/brcm2708/patches-4.1/0057-pinctrl-bcm2835-bcm2835_gpio_direction_output-must-s.patch
new file mode 100644
index 0000000..bfb6797
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.1/0057-pinctrl-bcm2835-bcm2835_gpio_direction_output-must-s.patch
@@ -0,0 +1,28 @@
+From 8eed7ff146c26b290b51011f72b5262909dcd878 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Wed, 4 Feb 2015 10:02:24 +0000
+Subject: [PATCH 057/203] pinctrl-bcm2835: bcm2835_gpio_direction_output must
+ set the value
+
+---
+ drivers/pinctrl/bcm/pinctrl-bcm2835.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
++++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+@@ -355,7 +355,14 @@ static int bcm2835_gpio_get(struct gpio_
+ static int bcm2835_gpio_direction_output(struct gpio_chip *chip,
+ unsigned offset, int value)
+ {
+- return pinctrl_gpio_direction_output(chip->base + offset);
++ struct bcm2835_pinctrl *pc = dev_get_drvdata(chip->dev);
++ int ret;
++
++ ret = pinctrl_gpio_direction_output(chip->base + offset);
++ if (ret >= 0)
++ bcm2835_gpio_set_bit(pc, value ? GPSET0 : GPCLR0, offset);
++
++ return ret;
+ }
+
+ static void bcm2835_gpio_set(struct gpio_chip *chip, unsigned offset, int value)