Signed-off-by: Alexander Shiyan <shc_work@xxxxxxx> --- arch/arm/boards/pcm038/pcm038.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/arch/arm/boards/pcm038/pcm038.c b/arch/arm/boards/pcm038/pcm038.c index 4b2fa6c..3aec320 100644 --- a/arch/arm/boards/pcm038/pcm038.c +++ b/arch/arm/boards/pcm038/pcm038.c @@ -48,6 +48,7 @@ #define PCM038_GPIO_FEC_RST (GPIO_PORTC + 30) #define PCM038_GPIO_SPI_CS0 (GPIO_PORTD + 28) +#define PCM038_GPIO_OTG_STP (GPIO_PORTE + 1) static struct fec_platform_data fec_info = { .xcv_type = PHY_INTERFACE_MODE_MII, @@ -186,6 +187,11 @@ static int pcm038_power_init(void) return 0; } +struct imxusb_platformdata pcm038_otg_pdata = { + .mode = IMX_USB_MODE_DEVICE, + .flags = MXC_EHCI_MODE_ULPI | MXC_EHCI_INTERFACE_DIFF_UNI, +}; + static int pcm038_devices_init(void) { int i; @@ -253,7 +259,7 @@ static int pcm038_devices_init(void) PA29_PF_VSYNC, PA30_PF_CONTRAST, PA31_PF_OE_ACD, - /* OTG host */ + /* USB OTG */ PC7_PF_USBOTG_DATA5, PC8_PF_USBOTG_DATA6, PC9_PF_USBOTG_DATA0, @@ -262,7 +268,7 @@ static int pcm038_devices_init(void) PC12_PF_USBOTG_DATA4, PC13_PF_USBOTG_DATA3, PE0_PF_USBOTG_NXT, - PE1_PF_USBOTG_STP, + PCM038_GPIO_OTG_STP | GPIO_GPIO | GPIO_OUT, PE2_PF_USBOTG_DIR, PE24_PF_USBOTG_CLK, PE25_PF_USBOTG_DATA7, @@ -308,6 +314,13 @@ static int pcm038_devices_init(void) gpio_set_value(PCM038_GPIO_FEC_RST, 1); imx27_add_fec(&fec_info); + /* Apply delay for STP line to stop ULPI */ + gpio_direction_output(PCM038_GPIO_OTG_STP, 1); + mdelay(1); + imx_gpio_mode(PE1_PF_USBOTG_STP); + + imx27_add_usbotg(&pcm038_otg_pdata); + switch (bootsource_get()) { case BOOTSOURCE_NAND: devfs_add_partition("nand0", 0x00000, 0x80000, -- 1.8.1.5 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox