From mboxrd@z Thu Jan 1 00:00:00 1970 From: Igor Grinberg Date: Mon, 06 Feb 2012 13:42:47 +0200 Subject: [U-Boot] [PATCH v3 3/7] OMAP3+: Clock: Adding ehci clock enabling In-Reply-To: <1328276312-30153-4-git-send-email-govindraj.raja@ti.com> References: <1328276312-30153-1-git-send-email-govindraj.raja@ti.com> <1328276312-30153-4-git-send-email-govindraj.raja@ti.com> Message-ID: <4F2FBCB7.6050305@compulab.co.il> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 02/03/12 15:38, Govindraj.R wrote: > From: "Govindraj.R" > > Adding ehci clock enabling mechanism part of clock framework. > When essential clocks are enabled during init phase usb host > clocks can also be enabled from clock framework. > > Signed-off-by: Govindraj.R Acked-by: Igor Grinberg > --- > arch/arm/cpu/armv7/omap3/board.c | 4 ++++ > arch/arm/cpu/armv7/omap3/clock.c | 20 ++++++++++++++++++++ > arch/arm/cpu/armv7/omap4/clocks.c | 5 +++++ > arch/arm/include/asm/arch-omap3/sys_proto.h | 1 + > 4 files changed, 30 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/cpu/armv7/omap3/board.c b/arch/arm/cpu/armv7/omap3/board.c > index 871aa37..054e9c4 100644 > --- a/arch/arm/cpu/armv7/omap3/board.c > +++ b/arch/arm/cpu/armv7/omap3/board.c > @@ -228,6 +228,10 @@ void s_init(void) > > per_clocks_enable(); > > +#ifdef CONFIG_USB_EHCI_OMAP > + ehci_clocks_enable(); > +#endif Just a question (not blocking): I would really like to see this being a part of "usb start" call some day... Can't this be called from omap_ehci_hcd_init()? > + > #ifdef CONFIG_SPL_BUILD > preloader_console_init(); > > diff --git a/arch/arm/cpu/armv7/omap3/clock.c b/arch/arm/cpu/armv7/omap3/clock.c > index e0d65c7..567817e 100644 > --- a/arch/arm/cpu/armv7/omap3/clock.c > +++ b/arch/arm/cpu/armv7/omap3/clock.c > @@ -626,6 +626,26 @@ void prcm_init(void) > sdelay(5000); > } > > +/* > + * Enable usb ehci uhh, tll clocks > + */ > +void ehci_clocks_enable(void) > +{ > + struct prcm *prcm_base = (struct prcm *)PRCM_BASE; > + > + /* Enable USBHOST_L3_ICLK (USBHOST_MICLK) */ > + sr32(&prcm_base->iclken_usbhost, 0, 1, 1); > + /* > + * Enable USBHOST_48M_FCLK (USBHOST_FCLK1) > + * and USBHOST_120M_FCLK (USBHOST_FCLK2) > + */ > + sr32(&prcm_base->fclken_usbhost, 0, 2, 3); > + /* Enable USBTTL_ICLK */ > + sr32(&prcm_base->iclken3_core, 2, 1, 1); > + /* Enable USBTTL_FCLK */ > + sr32(&prcm_base->fclken3_core, 2, 1, 1); > +} > + > /****************************************************************************** > * peripheral_enable() - Enable the clks & power for perifs (GPT2, UART1,...) > *****************************************************************************/ > diff --git a/arch/arm/cpu/armv7/omap4/clocks.c b/arch/arm/cpu/armv7/omap4/clocks.c > index 0886f92..12e283a 100644 > --- a/arch/arm/cpu/armv7/omap4/clocks.c > +++ b/arch/arm/cpu/armv7/omap4/clocks.c > @@ -342,6 +342,9 @@ void enable_basic_clocks(void) > &prcm->cm_l4per_gpio4_clkctrl, > &prcm->cm_l4per_gpio5_clkctrl, > &prcm->cm_l4per_gpio6_clkctrl, > + &prcm->cm_l3init_usbphy_clkctrl, > + &prcm->cm_clksel_usb_60mhz, > + &prcm->cm_l3init_hsusbtll_clkctrl, > 0 > }; > > @@ -352,6 +355,8 @@ void enable_basic_clocks(void) > &prcm->cm_l4per_gptimer2_clkctrl, > &prcm->cm_wkup_wdtimer2_clkctrl, > &prcm->cm_l4per_uart3_clkctrl, > + &prcm->cm_l3init_fsusb_clkctrl, > + &prcm->cm_l3init_hsusbhost_clkctrl, > 0 > }; > > diff --git a/arch/arm/include/asm/arch-omap3/sys_proto.h b/arch/arm/include/asm/arch-omap3/sys_proto.h > index e5031d5..2a89e56 100644 > --- a/arch/arm/include/asm/arch-omap3/sys_proto.h > +++ b/arch/arm/include/asm/arch-omap3/sys_proto.h > @@ -34,6 +34,7 @@ struct emu_hal_params { > > void prcm_init(void); > void per_clocks_enable(void); > +void ehci_clocks_enable(void); > > void memif_init(void); > void sdrc_init(void); -- Regards, Igor.