diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0126-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.19/950-0126-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0126-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch b/target/linux/brcm2708/patches-4.19/950-0126-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch new file mode 100644 index 0000000000..60e7294c05 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0126-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch @@ -0,0 +1,57 @@ +From 3e060982d93902bcca8503df4e33d6cd1e41e21b Mon Sep 17 00:00:00 2001 +From: Nick Bulleid <nedbulleid@fastmail.com> +Date: Thu, 10 May 2018 21:57:02 +0100 +Subject: [PATCH] Add ability to export gpio used by gpio-poweroff + +Signed-off-by: Nick Bulleid <nedbulleid@fastmail.com> + +Added export feature to gpio-poweroff documentation + +Signed-off-by: Nick Bulleid <nedbulleid@fastmail.com> +--- + .../devicetree/bindings/power/reset/gpio-poweroff.txt | 1 + + drivers/power/reset/gpio-poweroff.c | 9 +++++++++ + 2 files changed, 10 insertions(+) + +--- a/Documentation/devicetree/bindings/power/reset/gpio-poweroff.txt ++++ b/Documentation/devicetree/bindings/power/reset/gpio-poweroff.txt +@@ -29,6 +29,7 @@ Optional properties: + inactive state. + - timeout-ms: Time to wait before asserting a WARN_ON(1). If nothing is + specified, 3000 ms is used. ++- export : Export the GPIO line to the sysfs system + + Examples: + +--- a/drivers/power/reset/gpio-poweroff.c ++++ b/drivers/power/reset/gpio-poweroff.c +@@ -52,6 +52,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"); +@@ -74,6 +75,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; + } +@@ -83,6 +90,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; + } + |