1*83d290c5STom Rini/* SPDX-License-Identifier: GPL-2.0+ */
2445a886dSMacpaul Lin/*
3445a886dSMacpaul Lin * Copyright (C) 2011 Andes Technology Corporation
4445a886dSMacpaul Lin * Macpaul Lin, Andes Technology Corporation <macpaul@andestech.com>
5445a886dSMacpaul Lin */
6445a886dSMacpaul Lin
7445a886dSMacpaul Lin#include <asm/arch-ag101/ag101.h>
83998586bSMacpaul Lin#include <linux/linkage.h>
9445a886dSMacpaul Lin
10445a886dSMacpaul Lin.text
11445a886dSMacpaul Lin
12445a886dSMacpaul Lin#ifndef CONFIG_SKIP_TRUNOFF_WATCHDOG
133998586bSMacpaul LinENTRY(turnoff_watchdog)
14445a886dSMacpaul Lin
15445a886dSMacpaul Lin#define WD_CR		0xC
16445a886dSMacpaul Lin#define WD_ENABLE	0x1
17445a886dSMacpaul Lin
18445a886dSMacpaul Lin	! Turn off the watchdog, according to Faraday FTWDT010 spec
19445a886dSMacpaul Lin	li 	$p0, (CONFIG_FTWDT010_BASE+WD_CR)	! Get the addr of WD CR
20445a886dSMacpaul Lin	lwi	$p1, [$p0]				! Get the config of WD
21445a886dSMacpaul Lin	andi	$p1, $p1, 0x1f				! Wipe out useless bits
22445a886dSMacpaul Lin	li	$r0, ~WD_ENABLE
23445a886dSMacpaul Lin	and	$p1, $p1, $r0				! Set WD disable
24445a886dSMacpaul Lin	sw	$p1, [$p0]				! Write back to WD CR
25445a886dSMacpaul Lin
26445a886dSMacpaul Lin	! Disable Interrupts by clear GIE in $PSW reg
27445a886dSMacpaul Lin	setgie.d
28445a886dSMacpaul Lin
29445a886dSMacpaul Lin	ret
30445a886dSMacpaul Lin
313998586bSMacpaul LinENDPROC(turnoff_watchdog)
32445a886dSMacpaul Lin#endif
33