فهرست منبع

lantiq: backport stp-xway get callback implementation

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 <[email protected]>
Mathias Kresin 7 سال پیش
والد
کامیت
f72605f70e
1فایلهای تغییر یافته به همراه47 افزوده شده و 0 حذف شده
  1. 47 0
      target/linux/lantiq/patches-4.14/0002-gpio-stp-xway-Implement-get-callback.patch

+ 47 - 0
target/linux/lantiq/patches-4.14/0002-gpio-stp-xway-Implement-get-callback.patch

@@ -0,0 +1,47 @@
+From 5b9b2b5284f81941972105b13337c58489ea8fca Mon Sep 17 00:00:00 2001
+From: Mathias Kresin <[email protected]>
+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 <[email protected]>
+Signed-off-by: Linus Walleij <[email protected]>
+---
+ 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;