From: Lokesh Vutla <a0131933@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 1/5] ARM: OMAP4/5: Centralize early clock initialization
Date: Thu, 5 Nov 2015 11:15:38 +0530 [thread overview]
Message-ID: <563AED02.2070203@ti.com> (raw)
In-Reply-To: <1446674413-28163-2-git-send-email-s-kipisz2@ti.com>
On Thursday 05 November 2015 03:30 AM, Steve Kipisz wrote:
> Early clock initialization is currently done in two stages for OMAP4/5
> SoCs. The first stage is the initialization of console clocks and
> then we initialize basic clocks for functionality necessary for SoC
> initialization and basic board functionality.
>
> By splitting up prcm_init and centralizing this clock initialization,
> we setup the code for follow on patches that can do board specific
> initialization such as board detection which will depend on these
> basic clocks.
>
> As part of this change, since the early clock initialization
> is centralized, we no longer need to expose the console clock
> initialization.
>
> NOTE: we change the sequence slightly by initializing console clocks
> timer after the io settings are complete, but this is not expected
> to have any functioanlity impact since we setup the basic IO drive
> strength initialization as part of do_io_settings
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
Thanks and regards,
Lokesh
>
> Signed-off-by: Steve Kipisz <s-kipisz2@ti.com>
> Reviewed-by: Tom Rini <trini@konsulko.com<
> ---
> v3 Based on:
> master 83bf0057 arm: at91: reworked meesc board support
>
> Changes in v3 (since v2):
> - Remove SPL-only build of setup_clocks_for_console since it needs
> to be built in u-boot for NOR boot
> - Move setup_clocks_for_console from top of setup_early_clocks to inside
> the switch statement.
>
> v2: http://marc.info/?t=144655363000001&r=1&w=2
> (mailing list squashed original submission)
>
> Changes in v2:
> - New patch
>
> arch/arm/cpu/armv7/omap-common/clocks-common.c | 21 +++++++++++++++++++--
> arch/arm/cpu/armv7/omap-common/hwinit-common.c | 3 +--
> arch/arm/include/asm/arch-omap4/sys_proto.h | 2 +-
> arch/arm/include/asm/arch-omap5/sys_proto.h | 2 +-
> 4 files changed, 22 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/omap-common/clocks-common.c b/arch/arm/cpu/armv7/omap-common/clocks-common.c
> index e28b79568d1d..367d224361be 100644
> --- a/arch/arm/cpu/armv7/omap-common/clocks-common.c
> +++ b/arch/arm/cpu/armv7/omap-common/clocks-common.c
> @@ -769,7 +769,7 @@ void lock_dpll(u32 const base)
> wait_for_lock(base);
> }
>
> -void setup_clocks_for_console(void)
> +static void setup_clocks_for_console(void)
> {
> /* Do not add any spl_debug prints in this function */
> clrsetbits_le32((*prcm)->cm_l4per_clkstctrl, CD_CLKCTRL_CLKTRCTRL_MASK,
> @@ -853,14 +853,31 @@ void do_disable_clocks(u32 const *clk_domains,
> disable_clock_domain(clk_domains[i]);
> }
>
> -void prcm_init(void)
> +/**
> + * setup_early_clocks() - Setup early clocks needed for SoC
> + *
> + * Setup clocks for console, SPL basic initialization clocks and initialize
> + * the timer. This is invoked prior prcm_init.
> + */
> +void setup_early_clocks(void)
> {
> switch (omap_hw_init_context()) {
> case OMAP_INIT_CONTEXT_SPL:
> case OMAP_INIT_CONTEXT_UBOOT_FROM_NOR:
> case OMAP_INIT_CONTEXT_UBOOT_AFTER_CH:
> + setup_clocks_for_console();
> enable_basic_clocks();
> timer_init();
> + /* Fall through */
> + }
> +}
> +
> +void prcm_init(void)
> +{
> + switch (omap_hw_init_context()) {
> + case OMAP_INIT_CONTEXT_SPL:
> + case OMAP_INIT_CONTEXT_UBOOT_FROM_NOR:
> + case OMAP_INIT_CONTEXT_UBOOT_AFTER_CH:
> scale_vcores(*omap_vcores);
> setup_dplls();
> setup_warmreset_time();
> diff --git a/arch/arm/cpu/armv7/omap-common/hwinit-common.c b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
> index 80794f9c611a..91f2dead364b 100644
> --- a/arch/arm/cpu/armv7/omap-common/hwinit-common.c
> +++ b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
> @@ -125,10 +125,9 @@ void s_init(void)
> set_mux_conf_regs();
> #ifdef CONFIG_SPL_BUILD
> srcomp_enable();
> - setup_clocks_for_console();
> -
> do_io_settings();
> #endif
> + setup_early_clocks();
> prcm_init();
> }
>
> diff --git a/arch/arm/include/asm/arch-omap4/sys_proto.h b/arch/arm/include/asm/arch-omap4/sys_proto.h
> index f30f86539130..71e3d776aa0d 100644
> --- a/arch/arm/include/asm/arch-omap4/sys_proto.h
> +++ b/arch/arm/include/asm/arch-omap4/sys_proto.h
> @@ -37,7 +37,7 @@ void do_set_mux(u32 base, struct pad_conf_entry const *array, int size);
> void set_muxconf_regs_essential(void);
> u32 wait_on_value(u32, u32, void *, u32);
> void sdelay(unsigned long);
> -void setup_clocks_for_console(void);
> +void setup_early_clocks(void);
> void prcm_init(void);
> void bypass_dpll(u32 const base);
> void freq_update_core(void);
> diff --git a/arch/arm/include/asm/arch-omap5/sys_proto.h b/arch/arm/include/asm/arch-omap5/sys_proto.h
> index 7fcb78389403..b9e09e7c52a8 100644
> --- a/arch/arm/include/asm/arch-omap5/sys_proto.h
> +++ b/arch/arm/include/asm/arch-omap5/sys_proto.h
> @@ -48,7 +48,7 @@ void do_set_mux32(u32 base, struct pad_conf_entry const *array, int size);
> void set_muxconf_regs_essential(void);
> u32 wait_on_value(u32, u32, void *, u32);
> void sdelay(unsigned long);
> -void setup_clocks_for_console(void);
> +void setup_early_clocks(void);
> void prcm_init(void);
> void bypass_dpll(u32 const base);
> void freq_update_core(void);
>
next prev parent reply other threads:[~2015-11-05 5:45 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-04 22:00 [U-Boot] [PATCH v3 0/5] ARM: omap-common: Add board detection support for TI EVMs Steve Kipisz
2015-11-04 22:00 ` [U-Boot] [PATCH v3 1/5] ARM: OMAP4/5: Centralize early clock initialization Steve Kipisz
2015-11-05 5:45 ` Lokesh Vutla [this message]
2015-11-04 22:00 ` [U-Boot] [PATCH v3 2/5] ARM: OMAP4/5: Centralize gpi2c_init Steve Kipisz
2015-11-05 5:46 ` Lokesh Vutla
2015-11-04 22:00 ` [U-Boot] [PATCH v3 3/5] ARM: omap-common: Add standard access for board description EEPROM Steve Kipisz
2015-11-04 23:43 ` Nishanth Menon
2015-11-05 4:50 ` Nishanth Menon
2015-11-05 6:00 ` Lokesh Vutla
2015-11-05 7:21 ` Nishanth Menon
2015-11-04 22:00 ` [U-Boot] [PATCH v3 4/5] ARM: OMAP4/5: Add generic board detection hook Steve Kipisz
2015-11-05 5:49 ` Lokesh Vutla
2015-11-04 22:00 ` [U-Boot] [PATCH v3 5/5] board: ti: AM57xx: Add detection logic for AM57xx-evm Steve Kipisz
2015-11-04 23:53 ` [U-Boot] [PATCH v3 0/5] ARM: omap-common: Add board detection support for TI EVMs Nishanth Menon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=563AED02.2070203@ti.com \
--to=a0131933@ti.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.