On 02/03/12 15:38, Govindraj.R wrote:
> From: "Govindraj.R" <govindraj.r...@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.r...@ti.com>

Acked-by: Igor Grinberg <grinb...@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.
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to