diff options
Diffstat (limited to 'drivers/pcmcia')
-rw-r--r-- | drivers/pcmcia/Makefile | 2 | ||||
-rw-r--r-- | drivers/pcmcia/au1000_db1x00.c | 21 | ||||
-rw-r--r-- | drivers/pcmcia/au1000_generic.c | 8 | ||||
-rw-r--r-- | drivers/pcmcia/au1000_generic.h | 4 |
4 files changed, 24 insertions, 11 deletions
diff --git a/drivers/pcmcia/Makefile b/drivers/pcmcia/Makefile index a41fbb38fdcb..77ecee7f987b 100644 --- a/drivers/pcmcia/Makefile +++ b/drivers/pcmcia/Makefile | |||
@@ -42,9 +42,11 @@ pxa2xx_core-y += soc_common.o pxa2xx_base.o | |||
42 | au1x00_ss-y += au1000_generic.o | 42 | au1x00_ss-y += au1000_generic.o |
43 | au1x00_ss-$(CONFIG_MIPS_PB1000) += au1000_pb1x00.o | 43 | au1x00_ss-$(CONFIG_MIPS_PB1000) += au1000_pb1x00.o |
44 | au1x00_ss-$(CONFIG_MIPS_PB1100) += au1000_pb1x00.o | 44 | au1x00_ss-$(CONFIG_MIPS_PB1100) += au1000_pb1x00.o |
45 | au1x00_ss-$(CONFIG_MIPS_PB1200) += au1000_db1x00.o | ||
45 | au1x00_ss-$(CONFIG_MIPS_PB1500) += au1000_pb1x00.o | 46 | au1x00_ss-$(CONFIG_MIPS_PB1500) += au1000_pb1x00.o |
46 | au1x00_ss-$(CONFIG_MIPS_DB1000) += au1000_db1x00.o | 47 | au1x00_ss-$(CONFIG_MIPS_DB1000) += au1000_db1x00.o |
47 | au1x00_ss-$(CONFIG_MIPS_DB1100) += au1000_db1x00.o | 48 | au1x00_ss-$(CONFIG_MIPS_DB1100) += au1000_db1x00.o |
49 | au1x00_ss-$(CONFIG_MIPS_DB1200) += au1000_db1x00.o | ||
48 | au1x00_ss-$(CONFIG_MIPS_DB1500) += au1000_db1x00.o | 50 | au1x00_ss-$(CONFIG_MIPS_DB1500) += au1000_db1x00.o |
49 | au1x00_ss-$(CONFIG_MIPS_DB1550) += au1000_db1x00.o | 51 | au1x00_ss-$(CONFIG_MIPS_DB1550) += au1000_db1x00.o |
50 | au1x00_ss-$(CONFIG_MIPS_XXS1500) += au1000_xxs1500.o | 52 | au1x00_ss-$(CONFIG_MIPS_XXS1500) += au1000_xxs1500.o |
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; |
diff --git a/drivers/pcmcia/au1000_generic.c b/drivers/pcmcia/au1000_generic.c index d90a634cebf5..ba48cef3a9dc 100644 --- a/drivers/pcmcia/au1000_generic.c +++ b/drivers/pcmcia/au1000_generic.c | |||
@@ -490,7 +490,7 @@ int au1x00_drv_pcmcia_remove(struct device *dev) | |||
490 | flush_scheduled_work(); | 490 | flush_scheduled_work(); |
491 | skt->ops->hw_shutdown(skt); | 491 | skt->ops->hw_shutdown(skt); |
492 | au1x00_pcmcia_config_skt(skt, &dead_socket); | 492 | au1x00_pcmcia_config_skt(skt, &dead_socket); |
493 | iounmap(skt->virt_io); | 493 | iounmap(skt->virt_io + (u32)mips_io_port_base); |
494 | skt->virt_io = NULL; | 494 | skt->virt_io = NULL; |
495 | } | 495 | } |
496 | 496 | ||
@@ -528,10 +528,6 @@ static struct device_driver au1x00_pcmcia_driver = { | |||
528 | .resume = pcmcia_socket_dev_resume, | 528 | .resume = pcmcia_socket_dev_resume, |
529 | }; | 529 | }; |
530 | 530 | ||
531 | static struct platform_device au1x00_device = { | ||
532 | .name = "au1x00-pcmcia", | ||
533 | .id = 0, | ||
534 | }; | ||
535 | 531 | ||
536 | /* au1x00_pcmcia_init() | 532 | /* au1x00_pcmcia_init() |
537 | * | 533 | * |
@@ -545,7 +541,6 @@ static int __init au1x00_pcmcia_init(void) | |||
545 | int error = 0; | 541 | int error = 0; |
546 | if ((error = driver_register(&au1x00_pcmcia_driver))) | 542 | if ((error = driver_register(&au1x00_pcmcia_driver))) |
547 | return error; | 543 | return error; |
548 | platform_device_register(&au1x00_device); | ||
549 | return error; | 544 | return error; |
550 | } | 545 | } |
551 | 546 | ||
@@ -556,7 +551,6 @@ static int __init au1x00_pcmcia_init(void) | |||
556 | static void __exit au1x00_pcmcia_exit(void) | 551 | static void __exit au1x00_pcmcia_exit(void) |
557 | { | 552 | { |
558 | driver_unregister(&au1x00_pcmcia_driver); | 553 | driver_unregister(&au1x00_pcmcia_driver); |
559 | platform_device_unregister(&au1x00_device); | ||
560 | } | 554 | } |
561 | 555 | ||
562 | module_init(au1x00_pcmcia_init); | 556 | module_init(au1x00_pcmcia_init); |
diff --git a/drivers/pcmcia/au1000_generic.h b/drivers/pcmcia/au1000_generic.h index d5122b1ea94b..b0e7908392a7 100644 --- a/drivers/pcmcia/au1000_generic.h +++ b/drivers/pcmcia/au1000_generic.h | |||
@@ -44,13 +44,13 @@ | |||
44 | /* pcmcia socket 1 needs external glue logic so the memory map | 44 | /* pcmcia socket 1 needs external glue logic so the memory map |
45 | * differs from board to board. | 45 | * differs from board to board. |
46 | */ | 46 | */ |
47 | #if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_PB1100) || defined(CONFIG_MIPS_PB1500) || defined(CONFIG_MIPS_PB1550) | 47 | #if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_PB1100) || defined(CONFIG_MIPS_PB1500) || defined(CONFIG_MIPS_PB1550) || defined(CONFIG_MIPS_PB1200) |
48 | #define AU1X_SOCK1_IO 0xF08000000 | 48 | #define AU1X_SOCK1_IO 0xF08000000 |
49 | #define AU1X_SOCK1_PHYS_ATTR 0xF48000000 | 49 | #define AU1X_SOCK1_PHYS_ATTR 0xF48000000 |
50 | #define AU1X_SOCK1_PHYS_MEM 0xF88000000 | 50 | #define AU1X_SOCK1_PHYS_MEM 0xF88000000 |
51 | #define AU1X_SOCK1_PSEUDO_PHYS_ATTR 0xF4800000 | 51 | #define AU1X_SOCK1_PSEUDO_PHYS_ATTR 0xF4800000 |
52 | #define AU1X_SOCK1_PSEUDO_PHYS_MEM 0xF8800000 | 52 | #define AU1X_SOCK1_PSEUDO_PHYS_MEM 0xF8800000 |
53 | #elif defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || defined(CONFIG_MIPS_DB1500) || defined(CONFIG_MIPS_DB1550) | 53 | #elif defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || defined(CONFIG_MIPS_DB1500) || defined(CONFIG_MIPS_DB1550) || defined(CONFIG_MIPS_DB1200) |
54 | #define AU1X_SOCK1_IO 0xF04000000 | 54 | #define AU1X_SOCK1_IO 0xF04000000 |
55 | #define AU1X_SOCK1_PHYS_ATTR 0xF44000000 | 55 | #define AU1X_SOCK1_PHYS_ATTR 0xF44000000 |
56 | #define AU1X_SOCK1_PHYS_MEM 0xF84000000 | 56 | #define AU1X_SOCK1_PHYS_MEM 0xF84000000 |