mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 12:08:19 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			85 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #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 */
 |