[U-Boot] [PATCH v3 3/7] OMAP3+: Clock: Adding ehci clock enabling
Igor Grinberg
grinberg at compulab.co.il
Mon Feb 6 12:42:47 CET 2012
On 02/03/12 15:38, Govindraj.R wrote:
> From: "Govindraj.R" <govindraj.raja at ti.com>
>
> 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 <govindraj.raja at ti.com>
Acked-by: Igor Grinberg <grinberg at compulab.co.il>
> ---
> 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.
More information about the U-Boot
mailing list