patch-2.4.14 linux/arch/arm/mach-sa1100/cerf.c
Next file: linux/arch/arm/mach-sa1100/dma-sa1100.c
Previous file: linux/arch/arm/mach-sa1100/assabet.c
Back to the patch index
Back to the overall index
- Lines: 97
- Date:
Thu Oct 25 13:53:46 2001
- Orig file:
v2.4.13/linux/arch/arm/mach-sa1100/cerf.c
- Orig date:
Mon Aug 27 12:41:38 2001
diff -u --recursive --new-file v2.4.13/linux/arch/arm/mach-sa1100/cerf.c linux/arch/arm/mach-sa1100/cerf.c
@@ -16,31 +16,60 @@
#include "generic.h"
+static void __init cerf_init_irq (void)
+{
+ sa1100_init_irq();
+
+ /* 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 */
+#endif /* CONFIG_SA1100_CERF_CPLD */
+}
+
static void __init
fixup_cerf(struct machine_desc *desc, struct param_struct *params,
char **cmdline, struct meminfo *mi)
{
-#ifdef CONFIG_SA1100_CERF_32MB
- // 32MB RAM
+#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, 32*1024*1024 );
mi->nr_banks = 1;
-#else
- // 16Meg Ram.
+#elif defined(CONFIG_SA1100_CERF_16MB) // 16Meg Ram.
SET_BANK( 0, 0xc0000000, 8*1024*1024 );
- SET_BANK( 1, 0xc8000000, 8*1024*1024 ); // comment this out for 8MB Cerfs
+ 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;
+#else
+ #error "Undefined memory size for Cerfboard."
#endif
- ROOT_DEV = MKDEV(RAMDISK_MAJOR,0);
- setup_ramdisk(1, 0, 0, 8192);
- // Save 2Meg for RAMDisk
- setup_initrd(0xc0500000, 3*1024*1024);
+// ROOT_DEV = MKDEV(RAMDISK_MAJOR,0);
+// setup_ramdisk(1, 0, 0, 8192);
+// // Save 2Meg for RAMDisk
+// setup_initrd(0xc0500000, 3*1024*1024);
}
static struct map_desc cerf_io_desc[] __initdata = {
- /* virtual physical length domain r w c b */
- { 0xe8000000, 0x00000000, 0x01000000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 0 */
- { 0xf0000000, 0x08000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* Crystal Chip */
+ /* 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 */
+#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 */
+#endif
LAST_DESC
};
@@ -49,14 +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
}
-MACHINE_START(CERF, "Intrinsyc CerfBoard")
- MAINTAINER("Pieter Truter")
+MACHINE_START(CERF, "Intrinsyc's Cerf Family of Products")
+ MAINTAINER("support@intrinsyc.com")
BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
FIXUP(fixup_cerf)
MAPIO(cerf_map_io)
- INITIRQ(sa1100_init_irq)
+ INITIRQ(cerf_init_irq)
MACHINE_END
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)