From 499e28e3a38f0de843b07bf4bbf7692b07c5e3ba Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.org>
Date: Mon, 7 Oct 2019 13:51:07 +0100
Subject: [PATCH] overlays: gpio-shutdown: Add debounce parameter

Give the gpio-shutdown overlay a debounce parameter that requires
the GPIO to be held at the relevant level for a specified number
of milliseconds. The default value is 100 - higher than the driver
default of 5ms to avoid unfortunate glitches.

See: https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=253680

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
---
 arch/arm/boot/dts/overlays/README                    | 3 +++
 arch/arm/boot/dts/overlays/gpio-shutdown-overlay.dts | 2 ++
 2 files changed, 5 insertions(+)

--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -803,6 +803,9 @@ Params: gpio_pin                GPIO pin
                                 Note that the default pin (GPIO3) has an
                                 external pullup.
 
+        debounce                Specify the debounce interval in milliseconds
+                                (default 100)
+
 
 Name:   hd44780-lcd
 Info:   Configures an HD44780 compatible LCD display. Uses 4 gpio pins for
--- a/arch/arm/boot/dts/overlays/gpio-shutdown-overlay.dts
+++ b/arch/arm/boot/dts/overlays/gpio-shutdown-overlay.dts
@@ -53,6 +53,7 @@
 					label = "shutdown";
 					linux,code = <116>; // KEY_POWER
 					gpios = <&gpio 3 1>;
+					debounce-interval = <100>; // ms
 				};
 			};
 		};
@@ -75,6 +76,7 @@
 
 		// Allow setting the active_low flag. 0 = active high, 1 = active low
 		active_low = <&button>,"gpios:8";
+		debounce = <&button>,"debounce-interval:0";
 	};
 
 };
