]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - arch/nds32/cpu/n1213/ag102/watchdog.S
NDS32: Generic Board Support and Unsupport
[karo-tx-uboot.git] / arch / nds32 / cpu / n1213 / ag102 / watchdog.S
1 /*
2  * Copyright (C) 2011 Andes Technology Corporation
3  * Macpaul Lin, Andes Technology Corporation <macpaul@andestech.com>
4  *
5  * SPDX-License-Identifier:     GPL-2.0+
6  */
7
8 #include <asm/arch-ag102/ag102.h>
9 #include <linux/linkage.h>
10
11 .text
12
13 #ifndef CONFIG_SKIP_TRUNOFF_WATCHDOG
14 ENTRY(turnoff_watchdog)
15
16 #define WD_CR           0xC
17 #define WD_ENABLE       0x1
18
19         ! Turn off the watchdog, according to Faraday FTWDT010 spec
20         li      $p0, (CONFIG_FTWDT010_BASE+WD_CR)       ! Get the addr of WD CR
21         lwi     $p1, [$p0]                              ! Get the config of WD
22         andi    $p1, $p1, 0x1f                          ! Wipe out useless bits
23         li      $r0, ~WD_ENABLE
24         and     $p1, $p1, $r0                           ! Set WD disable
25         sw      $p1, [$p0]                              ! Write back to WD CR
26
27         ! Disable Interrupts by clear GIE in $PSW reg
28         setgie.d
29
30         ret
31
32 ENDPROC(turnoff_watchdog)
33 #endif