Message ID | 20191121183711.19785-1-khilman@kernel.org (mailing list archive) |
---|---|
State | Mainlined |
Commit | f424da7f78a7fbc17bc66216c2b3664b22d30a27 |
Headers | show |
Series | [1/1] arm64: dts: meson-sm1-sei610: gpio-keys: switch to IRQs | expand |
On Thu, Nov 21, 2019 at 7:37 PM Kevin Hilman <khilman@kernel.org> wrote: > > From: Kevin Hilman <khilman@baylibre.com> > > Switch the GPIO buttons/switches to use interrupts instead of polling. > While at it, add the mic mute switch and the power button. > > Signed-off-by: Kevin Hilman <khilman@baylibre.com> (I don't have the schematics of the board so I have to assume that the GPIOs are the right ones - based on that) Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Hi Martin, Martin Blumenstingl <martin.blumenstingl@googlemail.com> writes: > On Thu, Nov 21, 2019 at 7:37 PM Kevin Hilman <khilman@kernel.org> wrote: >> >> From: Kevin Hilman <khilman@baylibre.com> >> >> Switch the GPIO buttons/switches to use interrupts instead of polling. >> While at it, add the mic mute switch and the power button. >> >> Signed-off-by: Kevin Hilman <khilman@baylibre.com> > > (I don't have the schematics of the board so I have to assume that the > GPIOs are the right ones - based on that) I have the schematics, and I also forgot to mention that I tested this on the SEI610 board, and can watch the interrupt counts in /proc/interrupts increase for each of the buttons/switches. > Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Thanks for the review, Kevin
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts index 5bd07469766b..2c90f4713d0e 100644 --- a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts +++ b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts @@ -46,25 +46,47 @@ }; gpio-keys { - compatible = "gpio-keys-polled"; - poll-interval = <100>; + compatible = "gpio-keys"; key1 { label = "A"; linux,code = <BTN_0>; gpios = <&gpio GPIOH_6 GPIO_ACTIVE_LOW>; + interrupt-parent = <&gpio_intc>; + interrupts = <34 IRQ_TYPE_EDGE_BOTH>; }; key2 { label = "B"; linux,code = <BTN_1>; gpios = <&gpio GPIOH_7 GPIO_ACTIVE_LOW>; + interrupt-parent = <&gpio_intc>; + interrupts = <35 IRQ_TYPE_EDGE_BOTH>; }; key3 { label = "C"; linux,code = <BTN_2>; gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; + interrupt-parent = <&gpio_intc>; + interrupts = <2 IRQ_TYPE_EDGE_BOTH>; + }; + + mic_mute { + label = "MicMute"; + linux,code = <SW_MUTE_DEVICE>; + linux,input-type = <EV_SW>; + gpios = <&gpio_ao GPIOE_2 GPIO_ACTIVE_LOW>; + interrupt-parent = <&gpio_intc>; + interrupts = <99 IRQ_TYPE_EDGE_BOTH>; + }; + + power_key { + label = "PowerKey"; + linux,code = <KEY_POWER>; + gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>; + interrupt-parent = <&gpio_intc>; + interrupts = <3 IRQ_TYPE_EDGE_BOTH>; }; };