aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ixp4xx/patches/430-pronghorn_metro_cf.patch
blob: be5e7a5f9806cc020ff752bb0b2233e8872c9b91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Index: linux-2.6.21.7/arch/arm/mach-ixp4xx/pronghornmetro-setup.c
===================================================================
--- linux-2.6.21.7.orig/arch/arm/mach-ixp4xx/pronghornmetro-setup.c
+++ linux-2.6.21.7/arch/arm/mach-ixp4xx/pronghornmetro-setup.c
@@ -77,6 +77,35 @@ static struct platform_device pronghornm
 	.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 @@ static void __init pronghornmetro_init(v
 
 	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);
 }