summaryrefslogtreecommitdiffstats
path: root/include/asm-arm/arch-iop32x
diff options
context:
space:
mode:
authorLennert Buytenhek <buytenh@wantstofly.org>2006-09-21 03:42:12 +0200
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-09-25 11:34:01 +0200
commite60d07b6cd38a7afb85f2cf51aebcb3359b63819 (patch)
tree639b895384a70502f2aac9e8f7bc82ec1a4930f4 /include/asm-arm/arch-iop32x
parent[ARM] 3849/1: fix get_unaligned() for gcc >= 4.1 (diff)
downloadlinux-e60d07b6cd38a7afb85f2cf51aebcb3359b63819.tar.xz
linux-e60d07b6cd38a7afb85f2cf51aebcb3359b63819.zip
[ARM] 3850/1: iop3xx: add thecus n2100 support
Add support for the Thecus n2100 (80219-based.) Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'include/asm-arm/arch-iop32x')
-rw-r--r--include/asm-arm/arch-iop32x/hardware.h1
-rw-r--r--include/asm-arm/arch-iop32x/n2100.h19
-rw-r--r--include/asm-arm/arch-iop32x/system.h11
3 files changed, 31 insertions, 0 deletions
diff --git a/include/asm-arm/arch-iop32x/hardware.h b/include/asm-arm/arch-iop32x/hardware.h
index 6a3001f2f7e0..c6f58b91ddbc 100644
--- a/include/asm-arm/arch-iop32x/hardware.h
+++ b/include/asm-arm/arch-iop32x/hardware.h
@@ -37,6 +37,7 @@ void iop32x_init_irq(void);
*/
#include "iq80321.h"
#include "iq31244.h"
+#include "n2100.h"
#endif
diff --git a/include/asm-arm/arch-iop32x/n2100.h b/include/asm-arm/arch-iop32x/n2100.h
new file mode 100644
index 000000000000..fed31a648425
--- /dev/null
+++ b/include/asm-arm/arch-iop32x/n2100.h
@@ -0,0 +1,19 @@
+/*
+ * include/asm/arch-iop32x/n2100.h
+ *
+ * Thecus N2100 board registers
+ */
+
+#ifndef __N2100_H
+#define __N2100_H
+
+#define N2100_UART 0xfe800000 /* UART */
+
+#define N2100_COPY_BUTTON IOP3XX_GPIO_LINE(0)
+#define N2100_PCA9532_RESET IOP3XX_GPIO_LINE(2)
+#define N2100_RESET_BUTTON IOP3XX_GPIO_LINE(3)
+#define N2100_HARDWARE_RESET IOP3XX_GPIO_LINE(4)
+#define N2100_POWER_BUTTON IOP3XX_GPIO_LINE(5)
+
+
+#endif
diff --git a/include/asm-arm/arch-iop32x/system.h b/include/asm-arm/arch-iop32x/system.h
index c65ede3e627a..17b7eb7e9c0d 100644
--- a/include/asm-arm/arch-iop32x/system.h
+++ b/include/asm-arm/arch-iop32x/system.h
@@ -8,6 +8,8 @@
* published by the Free Software Foundation.
*/
+#include <asm/mach-types.h>
+
static inline void arch_idle(void)
{
cpu_do_idle();
@@ -15,6 +17,15 @@ static inline void arch_idle(void)
static inline void arch_reset(char mode)
{
+ local_irq_disable();
+
+ if (machine_is_n2100()) {
+ gpio_line_set(N2100_HARDWARE_RESET, GPIO_LOW);
+ gpio_line_config(N2100_HARDWARE_RESET, GPIO_OUT);
+ while (1)
+ ;
+ }
+
*IOP3XX_PCSR = 0x30;
/* Jump into ROM at address 0 */