patch-2.4.19 linux-2.4.19/arch/arm/mach-sa1100/cerf.c
Next file: linux-2.4.19/arch/arm/mach-sa1100/cpu-sa1100.c
Previous file: linux-2.4.19/arch/arm/mach-sa1100/badge4.c
Back to the patch index
Back to the overall index
- Lines: 113
- Date:
Fri Aug 2 17:39:42 2002
- Orig file:
linux-2.4.18/arch/arm/mach-sa1100/cerf.c
- Orig date:
Thu Oct 25 13:53:46 2001
diff -urN linux-2.4.18/arch/arm/mach-sa1100/cerf.c linux-2.4.19/arch/arm/mach-sa1100/cerf.c
@@ -1,7 +1,7 @@
/*
* linux/arch/arm/mach-sa1100/cerf.c
*/
-
+#include <linux/config.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/tty.h>
@@ -16,20 +16,22 @@
#include "generic.h"
-static void __init cerf_init_irq (void)
+static void __init cerf_init_irq(void)
{
- sa1100_init_irq();
+ sa1100_init_irq();
- /* Need to register these as rising edge interrupts
- * For standard 16550 serial driver support
- * Basically - I copied it from pfs168.c :)
- */
+ /* Need to register these as rising edge interrupts
+ * For standard 16550 serial driver support
+ * Basically - I copied it from pfs168.c :)
+ */
#ifdef CONFIG_SA1100_CERF_CPLD
- set_GPIO_IRQ_edge(GPIO_GPIO(3), GPIO_RISING_EDGE); /* PDA Full serial port */
- set_GPIO_IRQ_edge(GPIO_GPIO(2), GPIO_RISING_EDGE); /* PDA Bluetooth */
- GPDR &= ~(GPIO_GPIO(3)); /* Set the direction of serial port GPIO pin to in */
- GPDR &= ~(GPIO_GPIO(2)); /* Set the direction of bluetooth GPIO pin to in */
+ /* PDA Full serial port */
+ set_GPIO_IRQ_edge(GPIO_GPIO3, GPIO_RISING_EDGE);
+ /* PDA Bluetooth */
+ set_GPIO_IRQ_edge(GPIO_GPIO2, GPIO_RISING_EDGE);
#endif /* CONFIG_SA1100_CERF_CPLD */
+
+ set_GPIO_IRQ_edge(GPIO_UCB1200_IRQ, GPIO_RISING_EDGE);
}
static void __init
@@ -37,22 +39,20 @@
char **cmdline, struct meminfo *mi)
{
#if defined(CONFIG_SA1100_CERF_64MB)
- // 64MB RAM
- SET_BANK( 0, 0xc0000000, 64*1024*1024 );
- mi->nr_banks = 1;
-#elif defined(CONFIG_SA1100_CERF_32MB) // 32MB RAM
+ SET_BANK( 0, 0xc0000000, 64*1024*1024 );
+ mi->nr_banks = 1;
+#elif defined(CONFIG_SA1100_CERF_32MB)
SET_BANK( 0, 0xc0000000, 32*1024*1024 );
mi->nr_banks = 1;
-#elif defined(CONFIG_SA1100_CERF_16MB) // 16Meg Ram.
+#elif defined(CONFIG_SA1100_CERF_16MB)
SET_BANK( 0, 0xc0000000, 8*1024*1024 );
SET_BANK( 1, 0xc8000000, 8*1024*1024 );
mi->nr_banks = 2;
#elif defined(CONFIG_SA1100_CERF_8MB)
- // 8Meg Ram.
- SET_BANK( 0, 0xc0000000, 8*1024*1024 );
- mi->nr_banks = 1;
+ SET_BANK( 0, 0xc0000000, 8*1024*1024 );
+ mi->nr_banks = 1;
#else
- #error "Undefined memory size for Cerfboard."
+#error "Undefined memory size for Cerfboard."
#endif
// ROOT_DEV = MKDEV(RAMDISK_MAJOR,0);
@@ -62,13 +62,13 @@
}
static struct map_desc cerf_io_desc[] __initdata = {
- /* virtual physical length domain r w c b */
- { 0xe8000000, 0x00000000, 0x02000000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 0 */
- { 0xf0000000, 0x08000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* Crystal Ethernet Chip */
+ /* virtual physical length domain r w c b */
+ { 0xe8000000, 0x00000000, 0x02000000, DOMAIN_IO, 0, 1, 0, 0 }, /* Flash bank 0 */
+ { 0xf0000000, 0x08000000, 0x00100000, DOMAIN_IO, 0, 1, 0, 0 }, /* Crystal Ethernet Chip */
#ifdef CONFIG_SA1100_CERF_CPLD
- { 0xf1000000, 0x40000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* CPLD Chip */
- { 0xf2000000, 0x10000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* CerfPDA Bluetooth */
- { 0xf3000000, 0x18000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* CerfPDA Serial */
+ { 0xf1000000, 0x40000000, 0x00100000, DOMAIN_IO, 0, 1, 0, 0 }, /* CPLD Chip */
+ { 0xf2000000, 0x10000000, 0x00100000, DOMAIN_IO, 0, 1, 0, 0 }, /* CerfPDA Bluetooth */
+ { 0xf3000000, 0x18000000, 0x00100000, DOMAIN_IO, 0, 1, 0, 0 }, /* CerfPDA Serial */
#endif
LAST_DESC
};
@@ -78,13 +78,19 @@
sa1100_map_io();
iotable_init(cerf_io_desc);
- sa1100_register_uart(0, 3);
+ sa1100_register_uart(0, 3);
#ifdef CONFIG_SA1100_CERF_IRDA_ENABLED
sa1100_register_uart(1, 1);
#else
sa1100_register_uart(1, 2);
sa1100_register_uart(2, 1);
#endif
+
+ /* set some GPDR bits here while it's safe */
+ GPDR |= GPIO_CF_RESET;
+#ifdef CONFIG_SA1100_CERF_CPLD
+ GPDR |= GPIO_PWR_SHUTDOWN;
+#endif
}
MACHINE_START(CERF, "Intrinsyc's Cerf Family of Products")
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)