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