diff -ruNp -X linux-2.6.15-e3-06/Documentation/dontdiff linux-2.6.15-e3-05/arch/arm/mach-omap1/board-ams-delta.c linux-2.6.15-e3-06/arch/arm/mach-omap1/board-ams-delta.c
--- linux-2.6.15-e3-05/arch/arm/mach-omap1/board-ams-delta.c	2006-03-04 17:42:18.482549500 +0000
+++ linux-2.6.15-e3-06/arch/arm/mach-omap1/board-ams-delta.c	2006-03-29 13:46:05.716710250 +0100
@@ -15,8 +15,11 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
+#include <linux/serial.h>
+#include <linux/serial_core.h>
 
 #include <asm/hardware.h>
+#include <asm/serial.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -50,6 +53,8 @@ static void __init ams_delta_init_irq(vo
 	omap1_init_common_hw();
 	omap_init_irq();
 	omap_gpio_init();
+	/* Set IRQ triggering for modem. */
+	set_irq_type(OMAP_GPIO_IRQ(2), IRQT_RISING);
 }
 
 static struct map_desc ams_delta_io_desc[] __initdata = {
@@ -76,6 +81,17 @@ static struct map_desc ams_delta_io_desc
 	}
 };
 
+static struct uart_port ams_delta_modem_port = {
+	.membase	= (void *) AMS_DELTA_MODEM_VIRT,
+	.mapbase	= AMS_DELTA_MODEM_PHYS,
+	.irq		= OMAP_GPIO_IRQ(2),
+	.flags		= UPF_BOOT_AUTOCONF,
+	.iotype		= UPIO_MEM,
+	.regshift	= 1,
+	.uartclk	= BASE_BAUD * 16,
+	.line		= 1
+};
+	
 static struct omap_uart_config ams_delta_uart_config __initdata = {
 	.enabled_uarts = 1,
 };
@@ -108,6 +124,13 @@ static void __init ams_delta_init(void)
 
 	/* Clear latch2 (NAND, LCD, modem enable) */
 	ams_delta_latch2_write(~0, 0);
+	/* Enable modem */
+	ams_delta_latch2_write(AMS_DELTA_LATCH2_MODEM_NRESET |
+				AMS_DELTA_LATCH2_MODEM_CODEC,
+				AMS_DELTA_LATCH2_MODEM_NRESET |
+				AMS_DELTA_LATCH2_MODEM_CODEC);
+
+	early_serial_setup(&ams_delta_modem_port);
 }
 
 static void __init ams_delta_map_io(void)

