Skip to contentSkip to conversation

pico-imx6ul: Add USB Host support

PATCH New Vanessa Maegima 3 participants 4 messages Jun 13, 2016 – Jul 11, 2016 Arm i.MX and Layerscape

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 pico-imx6ul: Add USB Host support

Add USB host support.

Tested by connecting a USB pen drive:

=> usb start
starting USB...

USB0:   Port not available.                                                     
USB1:   USB EHCI 1.00                                                           

scanning bus 1 for devices... 2 USB Device(s) found
scanning usb for storage devices... 1 Storage Device(s) found

---
 board/technexion/pico-imx6ul/pico-imx6ul.c | 24 +++++++++++++++++++++++-
 include/configs/pico-imx6ul.h              |  2 +-
 2 files changed, 24 insertions(+), 2 deletions(-)
board/technexion/pico-imx6ul/pico-imx6ul.c +23 -1
index c038d43..bdf32f4 100644
@@ -59,6 +59,9 @@ static iomux_v3_cfg_t const usdhc1_pads[] = {
 	MX6_PAD_NAND_CLE__USDHC1_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 };
 
+#define USB_OTHERREGS_OFFSET	0x800
+#define UCTRL_PWR_POL		(1 << 9)
+
 static iomux_v3_cfg_t const usb_otg_pad[] = {
 	MX6_PAD_GPIO1_IO00__ANATOP_OTG1_ID | MUX_PAD_CTRL(OTG_ID_PAD_CTRL),
 };
@@ -98,7 +101,26 @@ int board_early_init_f(void)
 
 int board_usb_phy_mode(int port)
 {
-	return USB_INIT_DEVICE;
+	if (port == 1)
+		return USB_INIT_HOST;
+	else
+		return USB_INIT_DEVICE;
+}
+
+int board_ehci_hcd_init(int port)
+{
+	u32 *usbnc_usb_ctrl;
+
+	if (port > 1)
+		return -EINVAL;
+
+	usbnc_usb_ctrl = (u32 *)(USB_BASE_ADDR + USB_OTHERREGS_OFFSET +
+				 port * 4);
+
+	/* Set Power polarity */
+	setbits_le32(usbnc_usb_ctrl, UCTRL_PWR_POL);
+
+	return 0;
 }
 
 int board_init(void)
include/configs/pico-imx6ul.h +1 -1
index d848ead..01edc03 100644
@@ -42,7 +42,7 @@
 #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
 #define CONFIG_MXC_USB_PORTSC		(PORT_PTS_UTMI | PORT_PTS_PTW)
 #define CONFIG_MXC_USB_FLAGS		0
-#define CONFIG_USB_MAX_CONTROLLER_COUNT	1 /* Only OTG1 port enabled */
+#define CONFIG_USB_MAX_CONTROLLER_COUNT	2
 
 #define CONFIG_CI_UDC
 #define CONFIG_USBD_HS
Signature · 1 line
1.9.1
reviewer
#1 lore raw

PATCH 1/1 pico-imx6ul: Add USB Host support

Quoted 4 lines · Vanessa Maegima

Add USB host support.

Tested by connecting a USB pen drive:

Quoted 8 lines

=> usb start
starting USB...

USB0:   Port not available.
USB1:   USB EHCI 1.00

scanning bus 1 for devices... 2 USB Device(s) found
scanning usb for storage devices... 1 Storage Device(s) found

reviewer
#2 lore raw

PATCH 1/1 pico-imx6ul: Add USB Host support

Hi Stefano,

Quoted 13 lines · Fabio Estevam
Quoted 11 lines · Vanessa Maegima

Add USB host support.

Tested by connecting a USB pen drive:

=> usb start
starting USB...

USB0:   Port not available.
USB1:   USB EHCI 1.00

scanning bus 1 for devices... 2 USB Device(s) found
scanning usb for storage devices... 1 Storage Device(s) found

Quoted 3 lines
Quoted 1 line

Looks like this one did not go into your -next branch yet.

Please consider applying it if you are happy with it.

Thanks

#3 lore raw

PATCH 1/1 pico-imx6ul: Add USB Host support

Quoted 16 lines · Fabio Estevam

Hi Stefano,

Quoted 13 lines · Fabio Estevam
Quoted 11 lines · Vanessa Maegima

Add USB host support.

Tested by connecting a USB pen drive:

=> usb start
starting USB...

USB0:   Port not available.
USB1:   USB EHCI 1.00

scanning bus 1 for devices... 2 USB Device(s) found
scanning usb for storage devices... 1 Storage Device(s) found

Quoted 8 lines
Quoted 3 lines
Quoted 1 line

Looks like this one did not go into your -next branch yet.

Please consider applying it if you are happy with it.

Ok, thnaks - I will push it.

Regards,
Stefano

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================