Subject: [PATCH 4/5] ARM: S3C24XX: convert boards to use common restart function

From: [email-masked] (Tomasz Figa)
Date: Thu, 23 Jan 2014 19:51:34 +0100

On 23.01.2014 19:36, Heiko St?bner wrote:
> Am Donnerstag, 23. Januar 2014, 19:12:04 schrieb Tomasz Figa:
>> Hi Heiko,
>>
>> On 06.01.2014 19:40, Heiko St?bner wrote:
>>> This converts all boards to use the new common restart function instead
>>> of SoC specific ones.
>>>
>>> The mach-s3c2416-dt board now tries to setup either a swrst- or watchdog-
>>> reset so that it will be able to handle more s3c24xx-SoCs later on.
>>
>> [snip]
>>
>>> diff --git a/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c
>>> b/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c index 0a86953..88716fa4 100644
>>> --- a/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c
>>> +++ b/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c
>>> @@ -24,6 +24,7 @@
>>>
>>>    #include <plat/cpu.h>
>>>    #include <plat/pm.h>
>>>
>>> +#include <plat/watchdog-reset.h>
>>>
>>>    #include "common.h"
>>>
>>> @@ -34,6 +35,14 @@ static void __init s3c2416_dt_map_io(void)
>>>
>>>    static void __init s3c2416_dt_machine_init(void)
>>>    {
>>>
>>> +	s3c24xx_swrst_reset_of_init();
>>> +
>>> +#ifdef CONFIG_SAMSUNG_WDT_RESET
>>> +	/* if no special swrst-device exists try to find a watchdog */
>>> +	if (!s3c24xx_swrst_reset_available())
>>> +		samsung_wdt_reset_of_init();
>>> +#endif
>>
>> Hmm... I think it would be safe to assume availability of soft reset,
>> especially if you could move the restart code to the clock driver.
>
> ok, so something like the following:
>
> the boards would simply use samsung_watchdog_reset, which should according to
> the manuals be available on all architectures. And the ccf-driver on
> appropriate architectures would simple replace the arm_pm_restart callback
> with its own SoC specific one?
>
> For the s3c2412 this also means that the clock-logic would get simplified.
>
>
> Like this, or do I overlook something?

Hmm, this would mean a dependency on CONFIG_SAMSUNG_WDT_RESET then. Is 
there a need to fall back to it on platforms which support soft reset 
(assuming that CCF driver would always install its restart handler on 
applicable platforms)?

Note that you can make the restart field NULL in mach_desc in board files.

Best regards,
Tomasz