[PATCH] ARM: pcm038: Add support for USB OTG device
Alexander Shiyan
shc_work at mail.ru
Mon May 6 09:35:39 EDT 2013
Signed-off-by: Alexander Shiyan <shc_work at mail.ru>
---
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
More information about the barebox
mailing list