]> git.ipfire.org Git - people/ms/u-boot.git/blob - board/fads/pcmcia.c
Big white-space cleanup.
[people/ms/u-boot.git] / board / fads / pcmcia.c
1 #include <common.h>
2 #include <mpc8xx.h>
3 #include <pcmcia.h>
4
5 #undef CONFIG_PCMCIA
6
7 #if defined(CONFIG_CMD_PCMCIA)
8 #define CONFIG_PCMCIA
9 #endif
10
11 #if defined(CONFIG_CMD_IDE) && defined(CONFIG_IDE_8xx_PCCARD)
12 #define CONFIG_PCMCIA
13 #endif
14
15 #ifdef CONFIG_PCMCIA
16
17 #ifdef CONFIG_ADS
18 #define PCMCIA_BOARD_MSG "ADS"
19 #else
20 #define PCMCIA_BOARD_MSG "FADS"
21 #endif
22
23 int pcmcia_voltage_set(int slot, int vcc, int vpp)
24 {
25 u_long reg = 0;
26
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;
32 }
33
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;
44 }
45
46 /* first, turn off all power */
47
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;
55
56 /* enable new powersettings */
57
58 #ifdef CONFIG_ADS
59 *((uint *)BCSR1) &= ~reg;
60 #endif
61 #ifdef CONFIG_FADS
62 *((uint *)BCSR1) |= reg;
63 #endif
64
65 *((uint *)BCSR1) |= reg << 20;
66
67 return 0;
68 }
69
70 int pcmcia_hardware_enable(int slot)
71 {
72 *((uint *)BCSR1) &= ~BCSR1_PCCEN;
73 return 0;
74 }
75
76 #if defined(CONFIG_CMD_PCMCIA)
77 int pcmcia_hardware_disable(int slot)
78 {
79 *((uint *)BCSR1) &= ~BCSR1_PCCEN;
80 return 0;
81 }
82 #endif
83
84 #endif /* CONFIG_PCMCIA */