Fixed tools/env utilities
[u-boot-openmoko/mini2440.git] / board / fads / pcmcia.c
blob57a24543a854d0eef3e948883df373dcd1ade663
1 #include <common.h>
2 #include <mpc8xx.h>
3 #include <pcmcia.h>
5 #undef CONFIG_PCMCIA
7 #if defined(CONFIG_CMD_PCMCIA)
8 #define CONFIG_PCMCIA
9 #endif
11 #if defined(CONFIG_CMD_IDE) && defined(CONFIG_IDE_8xx_PCCARD)
12 #define CONFIG_PCMCIA
13 #endif
15 #ifdef CONFIG_PCMCIA
17 #ifdef CONFIG_ADS
18 #define PCMCIA_BOARD_MSG "ADS"
19 #else
20 #define PCMCIA_BOARD_MSG "FADS"
21 #endif
23 int pcmcia_voltage_set(int slot, int vcc, int vpp)
25 u_long reg = 0;
27 switch(vpp) {
28 case 0: reg = 0; break;
29 case 50: reg = 1; break;
30 case 120: reg = 2; break;
31 default: return 1;
34 switch(vcc) {
35 case 0: reg = 0; break;
36 #ifdef CONFIG_ADS
37 case 50: reg = BCSR1_PCCVCCON; break;
38 #endif
39 #ifdef CONFIG_FADS
40 case 33: reg = BCSR1_PCCVCC0 | BCSR1_PCCVCC1; break;
41 case 50: reg = BCSR1_PCCVCC1; break;
42 #endif
43 default: return 1;
46 /* first, turn off all power */
48 #ifdef CONFIG_ADS
49 *((uint *)BCSR1) |= BCSR1_PCCVCCON;
50 #endif
51 #ifdef CONFIG_FADS
52 *((uint *)BCSR1) &= ~(BCSR1_PCCVCC0 | BCSR1_PCCVCC1);
53 #endif
54 *((uint *)BCSR1) &= ~BCSR1_PCCVPP_MASK;
56 /* enable new powersettings */
58 #ifdef CONFIG_ADS
59 *((uint *)BCSR1) &= ~reg;
60 #endif
61 #ifdef CONFIG_FADS
62 *((uint *)BCSR1) |= reg;
63 #endif
65 *((uint *)BCSR1) |= reg << 20;
67 return 0;
70 int pcmcia_hardware_enable(int slot)
72 *((uint *)BCSR1) &= ~BCSR1_PCCEN;
73 return 0;
76 #if defined(CONFIG_CMD_PCMCIA)
77 int pcmcia_hardware_disable(int slot)
79 *((uint *)BCSR1) &= ~BCSR1_PCCEN;
80 return 0;
82 #endif
84 #endif /* CONFIG_PCMCIA */