diff -Nur linux-2.6.21.1/arch/arm/mach-ixp4xx/pronghornmetro-setup.c linux-2.6.21.1-owrt/arch/arm/mach-ixp4xx/pronghornmetro-setup.c
--- linux-2.6.21.1/arch/arm/mach-ixp4xx/pronghornmetro-setup.c	2007-06-10 14:31:27.000000000 +0200
+++ linux-2.6.21.1-owrt/arch/arm/mach-ixp4xx/pronghornmetro-setup.c	2007-06-10 14:36:23.000000000 +0200
@@ -77,6 +77,35 @@
 	.resource	= &pronghornmetro_uart_resource,
 };
 
+static struct resource pronghornmetro_pata_resources[] = {
+	{
+		.flags	= IORESOURCE_MEM
+	},
+	{
+		.flags	= IORESOURCE_MEM,
+	},
+	{
+		.name	= "intrq",
+		.start	= IRQ_IXP4XX_GPIO0,
+		.end	= IRQ_IXP4XX_GPIO0,
+		.flags	= IORESOURCE_IRQ,
+	},
+};
+
+static struct ixp4xx_pata_data pronghornmetro_pata_data = {
+	.cs0_bits	= 0xbfff0043,
+	.cs1_bits	= 0xbfff0043,
+};
+
+static struct platform_device pronghornmetro_pata = {
+	.name			= "pata_ixp4xx_cf",
+	.id			= 0,
+	.dev.platform_data      = &pronghornmetro_pata_data,
+	.num_resources		= ARRAY_SIZE(pronghornmetro_pata_resources),
+	.resource		= pronghornmetro_pata_resources,
+};
+
+
 static struct resource res_mac0 = {
 	.start		= IXP4XX_EthB_BASE_PHYS,
 	.end		= IXP4XX_EthB_BASE_PHYS + 0x1ff,
@@ -165,6 +194,17 @@
 
 	platform_add_devices(pronghornmetro_devices, ARRAY_SIZE(pronghornmetro_devices));
 
+	pronghornmetro_pata_resources[0].start = IXP4XX_EXP_BUS_BASE(1);
+	pronghornmetro_pata_resources[0].end = IXP4XX_EXP_BUS_END(1);
+
+	pronghornmetro_pata_resources[1].start = IXP4XX_EXP_BUS_BASE(2);
+	pronghornmetro_pata_resources[1].end = IXP4XX_EXP_BUS_END(2);
+
+	pronghornmetro_pata_data.cs0_cfg = IXP4XX_EXP_CS1;
+	pronghornmetro_pata_data.cs1_cfg = IXP4XX_EXP_CS2;
+
+	platform_device_register(&pronghornmetro_pata);
+
 	register_mtd_user(&pronghornmetro_flash_notifier);
 }
 
