add support for the CF slot on the Pronghorn Metro - needs testing
[openwrt/svn-archive/archive.git] / target / linux / ixp4xx-2.6 / patches / 430-pronghorn_metro_cf.patch
1 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
2 --- linux-2.6.21.1/arch/arm/mach-ixp4xx/pronghornmetro-setup.c 2007-06-10 14:31:27.000000000 +0200
3 +++ linux-2.6.21.1-owrt/arch/arm/mach-ixp4xx/pronghornmetro-setup.c 2007-06-10 14:36:23.000000000 +0200
4 @@ -77,6 +77,35 @@
5 .resource = &pronghornmetro_uart_resource,
6 };
7
8 +static struct resource pronghornmetro_pata_resources[] = {
9 + {
10 + .flags = IORESOURCE_MEM
11 + },
12 + {
13 + .flags = IORESOURCE_MEM,
14 + },
15 + {
16 + .name = "intrq",
17 + .start = IRQ_IXP4XX_GPIO0,
18 + .end = IRQ_IXP4XX_GPIO0,
19 + .flags = IORESOURCE_IRQ,
20 + },
21 +};
22 +
23 +static struct ixp4xx_pata_data pronghornmetro_pata_data = {
24 + .cs0_bits = 0xbfff0043,
25 + .cs1_bits = 0xbfff0043,
26 +};
27 +
28 +static struct platform_device pronghornmetro_pata = {
29 + .name = "pata_ixp4xx_cf",
30 + .id = 0,
31 + .dev.platform_data = &pronghornmetro_pata_data,
32 + .num_resources = ARRAY_SIZE(pronghornmetro_pata_resources),
33 + .resource = pronghornmetro_pata_resources,
34 +};
35 +
36 +
37 static struct resource res_mac0 = {
38 .start = IXP4XX_EthB_BASE_PHYS,
39 .end = IXP4XX_EthB_BASE_PHYS + 0x1ff,
40 @@ -165,6 +194,17 @@
41
42 platform_add_devices(pronghornmetro_devices, ARRAY_SIZE(pronghornmetro_devices));
43
44 + pronghornmetro_pata_resources[0].start = IXP4XX_EXP_BUS_BASE(1);
45 + pronghornmetro_pata_resources[0].end = IXP4XX_EXP_BUS_END(1);
46 +
47 + pronghornmetro_pata_resources[1].start = IXP4XX_EXP_BUS_BASE(2);
48 + pronghornmetro_pata_resources[1].end = IXP4XX_EXP_BUS_END(2);
49 +
50 + pronghornmetro_pata_data.cs0_cfg = IXP4XX_EXP_CS1;
51 + pronghornmetro_pata_data.cs1_cfg = IXP4XX_EXP_CS2;
52 +
53 + platform_device_register(&pronghornmetro_pata);
54 +
55 register_mtd_user(&pronghornmetro_flash_notifier);
56 }
57