1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter.git synced 2025-03-09 15:40:20 +00:00
openmptcprouter/6.12/target/linux/bcm27xx/patches-6.12/950-0400-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch
Ycarus (Yannick Chabanois) bdb9b0046f Add bcm27xx 6.12 test support
2024-12-20 14:17:26 +01:00

58 lines
2 KiB
Diff

From 975cebf662b2a9b6103f2c8dc9e710ac914ad7d9 Mon Sep 17 00:00:00 2001
From: Nick Bulleid <nedbulleid@fastmail.com>
Date: Thu, 10 May 2018 21:57:02 +0100
Subject: [PATCH 400/697] 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>
---
.../bindings/power/reset/gpio-poweroff.yaml | 4 ++++
drivers/power/reset/gpio-poweroff.c | 11 ++++++++++-
2 files changed, 14 insertions(+), 1 deletion(-)
--- a/Documentation/devicetree/bindings/power/reset/gpio-poweroff.yaml
+++ b/Documentation/devicetree/bindings/power/reset/gpio-poweroff.yaml
@@ -50,6 +50,10 @@ properties:
default: 3000
description: Time to wait before assuming the power off sequence failed.
+ export:
+ type: boolean
+ description: Export the GPIO line to the sysfs system
+
required:
- compatible
- gpios
--- a/drivers/power/reset/gpio-poweroff.c
+++ b/drivers/power/reset/gpio-poweroff.c
@@ -55,6 +55,7 @@ static int gpio_poweroff_probe(struct pl
bool input = false;
enum gpiod_flags flags;
int priority = SYS_OFF_PRIO_DEFAULT;
+ bool export = false;
int ret;
gpio_poweroff = devm_kzalloc(&pdev->dev, sizeof(*gpio_poweroff), GFP_KERNEL);
@@ -86,10 +87,18 @@ static int gpio_poweroff_probe(struct pl
if (IS_ERR(gpio_poweroff->reset_gpio))
return PTR_ERR(gpio_poweroff->reset_gpio);
+ export = device_property_read_bool(&pdev->dev, "export");
+ if (export) {
+ gpiod_export(gpio_poweroff->reset_gpio, true);
+ gpiod_export_link(&pdev->dev, "poweroff-gpio", gpio_poweroff->reset_gpio);
+ }
+
ret = devm_register_sys_off_handler(&pdev->dev, SYS_OFF_MODE_POWER_OFF,
priority, gpio_poweroff_do_poweroff, gpio_poweroff);
- if (ret)
+ if (ret) {
+ gpiod_unexport(gpio_poweroff->reset_gpio);
return dev_err_probe(&pdev->dev, ret, "Cannot register poweroff handler\n");
+ }
return 0;
}