[PATCH v2 1/2] dt-bindings: power: reset: gpio-poweroff: Add 'timeout_ms' property

Subsystems: open firmware and flattened device tree bindings, system reset/shutdown drivers, the rest

STALE3147d

5 messages, 3 authors, 2018-02-20 · open the first message on its own page

[PATCH v2 1/2] dt-bindings: power: reset: gpio-poweroff: Add 'timeout_ms' property

From: Moritz Fischer <mdf@kernel.org>
Date: 2018-02-19 23:04:33

Add 'timeout_ms' property to support boards where the 3s timeout that the
current driver defaults to is too short.

Signed-off-by: Moritz Fischer <mdf@kernel.org>
---

Changes from v1:
- Addressed Rob's feedback (timeout -> timeout_ms)
- Added to old example rather than creating separate one

---
 Documentation/devicetree/bindings/power/reset/gpio-poweroff.txt | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/Documentation/devicetree/bindings/power/reset/gpio-poweroff.txt b/Documentation/devicetree/bindings/power/reset/gpio-poweroff.txt
index e62d53d844cc..3f557b344dc4 100644
--- a/Documentation/devicetree/bindings/power/reset/gpio-poweroff.txt
+++ b/Documentation/devicetree/bindings/power/reset/gpio-poweroff.txt
@@ -27,10 +27,13 @@ Optional properties:
   it to an output when the power-off handler is called. If this optional
   property is not specified, the GPIO is initialized as an output in its
   inactive state.
+- timeout_ms: Time to wait before asserting a WARN_ON(1). If nothing is
+              specified, 3000 ms is used.
 
 Examples:
 
 gpio-poweroff {
 	compatible = "gpio-poweroff";
 	gpios = <&gpio 4 0>;
+	timeout_ms = <3000>;
 };
-- 
2.16.1

[PATCH v2 2/2] power: reset: gpio-poweroff: Add support for timeout from DT

From: Moritz Fischer <mdf@kernel.org>
Date: 2018-02-19 23:04:46

Add support for reading a timeout value from devicetree.
Fall back to previous default of 3s if nothing is specified.

Signed-off-by: Moritz Fischer <mdf@kernel.org>
---

Changes from v1:
- of_property_read_u32() overwrites the output only if it succeeds,
  simplify error handling
---
 drivers/power/reset/gpio-poweroff.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/power/reset/gpio-poweroff.c b/drivers/power/reset/gpio-poweroff.c
index be3d81ff51cc..265cc37646a9 100644
--- a/drivers/power/reset/gpio-poweroff.c
+++ b/drivers/power/reset/gpio-poweroff.c
@@ -19,11 +19,13 @@
 #include <linux/of_platform.h>
 #include <linux/module.h>
 
+#define DEFAULT_TIMEOUT_MS 3000
 /*
  * Hold configuration here, cannot be more than one instance of the driver
  * since pm_power_off itself is global.
  */
 static struct gpio_desc *reset_gpio;
+static u32 timeout = DEFAULT_TIMEOUT_MS;
 
 static void gpio_poweroff_do_poweroff(void)
 {
@@ -40,7 +42,7 @@ static void gpio_poweroff_do_poweroff(void)
 	gpiod_set_value(reset_gpio, 1);
 
 	/* give it some time */
-	mdelay(3000);
+	mdelay(timeout);
 
 	WARN_ON(1);
 }
@@ -64,6 +66,8 @@ static int gpio_poweroff_probe(struct platform_device *pdev)
 	else
 		flags = GPIOD_OUT_LOW;
 
+	of_property_read_u32(pdev->dev.of_node, "timeout_ms", &timeout);
+
 	reset_gpio = devm_gpiod_get(&pdev->dev, NULL, flags);
 	if (IS_ERR(reset_gpio))
 		return PTR_ERR(reset_gpio);
-- 
2.16.1

Re: [PATCH v2 2/2] power: reset: gpio-poweroff: Add support for timeout from DT

From: Andy Shevchenko <hidden>
Date: 2018-02-20 14:13:02

On Tue, Feb 20, 2018 at 12:59 AM, Moritz Fischer [off-list ref] wrote:
Add support for reading a timeout value from devicetree.
Fall back to previous default of 3s if nothing is specified.
+       of_property_read_u32(pdev->dev.of_node, "timeout_ms", &timeout);
Perhaps stop being OF-centric by using device_property_read_u32() instead?

-- 
With Best Regards,
Andy Shevchenko

Re: [PATCH v2 1/2] dt-bindings: power: reset: gpio-poweroff: Add 'timeout_ms' property

From: Rob Herring <robh@kernel.org>
Date: 2018-02-20 14:18:38

On Mon, Feb 19, 2018 at 4:59 PM, Moritz Fischer [off-list ref] wrote:
quoted hunk
Add 'timeout_ms' property to support boards where the 3s timeout that the
current driver defaults to is too short.

Signed-off-by: Moritz Fischer <mdf@kernel.org>
---

Changes from v1:
- Addressed Rob's feedback (timeout -> timeout_ms)
- Added to old example rather than creating separate one

---
 Documentation/devicetree/bindings/power/reset/gpio-poweroff.txt | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/Documentation/devicetree/bindings/power/reset/gpio-poweroff.txt b/Documentation/devicetree/bindings/power/reset/gpio-poweroff.txt
index e62d53d844cc..3f557b344dc4 100644
--- a/Documentation/devicetree/bindings/power/reset/gpio-poweroff.txt
+++ b/Documentation/devicetree/bindings/power/reset/gpio-poweroff.txt
@@ -27,10 +27,13 @@ Optional properties:
   it to an output when the power-off handler is called. If this optional
   property is not specified, the GPIO is initialized as an output in its
   inactive state.
+- timeout_ms: Time to wait before asserting a WARN_ON(1). If nothing is
+              specified, 3000 ms is used.
timeout-ms

Re: [PATCH v2 2/2] power: reset: gpio-poweroff: Add support for timeout from DT

From: Moritz Fischer <mdf@kernel.org>
Date: 2018-02-20 16:46:11

On Tue, Feb 20, 2018 at 04:12:59PM +0200, Andy Shevchenko wrote:
On Tue, Feb 20, 2018 at 12:59 AM, Moritz Fischer [off-list ref] wrote:
quoted
Add support for reading a timeout value from devicetree.
Fall back to previous default of 3s if nothing is specified.
quoted
+       of_property_read_u32(pdev->dev.of_node, "timeout_ms", &timeout);
Perhaps stop being OF-centric by using device_property_read_u32() instead?
Good catch, will do. Should probably change commit message accordingly,
too.

Thanks,

Moritz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help