[U-Boot] [PATCH V2] arm: omap3: Enable clocks for peripherals only if they are used
Igor Grinberg
grinberg at compulab.co.il
Sun Dec 1 12:21:12 CET 2013
On 11/30/13 08:59, Michael Trimarchi wrote:
> This patch change the per_clocks_enable() function used in OMAP3
> code to enable peripherals clocks. Only required clock should be
> activated. So if the board use the uart(x) as a console we need
> to activate it. The Board's config should include define to enable
> every subsystem that the board use. For a complete list
> of affected peripherals, registers CM_FCLKEN_PER and CM_ICLKEN_PER
> should be checked.
> Right now the bootloader can enable and disable clocks for:
> uart(x) using CONFIG_SYS_NS16550
> gpio bank (x) using CONFIG_OMAP3_GPIO_X with X = { 2, 3, 4, 5, 6 }
> i2c bus using CONFIG_DRIVER_OMAP34XX_I2C.
>
> Not required gptimer(x) and mcbsp(x) for booting are disabled by default and
> are not supported by any define.
> Their activation need to included in the per_clocks_enable if the
> peripheral is included. Not booting board should enable the peripheral
> clock connected to their driver
>
> Signed-off-by: Michael Trimarchi <michael at amarulasolutions.com>
> Cc: Igor Grinberg <grinberg at compulab.co.il>
> Cc: Tom Rini <trini at ti.com>
Thanks!
Acked-by: Igor Grinberg <grinberg at compulab.co.il>
> ---
> Changes in V2:
> add a better comment for describe the problems that could
> be raised on some boards
>
> arch/arm/cpu/armv7/omap3/clock.c | 2 --
> arch/arm/include/asm/arch-omap3/clock.h | 2 --
> 2 files changed, 4 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/omap3/clock.c b/arch/arm/cpu/armv7/omap3/clock.c
> index 14fc7e8..1bc27bd 100644
> --- a/arch/arm/cpu/armv7/omap3/clock.c
> +++ b/arch/arm/cpu/armv7/omap3/clock.c
> @@ -730,8 +730,6 @@ void per_clocks_enable(void)
> sr32(&prcm_base->fclken_cam, 0, 32, FCK_CAM_ON);
> sr32(&prcm_base->iclken_cam, 0, 32, ICK_CAM_ON);
> }
> - sr32(&prcm_base->fclken_per, 0, 32, FCK_PER_ON);
> - sr32(&prcm_base->iclken_per, 0, 32, ICK_PER_ON);
>
> sdelay(1000);
> }
> diff --git a/arch/arm/include/asm/arch-omap3/clock.h b/arch/arm/include/asm/arch-omap3/clock.h
> index be669c1..1912cc9 100644
> --- a/arch/arm/include/asm/arch-omap3/clock.h
> +++ b/arch/arm/include/asm/arch-omap3/clock.h
> @@ -27,8 +27,6 @@
> #define ICK_DSS_ON 0x00000001
> #define FCK_CAM_ON 0x00000001
> #define ICK_CAM_ON 0x00000001
> -#define FCK_PER_ON 0x0003ffff
> -#define ICK_PER_ON 0x0003ffff
>
> /* Used to index into DPLL parameter tables */
> typedef struct {
>
--
Regards,
Igor.
More information about the U-Boot
mailing list