[Blackfin] arch: Added support for OpenCores Keyboard Controller to H8606 board
authorJavier Herrero <jherrero@hvsistemas.es>
Sun, 27 Jan 2008 11:53:08 +0000 (19:53 +0800)
committerBryan Wu <bryan.wu@analog.com>
Sun, 27 Jan 2008 11:53:08 +0000 (19:53 +0800)
Signed-off-by: Javier Herrero <jherrero@hvsistemas.es>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
arch/blackfin/mach-bf533/boards/H8606.c

index 675fd1c62805d29899926bc55f6a1467321e9d22..a72c7a620fa1ddbf0dc228e441700aa64f7c156f 100644 (file)
@@ -346,6 +346,34 @@ static struct platform_device serial8250_device = {
 
 #endif
 
+#if defined(CONFIG_KEYBOARD_OPENCORES) || defined(CONFIG_KEYBOARD_OPENCORES_MODULE)
+
+/*
+ * Configuration for one OpenCores keyboard controller in FPGA at address 0x20200030,
+ * interrupt output wired to PF9. Change to suit different FPGA configuration
+ */
+
+static struct resource opencores_kbd_resources[] = {
+       [0] = {
+               .start  = 0x20200030,
+               .end    = 0x20300030 + 2,
+               .flags  = IORESOURCE_MEM,
+       },
+       [1] = {
+               .start  = IRQ_PF9,
+               .end    = IRQ_PF9,
+               .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
+       },
+};
+
+static struct platform_device opencores_kbd_device = {
+       .id             = -1,
+       .name           = "opencores-kbd",
+       .resource       = opencores_kbd_resources,
+       .num_resources  = ARRAY_SIZE(opencores_kbd_resources),
+};
+#endif
+
 static struct platform_device *h8606_devices[] __initdata = {
 #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
        &rtc_device,
@@ -374,6 +402,10 @@ static struct platform_device *h8606_devices[] __initdata = {
 #if defined(CONFIG_SERIAL_8250) || defined(CONFIG_SERIAL_8250_MODULE)
        &serial8250_device,
 #endif
+
+#if defined(CONFIG_KEYBOARD_OPENCORES) || defined(CONFIG_KEYBOARD_OPENCORES_MODULE)
+       &opencores_kbd_device,
+#endif
 };
 
 static int __init H8606_init(void)