ARM64: juno: add GPIO keys
Subsystems (2)
PATCH 1/1 ARM64: juno: add GPIO keys
The Juno board has two keys connected to a PL061 GPIO block, in accordance to DDI0524B "ARM Versatile Express Juno Development Platform" revision 1.0, table 2-4 "GPIO (0) and GPIO (1) used for additional user key entry". By trial-and-error I found that these are connected to the two keys named "power" and "home" on the motherboard.
Register the GPIO block and these two keys in the device tree using the PL061 GPIO driver and the generic gpio keys.
- Map POWER, HOME, VOL+ and VOL- to the obvious input events.
- Map RLOCK to KEY_SCREENLOCK/KEY_COFFEE unless someone can explain better what this is for.
- Map the NMI button to KEY_SYSREQ as this is used like so in the SYSREQ debugging hack.
---
Hi ARM SoC folks, please apply this patch directly to the DT branch for ARM64. This is a resend of the v2 version with Liviu's ACK.
--- arch/arm64/boot/dts/arm/juno-motherboard.dtsi | 61 +++++++++++++++++++++++++++ 1 file changed, 61 insertions(+)
arch/arm64/boot/dts/arm/juno-motherboard.dtsi +61 -0
@@ -54,6 +54,55 @@ regulator-always-on; }; + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + + button at 1 { + debounce_interval = <50>; + wakeup = <1>; + linux,code = <116>; + label = "POWER"; + gpios = <&iofpga_gpio0 0 0x4>; + }; + button at 2 { + debounce_interval = <50>; + wakeup = <1>; + linux,code = <102>; + label = "HOME"; + gpios = <&iofpga_gpio0 1 0x4>; + }; + button at 3 { + debounce_interval = <50>; + wakeup = <1>; + linux,code = <152>; + label = "RLOCK"; + gpios = <&iofpga_gpio0 2 0x4>; + }; + button at 4 { + debounce_interval = <50>; + wakeup = <1>; + linux,code = <115>; + label = "VOL+"; + gpios = <&iofpga_gpio0 3 0x4>; + }; + button at 5 { + debounce_interval = <50>; + wakeup = <1>; + linux,code = <114>; + label = "VOL-"; + gpios = <&iofpga_gpio0 4 0x4>; + }; + button at 6 { + debounce_interval = <50>; + wakeup = <1>; + linux,code = <99>; + label = "NMI"; + gpios = <&iofpga_gpio0 5 0x4>; + }; + }; + ethernet at 2,00000000 { compatible = "smsc,lan9118", "smsc,lan9115"; reg = <2 0x00000000 0x10000>;
@@ -148,5 +197,17 @@ clocks = <&soc_smc50mhz>; clock-names = "apb_pclk"; }; + + iofpga_gpio0: gpio at 1d0000 { + compatible = "arm,pl061", "arm,primecell"; + reg = <0x1d0000 0x1000>; + interrupts = <6>; + clocks = <&soc_smc50mhz>; + clock-names = "apb_pclk"; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; }; };
Signature · 1 line
1.9.3
Kevin Hilman
AppliedPATCH 1/1 ARM64: juno: add GPIO keys
Quoted 16 lines · Linus Walleij
The Juno board has two keys connected to a PL061 GPIO block, in accordance to DDI0524B "ARM Versatile Express Juno Development Platform" revision 1.0, table 2-4 "GPIO (0) and GPIO (1) used for additional user key entry". By trial-and-error I found that these are connected to the two keys named "power" and "home" on the motherboard.
Register the GPIO block and these two keys in the device tree using the PL061 GPIO driver and the generic gpio keys.
- Map POWER, HOME, VOL+ and VOL- to the obvious input events.
- Map RLOCK to KEY_SCREENLOCK/KEY_COFFEE unless someone can explain better what this is for.
- Map the NMI button toKEY_SYSREQas this is used like so in the SYSREQ debugging hack.
Quoted 6 lines
Acked-by Liviu Dudau <[email protected]>Signed-off-by Linus Walleij <[email protected]>---
Hi ARM SoC folks, please apply this patch directly to the DT branch for ARM64. This is a resend of the v2 version with Liviu's ACK.
Applied to next/dt.
Thanks,
Kevin