diff options
author | Pete Popov <ppopov@embeddedalley.com> | 2005-09-16 20:38:10 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2005-10-29 14:32:24 -0400 |
commit | d6460827af0763dc2f4a5cf0455cbf1e3a9ccb77 (patch) | |
tree | eeac9842013ab85276fff3ee64928c9c4cd1fd2c /drivers/pcmcia/au1000_db1x00.c | |
parent | efe29c0f34dc3ee3511e46458f335edb7ee50327 (diff) |
Updated pcmcia driver with pb1200 and db1200 support.
Updated db1200_defconfig so pcmcia is enabled by default.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'drivers/pcmcia/au1000_db1x00.c')
-rw-r--r-- | drivers/pcmcia/au1000_db1x00.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/drivers/pcmcia/au1000_db1x00.c b/drivers/pcmcia/au1000_db1x00.c index 42cf8bfbcc98..24cfee1a412c 100644 --- a/drivers/pcmcia/au1000_db1x00.c +++ b/drivers/pcmcia/au1000_db1x00.c | |||
@@ -40,7 +40,15 @@ | |||
40 | #include <asm/irq.h> | 40 | #include <asm/irq.h> |
41 | #include <asm/signal.h> | 41 | #include <asm/signal.h> |
42 | #include <asm/mach-au1x00/au1000.h> | 42 | #include <asm/mach-au1x00/au1000.h> |
43 | #include <asm/mach-db1x00/db1x00.h> | 43 | |
44 | #if defined(CONFIG_MIPS_DB1200) | ||
45 | #include <db1200.h> | ||
46 | #elif defined(CONFIG_MIPS_PB1200) | ||
47 | #include <pb1200.h> | ||
48 | #else | ||
49 | #include <asm/mach-db1x00/db1x00.h> | ||
50 | static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR; | ||
51 | #endif | ||
44 | 52 | ||
45 | #include "au1000_generic.h" | 53 | #include "au1000_generic.h" |
46 | 54 | ||
@@ -50,7 +58,6 @@ | |||
50 | #define debug(x,args...) | 58 | #define debug(x,args...) |
51 | #endif | 59 | #endif |
52 | 60 | ||
53 | static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR; | ||
54 | 61 | ||
55 | struct au1000_pcmcia_socket au1000_pcmcia_socket[PCMCIA_NUM_SOCKS]; | 62 | struct au1000_pcmcia_socket au1000_pcmcia_socket[PCMCIA_NUM_SOCKS]; |
56 | extern int au1x00_pcmcia_socket_probe(struct device *, struct pcmcia_low_level *, int, int); | 63 | extern int au1x00_pcmcia_socket_probe(struct device *, struct pcmcia_low_level *, int, int); |
@@ -59,6 +66,8 @@ static int db1x00_pcmcia_hw_init(struct au1000_pcmcia_socket *skt) | |||
59 | { | 66 | { |
60 | #ifdef CONFIG_MIPS_DB1550 | 67 | #ifdef CONFIG_MIPS_DB1550 |
61 | skt->irq = skt->nr ? AU1000_GPIO_5 : AU1000_GPIO_3; | 68 | skt->irq = skt->nr ? AU1000_GPIO_5 : AU1000_GPIO_3; |
69 | #elif defined(CONFIG_MIPS_DB1200) || defined(CONFIG_MIPS_PB1200) | ||
70 | skt->irq = skt->nr ? BOARD_PC1_INT : BOARD_PC0_INT; | ||
62 | #else | 71 | #else |
63 | skt->irq = skt->nr ? AU1000_GPIO_5 : AU1000_GPIO_2; | 72 | skt->irq = skt->nr ? AU1000_GPIO_5 : AU1000_GPIO_2; |
64 | #endif | 73 | #endif |
@@ -85,11 +94,19 @@ db1x00_pcmcia_socket_state(struct au1000_pcmcia_socket *skt, struct pcmcia_state | |||
85 | switch (skt->nr) { | 94 | switch (skt->nr) { |
86 | case 0: | 95 | case 0: |
87 | vs = bcsr->status & 0x3; | 96 | vs = bcsr->status & 0x3; |
97 | #if defined(CONFIG_MIPS_DB1200) || defined(CONFIG_MIPS_PB1200) | ||
98 | inserted = BOARD_CARD_INSERTED(0); | ||
99 | #else | ||
88 | inserted = !(bcsr->status & (1<<4)); | 100 | inserted = !(bcsr->status & (1<<4)); |
101 | #endif | ||
89 | break; | 102 | break; |
90 | case 1: | 103 | case 1: |
91 | vs = (bcsr->status & 0xC)>>2; | 104 | vs = (bcsr->status & 0xC)>>2; |
105 | #if defined(CONFIG_MIPS_DB1200) || defined(CONFIG_MIPS_PB1200) | ||
106 | inserted = BOARD_CARD_INSERTED(1); | ||
107 | #else | ||
92 | inserted = !(bcsr->status & (1<<5)); | 108 | inserted = !(bcsr->status & (1<<5)); |
109 | #endif | ||
93 | break; | 110 | break; |
94 | default:/* should never happen */ | 111 | default:/* should never happen */ |
95 | return; | 112 | return; |