diff options
author | Colin Cross <ccross@android.com> | 2010-08-23 18:37:25 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2011-02-10 17:50:41 -0800 |
commit | 699fe145d6e651a814423eeb6125381998f3c077 (patch) | |
tree | 3923e8514a712d0b666cadd029f18c42284f43b4 | |
parent | 1eb2ecf1d5b3c29ce86f098de4ad21fa757d2160 (diff) | |
download | linux-699fe145d6e651a814423eeb6125381998f3c077.tar.gz linux-699fe145d6e651a814423eeb6125381998f3c077.tar.bz2 linux-699fe145d6e651a814423eeb6125381998f3c077.zip |
ARM: tegra: Allow overriding arch_reset
Signed-off-by: Colin Cross <ccross@android.com>
-rw-r--r-- | arch/arm/mach-tegra/board.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-tegra/common.c | 13 | ||||
-rw-r--r-- | arch/arm/mach-tegra/include/mach/system.h | 10 |
3 files changed, 17 insertions, 8 deletions
diff --git a/arch/arm/mach-tegra/board.h b/arch/arm/mach-tegra/board.h index 0de565ca37c5..b3f9c94fcb9e 100644 --- a/arch/arm/mach-tegra/board.h +++ b/arch/arm/mach-tegra/board.h @@ -23,6 +23,8 @@ #include <linux/types.h> +void tegra_assert_system_reset(char mode, const char *cmd); + void __init tegra_common_init(void); void __init tegra_map_common_io(void); void __init tegra_init_irq(void); diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c index 7c91e2b9d643..84a7197e1eff 100644 --- a/arch/arm/mach-tegra/common.c +++ b/arch/arm/mach-tegra/common.c @@ -26,11 +26,24 @@ #include <mach/iomap.h> #include <mach/dma.h> +#include <mach/system.h> #include "board.h" #include "clock.h" #include "fuse.h" +void (*arch_reset)(char mode, const char *cmd) = tegra_assert_system_reset; + +void tegra_assert_system_reset(char mode, const char *cmd) +{ + void __iomem *reset = IO_ADDRESS(TEGRA_CLK_RESET_BASE + 0x04); + u32 reg; + + reg = readl(reset); + reg |= 0x04; + writel(reg, reset); +} + static __initdata struct tegra_clk_init_table common_clk_init_table[] = { /* name parent rate enabled */ { "clk_m", NULL, 0, true }, diff --git a/arch/arm/mach-tegra/include/mach/system.h b/arch/arm/mach-tegra/include/mach/system.h index 84d5d46113f7..d0183d876c3b 100644 --- a/arch/arm/mach-tegra/include/mach/system.h +++ b/arch/arm/mach-tegra/include/mach/system.h @@ -24,16 +24,10 @@ #include <mach/hardware.h> #include <mach/iomap.h> -static inline void arch_idle(void) -{ -} +extern void (*arch_reset)(char mode, const char *cmd); -static inline void arch_reset(char mode, const char *cmd) +static inline void arch_idle(void) { - void __iomem *reset = IO_ADDRESS(TEGRA_CLK_RESET_BASE + 0x04); - u32 reg = readl(reset); - reg |= 0x04; - writel(reg, reset); } #endif |