summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mx6/board-mx6q_arm2.c
diff options
context:
space:
mode:
authorPeter Chen <peter.chen@freescale.com>2011-11-03 13:57:25 +0800
committerPeter Chen <peter.chen@freescale.com>2011-11-04 14:28:59 +0800
commit039dd26363c0c9e7ce69e5f134ed643806965ac8 (patch)
treec278ec2720a61cfa969dc0f4ea105a3e15d073be /arch/arm/mach-mx6/board-mx6q_arm2.c
parentc4c513c0f6d8ae7b77e05300a9496498c77fc767 (diff)
ENGR00161314-1 mx6q usb-host: add hsic support
MSL part Add HSIC support for Host2 and Host3, for HSIC mode, there is not usb phy needed, the usb device is always at the board - Validation hardware: iMX6Q Validation Port Card and Re-worked Rev X3 board, for hardware rework detail, contact Ken Sun (b03826) - Validation device: HSIC interface SMSC HUB(USB4640) and Host 3. Host 2 is coding finishes, but not verified due to hardware limitation. - Pin Conflict with Ethernet, order to use HSIC, the user need disable ethernet function at both u-boot and linux kernel. For u-boot: please undefine CONFIG_MXC_FEC at your board config file For kernel: please define CONFIG_USB_EHCI_ARC_HSIC, the entry is: Device Drivers---> USB support---> Support HSIC Host controller for Freescale SoC - Suspend/resume and wakeup are not supported due to IC issues, these IC issues will be fixed at TO1.1 for i.mx6, software will add these support after receiving TO1.1 chip. Signed-off-by: Peter Chen <peter.chen@freescale.com>
Diffstat (limited to 'arch/arm/mach-mx6/board-mx6q_arm2.c')
-rw-r--r--arch/arm/mach-mx6/board-mx6q_arm2.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/arm/mach-mx6/board-mx6q_arm2.c b/arch/arm/mach-mx6/board-mx6q_arm2.c
index c1d559a54a53..43db96637fe4 100644
--- a/arch/arm/mach-mx6/board-mx6q_arm2.c
+++ b/arch/arm/mach-mx6/board-mx6q_arm2.c
@@ -120,8 +120,17 @@ static iomux_v3_cfg_t mx6q_arm2_pads[] = {
/* UART4 for debug */
MX6Q_PAD_KEY_COL0__UART4_TXD,
MX6Q_PAD_KEY_ROW0__UART4_RXD,
-
+ /* USB HSIC ports use the same pin with ENET */
+#ifdef CONFIG_USB_EHCI_ARC_HSIC
+ /* USB H2 strobe/data pin */
+ MX6Q_PAD_RGMII_TX_CTL__USBOH3_H2_STROBE,
+ MX6Q_PAD_RGMII_TXC__USBOH3_H2_DATA,
+
+ /* USB H3 strobe/data pin */
+ MX6Q_PAD_RGMII_RXC__USBOH3_H3_STROBE,
+ MX6Q_PAD_RGMII_RX_CTL__USBOH3_H3_DATA,
/* ENET */
+#else
MX6Q_PAD_KEY_COL1__ENET_MDIO,
MX6Q_PAD_KEY_COL2__ENET_MDC,
MX6Q_PAD_RGMII_TXC__ENET_RGMII_TXC,
@@ -137,6 +146,7 @@ static iomux_v3_cfg_t mx6q_arm2_pads[] = {
MX6Q_PAD_RGMII_RD2__ENET_RGMII_RD2,
MX6Q_PAD_RGMII_RD3__ENET_RGMII_RD3,
MX6Q_PAD_RGMII_RX_CTL__ENET_RGMII_RX_CTL,
+#endif
/* MCLK for csi0 */
MX6Q_PAD_GPIO_0__CCM_CLKO,
MX6Q_PAD_GPIO_3__CCM_CLKO2,
@@ -709,7 +719,12 @@ static void __init imx6q_arm2_init_usb(void)
mx6_set_otghost_vbus_func(imx6q_arm2_usbotg_vbus);
mx6_usb_dr_init();
mx6_usb_h1_init();
+#ifdef CONFIG_USB_EHCI_ARC_HSIC
+ mx6_usb_h2_init();
+ mx6_usb_h3_init();
+#endif
}
+
static struct viv_gpu_platform_data imx6q_gpu_pdata __initdata = {
.reserved_mem_size = SZ_128M,
};