diff options
author | Haojian Zhuang <haojian.zhuang@linaro.org> | 2014-05-13 13:11:28 +0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2014-07-31 09:32:21 +0400 |
commit | 4a9b37371822c6b47fdd87118e4f91b5ebc70b6f (patch) | |
tree | d8f574cf2bbf95cb24cd483c08a87917c460cfba /arch/arm/mach-hisi | |
parent | 75a4795a1d1bccb2e7c7def1be50b32cd1389b6e (diff) |
power: reset: move hisilicon reboot code
Move reboot code from hisilicon platform driver into reset driver.
Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
Acked-by: Wei Xu <xuwei5@hisilicon.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/arm/mach-hisi')
-rw-r--r-- | arch/arm/mach-hisi/Kconfig | 3 | ||||
-rw-r--r-- | arch/arm/mach-hisi/hisilicon.c | 33 |
2 files changed, 3 insertions, 33 deletions
diff --git a/arch/arm/mach-hisi/Kconfig b/arch/arm/mach-hisi/Kconfig index 90fdbb4ae00a..984882943f77 100644 --- a/arch/arm/mach-hisi/Kconfig +++ b/arch/arm/mach-hisi/Kconfig @@ -4,6 +4,9 @@ config ARCH_HISI select ARM_AMBA select ARM_GIC select ARM_TIMER_SP804 + select POWER_RESET + select POWER_RESET_HISI + select POWER_SUPPLY if ARCH_HISI diff --git a/arch/arm/mach-hisi/hisilicon.c b/arch/arm/mach-hisi/hisilicon.c index 2bfbe3f1392d..7996c6b74339 100644 --- a/arch/arm/mach-hisi/hisilicon.c +++ b/arch/arm/mach-hisi/hisilicon.c @@ -14,10 +14,6 @@ #include <linux/clk-provider.h> #include <linux/clocksource.h> #include <linux/irqchip.h> -#include <linux/of_address.h> -#include <linux/of_platform.h> - -#include <asm/proc-fns.h> #include <asm/mach/arch.h> #include <asm/mach/map.h> @@ -51,32 +47,6 @@ static void __init hi3620_map_io(void) iotable_init(hi3620_io_desc, ARRAY_SIZE(hi3620_io_desc)); } -static void hi3xxx_restart(enum reboot_mode mode, const char *cmd) -{ - struct device_node *np; - void __iomem *base; - int offset; - - np = of_find_compatible_node(NULL, NULL, "hisilicon,sysctrl"); - if (!np) { - pr_err("failed to find hisilicon,sysctrl node\n"); - return; - } - base = of_iomap(np, 0); - if (!base) { - pr_err("failed to map address in hisilicon,sysctrl node\n"); - return; - } - if (of_property_read_u32(np, "reboot-offset", &offset) < 0) { - pr_err("failed to find reboot-offset property\n"); - return; - } - writel_relaxed(0xdeadbeef, base + offset); - - while (1) - cpu_do_idle(); -} - static const char *hi3xxx_compat[] __initconst = { "hisilicon,hi3620-hi4511", NULL, @@ -86,7 +56,6 @@ DT_MACHINE_START(HI3620, "Hisilicon Hi3620 (Flattened Device Tree)") .map_io = hi3620_map_io, .dt_compat = hi3xxx_compat, .smp = smp_ops(hi3xxx_smp_ops), - .restart = hi3xxx_restart, MACHINE_END static const char *hix5hd2_compat[] __initconst = { @@ -96,7 +65,5 @@ static const char *hix5hd2_compat[] __initconst = { DT_MACHINE_START(HIX5HD2_DT, "Hisilicon HIX5HD2 (Flattened Device Tree)") .dt_compat = hix5hd2_compat, - .init_late = hi3xxx_init_late, .smp = smp_ops(hix5hd2_smp_ops), - .restart = hi3xxx_restart, MACHINE_END |