Commit 6cb2d372 authored by Sudhakar Rajashekhara's avatar Sudhakar Rajashekhara Committed by Kevin Hilman

ARM: DaVinci: fix dm646x booting

Fixes the 2.6.28-rc8-davinci1 booting on dm646x EVM.

davinci_psc_init is not being called for DM646x EVM, hence davinci_psc_mux
is not defined for DM646x. This is resulting in DM646x board not booting up.
Signed-off-by: default avatarSudhakar Rajashekhara <sudhakar.raj@ti.com>
Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
parent 7b8fdcc7
...@@ -117,22 +117,14 @@ static void __init evm_init_i2c(void) ...@@ -117,22 +117,14 @@ static void __init evm_init_i2c(void)
i2c_register_board_info(1, i2c_info, ARRAY_SIZE(i2c_info)); i2c_register_board_info(1, i2c_info, ARRAY_SIZE(i2c_info));
} }
static void board_init(void)
{
davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DM646X_LPSC_AEMIF, 1);
davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DM646X_LPSC_GPIO, 1);
}
static void __init davinci_map_io(void) static void __init davinci_map_io(void)
{ {
davinci_map_common_io(); davinci_map_common_io();
/* Initialize the DaVinci EVM board settigs */
board_init();
} }
static __init void evm_init(void) static __init void evm_init(void)
{ {
davinci_psc_init();
evm_init_i2c(); evm_init_i2c();
davinci_board_config = davinci_evm_config; davinci_board_config = davinci_evm_config;
davinci_board_config_size = ARRAY_SIZE(davinci_evm_config); davinci_board_config_size = ARRAY_SIZE(davinci_evm_config);
......
...@@ -196,7 +196,7 @@ void davinci_psc_config(unsigned int domain, unsigned int id, char enable) ...@@ -196,7 +196,7 @@ void davinci_psc_config(unsigned int domain, unsigned int id, char enable)
void __init davinci_psc_init(void) void __init davinci_psc_init(void)
{ {
if (cpu_is_davinci_dm644x()) { if (cpu_is_davinci_dm644x() || cpu_is_davinci_dm646x()) {
davinci_psc_mux = dm6446_psc_mux; davinci_psc_mux = dm6446_psc_mux;
} else if (cpu_is_davinci_dm355()) { } else if (cpu_is_davinci_dm355()) {
davinci_psc_mux = dm355_psc_mux; davinci_psc_mux = dm355_psc_mux;
...@@ -205,14 +205,29 @@ void __init davinci_psc_init(void) ...@@ -205,14 +205,29 @@ void __init davinci_psc_init(void)
davinci_psc_mux = nop_psc_mux; davinci_psc_mux = nop_psc_mux;
} }
davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_VPSSMSTR, 1); if (cpu_is_davinci_dm644x() || cpu_is_davinci_dm355()) {
davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_VPSSSLV, 1); davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN,
davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_TPCC, 1); DAVINCI_LPSC_VPSSMSTR, 1);
davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_TPTC0, 1); davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN,
davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_TPTC1, 1); DAVINCI_LPSC_VPSSSLV, 1);
davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_GPIO, 1); davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN,
davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_USB, 1); DAVINCI_LPSC_TPCC, 1);
davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN,
/* Turn on WatchDog timer LPSC. Needed for RESET to work */ DAVINCI_LPSC_TPTC0, 1);
davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_TIMER2, 1); davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN,
DAVINCI_LPSC_TPTC1, 1);
davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN,
DAVINCI_LPSC_GPIO, 1);
davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN,
DAVINCI_LPSC_USB, 1);
/* Turn on WatchDog timer LPSC. Needed for RESET to work */
davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN,
DAVINCI_LPSC_TIMER2, 1);
} else if (cpu_is_davinci_dm646x()) {
davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN,
DM646X_LPSC_AEMIF, 1);
davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN,
DM646X_LPSC_GPIO, 1);
}
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment