Power key press sends up+down events simultaneously

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Power key press sends up+down events simultaneously

ソリューションへジャンプ
2,122件の閲覧回数
gsteimle
Contributor II

Hello.

We have Android 7.1.2 (Nougat) running on a device with imx6. When we press the Power key on the device, we see the following getevent output that shows shows both DOWN and UP events being sent. When the Power key is released, no event is seen:

[     726.515409] /dev/input/event2: EV_KEY       KEY_POWER            DOWN
[     726.515409] /dev/input/event2: EV_SYN       SYN_REPORT           00000000
[     726.530056] /dev/input/event2: EV_KEY       KEY_POWER            UP
[     726.530056] /dev/input/event2: EV_SYN       SYN_REPORT           00000000

With the same hardware running Android JellyBean, we see the expected behavior, where the DOWN event is seen on the key press, and the UP event is seen on the key release. Can you help us to produce the expected behavior on Nougat?

Here is the related device tree entry:

    gpio_keys: gpio-keys {
        compatible = "gpio-keys";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_gpio_keys>;
        
        volume-back {
            label = "Volume Back";
            interrupts-extended = <&gpio7 12 IRQ_TYPE_EDGE_FALLING>;
            wakeup-source;
            linux,code = <KEY_BACK>;
            debounce-interval = <5>;
        };

        power {
            label = "Power Button";
            interrupts-extended = <&gpio1 5 IRQ_TYPE_EDGE_FALLING>;
            wakeup-source;
            linux,code = <KEY_POWER>;
            debounce-interval = <5>;
        };
    };

Further details might be seen from the "getevent -li" output:

add device 1: /dev/input/event0
  bus:      0019
  vendor    0001
  product   0001
  version   0100
  name:     "gpio-keys-polled"
  location: "gpio-keys-polled/input0"
  id:       ""
  version:  1.0.1
  events:
    KEY (0001): KEY_WAKEUP
  input props:
    <none>
could not get driver version for /dev/input/mouse0, Not a typewriter
add device 2: /dev/input/event1
  bus:      0018
  vendor    0000
  product   0000
  version   0000
  name:     "EP0980M09"
  location: ""
  id:       ""
  version:  1.0.1
  events:
    KEY (0001): BTN_TOUCH
    ABS (0003): ABS_X                 : value 298, min 0, max 479, fuzz 0, flat 0, resolution 0
                ABS_Y                 : value 185, min 0, max 271, fuzz 0, flat 0, resolution 0
                ABS_MT_SLOT           : value 0, min 0, max 4, fuzz 0, flat 0, resolution 0
                ABS_MT_POSITION_X     : value 0, min 0, max 479, fuzz 0, flat 0, resolution 0
                ABS_MT_POSITION_Y     : value 0, min 0, max 271, fuzz 0, flat 0, resolution 0
                ABS_MT_TRACKING_ID    : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0
  input props:
    INPUT_PROP_DIRECT
add device 3: /dev/input/event2
  bus:      0019
  vendor    0001
  product   0001
  version   0100
  name:     "gpio-keys"
  location: "gpio-keys/input0"
  id:       ""
  version:  1.0.1
  events:
    KEY (0001): KEY_POWER             KEY_BACK
  input props:
    <none>
could not get driver version for /dev/input/mice, Not a typewriter

タグ(2)
0 件の賞賛
返信
1 解決策
1,979件の閲覧回数
gsteimle
Contributor II

Hi,

We were able to resolve this by replacing this line in the power button section of the device tree (.dtsi) file

interrupts-extended = <&gpio1 5 IRQ_TYPE_EDGE_FALLING>;

with this

gpios = <&gpio1 5 IRQ_TYPE_EDGE_RISING>;

Thanks,

Gary

元の投稿で解決策を見る

2 返答(返信)
1,979件の閲覧回数
diegoadrian
NXP Employee
NXP Employee

Hello,

Are you still having a problem with this?

Otherwise, can you please pass me the revision of your board?

Best regards,

Diego.

0 件の賞賛
返信
1,980件の閲覧回数
gsteimle
Contributor II

Hi,

We were able to resolve this by replacing this line in the power button section of the device tree (.dtsi) file

interrupts-extended = <&gpio1 5 IRQ_TYPE_EDGE_FALLING>;

with this

gpios = <&gpio1 5 IRQ_TYPE_EDGE_RISING>;

Thanks,

Gary