pxa2xx pcmcia - stargate 2 use gpio array.
[linux-2.6.git] / drivers / pcmcia / soc_common.h
index 38c6737..9daa736 100644 (file)
@@ -10,9 +10,8 @@
 #define _ASM_ARCH_PCMCIA
 
 /* include the world */
+#include <linux/clk.h>
 #include <linux/cpufreq.h>
-#include <pcmcia/cs_types.h>
-#include <pcmcia/cs.h>
 #include <pcmcia/ss.h>
 #include <pcmcia/cistpl.h>
 
@@ -30,14 +29,13 @@ struct soc_pcmcia_socket {
        /*
         * Info from low level handler
         */
-       struct device           *dev;
        unsigned int            nr;
-       unsigned int            irq;
+       struct clk              *clk;
 
        /*
         * Core PCMCIA state
         */
-       struct pcmcia_low_level *ops;
+       const struct pcmcia_low_level *ops;
 
        unsigned int            status;
        socket_state_t          cs_state;
@@ -58,6 +56,12 @@ struct soc_pcmcia_socket {
        struct list_head        node;
 };
 
+struct skt_dev_info {
+       int nskt;
+       struct clk *clk;
+       struct soc_pcmcia_socket skt[0];
+};
+
 struct pcmcia_state {
   unsigned detect: 1,
             ready: 1,
@@ -130,10 +134,8 @@ extern void soc_pcmcia_enable_irqs(struct soc_pcmcia_socket *skt, struct pcmcia_
 extern void soc_common_pcmcia_get_timing(struct soc_pcmcia_socket *, struct soc_pcmcia_timing *);
 
 
-extern struct list_head soc_pcmcia_sockets;
-
-extern int soc_common_drv_pcmcia_probe(struct device *dev, struct pcmcia_low_level *ops, int first, int nr);
-extern int soc_common_drv_pcmcia_remove(struct device *dev);
+void soc_pcmcia_remove_one(struct soc_pcmcia_socket *skt);
+int soc_pcmcia_add_one(struct soc_pcmcia_socket *skt);
 
 
 #ifdef CONFIG_PCMCIA_DEBUG