[Discussion] how to implement external power down for ARM

Arnd Bergmann arnd at arndb.de
Thu Apr 30 01:03:21 PDT 2015


On Thursday 30 April 2015 09:03:22 Shannon Zhao wrote:
> 
> I am looking at adding support for external power down and reboot to
> ARM VMs.  With ACPI this is fairly straight forward and requires only
> adding a GPIO controller to the virt machine model and extending ACPI
> appropriately (see code here [1]). In addition Linaro LEG also have
> done a test that uses GPIO as power button to shutdown OS on fast model
> (see detail here [2]).
> 
> However, we would like for this to work in systems that do not use
> ACPI as well. Adding a GPIO controller will still work, but we would
> need a generic way to tell Linux how to handle the GPIO events without
> adding any board-specific code to the VIRT platform. And what guest
> kernel driver do we need? Do we need another user-level daemon like acpid?
> 
> Note that external shutdown can also be accomplished using the qemu
> guest agent [3], but maybe this is not a sufficiently stable approach.
> 
> Any input on the approach to take here is very welcome.

I would expect drivers/power/reset/gpio-poweroff.c to work in an identical
way with ACPI and DT, once you have added an ACPI binding for it.

You can add further properties if you need to drive the GPIO differently.

	Arnd



More information about the linux-arm-kernel mailing list