aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia/pxa2xx_balloon3.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pcmcia/pxa2xx_balloon3.c')
-rw-r--r--drivers/pcmcia/pxa2xx_balloon3.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/pcmcia/pxa2xx_balloon3.c b/drivers/pcmcia/pxa2xx_balloon3.c
index dbbdd0063202..4c3e94c0ae85 100644
--- a/drivers/pcmcia/pxa2xx_balloon3.c
+++ b/drivers/pcmcia/pxa2xx_balloon3.c
@@ -25,6 +25,8 @@
25 25
26#include <mach/balloon3.h> 26#include <mach/balloon3.h>
27 27
28#include <asm/mach-types.h>
29
28#include "soc_common.h" 30#include "soc_common.h"
29 31
30/* 32/*
@@ -39,12 +41,10 @@ static struct pcmcia_irqs irqs[] = {
39static int balloon3_pcmcia_hw_init(struct soc_pcmcia_socket *skt) 41static int balloon3_pcmcia_hw_init(struct soc_pcmcia_socket *skt)
40{ 42{
41 uint16_t ver; 43 uint16_t ver;
42 int ret;
43 static void __iomem *fpga_ver;
44 44
45 ver = __raw_readw(BALLOON3_FPGA_VER); 45 ver = __raw_readw(BALLOON3_FPGA_VER);
46 if (ver > 0x0201) 46 if (ver < 0x4f08)
47 pr_warn("The FPGA code, version 0x%04x, is newer than rel-0.3. " 47 pr_warn("The FPGA code, version 0x%04x, is too old. "
48 "PCMCIA/CF support might be broken in this version!", 48 "PCMCIA/CF support might be broken in this version!",
49 ver); 49 ver);
50 50
@@ -97,8 +97,9 @@ static void balloon3_pcmcia_socket_state(struct soc_pcmcia_socket *skt,
97static int balloon3_pcmcia_configure_socket(struct soc_pcmcia_socket *skt, 97static int balloon3_pcmcia_configure_socket(struct soc_pcmcia_socket *skt,
98 const socket_state_t *state) 98 const socket_state_t *state)
99{ 99{
100 __raw_writew((state->flags & SS_RESET) ? BALLOON3_CF_RESET : 0, 100 __raw_writew(BALLOON3_CF_RESET, BALLOON3_CF_CONTROL_REG |
101 BALLOON3_CF_CONTROL_REG); 101 ((state->flags & SS_RESET) ?
102 BALLOON3_FPGA_SETnCLR : 0));
102 return 0; 103 return 0;
103} 104}
104 105
@@ -128,6 +129,9 @@ static int __init balloon3_pcmcia_init(void)
128{ 129{
129 int ret; 130 int ret;
130 131
132 if (!machine_is_balloon3())
133 return -ENODEV;
134
131 balloon3_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1); 135 balloon3_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1);
132 if (!balloon3_pcmcia_device) 136 if (!balloon3_pcmcia_device)
133 return -ENOMEM; 137 return -ENOMEM;