Tom Rini | 10e4779 | 2018-05-06 17:58:06 -0400 | [diff] [blame^] | 1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
Macpaul Lin | 83dbca7 | 2011-10-11 22:33:18 +0000 | [diff] [blame] | 2 | /* |
| 3 | * Copyright (C) 2011 Andes Technology Corporation |
| 4 | * Macpaul Lin, Andes Technology Corporation <macpaul@andestech.com> |
Macpaul Lin | 83dbca7 | 2011-10-11 22:33:18 +0000 | [diff] [blame] | 5 | */ |
| 6 | |
| 7 | #include <asm/arch-ag101/ag101.h> |
Macpaul Lin | a473271 | 2011-11-30 16:01:28 +0800 | [diff] [blame] | 8 | #include <linux/linkage.h> |
Macpaul Lin | 83dbca7 | 2011-10-11 22:33:18 +0000 | [diff] [blame] | 9 | |
| 10 | .text |
| 11 | |
| 12 | #ifndef CONFIG_SKIP_TRUNOFF_WATCHDOG |
Macpaul Lin | a473271 | 2011-11-30 16:01:28 +0800 | [diff] [blame] | 13 | ENTRY(turnoff_watchdog) |
Macpaul Lin | 83dbca7 | 2011-10-11 22:33:18 +0000 | [diff] [blame] | 14 | |
| 15 | #define WD_CR 0xC |
| 16 | #define WD_ENABLE 0x1 |
| 17 | |
| 18 | ! Turn off the watchdog, according to Faraday FTWDT010 spec |
| 19 | li $p0, (CONFIG_FTWDT010_BASE+WD_CR) ! Get the addr of WD CR |
| 20 | lwi $p1, [$p0] ! Get the config of WD |
| 21 | andi $p1, $p1, 0x1f ! Wipe out useless bits |
| 22 | li $r0, ~WD_ENABLE |
| 23 | and $p1, $p1, $r0 ! Set WD disable |
| 24 | sw $p1, [$p0] ! Write back to WD CR |
| 25 | |
| 26 | ! Disable Interrupts by clear GIE in $PSW reg |
| 27 | setgie.d |
| 28 | |
| 29 | ret |
| 30 | |
Macpaul Lin | a473271 | 2011-11-30 16:01:28 +0800 | [diff] [blame] | 31 | ENDPROC(turnoff_watchdog) |
Macpaul Lin | 83dbca7 | 2011-10-11 22:33:18 +0000 | [diff] [blame] | 32 | #endif |