[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