aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/alchemy
diff options
context:
space:
mode:
authorManuel Lauss <manuel.lauss@googlemail.com>2009-10-04 08:55:27 -0400
committerRalf Baechle <ralf@linux-mips.org>2010-02-27 06:52:51 -0500
commit66213b3ccfc770704025ce9465fa3aaedde21b55 (patch)
tree2f74c1819b371926952c9c5b8f98ae808588e728 /arch/mips/alchemy
parent7e50b2b741bb4f9dbddc9f56972ef82a7d4b33ed (diff)
MIPS: PCMCIA: new socket driver for Au1000 demoboards.
New PCMCIA socket driver for all Db/Pb1xxx boards (except Pb1000), which replaces au1000_db1x00.c and (most of) au1000_pb1x00.c. Notable improvements: - supports Db1000, DB/PB1100/1500/1550/1200. - support for carddetect and statuschange IRQs. - pcmcia socket mem/io/attr areas and irqs passed through platform resource information. - doesn't freeze system during card insertion/ejection like the one it replaces. - boardtype is automatically detected using BCSR ID register. Run-tested on the DB1200. Cc: Linux-PCMCIA <linux-pcmcia@lists.infradead.org> Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/alchemy')
-rw-r--r--arch/mips/alchemy/common/platform.c6
-rw-r--r--arch/mips/alchemy/common/setup.c3
2 files changed, 2 insertions, 7 deletions
diff --git a/arch/mips/alchemy/common/platform.c b/arch/mips/alchemy/common/platform.c
index 117f99f70649..2b76a57c4947 100644
--- a/arch/mips/alchemy/common/platform.c
+++ b/arch/mips/alchemy/common/platform.c
@@ -308,11 +308,6 @@ static struct platform_device au1200_mmc1_device = {
308#endif /* #ifndef CONFIG_MIPS_DB1200 */ 308#endif /* #ifndef CONFIG_MIPS_DB1200 */
309#endif /* #ifdef CONFIG_SOC_AU1200 */ 309#endif /* #ifdef CONFIG_SOC_AU1200 */
310 310
311static struct platform_device au1x00_pcmcia_device = {
312 .name = "au1x00-pcmcia",
313 .id = 0,
314};
315
316/* All Alchemy demoboards with I2C have this #define in their headers */ 311/* All Alchemy demoboards with I2C have this #define in their headers */
317#ifdef SMBUS_PSC_BASE 312#ifdef SMBUS_PSC_BASE
318static struct resource pbdb_smbus_resources[] = { 313static struct resource pbdb_smbus_resources[] = {
@@ -334,7 +329,6 @@ static struct platform_device pbdb_smbus_device = {
334static struct platform_device *au1xxx_platform_devices[] __initdata = { 329static struct platform_device *au1xxx_platform_devices[] __initdata = {
335 &au1xx0_uart_device, 330 &au1xx0_uart_device,
336 &au1xxx_usb_ohci_device, 331 &au1xxx_usb_ohci_device,
337 &au1x00_pcmcia_device,
338#ifdef CONFIG_FB_AU1100 332#ifdef CONFIG_FB_AU1100
339 &au1100_lcd_device, 333 &au1100_lcd_device,
340#endif 334#endif
diff --git a/arch/mips/alchemy/common/setup.c b/arch/mips/alchemy/common/setup.c
index 6184baa56786..375984e5c2e6 100644
--- a/arch/mips/alchemy/common/setup.c
+++ b/arch/mips/alchemy/common/setup.c
@@ -107,7 +107,8 @@ phys_t __fixup_bigphys_addr(phys_t phys_addr, phys_t size)
107 * The pseudo address we use is 0xF400 0000. Any address over 107 * The pseudo address we use is 0xF400 0000. Any address over
108 * 0xF400 0000 is a PCMCIA pseudo address. 108 * 0xF400 0000 is a PCMCIA pseudo address.
109 */ 109 */
110 if ((phys_addr >= 0xF4000000) && (phys_addr < 0xFFFFFFFF)) 110 if ((phys_addr >= PCMCIA_ATTR_PSEUDO_PHYS) &&
111 (phys_addr < PCMCIA_PSEUDO_END))
111 return (phys_t)(phys_addr << 4); 112 return (phys_t)(phys_addr << 4);
112 113
113 /* default nop */ 114 /* default nop */