5 #include <linux/init.h>
6 #include <linux/slab.h>
7 #include <linux/platform_device.h>
9 /* register a pcmcia socket */
10 int __init db1x_register_pcmcia_socket(unsigned long pseudo_attr_start,
11 unsigned long pseudo_attr_end,
12 unsigned long pseudo_mem_start,
13 unsigned long pseudo_mem_end,
14 unsigned long pseudo_io_start,
15 unsigned long pseudo_io_end,
24 struct platform_device *pd;
32 sr = kzalloc(sizeof(struct resource) * cnt, GFP_KERNEL);
36 pd = platform_device_alloc("db1xxx_pcmcia", id);
42 sr[0].name = "pseudo-attr";
43 sr[0].flags = IORESOURCE_MEM;
44 sr[0].start = pseudo_attr_start;
45 sr[0].end = pseudo_attr_end;
47 sr[1].name = "pseudo-mem";
48 sr[1].flags = IORESOURCE_MEM;
49 sr[1].start = pseudo_mem_start;
50 sr[1].end = pseudo_mem_end;
52 sr[2].name = "pseudo-io";
53 sr[2].flags = IORESOURCE_MEM;
54 sr[2].start = pseudo_io_start;
55 sr[2].end = pseudo_io_end;
57 sr[3].name = "insert";
58 sr[3].flags = IORESOURCE_IRQ;
59 sr[3].start = sr[3].end = cd_irq;
62 sr[4].flags = IORESOURCE_IRQ;
63 sr[4].start = sr[4].end = card_irq;
67 sr[i].name = "insert";
68 sr[i].flags = IORESOURCE_IRQ;
69 sr[i].start = sr[i].end = cd_irq;
74 sr[i].flags = IORESOURCE_IRQ;
75 sr[i].start = sr[i].end = eject_irq;
79 pd->num_resources = cnt;
81 ret = platform_device_add(pd);
85 platform_device_put(pd);