aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin
diff options
context:
space:
mode:
authorJavier Herrero <jherrero@hvsistemas.es>2008-01-27 19:53:08 +0800
committerBryan Wu <bryan.wu@analog.com>2008-01-27 19:53:08 +0800
commit7a5f819187ff827c131721dbba11ad9596ae5e30 (patch)
treebc663843c04da1b9d7ac49cc5ad4c1b1d22b619b /arch/blackfin
parent[Blackfin] arch: Fix if/def BUG - and define is multipoint NO (diff)
downloadlinux-dev-7a5f819187ff827c131721dbba11ad9596ae5e30.tar.xz
linux-dev-7a5f819187ff827c131721dbba11ad9596ae5e30.zip
[Blackfin] arch: Added support for OpenCores Keyboard Controller to H8606 board
Signed-off-by: Javier Herrero <jherrero@hvsistemas.es> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Diffstat (limited to 'arch/blackfin')
-rw-r--r--arch/blackfin/mach-bf533/boards/H8606.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/blackfin/mach-bf533/boards/H8606.c b/arch/blackfin/mach-bf533/boards/H8606.c
index 675fd1c62805..a72c7a620fa1 100644
--- a/arch/blackfin/mach-bf533/boards/H8606.c
+++ b/arch/blackfin/mach-bf533/boards/H8606.c
@@ -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)