]>
Commit | Line | Data |
---|---|---|
83d290c5 | 1 | // SPDX-License-Identifier: GPL-2.0+ |
77bfa6b4 TR |
2 | /* |
3 | * Processor reset using WDT. | |
4 | * | |
5 | * Copyright (C) 2012 Dmitry Bondar <bond@inmys.ru> | |
6 | * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net> | |
1a459660 | 7 | */ |
77bfa6b4 | 8 | |
d678a59d | 9 | #include <common.h> |
9a3b4ceb | 10 | #include <cpu_func.h> |
77bfa6b4 TR |
11 | #include <asm/io.h> |
12 | #include <asm/arch/timer_defs.h> | |
13 | #include <asm/arch/hardware.h> | |
14 | ||
35b65dd8 | 15 | void reset_cpu(void) |
77bfa6b4 TR |
16 | { |
17 | struct davinci_timer *const wdttimer = | |
21f11c7b | 18 | (struct davinci_timer *)DAVINCI_WDOG_BASE; |
77bfa6b4 TR |
19 | writel(0x08, &wdttimer->tgcr); |
20 | writel(readl(&wdttimer->tgcr) | 0x03, &wdttimer->tgcr); | |
21 | writel(0, &wdttimer->tim12); | |
22 | writel(0, &wdttimer->tim34); | |
23 | writel(0, &wdttimer->prd12); | |
24 | writel(0, &wdttimer->prd34); | |
25 | writel(readl(&wdttimer->tcr) | 0x40, &wdttimer->tcr); | |
26 | writel(readl(&wdttimer->wdtcr) | 0x4000, &wdttimer->wdtcr); | |
27 | writel(0xa5c64000, &wdttimer->wdtcr); | |
28 | writel(0xda7e4000, &wdttimer->wdtcr); | |
29 | writel(0x4000, &wdttimer->wdtcr); | |
30 | while (1) | |
31 | /*nothing*/; | |
32 | } |