lantiq: backport stp-xway get callback implementation
authorMathias Kresin <dev@kresin.me>
Thu, 28 Jun 2018 18:28:19 +0000 (20:28 +0200)
committerMathias Kresin <dev@kresin.me>
Tue, 3 Jul 2018 23:20:01 +0000 (01:20 +0200)
To keep the status of a LED connected to the stp during boot, the get
callback is required. If the callback is missing and the LED default
state is set to keep in the devicetree, the gpio led driver errors out
during load.

Fixes: FS#1620
Signed-off-by: Mathias Kresin <dev@kresin.me>
target/linux/lantiq/patches-4.14/0002-gpio-stp-xway-Implement-get-callback.patch [new file with mode: 0644]

diff --git a/target/linux/lantiq/patches-4.14/0002-gpio-stp-xway-Implement-get-callback.patch b/target/linux/lantiq/patches-4.14/0002-gpio-stp-xway-Implement-get-callback.patch
new file mode 100644 (file)
index 0000000..c32b3d6
--- /dev/null
@@ -0,0 +1,47 @@
+From 5b9b2b5284f81941972105b13337c58489ea8fca Mon Sep 17 00:00:00 2001
+From: Mathias Kresin <dev@kresin.me>
+Date: Thu, 28 Jun 2018 21:57:40 +0200
+Subject: [PATCH] gpio: stp-xway: Implement get callback
+
+Add an implementation to get the current GPIO state.
+
+The callback is used by the leds-gpio driver for example, in case the
+current LED/GPIO state should be kept during driver load.
+
+Signed-off-by: Mathias Kresin <dev@kresin.me>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+---
+ drivers/gpio/gpio-stp-xway.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+--- a/drivers/gpio/gpio-stp-xway.c
++++ b/drivers/gpio/gpio-stp-xway.c
+@@ -91,6 +91,20 @@ struct xway_stp {
+ };
+ /**
++ * xway_stp_get() - gpio_chip->get - get gpios.
++ * @gc:     Pointer to gpio_chip device structure.
++ * @gpio:   GPIO signal number.
++ *
++ * Gets the shadow value.
++ */
++static int xway_stp_get(struct gpio_chip *gc, unsigned int gpio)
++{
++      struct xway_stp *chip = gpiochip_get_data(gc);
++
++      return (xway_stp_r32(chip->virt, XWAY_STP_CPU0) & BIT(gpio));
++}
++
++/**
+  * xway_stp_set() - gpio_chip->set - set gpios.
+  * @gc:     Pointer to gpio_chip device structure.
+  * @gpio:   GPIO signal number.
+@@ -215,6 +229,7 @@ static int xway_stp_probe(struct platfor
+       chip->gc.parent = &pdev->dev;
+       chip->gc.label = "stp-xway";
+       chip->gc.direction_output = xway_stp_dir_out;
++      chip->gc.get = xway_stp_get;
+       chip->gc.set = xway_stp_set;
+       chip->gc.request = xway_stp_request;
+       chip->gc.base = -1;