1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
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";
};
};
|