@ -23,6 +23,7 @@
# include <i2c.h>
# include <asm/imx-common/mxc_i2c.h>
# include <asm/arch/crm_regs.h>
# include <usb.h>
# include <usb/ehci-fsl.h>
DECLARE_GLOBAL_DATA_PTR ;
@ -111,6 +112,14 @@ static iomux_v3_cfg_t const usdhc3_emmc_pads[] = {
MX7D_PAD_SD3_RESET_B__GPIO6_IO11 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
} ;
static iomux_v3_cfg_t const usb_otg1_pads [ ] = {
MX7D_PAD_GPIO1_IO05__USB_OTG1_PWR | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
} ;
static iomux_v3_cfg_t const usb_otg2_pads [ ] = {
MX7D_PAD_UART3_CTS_B__USB_OTG2_PWR | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
} ;
# define IOX_SDI IMX_GPIO_NR(1, 9)
# define IOX_STCP IMX_GPIO_NR(1, 12)
# define IOX_SHCP IMX_GPIO_NR(1, 13)
@ -511,6 +520,10 @@ int board_early_init_f(void)
setup_iomux_uart ( ) ;
setup_i2c ( 0 , CONFIG_SYS_I2C_SPEED , 0x7f , & i2c_pad_info1 ) ;
imx_iomux_v3_setup_multiple_pads ( usb_otg1_pads ,
ARRAY_SIZE ( usb_otg1_pads ) ) ;
imx_iomux_v3_setup_multiple_pads ( usb_otg2_pads ,
ARRAY_SIZE ( usb_otg2_pads ) ) ;
return 0 ;
}
@ -602,29 +615,11 @@ int checkboard(void)
}
# ifdef CONFIG_USB_EHCI_MX7
static iomux_v3_cfg_t const usb_otg1_pads [ ] = {
MX7D_PAD_GPIO1_IO05__USB_OTG1_PWR | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
} ;
static iomux_v3_cfg_t const usb_otg2_pads [ ] = {
MX7D_PAD_UART3_CTS_B__USB_OTG2_PWR | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
} ;
int board_ehci_hcd_init ( int port )
int board_usb_phy_mode ( int port )
{
switch ( port ) {
case 0 :
imx_iomux_v3_setup_multiple_pads ( usb_otg1_pads ,
ARRAY_SIZE ( usb_otg1_pads ) ) ;
break ;
case 1 :
imx_iomux_v3_setup_multiple_pads ( usb_otg2_pads ,
ARRAY_SIZE ( usb_otg2_pads ) ) ;
break ;
default :
printf ( " MXC USB port %d not yet supported \n " , port ) ;
return - EINVAL ;
}
return 0 ;
if ( port = = 0 )
return USB_INIT_DEVICE ;
else
return USB_INIT_HOST ;
}
# endif