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