ARM: SAMSUNG: Let platforms use the new watchdog reset driver

This patch moves all platforms using the legacy watchdog reset helper
function to the new watchdog reset driver.

Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
Tested-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
This commit is contained in:
Tomasz Figa 2013-06-17 23:45:37 +09:00 committed by Kukjin Kim
parent a4658e57a7
commit 88f5973838
7 changed files with 21 additions and 5 deletions

View File

@ -729,6 +729,7 @@ config ARCH_S3C64XX
select SAMSUNG_CLKSRC select SAMSUNG_CLKSRC
select SAMSUNG_GPIOLIB_4BIT select SAMSUNG_GPIOLIB_4BIT
select SAMSUNG_IRQ_VIC_TIMER select SAMSUNG_IRQ_VIC_TIMER
select SAMSUNG_WDT_RESET
select USB_ARCH_HAS_OHCI select USB_ARCH_HAS_OHCI
help help
Samsung S3C64XX series based systems Samsung S3C64XX series based systems
@ -744,6 +745,7 @@ config ARCH_S5P64X0
select HAVE_S3C2410_WATCHDOG if WATCHDOG select HAVE_S3C2410_WATCHDOG if WATCHDOG
select HAVE_S3C_RTC if RTC_CLASS select HAVE_S3C_RTC if RTC_CLASS
select NEED_MACH_GPIO_H select NEED_MACH_GPIO_H
select SAMSUNG_WDT_RESET
help help
Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440, Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
SMDK6450. SMDK6450.
@ -760,6 +762,7 @@ config ARCH_S5PC100
select HAVE_S3C2410_WATCHDOG if WATCHDOG select HAVE_S3C2410_WATCHDOG if WATCHDOG
select HAVE_S3C_RTC if RTC_CLASS select HAVE_S3C_RTC if RTC_CLASS
select NEED_MACH_GPIO_H select NEED_MACH_GPIO_H
select SAMSUNG_WDT_RESET
help help
Samsung S5PC100 series based systems Samsung S5PC100 series based systems

View File

@ -31,6 +31,7 @@ config CPU_S3C2410
select S3C2410_CPUFREQ if CPU_FREQ_S3C24XX select S3C2410_CPUFREQ if CPU_FREQ_S3C24XX
select S3C2410_PM if PM select S3C2410_PM if PM
select SAMSUNG_HRT select SAMSUNG_HRT
select SAMSUNG_WDT_RESET
help help
Support for S3C2410 and S3C2410A family from the S3C24XX line Support for S3C2410 and S3C2410A family from the S3C24XX line
of Samsung Mobile CPUs. of Samsung Mobile CPUs.
@ -81,6 +82,7 @@ config CPU_S3C2442
config CPU_S3C244X config CPU_S3C244X
def_bool y def_bool y
depends on CPU_S3C2440 || CPU_S3C2442 depends on CPU_S3C2440 || CPU_S3C2442
select SAMSUNG_WDT_RESET
config CPU_S3C2443 config CPU_S3C2443
bool "SAMSUNG S3C2443" bool "SAMSUNG S3C2443"

View File

@ -138,6 +138,7 @@ void __init s3c2410_init_clocks(int xtal)
s3c2410_baseclk_add(); s3c2410_baseclk_add();
s3c24xx_register_clock(&s3c2410_armclk); s3c24xx_register_clock(&s3c2410_armclk);
clkdev_add_table(s3c2410_clk_lookup, ARRAY_SIZE(s3c2410_clk_lookup)); clkdev_add_table(s3c2410_clk_lookup, ARRAY_SIZE(s3c2410_clk_lookup));
samsung_wdt_reset_init(S3C24XX_VA_WATCHDOG);
} }
struct bus_type s3c2410_subsys = { struct bus_type s3c2410_subsys = {
@ -201,7 +202,7 @@ void s3c2410_restart(char mode, const char *cmd)
soft_restart(0); soft_restart(0);
} }
arch_wdt_reset(); samsung_wdt_reset();
/* we'll take a jump through zero as a poor second */ /* we'll take a jump through zero as a poor second */
soft_restart(0); soft_restart(0);

View File

@ -133,6 +133,7 @@ void __init s3c244x_init_clocks(int xtal)
s3c24xx_register_baseclocks(xtal); s3c24xx_register_baseclocks(xtal);
s3c244x_setup_clocks(); s3c244x_setup_clocks();
s3c2410_baseclk_add(); s3c2410_baseclk_add();
samsung_wdt_reset_init(S3C24XX_VA_WATCHDOG);
} }
/* Since the S3C2442 and S3C2440 share items, put both subsystems here */ /* Since the S3C2442 and S3C2440 share items, put both subsystems here */
@ -202,7 +203,7 @@ void s3c244x_restart(char mode, const char *cmd)
if (mode == 's') if (mode == 's')
soft_restart(0); soft_restart(0);
arch_wdt_reset(); samsung_wdt_reset();
/* we'll take a jump through zero as a poor second */ /* we'll take a jump through zero as a poor second */
soft_restart(0); soft_restart(0);

View File

@ -183,6 +183,12 @@ core_initcall(s3c64xx_dev_init);
void __init s3c64xx_init_irq(u32 vic0_valid, u32 vic1_valid) void __init s3c64xx_init_irq(u32 vic0_valid, u32 vic1_valid)
{ {
/*
* FIXME: there is no better place to put this at the moment
* (samsung_wdt_reset_init needs clocks)
*/
samsung_wdt_reset_init(S3C_VA_WATCHDOG);
printk(KERN_DEBUG "%s: initialising interrupts\n", __func__); printk(KERN_DEBUG "%s: initialising interrupts\n", __func__);
/* initialise the pair of VICs */ /* initialise the pair of VICs */
@ -378,7 +384,7 @@ arch_initcall(s3c64xx_init_irq_eint);
void s3c64xx_restart(char mode, const char *cmd) void s3c64xx_restart(char mode, const char *cmd)
{ {
if (mode != 's') if (mode != 's')
arch_wdt_reset(); samsung_wdt_reset();
/* if all else fails, or mode was for soft, jump to 0 */ /* if all else fails, or mode was for soft, jump to 0 */
soft_restart(0); soft_restart(0);

View File

@ -173,6 +173,8 @@ void __init s5p64x0_init_io(struct map_desc *mach_desc, int size)
s5p_init_cpu(S5P64X0_SYS_ID); s5p_init_cpu(S5P64X0_SYS_ID);
s3c_init_cpu(samsung_cpu_id, cpu_ids, ARRAY_SIZE(cpu_ids)); s3c_init_cpu(samsung_cpu_id, cpu_ids, ARRAY_SIZE(cpu_ids));
samsung_wdt_reset_init(S3C_VA_WATCHDOG);
} }
void __init s5p6440_map_io(void) void __init s5p6440_map_io(void)
@ -440,7 +442,7 @@ arch_initcall(s5p64x0_init_irq_eint);
void s5p64x0_restart(char mode, const char *cmd) void s5p64x0_restart(char mode, const char *cmd)
{ {
if (mode != 's') if (mode != 's')
arch_wdt_reset(); samsung_wdt_reset();
soft_restart(0); soft_restart(0);
} }

View File

@ -178,6 +178,7 @@ void __init s5pc100_init_clocks(int xtal)
s5p_register_clocks(xtal); s5p_register_clocks(xtal);
s5pc100_register_clocks(); s5pc100_register_clocks();
s5pc100_setup_clocks(); s5pc100_setup_clocks();
samsung_wdt_reset_init(S3C_VA_WATCHDOG);
} }
void __init s5pc100_init_irq(void) void __init s5pc100_init_irq(void)
@ -219,7 +220,7 @@ void __init s5pc100_init_uarts(struct s3c2410_uartcfg *cfg, int no)
void s5pc100_restart(char mode, const char *cmd) void s5pc100_restart(char mode, const char *cmd)
{ {
if (mode != 's') if (mode != 's')
arch_wdt_reset(); samsung_wdt_reset();
soft_restart(0); soft_restart(0);
} }