2 * linux/include/asm/arch/pcmcia.h
4 * Copyright (C) 2000 John G Dorsey <john+@cs.cmu.edu>
6 * This file contains definitions for the low-level SA-1100 kernel PCMCIA
7 * interface. Please see linux/Documentation/arm/SA1100/PCMCIA for details.
9 #ifndef _ASM_ARCH_PCMCIA
10 #define _ASM_ARCH_PCMCIA
12 /* Ideally, we'd support up to MAX_SOCK sockets, but the SA-1100 only
13 * has support for two. This shows up in lots of hardwired ways, such
14 * as the fact that MECR only has enough bits to configure two sockets.
15 * Since it's so entrenched in the hardware, limiting the software
16 * in this way doesn't seem too terrible.
18 #define SA1100_PCMCIA_MAX_SOCK (2)
21 void (*handler)(int irq, void *dev, struct pt_regs *regs);
34 struct pcmcia_state_array {
36 struct pcmcia_state *state;
39 struct pcmcia_configure {
49 struct pcmcia_irq_info {
54 struct pcmcia_low_level {
55 int (*init)(struct pcmcia_init *);
56 int (*shutdown)(void);
57 int (*socket_state)(struct pcmcia_state_array *);
58 int (*get_irq_info)(struct pcmcia_irq_info *);
59 int (*configure_socket)(const struct pcmcia_configure *);
62 * Enable card status IRQs on (re-)initialisation. This can
63 * be called at initialisation, power management event, or
66 int (*socket_init)(int sock);
69 * Disable card status IRQs and PCMCIA bus on suspend.
71 int (*socket_suspend)(int sock);
74 extern struct pcmcia_low_level *pcmcia_low_level;