diff options
Diffstat (limited to 'board/emk/top5200/top5200.c')
| -rw-r--r-- | board/emk/top5200/top5200.c | 28 | 
1 files changed, 18 insertions, 10 deletions
| diff --git a/board/emk/top5200/top5200.c b/board/emk/top5200/top5200.c index 63a4ee469..4508438ca 100644 --- a/board/emk/top5200/top5200.c +++ b/board/emk/top5200/top5200.c @@ -182,21 +182,29 @@ void pci_init_board(void)  #endif  /***************************************************************************** - * provide the PCI Reset Function + * provide the IDE Reset Function   *****************************************************************************/ -#ifdef CFG_CMD_IDE -#define GPIO_PSC1_4	0x01000000ul +#if defined (CFG_CMD_IDE) && defined (CONFIG_IDE_RESET) + +#define GPIO_PSC1_4	0x01000000UL + +void init_ide_reset (void) +{ +	debug ("init_ide_reset\n"); + +    	/* Configure PSC1_4 as GPIO output for ATA reset */ +	*(vu_long *) MPC5XXX_WU_GPIO_ENABLE |= GPIO_PSC1_4; +	*(vu_long *) MPC5XXX_WU_GPIO_DIR    |= GPIO_PSC1_4; +} +  void ide_set_reset (int idereset)  { +	debug ("ide_reset(%d)\n", idereset); +  	if (idereset) {  		*(vu_long *) MPC5XXX_WU_GPIO_DATA &= ~GPIO_PSC1_4;  	} else { -		*(vu_long *) MPC5XXX_WU_GPIO_DATA |= GPIO_PSC1_4; +		*(vu_long *) MPC5XXX_WU_GPIO_DATA |=  GPIO_PSC1_4;  	} - -	/* Configure PSC1_4 as GPIO output for ATA reset */ -	/* (it does not matter we do this every time) */ -	*(vu_long *) MPC5XXX_WU_GPIO_ENABLE |= GPIO_PSC1_4; -	*(vu_long *) MPC5XXX_WU_GPIO_DIR |= GPIO_PSC1_4;  } -#endif +#endif /* defined (CFG_CMD_IDE) && defined (CONFIG_IDE_RESET) */ |