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);
}
|