aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.14/950-0298-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-4.14/950-0298-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch')
-rw-r--r--target/linux/brcm2708/patches-4.14/950-0298-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.14/950-0298-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch b/target/linux/brcm2708/patches-4.14/950-0298-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch
new file mode 100644
index 0000000000..87cad9a300
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.14/950-0298-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch
@@ -0,0 +1,42 @@
+From 62712a1a87724194500e1786a65578964838f4d8 Mon Sep 17 00:00:00 2001
+From: Nick Bulleid <nedbulleid@fastmail.com>
+Date: Thu, 10 May 2018 21:57:02 +0100
+Subject: [PATCH 298/454] Add ability to export gpio used by gpio-poweroff
+
+Signed-off-by: Nick Bulleid <nedbulleid@fastmail.com>
+---
+ drivers/power/reset/gpio-poweroff.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/power/reset/gpio-poweroff.c
++++ b/drivers/power/reset/gpio-poweroff.c
+@@ -50,6 +50,7 @@ static int gpio_poweroff_probe(struct pl
+ bool input = false;
+ enum gpiod_flags flags;
+ bool force = false;
++ bool export = false;
+
+ /* If a pm_power_off function has already been added, leave it alone */
+ force = of_property_read_bool(pdev->dev.of_node, "force");
+@@ -70,6 +71,12 @@ static int gpio_poweroff_probe(struct pl
+ if (IS_ERR(reset_gpio))
+ return PTR_ERR(reset_gpio);
+
++ export = of_property_read_bool(pdev->dev.of_node, "export");
++ if (export) {
++ gpiod_export(reset_gpio, false);
++ gpiod_export_link(&pdev->dev, "poweroff-gpio", reset_gpio);
++ }
++
+ pm_power_off = &gpio_poweroff_do_poweroff;
+ return 0;
+ }
+@@ -79,6 +86,8 @@ static int gpio_poweroff_remove(struct p
+ if (pm_power_off == &gpio_poweroff_do_poweroff)
+ pm_power_off = NULL;
+
++ gpiod_unexport(reset_gpio);
++
+ return 0;
+ }
+