aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBellido Nicolas <ml@acolin.be>2005-10-28 11:51:40 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2005-10-28 11:51:40 -0400
commit4028ef4cc1fea245906a2dbd4df1ac9f0353ef5f (patch)
tree03d87c15a85caaf918e40abc8ab0245a37b362ad
parent13b1d677d2c872e2d05ef6241b499b6e1f6f91ba (diff)
[ARM] 3037/1: AAED-2000 - Add defines for GPIO registers on external port.
Patch from Bellido Nicolas The AAED-2000 board has GPIO pins on an external port. This patch adds the defines, and do the necessary mapping. Signed-off-by: Nicolas Bellido <ml@acolin.be> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--arch/arm/mach-aaec2000/aaed2000.c7
-rw-r--r--include/asm-arm/arch-aaec2000/aaed2000.h40
2 files changed, 47 insertions, 0 deletions
diff --git a/arch/arm/mach-aaec2000/aaed2000.c b/arch/arm/mach-aaec2000/aaed2000.c
index c9d899886648..7b0a1c7d64a9 100644
--- a/arch/arm/mach-aaec2000/aaed2000.c
+++ b/arch/arm/mach-aaec2000/aaed2000.c
@@ -27,6 +27,8 @@
27#include <asm/mach/map.h> 27#include <asm/mach/map.h>
28#include <asm/mach/irq.h> 28#include <asm/mach/irq.h>
29 29
30#include <asm/arch/aaed2000.h>
31
30#include "core.h" 32#include "core.h"
31 33
32static void __init aaed2000_init_irq(void) 34static void __init aaed2000_init_irq(void)
@@ -34,9 +36,14 @@ static void __init aaed2000_init_irq(void)
34 aaec2000_init_irq(); 36 aaec2000_init_irq();
35} 37}
36 38
39static struct map_desc aaed2000_io_desc[] __initdata = {
40 { EXT_GPIO_VBASE, EXT_GPIO_PBASE, EXT_GPIO_LENGTH, MT_DEVICE }, /* Ext GPIO */
41};
42
37static void __init aaed2000_map_io(void) 43static void __init aaed2000_map_io(void)
38{ 44{
39 aaec2000_map_io(); 45 aaec2000_map_io();
46 iotable_init(aaed2000_io_desc, ARRAY_SIZE(aaed2000_io_desc));
40} 47}
41 48
42MACHINE_START(AAED2000, "Agilent AAED-2000 Development Platform") 49MACHINE_START(AAED2000, "Agilent AAED-2000 Development Platform")
diff --git a/include/asm-arm/arch-aaec2000/aaed2000.h b/include/asm-arm/arch-aaec2000/aaed2000.h
new file mode 100644
index 000000000000..bc76d2badb91
--- /dev/null
+++ b/include/asm-arm/arch-aaec2000/aaed2000.h
@@ -0,0 +1,40 @@
1/*
2 * linux/include/asm-arm/arch-aaec2000/aaed2000.h
3 *
4 * AAED-2000 specific bits definition
5 *
6 * Copyright (c) 2005 Nicolas Bellido Y Ortega
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 */
12
13#ifndef __ASM_ARCH_AAED2000_H
14#define __ASM_ARCH_AAED2000_H
15
16/* External GPIOs. */
17
18#define EXT_GPIO_PBASE AAEC_CS3
19#define EXT_GPIO_VBASE 0xf8100000
20#define EXT_GPIO_LENGTH 0x00001000
21
22#define __ext_gpio_p2v(x) ((x) - EXT_GPIO_PBASE + EXT_GPIO_VBASE)
23#define __ext_gpio_v2p(x) ((x) + EXT_GPIO_PBASE - EXT_GPIO_VBASE)
24
25#define __EXT_GPIO_REG(x) (*((volatile u32 *)__ext_gpio_p2v(x)))
26#define __EXT_GPIO_PREG(x) (__ext_gpio_v2p((u32)&(x)))
27
28#define AAED_EXT_GPIO __EXT_GPIO_REG(EXT_GPIO_PBASE)
29
30#define AAED_EGPIO_KBD_SCAN 0x00003fff /* Keyboard scan data */
31#define AAED_EGPIO_PWR_INT 0x00008fff /* Smart battery charger interrupt */
32#define AAED_EGPIO_SWITCHED 0x000f0000 /* DIP Switches */
33#define AAED_EGPIO_USB_VBUS 0x00400000 /* USB Vbus sense */
34#define AAED_EGPIO_LCD_PWR_EN 0x02000000 /* LCD and backlight PWR enable */
35#define AAED_EGPIO_nLED0 0x20000000 /* LED 0 */
36#define AAED_EGPIO_nLED1 0x20000000 /* LED 1 */
37#define AAED_EGPIO_nLED2 0x20000000 /* LED 2 */
38
39
40#endif /* __ARM_ARCH_AAED2000_H */