diff options
| author | Maxime Ripard <maxime.ripard@free-electrons.com> | 2014-08-29 13:19:47 -0400 |
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2014-09-11 15:01:47 -0400 |
| commit | 17fa6e4ecf1ccab5e90db7025cfc9d459774cd3f (patch) | |
| tree | 7e44a42f3522c24e72a5fea7f30591128557c329 | |
| parent | 9136ce889254ed51a00a41194befee8ecb2eda36 (diff) | |
ARM: sunxi: Remove sun4i reboot code from mach directory
Now that the restart code has been merged in the watchdog driver, we don't need
the restart code in the mach-sunxi directory anymore.
Remove it entirely.
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
| -rw-r--r-- | arch/arm/mach-sunxi/sunxi.c | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/arch/arm/mach-sunxi/sunxi.c b/arch/arm/mach-sunxi/sunxi.c index 42d4753683ce..d7598aeed803 100644 --- a/arch/arm/mach-sunxi/sunxi.c +++ b/arch/arm/mach-sunxi/sunxi.c | |||
| @@ -12,81 +12,9 @@ | |||
| 12 | 12 | ||
| 13 | #include <linux/clk-provider.h> | 13 | #include <linux/clk-provider.h> |
| 14 | #include <linux/clocksource.h> | 14 | #include <linux/clocksource.h> |
| 15 | #include <linux/delay.h> | ||
| 16 | #include <linux/kernel.h> | ||
| 17 | #include <linux/init.h> | 15 | #include <linux/init.h> |
| 18 | #include <linux/of_address.h> | ||
| 19 | #include <linux/of_irq.h> | ||
| 20 | #include <linux/of_platform.h> | ||
| 21 | #include <linux/io.h> | ||
| 22 | #include <linux/reboot.h> | ||
| 23 | 16 | ||
| 24 | #include <asm/mach/arch.h> | 17 | #include <asm/mach/arch.h> |
| 25 | #include <asm/mach/map.h> | ||
| 26 | #include <asm/system_misc.h> | ||
| 27 | |||
| 28 | #define SUN4I_WATCHDOG_CTRL_REG 0x00 | ||
| 29 | #define SUN4I_WATCHDOG_CTRL_RESTART BIT(0) | ||
| 30 | #define SUN4I_WATCHDOG_MODE_REG 0x04 | ||
| 31 | #define SUN4I_WATCHDOG_MODE_ENABLE BIT(0) | ||
| 32 | #define SUN4I_WATCHDOG_MODE_RESET_ENABLE BIT(1) | ||
| 33 | |||
| 34 | #define SUN6I_WATCHDOG1_IRQ_REG 0x00 | ||
| 35 | #define SUN6I_WATCHDOG1_CTRL_REG 0x10 | ||
| 36 | #define SUN6I_WATCHDOG1_CTRL_RESTART BIT(0) | ||
| 37 | #define SUN6I_WATCHDOG1_CONFIG_REG 0x14 | ||
| 38 | #define SUN6I_WATCHDOG1_CONFIG_RESTART BIT(0) | ||
| 39 | #define SUN6I_WATCHDOG1_CONFIG_IRQ BIT(1) | ||
| 40 | #define SUN6I_WATCHDOG1_MODE_REG 0x18 | ||
| 41 | #define SUN6I_WATCHDOG1_MODE_ENABLE BIT(0) | ||
| 42 | |||
| 43 | static void __iomem *wdt_base; | ||
| 44 | |||
| 45 | static void sun4i_restart(enum reboot_mode mode, const char *cmd) | ||
| 46 | { | ||
| 47 | if (!wdt_base) | ||
| 48 | return; | ||
| 49 | |||
| 50 | /* Enable timer and set reset bit in the watchdog */ | ||
| 51 | writel(SUN4I_WATCHDOG_MODE_ENABLE | SUN4I_WATCHDOG_MODE_RESET_ENABLE, | ||
| 52 | wdt_base + SUN4I_WATCHDOG_MODE_REG); | ||
| 53 | |||
| 54 | /* | ||
| 55 | * Restart the watchdog. The default (and lowest) interval | ||
| 56 | * value for the watchdog is 0.5s. | ||
| 57 | */ | ||
| 58 | writel(SUN4I_WATCHDOG_CTRL_RESTART, wdt_base + SUN4I_WATCHDOG_CTRL_REG); | ||
| 59 | |||
| 60 | while (1) { | ||
| 61 | mdelay(5); | ||
| 62 | writel(SUN4I_WATCHDOG_MODE_ENABLE | SUN4I_WATCHDOG_MODE_RESET_ENABLE, | ||
| 63 | wdt_base + SUN4I_WATCHDOG_MODE_REG); | ||
| 64 | } | ||
| 65 | } | ||
| 66 | |||
| 67 | static struct of_device_id sunxi_restart_ids[] = { | ||
| 68 | { .compatible = "allwinner,sun4i-a10-wdt" }, | ||
| 69 | { /*sentinel*/ } | ||
| 70 | }; | ||
| 71 | |||
| 72 | static void sunxi_setup_restart(void) | ||
| 73 | { | ||
| 74 | struct device_node *np; | ||
| 75 | |||
| 76 | np = of_find_matching_node(NULL, sunxi_restart_ids); | ||
| 77 | if (WARN(!np, "unable to setup watchdog restart")) | ||
| 78 | return; | ||
| 79 | |||
| 80 | wdt_base = of_iomap(np, 0); | ||
| 81 | WARN(!wdt_base, "failed to map watchdog base address"); | ||
| 82 | } | ||
| 83 | |||
| 84 | static void __init sunxi_dt_init(void) | ||
| 85 | { | ||
| 86 | sunxi_setup_restart(); | ||
| 87 | |||
| 88 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | ||
| 89 | } | ||
| 90 | 18 | ||
| 91 | static const char * const sunxi_board_dt_compat[] = { | 19 | static const char * const sunxi_board_dt_compat[] = { |
| 92 | "allwinner,sun4i-a10", | 20 | "allwinner,sun4i-a10", |
| @@ -96,9 +24,7 @@ static const char * const sunxi_board_dt_compat[] = { | |||
| 96 | }; | 24 | }; |
| 97 | 25 | ||
| 98 | DT_MACHINE_START(SUNXI_DT, "Allwinner A1X (Device Tree)") | 26 | DT_MACHINE_START(SUNXI_DT, "Allwinner A1X (Device Tree)") |
| 99 | .init_machine = sunxi_dt_init, | ||
| 100 | .dt_compat = sunxi_board_dt_compat, | 27 | .dt_compat = sunxi_board_dt_compat, |
| 101 | .restart = sun4i_restart, | ||
| 102 | MACHINE_END | 28 | MACHINE_END |
| 103 | 29 | ||
| 104 | static const char * const sun6i_board_dt_compat[] = { | 30 | static const char * const sun6i_board_dt_compat[] = { |
| @@ -126,9 +52,7 @@ static const char * const sun7i_board_dt_compat[] = { | |||
| 126 | }; | 52 | }; |
| 127 | 53 | ||
| 128 | DT_MACHINE_START(SUN7I_DT, "Allwinner sun7i (A20) Family") | 54 | DT_MACHINE_START(SUN7I_DT, "Allwinner sun7i (A20) Family") |
| 129 | .init_machine = sunxi_dt_init, | ||
| 130 | .dt_compat = sun7i_board_dt_compat, | 55 | .dt_compat = sun7i_board_dt_compat, |
| 131 | .restart = sun4i_restart, | ||
| 132 | MACHINE_END | 56 | MACHINE_END |
| 133 | 57 | ||
| 134 | static const char * const sun8i_board_dt_compat[] = { | 58 | static const char * const sun8i_board_dt_compat[] = { |
