public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: zhaoshenglong@huawei•com (Shannon Zhao)
To: linux-arm-kernel@lists•infradead.org
Subject: [Discussion] how to implement external power down for ARM
Date: Wed, 6 May 2015 14:56:58 +0800	[thread overview]
Message-ID: <5549BB3A.6060106@huawei.com> (raw)
In-Reply-To: <5548A5D5.9030107@linaro.org>

On 2015/5/5 19:13, Shannon Zhao wrote:
> 
> 
> On 2015/5/5 18:55, Arnd Bergmann wrote:
>> On Tuesday 05 May 2015 12:51:57 Christoffer Dall wrote:
>>> On Tue, May 5, 2015 at 11:53 AM, Arnd Bergmann <arnd@arndb•de> wrote:
>>>> On Tuesday 05 May 2015 12:27:54 Joel Stanley wrote:
>>>>
>>> Do ARM distributions (Fedora, Ubuntu, Debian, ...) support the
>>> necessary userspace handling so that things work with the input
>>> subsystem?
>>
>> I think the latest releases all use systemd, so it should work in theory,
>> but I have not tried it, and I don't know if they have something else
>> on older versions.
>>
> 
> Thanks, will try to use gpio-keys and check whether systemd works.
> 

I've added a PL061 GPIO controller and gpio-keys node in QEMU like
following format:

        pl061 at 9030000 {
                phandle = <0x8002>;
                clock-names = "apb_pclk";
                clocks = <0x8000>;
                interrupts = <0x0 0x7 0x4>;
                gpio-controller;
                #gpio-cells = <0x2>;
                compatible = "arm,pl061";
                reg = <0x0 0x9030000 0x0 0x1000>;
        };
        gpio-keys {
                autorepeat;
                #address-cells = <0x1>;
                #size-cells = <0x0>;
                compatible = "gpio-keys";

                poweroff {
                        gpios = <0x8002 0x3 0x0>;
                        linux,code = <0x74>;
                        label = "GPIO Key Poweroff";
                };
        };

Configure kernel to select GPIO Buttons and Polled GPIO buttons. Use a
Redhat filesystem "Red Hat Enterprise Linux Server for ARM Development
Preview release 1.5" which has systemd and systemd-logind. Start VM and
when it starts well type "system_powerdown" on QEMU monitor, the guest
goes to poweroff. So this way works.


Note: we must check the /lib/udev/rules.d/70-power-switch.rules in the
fs and add one following line in it if it doesn't exist.

SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="platform",
ATTRS{keys}=="116", TAG+="power-switch"

Then when execute journalctl -u systemd-logind in guest, we can see
something like below:

Jan 01 00:01:02 localhost systemd[1]: Starting Login Service...
Jan 01 00:01:07 localhost systemd[1]: Started Login Service.
Jan 01 00:01:07 localhost systemd-logind[927]: Watching system buttons
on /dev/input/event0 (gpio-keys)
Jan 01 00:01:07 localhost systemd-logind[927]: New seat seat0.
Jan 01 00:01:25 localhost systemd-logind[927]: New session c1 of user root.

Visit https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1347776 for
details.

-- 
Shannon

  reply	other threads:[~2015-05-06  6:56 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-30  1:03 [Discussion] how to implement external power down for ARM Shannon Zhao
2015-04-30  8:03 ` Arnd Bergmann
2015-04-30  9:08   ` Peter Maydell
2015-04-30  9:19     ` Arnd Bergmann
2015-04-30  9:29     ` Mark Rutland
2015-04-30  9:56       ` Arnd Bergmann
2015-05-04  2:09         ` Shannon Zhao
2015-05-04 15:49           ` Arnd Bergmann
2015-05-05  2:57             ` Joel Stanley
2015-05-05  9:53               ` Arnd Bergmann
2015-05-05 10:51                 ` Christoffer Dall
2015-05-05 10:55                   ` Arnd Bergmann
2015-05-05 11:13                     ` Shannon Zhao
2015-05-06  6:56                       ` Shannon Zhao [this message]
2015-05-06  7:29                         ` Arnd Bergmann
2015-05-06  8:19                           ` Shannon Zhao
2015-05-06  8:37                             ` Arnd Bergmann
2015-05-06  8:41                               ` Shannon Zhao
2015-05-06 10:14                             ` Christoffer Dall
2015-05-07  2:39                           ` Shannon Zhao
2015-05-07  8:55                             ` Arnd Bergmann
2015-05-07  9:18                               ` Shannon Zhao
2015-05-07  9:43                                 ` Arnd Bergmann
2015-05-07 12:10                                   ` Shannon Zhao
2015-05-07 12:12                                     ` Peter Maydell
2015-05-07 12:18                                       ` Shannon Zhao
2015-05-07 12:34                                         ` Peter Maydell
2015-05-07 12:48                                           ` Arnd Bergmann
2015-05-07 13:02                                           ` Shannon Zhao
2015-04-30 13:38       ` Hanjun Guo
2015-05-04  1:55         ` Shannon Zhao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5549BB3A.6060106@huawei.com \
    --to=zhaoshenglong@huawei$(echo .)com \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox