From ae5bd19ff96560fb75a75c7d2374bed60bbd9669 Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.com>
Date: Thu, 11 Nov 2021 10:24:02 +0000
Subject: [PATCH] overlays: Additional parameters for gpio-poweroff

The gpio-poweroff driver supports active-delay-ms and inactive-delay-ms
properties. Add parameters to set these parameters - active_delay_ms
and inactive_delay_ms.

See: https://forums.raspberrypi.com/viewtopic.php?t=323508

Signed-off-by: Phil Elwell <phil@raspberrypi.com>
---
 arch/arm/boot/dts/overlays/README                    | 7 +++++++
 arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts | 2 ++
 2 files changed, 9 insertions(+)

--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -1155,6 +1155,11 @@ Info:   Drives a GPIO high or low on pow
         or reboot). This also disables the ability to trigger a boot by driving
         GPIO3 low.
 
+        The GPIO starts in an inactive state. At poweroff time it is driven
+        active for 100ms, then inactive for 100ms, then active again. It is
+        safe to remove the power at any point after the initial activation of
+        the GPIO.
+
         Users of this overlay are required to provide an external mechanism to
         switch off the power supply when signalled - failure to do so results
         in a kernel BUG, increased power consumption and undefined behaviour.
@@ -1170,6 +1175,8 @@ Params: gpiopin                 GPIO for
         input                   Set if the gpio pin should be configured as
                                 an input.
         export                  Set to export the configured pin to sysfs
+        active_delay_ms         Initial GPIO active period (default 100)
+        inactive_delay_ms       Subsequent GPIO inactive period (default 100)
         timeout_ms              Specify (in ms) how long the kernel waits for
                                 power-down before issuing a WARN (default 3000).
 
--- a/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts
+++ b/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts
@@ -33,5 +33,7 @@
 		input =         <&power_ctrl>,"input?";
 		export =        <&power_ctrl>,"export?";
 		timeout_ms =    <&power_ctrl>,"timeout-ms:0";
+		active_delay_ms = <&power_ctrl>,"active-delay-ms:0";
+		inactive_delay_ms = <&power_ctrl>,"inactive-delay-ms:0";
 	};
 };
