]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - arch/mips/cpu/mips32/incaip/incaip_wdt.S
karo: tx51: justify and adjust the delay required before releasing the ETN PHY strap...
[karo-tx-uboot.git] / arch / mips / cpu / mips32 / incaip / incaip_wdt.S
1 /*
2  *  INCA-IP Watchdog timer management code.
3  *
4  *  Copyright (c) 2003  Wolfgang Denk <wd@denx.de>
5  *
6  * SPDX-License-Identifier:     GPL-2.0+
7  */
8
9
10 #include <config.h>
11 #include <asm/regdef.h>
12
13
14 #define WD_BASE            0xb8000000
15 #define WD_CON0(value)     0x0020(value)
16 #define WD_CON1(value)     0x0024(value)
17 #define WD_DISABLE         0x00000008
18 #define WD_ENABLE          0x00000000
19 #define WD_WRITE_PW        0xFFFC00F8
20 #define WD_WRITE_ENDINIT   0xFFFC00F3
21 #define WD_WRITE_INIT      0xFFFC00F2
22
23
24         .globl  disable_incaip_wdt
25 disable_incaip_wdt:
26         li      t0, WD_BASE
27
28         /* Calculate password.
29          */
30         lw      t2, WD_CON1(t0)
31         and     t2, 0xC
32
33         lw      t3, WD_CON0(t0)
34         and     t3, 0xFFFFFF01
35
36         or      t3, t2
37         or      t3, 0xF0
38
39         sw      t3, WD_CON0(t0)         /* write password */
40
41         /* Clear ENDINIT.
42          */
43         li      t1, WD_WRITE_INIT
44         sw      t1, WD_CON0(t0)
45
46
47         li      t1, WD_DISABLE
48         sw      t1, WD_CON1(t0)         /* disable watchdog */
49         li      t1, WD_WRITE_PW
50         sw      t1, WD_CON0(t0)         /* write password */
51         li      t1, WD_WRITE_ENDINIT
52         sw      t1, WD_CON0(t0)         /* end command */
53
54         jr      ra
55         nop