Skip to content

Commit 22d081e

Browse files
Phil Elwellpopcornmix
Phil Elwell
authored andcommitted
gpio-poweroff: Allow it to work on Raspberry Pi
The Raspberry Pi firmware manages the power-down and reboot process. To do this it installs a pm_power_off handler, causing the gpio-poweroff module to abort the probe function. This patch introduces a "force" DT property that overrides that behaviour, and also adds a DT overlay to enable and control it. Note that running in an active-low configuration (DT parameter "active_low") requires a custom dt-blob.bin and probably won't allow a reboot without switching off, so an external inversion of the trigger signal may be preferable.
1 parent d5677d0 commit 22d081e

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

drivers/power/reset/gpio-poweroff.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,11 @@ static int gpio_poweroff_probe(struct platform_device *pdev)
5050
{
5151
bool input = false;
5252
enum gpiod_flags flags;
53+
bool force = false;
5354

5455
/* If a pm_power_off function has already been added, leave it alone */
55-
if (pm_power_off != NULL) {
56+
force = of_property_read_bool(pdev->dev.of_node, "force");
57+
if (!force && (pm_power_off != NULL)) {
5658
dev_err(&pdev->dev,
5759
"%s: pm_power_off function already registered\n",
5860
__func__);

0 commit comments

Comments
 (0)