diff -ruNp linux-2.6.15-e3-01/arch/arm/configs/ams_delta_defconfig linux-2.6.15-e3-02/arch/arm/configs/ams_delta_defconfig
--- linux-2.6.15-e3-01/arch/arm/configs/ams_delta_defconfig	2006-03-04 14:02:48.992689250 +0000
+++ linux-2.6.15-e3-02/arch/arm/configs/ams_delta_defconfig	2006-03-04 15:23:05.343834000 +0000
@@ -710,13 +710,39 @@ CONFIG_I2C_OMAP=y
 #
 # Graphics support
 #
-# CONFIG_FB is not set
+CONFIG_FB=y
+# CONFIG_FB_CFB_FILLRECT is not set
+# CONFIG_FB_CFB_COPYAREA is not set
+# CONFIG_FB_CFB_IMAGEBLIT is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_OMAP=y
+CONFIG_FB_OMAP_LCDC_INTERNAL=y
+# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
+# CONFIG_FB_OMAP_DMA_TUNE is not set
+# CONFIG_FB_VIRTUAL is not set
 
 #
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+
+#
+# Logo configuration
+#
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
 
 #
 # Sound
diff -ruNp linux-2.6.15-e3-01/arch/arm/mach-omap1/board-ams-delta.c linux-2.6.15-e3-02/arch/arm/mach-omap1/board-ams-delta.c
--- linux-2.6.15-e3-01/arch/arm/mach-omap1/board-ams-delta.c	2006-03-04 13:19:57.124025500 +0000
+++ linux-2.6.15-e3-02/arch/arm/mach-omap1/board-ams-delta.c	2006-03-04 15:07:35.353343750 +0000
@@ -80,7 +80,13 @@ static struct omap_uart_config ams_delta
 	.enabled_uarts = 1,
 };
 
+static struct omap_lcd_config ams_delta_lcd_config __initdata = {
+	.panel_name	= "ams-delta",
+	.ctrl_name	= "internal",
+};
+
 static struct omap_board_config_kernel ams_delta_config[] = {
+	{ OMAP_TAG_LCD,		&ams_delta_lcd_config },
 	{ OMAP_TAG_UART,	&ams_delta_uart_config },
 };
 
diff -ruNp linux-2.6.15-e3-01/drivers/video/omap/lcd_ams_delta.c linux-2.6.15-e3-02/drivers/video/omap/lcd_ams_delta.c
--- linux-2.6.15-e3-01/drivers/video/omap/lcd_ams_delta.c	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.15-e3-02/drivers/video/omap/lcd_ams_delta.c	2006-03-01 18:43:21.000000000 +0000
@@ -0,0 +1,119 @@
+/*
+ * File: drivers/video/omap/lcd_ams_delta.c
+ * 
+ * Based on drivers/video/omap/lcd_inn1510.c
+ *
+ * LCD panel support for the Amstrad E3 (Delta) videophone.
+ *
+ * Copyright (C) 2006 Jonathan McDowell <noodles@earth.li>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#include <linux/module.h>
+
+#include <asm/delay.h>
+#include <asm/io.h>
+
+#include <asm/arch/fpga.h>
+#include <asm/arch/omapfb.h>
+#include <asm/arch/board-ams-delta.h>
+
+/* #define OMAPFB_DBG 1 */
+
+#include "debug.h"
+
+static int ams_delta_panel_init(struct omapfb_device *fbdev)
+{
+	DBGENTER(1);
+	DBGLEAVE(1);
+	return 0;
+}
+
+static void ams_delta_panel_cleanup(void)
+{
+	DBGENTER(1);
+	DBGLEAVE(1);
+}
+
+#define PWL_BASE	0xFFFB5800
+#define PWL_LEVEL	(PWL_BASE + 0x0000)
+#define PWL_CTRL	(PWL_BASE + 0x0004)
+
+static int ams_delta_panel_enable(void)
+{
+	u32 val;
+
+	DBGENTER(1);
+
+	val = omap_readl(ULPD_CLOCK_CTRL);
+	val |= 4;
+	omap_writel(val, ULPD_CLOCK_CTRL);
+
+	udelay(100);
+
+	ams_delta_latch2_write(AMS_DELTA_LATCH2_LCD_NDISP,
+				AMS_DELTA_LATCH2_LCD_NDISP);
+
+	ams_delta_latch2_write(AMS_DELTA_LATCH2_LCD_VBLEN,
+				AMS_DELTA_LATCH2_LCD_VBLEN);
+
+	omap_writeb(1, PWL_CTRL);
+	omap_writeb(112, PWL_LEVEL);
+
+	DBGLEAVE(1);
+	return 0;
+}
+
+static void ams_delta_panel_disable(void)
+{
+	DBGENTER(1);
+
+	ams_delta_latch2_write(AMS_DELTA_LATCH2_LCD_NDISP, 0);
+	ams_delta_latch2_write(AMS_DELTA_LATCH2_LCD_VBLEN, 0);
+
+	DBGLEAVE(1);
+}
+
+static unsigned long ams_delta_panel_get_caps(void)
+{
+	return 0;
+}
+
+struct lcd_panel ams_delta_panel = {
+	.name		= "ams-delta",
+	.config		= 0,
+
+	.bpp		= 16,
+	.data_lines	= 16,
+	.x_res		= 480,
+	.y_res		= 320,
+	.pixel_clock	= 4687,
+	.hsw		= 3,
+	.hfp		= 1,
+	.hbp		= 1,
+	.vsw		= 1,
+	.vfp		= 0,
+	.vbp		= 0,
+	.pcd		= 0,
+	.acb		= 37,
+
+	.init		= ams_delta_panel_init,
+	.cleanup	= ams_delta_panel_cleanup,
+	.enable		= ams_delta_panel_enable,
+	.disable	= ams_delta_panel_disable,
+	.get_caps	= ams_delta_panel_get_caps,
+};
+
diff -ruNp linux-2.6.15-e3-01/drivers/video/omap/lcdc.c linux-2.6.15-e3-02/drivers/video/omap/lcdc.c
--- linux-2.6.15-e3-01/drivers/video/omap/lcdc.c	2006-03-03 18:19:17.759071000 +0000
+++ linux-2.6.15-e3-02/drivers/video/omap/lcdc.c	2006-03-04 15:02:53.424375750 +0000
@@ -596,6 +596,8 @@ static int omap_lcdc_init(struct omapfb_
 	rate = clk_get_rate(tc_ck);
 	clk_put(tc_ck);
 
+	if (machine_is_ams_delta())
+		rate /= 4;
 	if (machine_is_omap_h3())
 		rate /= 3;
 	r = clk_set_rate(omap_lcdc.lcd_ck, rate);
diff -ruNp linux-2.6.15-e3-01/drivers/video/omap/Makefile linux-2.6.15-e3-02/drivers/video/omap/Makefile
--- linux-2.6.15-e3-01/drivers/video/omap/Makefile	2006-03-03 18:19:17.739070000 +0000
+++ linux-2.6.15-e3-02/drivers/video/omap/Makefile	2006-03-04 15:00:52.256803250 +0000
@@ -17,6 +17,7 @@ objs-y$(CONFIG_MACH_OMAP_H4) += lcd_h4.o
 objs-y$(CONFIG_MACH_OMAP_H3) += lcd_h3.o
 objs-y$(CONFIG_MACH_OMAP_H2) += lcd_h2.o
 objs-y$(CONFIG_MACH_OMAP_PALMTE) += lcd_palmte.o
+objs-y$(CONFIG_MACH_AMS_DELTA) += lcd_ams_delta.o
 objs-$(CONFIG_ARCH_OMAP16XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1610.o
 objs-$(CONFIG_ARCH_OMAP15XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1510.o
 objs-y$(CONFIG_MACH_OMAP_OSK) += lcd_osk.o
diff -ruNp linux-2.6.15-e3-01/drivers/video/omap/omapfb_main.c linux-2.6.15-e3-02/drivers/video/omap/omapfb_main.c
--- linux-2.6.15-e3-01/drivers/video/omap/omapfb_main.c	2006-03-03 18:19:17.771072000 +0000
+++ linux-2.6.15-e3-02/drivers/video/omap/omapfb_main.c	2006-03-04 15:01:51.212487750 +0000
@@ -80,6 +80,7 @@ static struct caps_table_struct {
  * LCD panel
  * ---------------------------------------------------------------------------
  */
+extern struct lcd_panel ams_delta_panel;
 extern struct lcd_panel h4_panel;
 extern struct lcd_panel h3_panel;
 extern struct lcd_panel h2_panel;
@@ -109,6 +110,9 @@ static struct lcd_panel *panels[] = {
 #ifdef CONFIG_MACH_OMAP_PALMTE
 	&palmte_panel,
 #endif
+#ifdef CONFIG_MACH_AMS_DELTA
+	&ams_delta_panel,
+#endif
 
 #ifdef CONFIG_MACH_OMAP_INNOVATOR
 

