USB directly as host eliminates a 5V DCDC, directly connected to the 5V input above. For the Linux SDK, a patch is required to ensure that the design works, and the patch content can be found in:
Static struct Omap_musb_board_data musb_board_data = {
. Interface_type = Musb_interface_ UTMI ,/* evm: musb_interface_ulpi */
/*
* Mode[0:3] = Usb0port ' s mode
* Mode[4:7] = Usb1port ' s mode
& nbsp * am335x Beta EVM have USB0 in OTG mode and USB1 in host mode.
*/
/* note:usb0 is to hub host, and USB1 should be connected with B or Mini-b connector */
.mode = (musb_ Peripheral << 4) | Musb_host, /* evm: (musb_host << 4) | musb_otg */
.power = , /* evm:500 */
#endif
.instances = 1,
};
Diff--git A/arch/arm/mach-omap2/omap_phy_internal.c B/arch/arm/mach-omap2/omap_phy_internal.cindex 13bfef3. e41b224 100644---a/arch/arm/mach-omap2/omap_phy_internal.c+++ b/arch/arm/mach-omap2/omap_phy_internal.c@@ -288,8 + 288,17 @@ void Ti81xx_musb_phy_power (U8 ID, U8 on, bool wkup) TI816X_USBPH Y0_normal_mode; Usbphycfg &= ~ti816x_usbphy_refclk_osc; } else if (cpu_is_am33xx ()) {-Usbphycfg &= ~ (Usbphy_cm_pwrdn | USBPHY_OTG_PWRDN);-usbphycfg |= (usbphy_otgvdet_en | usbphy_otgsessend_en); + usbphycfg &= ~ (Usbphy_cm_pwrdn | Usbphy_otg_pwrdn | Usbphy_otgvdet_en) +/* Hack:if USB0 port is in host-only mode, clear its+ * Usbphy_otgvdet_en bit to ignore first VBUS sensing.+ * Change 0 to 1 if USB1 port was in host-only mode.+ */+ if (id = = 0) + usbphycfg |= usbphy_otgsessend_en;+ else+ Usbphycfg |= (usbphy_otgvdet_en | usbphy_otgsessend_en); + Usbwkupctrl = am33xx_usb_wkup_ctrl_disable; }} else {
am335x USB Host Patch Design