ARM: dts: imx25-pdk: Add keypad support
authorFabio Estevam <fabio.estevam@freescale.com>
Wed, 12 Mar 2014 13:19:24 +0000 (10:19 -0300)
committerShawn Guo <shawn.guo@freescale.com>
Fri, 16 May 2014 15:01:43 +0000 (23:01 +0800)
Tested with evtest.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
arch/arm/boot/dts/imx25-pdk.dts
arch/arm/boot/dts/imx25.dtsi

index 71743a3f7d76354499904f04cd056b8f66725f66..34de5e34814c385edd116b6dd228f52bff6d4a09 100644 (file)
@@ -10,6 +10,7 @@
  */
 
 /dts-v1/;
+#include <dt-bindings/input/input.h>
 #include "imx25.dtsi"
 
 / {
                        >;
                };
 
+               pinctrl_kpp: kppgrp {
+                       fsl,pins = <
+                               MX25_PAD_KPP_ROW0__KPP_ROW0     0x80000000
+                               MX25_PAD_KPP_ROW1__KPP_ROW1     0x80000000
+                               MX25_PAD_KPP_ROW2__KPP_ROW2     0x80000000
+                               MX25_PAD_KPP_ROW3__KPP_ROW3     0x80000000
+                               MX25_PAD_KPP_COL0__KPP_COL0     0x80000000
+                               MX25_PAD_KPP_COL1__KPP_COL1     0x80000000
+                               MX25_PAD_KPP_COL2__KPP_COL2     0x80000000
+                               MX25_PAD_KPP_COL3__KPP_COL3     0x80000000
+                       >;
+               };
+
+
                pinctrl_uart1: uart1grp {
                        fsl,pins = <
                                MX25_PAD_UART1_RTS__UART1_RTS           0xe0
        status = "okay";
 };
 
+&kpp {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_kpp>;
+       linux,keymap = <
+                       MATRIX_KEY(0x0, 0x0, KEY_UP)
+                       MATRIX_KEY(0x0, 0x1, KEY_DOWN)
+                       MATRIX_KEY(0x0, 0x2, KEY_VOLUMEDOWN)
+                       MATRIX_KEY(0x0, 0x3, KEY_HOME)
+                       MATRIX_KEY(0x1, 0x0, KEY_RIGHT)
+                       MATRIX_KEY(0x1, 0x1, KEY_LEFT)
+                       MATRIX_KEY(0x1, 0x2, KEY_ENTER)
+                       MATRIX_KEY(0x1, 0x3, KEY_VOLUMEUP)
+                       MATRIX_KEY(0x2, 0x0, KEY_F6)
+                       MATRIX_KEY(0x2, 0x1, KEY_F8)
+                       MATRIX_KEY(0x2, 0x2, KEY_F9)
+                       MATRIX_KEY(0x2, 0x3, KEY_F10)
+                       MATRIX_KEY(0x3, 0x0, KEY_F1)
+                       MATRIX_KEY(0x3, 0x1, KEY_F2)
+                       MATRIX_KEY(0x3, 0x2, KEY_F3)
+                       MATRIX_KEY(0x3, 0x2, KEY_POWER)
+       >;
+       status = "okay";
+};
+
 &ssi1 {
        codec-handle = <&codec>;
        fsl,mode = "i2s-slave";
index 9c092571d4822e7c557dd806359092391be5cfa2..563e168c88a01a294f3f725d796fbe39f826db72 100644 (file)
                                status = "disabled";
                        };
 
-                       kpp@43fa8000 {
+                       kpp: kpp@43fa8000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               compatible = "fsl,imx25-kpp", "fsl,imx21-kpp";
                                reg = <0x43fa8000 0x4000>;
                                clocks = <&clks 102>;
                                clock-names = "";