Merge branch 'next'
[u-boot/qq2440-u-boot.git] / drivers / pcmcia / rpx_pcmcia.c
blobc7c425b93cf8c67145c2d5f8c1f08459c262cd0c
1 /* -------------------------------------------------------------------- */
2 /* RPX Boards from Embedded Planet */
3 /* -------------------------------------------------------------------- */
4 #include <common.h>
5 #ifdef CONFIG_8xx
6 #include <mpc8xx.h>
7 #endif
8 #include <pcmcia.h>
10 #undef CONFIG_PCMCIA
12 #if defined(CONFIG_CMD_PCMCIA)
13 #define CONFIG_PCMCIA
14 #endif
16 #if defined(CONFIG_CMD_IDE) && defined(CONFIG_IDE_8xx_PCCARD)
17 #define CONFIG_PCMCIA
18 #endif
20 #if defined(CONFIG_PCMCIA) \
21 && (defined(CONFIG_RPXCLASSIC) || defined(CONFIG_RPXLITE))
23 #define PCMCIA_BOARD_MSG "RPX CLASSIC or RPX LITE"
25 int pcmcia_voltage_set(int slot, int vcc, int vpp)
27 u_long reg = 0;
29 switch(vcc) {
30 case 0: break;
31 case 33: reg |= BCSR1_PCVCTL4; break;
32 case 50: reg |= BCSR1_PCVCTL5; break;
33 default: return 1;
36 switch(vpp) {
37 case 0: break;
38 case 33:
39 case 50:
40 if(vcc == vpp)
41 reg |= BCSR1_PCVCTL6;
42 else
43 return 1;
44 break;
45 case 120:
46 reg |= BCSR1_PCVCTL7;
47 default: return 1;
50 /* first, turn off all power */
51 *((uint *)RPX_CSR_ADDR) &= ~(BCSR1_PCVCTL4 | BCSR1_PCVCTL5
52 | BCSR1_PCVCTL6 | BCSR1_PCVCTL7);
54 /* enable new powersettings */
55 *((uint *)RPX_CSR_ADDR) |= reg;
57 return 0;
60 int pcmcia_hardware_enable (int slot)
62 return 0; /* No hardware to enable */
65 #if defined(CONFIG_CMD_PCMCIA)
66 static int pcmcia_hardware_disable(int slot)
68 return 0; /* No hardware to disable */
70 #endif
73 #endif /* CONFIG_PCMCIA && (CONFIG_RPXCLASSIC || CONFIG_RPXLITE) */