summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Bénard <eric@eukrea.com>2013-02-10 17:22:50 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2013-02-11 20:58:35 +0100
commitfbe9a322c064745994d210e7e1e0040cb2afe15f (patch)
tree2a96b2df872b2035f1231a892a5fb8a63d71f507
parentf850d96eb56e567f1d6d67d712bfb743302cf928 (diff)
downloadbarebox-fbe9a322c064745994d210e7e1e0040cb2afe15f.tar.gz
barebox-fbe9a322c064745994d210e7e1e0040cb2afe15f.tar.xz
mx23-evk: add USB gadget support
- enable the USB OTG device in gadget mode - tested on i.MX23 EVH rev B1 with DFU Signed-off-by: Eric Bénard <eric@eukrea.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--arch/arm/boards/freescale-mx23-evk/mx23-evk.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/boards/freescale-mx23-evk/mx23-evk.c b/arch/arm/boards/freescale-mx23-evk/mx23-evk.c
index 043b62be2..76377b1a3 100644
--- a/arch/arm/boards/freescale-mx23-evk/mx23-evk.c
+++ b/arch/arm/boards/freescale-mx23-evk/mx23-evk.c
@@ -24,6 +24,8 @@
#include <mach/imx-regs.h>
#include <mach/clock.h>
#include <mach/mci.h>
+#include <usb/fsl_usb2.h>
+#include <mach/usb.h>
static struct mxs_mci_platform_data mci_pdata = {
.caps = MMC_MODE_4BIT | MMC_MODE_HS | MMC_MODE_HS_52MHz,
@@ -42,6 +44,13 @@ static const uint32_t pad_setup[] = {
SSP1_DETECT | PULLUP(1),
};
+#ifdef CONFIG_USB_GADGET_DRIVER_ARC
+static struct fsl_usb2_platform_data usb_pdata = {
+ .operating_mode = FSL_USB2_DR_DEVICE,
+ .phy_mode = FSL_USB2_PHY_UTMI,
+};
+#endif
+
static int mx23_evk_mem_init(void)
{
arm_add_mem_device("ram0", IMX_MEMORY_BASE, 32 * 1024 * 1024);
@@ -111,6 +120,12 @@ static int mx23_evk_devices_init(void)
printf("Cannot create the 'env0' persistant "
"environment storage (%d)\n", rc);
+#ifdef CONFIG_USB_GADGET_DRIVER_ARC
+ imx23_usb_phy_enable();
+ add_generic_usb_ehci_device(DEVICE_ID_DYNAMIC, IMX_USB_BASE, NULL);
+ add_generic_device("fsl-udc", DEVICE_ID_DYNAMIC, NULL, IMX_USB_BASE,
+ 0x200, IORESOURCE_MEM, &usb_pdata);
+#endif
return 0;
}