Skip to content

Commit

Permalink
gpio-poweroff: Allow it to work on Raspberry Pi
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Phil Elwell authored and popcornmix committed Feb 9, 2018
1 parent 0416155 commit f86dcfa
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion drivers/power/reset/gpio-poweroff.c
Expand Up @@ -49,9 +49,11 @@ static int gpio_poweroff_probe(struct platform_device *pdev)
{
bool input = false;
enum gpiod_flags flags;
bool force = false;

/* If a pm_power_off function has already been added, leave it alone */
if (pm_power_off != NULL) {
force = of_property_read_bool(pdev->dev.of_node, "force");
if (!force && (pm_power_off != NULL)) {
dev_err(&pdev->dev,
"%s: pm_power_off function already registered",
__func__);
Expand Down

0 comments on commit f86dcfa

Please sign in to comment.