@ -195,16 +195,6 @@ int board_early_init_f(void)
mtdcr ( AHB_TOP , 0x8000004B ) ;
mtdcr ( AHB_BOT , 0x8000004B ) ;
if ( pvr_460ex ( ) ) {
/*
* Configure USB - STP pins as alternate and not GPIO
* It seems to be neccessary to configure the STP pins as GPIO
* input at powerup ( perhaps while USB reset is asserted ) . So
* we configure those pins to their " real " function now .
*/
gpio_config ( 16 , GPIO_OUT , GPIO_ALT1 , GPIO_OUT_1 ) ;
gpio_config ( 19 , GPIO_OUT , GPIO_ALT1 , GPIO_OUT_1 ) ;
}
# endif
return 0 ;
@ -222,6 +212,15 @@ int usb_board_init(void)
val & = ~ ( BCSR_USBCTRL_OTG_RST | BCSR_USBCTRL_HOST_RST ) ;
out_8 ( & bcsr_data - > usb_ctrl , val ) ;
/*
* Configure USB - STP pins as alternate and not GPIO
* It seems to be neccessary to configure the STP pins as GPIO
* input at powerup ( perhaps while USB reset is asserted ) . So
* we configure those pins to their " real " function now .
*/
gpio_config ( 16 , GPIO_OUT , GPIO_ALT1 , GPIO_OUT_1 ) ;
gpio_config ( 19 , GPIO_OUT , GPIO_ALT1 , GPIO_OUT_1 ) ;
return 0 ;
}
@ -236,6 +235,10 @@ int usb_board_stop(void)
val | = ( BCSR_USBCTRL_OTG_RST | BCSR_USBCTRL_HOST_RST ) ;
out_8 ( & bcsr_data - > usb_ctrl , val ) ;
/* Reconfigure USB-STP pins as input */
gpio_config ( 16 , GPIO_IN , GPIO_SEL , GPIO_OUT_0 ) ;
gpio_config ( 19 , GPIO_IN , GPIO_SEL , GPIO_OUT_0 ) ;
return 0 ;
}