123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #include <common.h>
- #include <mpc8xx.h>
- #include <pcmcia.h>
- #undef CONFIG_PCMCIA
- #if defined(CONFIG_CMD_PCMCIA)
- #define CONFIG_PCMCIA
- #endif
- #if defined(CONFIG_CMD_IDE) && defined(CONFIG_IDE_8xx_PCCARD)
- #define CONFIG_PCMCIA
- #endif
- #ifdef CONFIG_PCMCIA
- #ifdef CONFIG_ADS
- #define PCMCIA_BOARD_MSG "ADS"
- #else
- #define PCMCIA_BOARD_MSG "FADS"
- #endif
- int pcmcia_voltage_set(int slot, int vcc, int vpp)
- {
- u_long reg = 0;
- switch(vpp) {
- case 0: reg = 0; break;
- case 50: reg = 1; break;
- case 120: reg = 2; break;
- default: return 1;
- }
- switch(vcc) {
- case 0: reg = 0; break;
- #ifdef CONFIG_ADS
- case 50: reg = BCSR1_PCCVCCON; break;
- #endif
- #ifdef CONFIG_FADS
- case 33: reg = BCSR1_PCCVCC0 | BCSR1_PCCVCC1; break;
- case 50: reg = BCSR1_PCCVCC1; break;
- #endif
- default: return 1;
- }
- /* first, turn off all power */
- #ifdef CONFIG_ADS
- *((uint *)BCSR1) |= BCSR1_PCCVCCON;
- #endif
- #ifdef CONFIG_FADS
- *((uint *)BCSR1) &= ~(BCSR1_PCCVCC0 | BCSR1_PCCVCC1);
- #endif
- *((uint *)BCSR1) &= ~BCSR1_PCCVPP_MASK;
- /* enable new powersettings */
- #ifdef CONFIG_ADS
- *((uint *)BCSR1) &= ~reg;
- #endif
- #ifdef CONFIG_FADS
- *((uint *)BCSR1) |= reg;
- #endif
- *((uint *)BCSR1) |= reg << 20;
- return 0;
- }
- int pcmcia_hardware_enable(int slot)
- {
- *((uint *)BCSR1) &= ~BCSR1_PCCEN;
- return 0;
- }
- #if defined(CONFIG_CMD_PCMCIA)
- int pcmcia_hardware_disable(int slot)
- {
- *((uint *)BCSR1) &= ~BCSR1_PCCEN;
- return 0;
- }
- #endif
- #endif /* CONFIG_PCMCIA */
|