ARM: mach-shmobile: ag5evm: remove unused define
[linux-2.6.git] / arch / arm / mach-shmobile / board-ag5evm.c
index e0bc0811dc484dac5f8bee142157ac9bfa981c82..7336a00c34e7f1ed4cc594303d45de4d25edf967 100644 (file)
@@ -30,6 +30,9 @@
 #include <linux/serial_sci.h>
 #include <linux/smsc911x.h>
 #include <linux/gpio.h>
+#include <linux/input.h>
+#include <linux/input/sh_keysc.h>
+
 #include <mach/hardware.h>
 #include <mach/sh73a0.h>
 #include <mach/common.h>
@@ -70,8 +73,49 @@ static struct platform_device eth_device = {
        .num_resources  = ARRAY_SIZE(smsc9220_resources),
 };
 
+static struct sh_keysc_info keysc_platdata = {
+       .mode           = SH_KEYSC_MODE_6,
+       .scan_timing    = 3,
+       .delay          = 100,
+       .keycodes       = {
+               KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G,
+               KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, KEY_M, KEY_N,
+               KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T, KEY_U,
+               KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, KEY_HOME, KEY_SLEEP,
+               KEY_SPACE, KEY_9, KEY_6, KEY_3, KEY_WAKEUP, KEY_RIGHT, \
+               KEY_COFFEE,
+               KEY_0, KEY_8, KEY_5, KEY_2, KEY_DOWN, KEY_ENTER, KEY_UP,
+               KEY_KPASTERISK, KEY_7, KEY_4, KEY_1, KEY_STOP, KEY_LEFT, \
+               KEY_COMPUTER,
+       },
+};
+
+static struct resource keysc_resources[] = {
+       [0] = {
+               .name   = "KEYSC",
+               .start  = 0xe61b0000,
+               .end    = 0xe61b0098 - 1,
+               .flags  = IORESOURCE_MEM,
+       },
+       [1] = {
+               .start  = gic_spi(71),
+               .flags  = IORESOURCE_IRQ,
+       },
+};
+
+static struct platform_device keysc_device = {
+       .name           = "sh_keysc",
+       .id             = 0,
+       .num_resources  = ARRAY_SIZE(keysc_resources),
+       .resource       = keysc_resources,
+       .dev            = {
+               .platform_data  = &keysc_platdata,
+       },
+};
+
 static struct platform_device *ag5evm_devices[] __initdata = {
        &eth_device,
+       &keysc_device,
 };
 
 static struct map_desc ag5evm_io_desc[] __initdata = {
@@ -109,16 +153,6 @@ void __init ag5evm_init_irq(void)
        gic_cpu_init(0, __io(0xf0000100));
 }
 
-#define PORT144CR 0xe6052090
-#define PORT145CR 0xe6052091
-
-#define PORT154CR 0xe605209a
-#define PORT155CR 0xe605209b
-#define PORT156CR 0xe605209c
-#define PORT157CR 0xe605209d
-
-#define PORTR159_128DR 0xe6056004
-
 static void __init ag5evm_init(void)
 {
        sh73a0_pinmux_init();
@@ -129,6 +163,32 @@ static void __init ag5evm_init(void)
        gpio_request(GPIO_FN_SCIFA2_RTS1_, NULL);
        gpio_request(GPIO_FN_SCIFA2_CTS1_, NULL);
 
+       /* enable KEYSC */
+       gpio_request(GPIO_FN_KEYIN0, NULL);
+       gpio_request(GPIO_FN_KEYIN1, NULL);
+       gpio_request(GPIO_FN_KEYIN2, NULL);
+       gpio_request(GPIO_FN_KEYIN3, NULL);
+       gpio_request(GPIO_FN_KEYIN4, NULL);
+       gpio_request(GPIO_FN_KEYIN5, NULL);
+       gpio_request(GPIO_FN_KEYIN6, NULL);
+       gpio_request(GPIO_FN_KEYIN7, NULL);
+       gpio_request(GPIO_FN_KEYOUT0, NULL);
+       gpio_request(GPIO_FN_KEYOUT1, NULL);
+       gpio_request(GPIO_FN_KEYOUT2, NULL);
+       gpio_request(GPIO_FN_KEYOUT3, NULL);
+       gpio_request(GPIO_FN_KEYOUT4, NULL);
+       gpio_request(GPIO_FN_KEYOUT5, NULL);
+       gpio_request(GPIO_FN_PORT59_KEYOUT6, NULL);
+       gpio_request(GPIO_FN_PORT58_KEYOUT7, NULL);
+       gpio_request(GPIO_FN_KEYOUT8, NULL);
+       gpio_request(GPIO_FN_PORT149_KEYOUT9, NULL);
+
+       /* enable IC2 2 and 3 */
+       gpio_request(GPIO_FN_PORT236_I2C_SDA2, NULL);
+       gpio_request(GPIO_FN_PORT237_I2C_SCL2, NULL);
+       gpio_request(GPIO_FN_PORT248_I2C_SCL3, NULL);
+       gpio_request(GPIO_FN_PORT249_I2C_SDA3, NULL);
+
        /* enable SMSC911X */
        gpio_request(GPIO_PORT144, NULL); /* PINTA2 */
        gpio_direction_input(GPIO_PORT144);