Skip to content
Snippets Groups Projects
Commit d88d6c8c authored by Kipisz, Steven's avatar Kipisz, Steven Committed by Tom Rini
Browse files

ARM: OMAP4/5: Add generic board detection hook


Many TI EVMs have capability to store relevant board information
such as DDR description in EEPROM. Further many pad configuration
variations can occur as part of revision changes in the platform.
In-order to support these at runtime, we for a board detection hook
which is available for override from board files that may desire to do
so.

NOTE: All TI EVMs are capable of detecting board information based on
early clocks that are configured. However, in case of additional needs
this can be achieved within the override logic from within the board
file.

Signed-off-by: default avatarSteve Kipisz <s-kipisz2@ti.com>
Reviewed-by: default avatarTom Rini <trini@konsulko.com>
Reviewed-by: default avatarLokesh Vutla <lokeshvutla@ti.com>
Reviewed-by: default avatarTom Rini <trini@konsulko.com>
parent 5f8bb93b
Branches
Tags
No related merge requests found
...@@ -97,6 +97,16 @@ int arch_cpu_init(void) ...@@ -97,6 +97,16 @@ int arch_cpu_init(void)
} }
#endif /* CONFIG_ARCH_CPU_INIT */ #endif /* CONFIG_ARCH_CPU_INIT */
/**
* do_board_detect() - Detect board description
*
* Function to detect board description. This is expected to be
* overridden in the SoC family board file where desired.
*/
void __weak do_board_detect(void)
{
}
/* /*
* Routine: s_init * Routine: s_init
* Description: Does early system init of watchdog, muxing, andclocks * Description: Does early system init of watchdog, muxing, andclocks
...@@ -128,6 +138,7 @@ void s_init(void) ...@@ -128,6 +138,7 @@ void s_init(void)
do_io_settings(); do_io_settings();
#endif #endif
setup_early_clocks(); setup_early_clocks();
do_board_detect();
prcm_init(); prcm_init();
} }
......
...@@ -39,6 +39,7 @@ u32 wait_on_value(u32, u32, void *, u32); ...@@ -39,6 +39,7 @@ u32 wait_on_value(u32, u32, void *, u32);
void sdelay(unsigned long); void sdelay(unsigned long);
void setup_early_clocks(void); void setup_early_clocks(void);
void prcm_init(void); void prcm_init(void);
void do_board_detect(void);
void bypass_dpll(u32 const base); void bypass_dpll(u32 const base);
void freq_update_core(void); void freq_update_core(void);
u32 get_sys_clk_freq(void); u32 get_sys_clk_freq(void);
......
...@@ -50,6 +50,7 @@ u32 wait_on_value(u32, u32, void *, u32); ...@@ -50,6 +50,7 @@ u32 wait_on_value(u32, u32, void *, u32);
void sdelay(unsigned long); void sdelay(unsigned long);
void setup_early_clocks(void); void setup_early_clocks(void);
void prcm_init(void); void prcm_init(void);
void do_board_detect(void);
void bypass_dpll(u32 const base); void bypass_dpll(u32 const base);
void freq_update_core(void); void freq_update_core(void);
u32 get_sys_clk_freq(void); u32 get_sys_clk_freq(void);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment