diff options
Diffstat (limited to 'drivers/pcmcia/soc_common.h')
| -rw-r--r-- | drivers/pcmcia/soc_common.h | 26 | 
1 files changed, 15 insertions, 11 deletions
diff --git a/drivers/pcmcia/soc_common.h b/drivers/pcmcia/soc_common.h index bbcd5385a22..e6fcbea5b68 100644 --- a/drivers/pcmcia/soc_common.h +++ b/drivers/pcmcia/soc_common.h @@ -10,6 +10,7 @@  #define _ASM_ARCH_PCMCIA  /* include the world */ +#include <linux/clk.h>  #include <linux/cpufreq.h>  #include <pcmcia/ss.h>  #include <pcmcia/cistpl.h> @@ -29,6 +30,7 @@ struct soc_pcmcia_socket {  	 * Info from low level handler  	 */  	unsigned int		nr; +	struct clk		*clk;  	/*  	 * Core PCMCIA state @@ -48,6 +50,16 @@ struct soc_pcmcia_socket {  	struct resource		res_attr;  	void __iomem		*virt_io; +	struct { +		int		gpio; +		unsigned int	irq; +		const char	*name; +	} stat[4]; +#define SOC_STAT_CD		0	/* Card detect */ +#define SOC_STAT_BVD1		1	/* BATDEAD / IOSTSCHG */ +#define SOC_STAT_BVD2		2	/* BATWARN / IOSPKR */ +#define SOC_STAT_RDY		3	/* Ready / Interrupt */ +  	unsigned int		irq_state;  	struct timer_list	poll_timer; @@ -56,6 +68,7 @@ struct soc_pcmcia_socket {  struct skt_dev_info {  	int nskt; +	struct clk *clk;  	struct soc_pcmcia_socket skt[0];  }; @@ -112,25 +125,16 @@ struct pcmcia_low_level {  }; -struct pcmcia_irqs { -	int sock; -	int irq; -	const char *str; -}; -  struct soc_pcmcia_timing {  	unsigned short io;  	unsigned short mem;  	unsigned short attr;  }; -extern int soc_pcmcia_request_irqs(struct soc_pcmcia_socket *skt, struct pcmcia_irqs *irqs, int nr); -extern void soc_pcmcia_free_irqs(struct soc_pcmcia_socket *skt, struct pcmcia_irqs *irqs, int nr); -extern void soc_pcmcia_disable_irqs(struct soc_pcmcia_socket *skt, struct pcmcia_irqs *irqs, int nr); -extern void soc_pcmcia_enable_irqs(struct soc_pcmcia_socket *skt, struct pcmcia_irqs *irqs, int nr);  extern void soc_common_pcmcia_get_timing(struct soc_pcmcia_socket *, struct soc_pcmcia_timing *); - +void soc_pcmcia_init_one(struct soc_pcmcia_socket *skt, +	struct pcmcia_low_level *ops, struct device *dev);  void soc_pcmcia_remove_one(struct soc_pcmcia_socket *skt);  int soc_pcmcia_add_one(struct soc_pcmcia_socket *skt);  | 
