dt-bindings: power: reset: gpio-poweroff: Add 'timeout_ms' property
Subsystems (2)
PATCH v2 1/2 dt-bindings: power: reset: gpio-poweroff: Add 'timeout_ms' property
Add 'timeout_ms' property to support boards where the 3s timeout that the current driver defaults to is too short.
---
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(+)
Documentation/devicetree/bindings/power/reset/gpio-poweroff.txt +3 -0
@@ -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>; };
Signature · 1 line
2.16.1
PATCH v2 2/2 power: reset: gpio-poweroff: Add support for timeout from DT
Add support for reading a timeout value from devicetree. Fall back to previous default of 3s if nothing is specified.
---
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(-)
drivers/power/reset/gpio-poweroff.c +5 -1
@@ -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);
Signature · 1 line
2.16.1
Re: [PATCH v2 2/2] power: reset: gpio-poweroff: Add support for timeout from DT
Quoted 5 lines · Moritz Fischer
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?
Signature · 2 lines
With Best Regards, Andy Shevchenko
Re: [PATCH v2 2/2] power: reset: gpio-poweroff: Add support for timeout from DT
Quoted 8 lines · Andy Shevchenko
Quoted 5 lines · Moritz Fischer
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?
Good catch, will do. Should probably change commit message accordingly, too.
Thanks,
Moritz
Rob Herring
maintainerQuoted 19 lines · Moritz Fischer
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 <[email protected]>---
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(+)Documentation/devicetree/bindings/power/reset/gpio-poweroff.txt +0
-0
Documentation/devicetree/bindings/power/reset/gpio-poweroff.txt Optional properties: · line 31
Quoted 5 lines
Documentation/devicetree/bindings/power/reset/gpio-poweroff.txt +2
-0@@ -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