[PATCH/RFT 3/3] arm64: dts: renesas: spider: Add keyboard to test IRQ[0145]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Add an interrupt-controlled keyboard to test operation of the Interrupt
Controller for External Devices (INTC-EX) on the Spider development
board.

Test procedure:
  - Run "evtest" (select device event number "0"),
  - Pull one of the following signals on the Spider Breakout Board low
    to trigger the corresponding interrupt and keypress (key release is
    automatic):
      - Test point CP18 -> IRQ0 (KEY_0),
      - Test point CP17 -> IRQ1 (KEY_1),
      - CN37 pin 4 -> IRQ4 (KEY_4),
      - CN37 pin 2 -> IRQ5 (KEY_5).

GND is available on e.g. pin 8 of CN37 (MSIOF0 PIN HEADER).

Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
---
Not intended for upstream merge.

I do not have physical access to a Spider development board.
Thanks for testing!

Note that this IRQ conflicts with operation of LED7, so do not apply the
LED patch while testing.
---
 .../boot/dts/renesas/r8a779f0-spider.dts      | 52 +++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/arch/arm64/boot/dts/renesas/r8a779f0-spider.dts b/arch/arm64/boot/dts/renesas/r8a779f0-spider.dts
index 7aac3f4d319c330c..a73251da1f215141 100644
--- a/arch/arm64/boot/dts/renesas/r8a779f0-spider.dts
+++ b/arch/arm64/boot/dts/renesas/r8a779f0-spider.dts
@@ -6,12 +6,56 @@
  */
 
 /dts-v1/;
+
+#include <dt-bindings/input/input.h>
+
 #include "r8a779f0-spider-cpu.dtsi"
 #include "r8a779f0-spider-ethernet.dtsi"
 
 / {
 	model = "Renesas Spider CPU and Breakout boards based on r8a779f0";
 	compatible = "renesas,spider-breakout", "renesas,spider-cpu", "renesas,r8a779f0";
+
+	keyboard-irq {
+		compatible = "gpio-keys";
+
+		pinctrl-0 = <&keyboard_irq_pins>;
+		pinctrl-names = "default";
+
+		interrupt-parent = <&intc_ex>;
+
+		key-0 {
+			interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
+			linux,code = <KEY_0>;
+			label = "Breakabout Board CP18";
+			wakeup-source;
+			debounce-interval = <20>;
+		};
+
+		key-1 {
+			interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+			linux,code = <KEY_1>;
+			label = "Breakabout Board CP17";
+			wakeup-source;
+			debounce-interval = <20>;
+		};
+
+		key-4 {
+			interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
+			linux,code = <KEY_4>;
+			label = "Breakout Board CN37-4";
+			wakeup-source;
+			debounce-interval = <20>;
+		};
+
+		key-5 {
+			interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
+			linux,code = <KEY_5>;
+			label = "Breakout Board CN37-2";
+			wakeup-source;
+			debounce-interval = <20>;
+		};
+	};
 };
 
 &i2c4 {
@@ -22,3 +66,11 @@ eeprom@51 {
 		pagesize = <8>;
 	};
 };
+
+&pfc {
+	keyboard_irq_pins: keyboard-irq {
+		groups = "intc_ex_irq0", "intc_ex_irq1", "intc_ex_irq4",
+			 "intc_ex_irq5";
+		function = "intc_ex";
+	};
+};
-- 
2.34.1




[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux