From patchwork Tue Jul 2 15:15:11 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Murphy X-Patchwork-Id: 256450 X-Patchwork-Delegate: marek.vasut@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 4CCE12C008C for ; Wed, 3 Jul 2013 01:16:30 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id C9ACF4A39D; Tue, 2 Jul 2013 17:16:17 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yBG56cFzCgCH; Tue, 2 Jul 2013 17:16:17 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 033694A3A9; Tue, 2 Jul 2013 17:15:50 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 8E3A94A39A for ; Tue, 2 Jul 2013 17:15:40 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NWsjnZ4RffPa for ; Tue, 2 Jul 2013 17:15:35 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from bear.ext.ti.com (bear.ext.ti.com [192.94.94.41]) by theia.denx.de (Postfix) with ESMTPS id 23D034A39C for ; Tue, 2 Jul 2013 17:15:25 +0200 (CEST) Received: from dlelxv90.itg.ti.com ([172.17.2.17]) by bear.ext.ti.com (8.13.7/8.13.7) with ESMTP id r62FFMcJ024173; Tue, 2 Jul 2013 10:15:22 -0500 Received: from DLEE70.ent.ti.com (dlee70.ent.ti.com [157.170.170.113]) by dlelxv90.itg.ti.com (8.14.3/8.13.8) with ESMTP id r62FFMp2008983; Tue, 2 Jul 2013 10:15:22 -0500 Received: from dlelxv24.itg.ti.com (172.17.1.199) by DLEE70.ent.ti.com (157.170.170.113) with Microsoft SMTP Server id 14.2.342.3; Tue, 2 Jul 2013 10:15:22 -0500 Received: from legion.dal.design.ti.com (legion.dal.design.ti.com [128.247.22.53]) by dlelxv24.itg.ti.com (8.13.8/8.13.8) with ESMTP id r62FFLkK004635; Tue, 2 Jul 2013 10:15:21 -0500 Received: from localhost (h0-228.vpn.ti.com [172.24.0.228]) by legion.dal.design.ti.com (8.11.7p1+Sun/8.11.7) with ESMTP id r62FFLt10218; Tue, 2 Jul 2013 10:15:21 -0500 (CDT) From: Dan Murphy To: , , Date: Tue, 2 Jul 2013 10:15:11 -0500 Message-ID: <1372778113-26053-6-git-send-email-dmurphy@ti.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1372778113-26053-1-git-send-email-dmurphy@ti.com> References: <1372778113-26053-1-git-send-email-dmurphy@ti.com> MIME-Version: 1.0 Cc: balbi@ti.com, gautam.vivek@samsung.com, rogerq@ti.com, ruchika@ti.com Subject: [U-Boot] [RFC] [UBOOT] [PATCH v3 5/7] omap5: usb: Add usb otg clocks and enable X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de Add and enable the USB OTG clocks. Signed-off-by: Dan Murphy --- arch/arm/cpu/armv7/omap5/hw_data.c | 14 ++++++++++++++ arch/arm/cpu/armv7/omap5/prcm-regs.c | 1 + arch/arm/include/asm/arch-omap5/clock.h | 4 ++++ arch/arm/include/asm/omap_common.h | 1 + common/cmd_usb.c | 6 +++++- include/configs/omap5_common.h | 9 +++++++++ 6 files changed, 34 insertions(+), 1 deletion(-) diff --git a/arch/arm/cpu/armv7/omap5/hw_data.c b/arch/arm/cpu/armv7/omap5/hw_data.c index 56cf1f8..7b88338 100644 --- a/arch/arm/cpu/armv7/omap5/hw_data.c +++ b/arch/arm/cpu/armv7/omap5/hw_data.c @@ -456,6 +456,20 @@ void enable_basic_clocks(void) OPTFCLKEN_SCRM_PER_MASK); setbits_le32((*prcm)->cm_wkupaon_scrm_clkctrl, OPTFCLKEN_SCRM_CORE_MASK); + +/* TODO wrap this with USB defines */ + /* Setting OCP2SCP1 register */ + setbits_le32((*prcm)->cm_l3init_ocp2scp1_clkctrl, + MODULE_CLKCTRL_MODULEMODE_HW_AUTO); + + /* Select USB OTG SS clock */ + setbits_le32((*prcm)->cm_l3init_usb_otg_ss_clkctrl, + (MODULE_CLKCTRL_MODULEMODE_HW_AUTO | + OPTFCLKEN_USB_OTG_SS_FCLK_MASK)); + + /* Setting l3init register */ + setbits_le32((*prcm)->cm_l3init_clkstctrl, OPTFCLKEN_USB_OTG_SS_FCLK_MASK); + } void enable_basic_uboot_clocks(void) diff --git a/arch/arm/cpu/armv7/omap5/prcm-regs.c b/arch/arm/cpu/armv7/omap5/prcm-regs.c index e839ff5..f90da58 100644 --- a/arch/arm/cpu/armv7/omap5/prcm-regs.c +++ b/arch/arm/cpu/armv7/omap5/prcm-regs.c @@ -718,6 +718,7 @@ struct prcm_regs const omap5_es2_prcm = { .cm_l3init_p1500_clkctrl = 0x4a009678, .cm_l3init_fsusb_clkctrl = 0x4a0096d0, .cm_l3init_ocp2scp1_clkctrl = 0x4a0096e0, + .cm_l3init_usb_otg_ss_clkctrl = 0x4a0096f0, /* prm irqstatus regs */ .prm_irqstatus_mpu_2 = 0x4ae06014, diff --git a/arch/arm/include/asm/arch-omap5/clock.h b/arch/arm/include/asm/arch-omap5/clock.h index 4d2765d..24ef2bc 100644 --- a/arch/arm/include/asm/arch-omap5/clock.h +++ b/arch/arm/include/asm/arch-omap5/clock.h @@ -165,6 +165,10 @@ /* CM_L3INIT_USBPHY_CLKCTRL */ #define USBPHY_CLKCTRL_OPTFCLKEN_PHY_48M_MASK 8 +/* CM_L3INIT_USB_OTG_SS_CLKCTRL */ +#define OPTFCLKEN_USB_OTG_SS_FCLK_SHIFT 8 +#define OPTFCLKEN_USB_OTG_SS_FCLK_MASK (1 << 8) + /* CM_MPU_MPU_CLKCTRL */ #define MPU_CLKCTRL_CLKSEL_EMIF_DIV_MODE_SHIFT 24 #define MPU_CLKCTRL_CLKSEL_EMIF_DIV_MODE_MASK (3 << 24) diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h index 0dbe81b..11cc870 100644 --- a/arch/arm/include/asm/omap_common.h +++ b/arch/arm/include/asm/omap_common.h @@ -241,6 +241,7 @@ struct prcm_regs { u32 cm_l3init_p1500_clkctrl; u32 cm_l3init_fsusb_clkctrl; u32 cm_l3init_ocp2scp1_clkctrl; + u32 cm_l3init_usb_otg_ss_clkctrl; u32 prm_irqstatus_mpu_2; diff --git a/common/cmd_usb.c b/common/cmd_usb.c index 70e803b..816fb23 100644 --- a/common/cmd_usb.c +++ b/common/cmd_usb.c @@ -31,6 +31,7 @@ #include #include #include +#include #ifdef CONFIG_USB_STORAGE static int usb_stor_curr_dev = -1; /* current device */ @@ -160,6 +161,7 @@ static void usb_display_string(struct usb_device *dev, int index) static void usb_display_desc(struct usb_device *dev) { +#if 0 if (dev->descriptor.bDescriptorType == USB_DT_DEVICE) { printf("%d: %s, USB Revision %x.%x\n", dev->devnum, usb_get_class_desc(dev->config.if_desc[0].desc.bInterfaceClass), @@ -189,7 +191,7 @@ static void usb_display_desc(struct usb_device *dev) (dev->descriptor.bcdDevice>>8) & 0xff, dev->descriptor.bcdDevice & 0xff); } - +#endif } static void usb_display_conf_desc(struct usb_config_descriptor *config, @@ -350,10 +352,12 @@ static void usb_show_tree_graph(struct usb_device *dev, char *pre) pre[index++] = ' '; pre[index++] = has_child ? '|' : ' '; pre[index] = 0; +#if 0 printf(" %s (%s, %dmA)\n", usb_get_class_desc( dev->config.if_desc[0].desc.bInterfaceClass), portspeed(dev->speed), dev->config.desc.bMaxPower * 2); +#endif if (strlen(dev->mf) || strlen(dev->prod) || strlen(dev->serial)) printf(" %s %s %s %s\n", pre, dev->mf, dev->prod, dev->serial); printf(" %s\n", pre); diff --git a/include/configs/omap5_common.h b/include/configs/omap5_common.h index b87ee42..1df553e 100644 --- a/include/configs/omap5_common.h +++ b/include/configs/omap5_common.h @@ -96,6 +96,15 @@ #define CONFIG_SYS_CONSOLE_IS_IN_ENV +/* USB */ +#define CONFIG_CMD_USB +#define CONFIG_USB_STORAGE +#define CONFIG_USB_DWC3 +#define CONFIG_USB_DWC3_GADGET +#define CONFIG_USB_DWC3_DUAL_ROLE +#define CONFIG_USB_DWC3_OMAP +#define CONFIG_USB_DWC3_HOST + /* Flash */ #define CONFIG_SYS_NO_FLASH