forked from Xilinx/u-boot-xlnx
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This patch adds support the generic watchdog timer for s5pc1xx and exynos4 Signed-off-by: Minkyu Kang <[email protected]> Signed-off-by: Kyungmin Park <[email protected]> Cc: HeungJun, Kim <[email protected]>
- Loading branch information
1 parent
0e94a71
commit 851db35
Showing
5 changed files
with
124 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
/* | ||
* Copyright (C) 2012 Samsung Electronics | ||
* Minkyu Kang <[email protected]> | ||
* | ||
* See file CREDITS for list of people who contributed to this | ||
* project. | ||
* | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public License as | ||
* published by the Free Software Foundation; either version 2 of | ||
* the License, or (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program; if not, write to the Free Software | ||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||
* MA 02111-1307 USA | ||
*/ | ||
|
||
#include <common.h> | ||
#include <asm/io.h> | ||
#include <asm/arch/watchdog.h> | ||
|
||
#define PRESCALER_VAL 255 | ||
|
||
void wdt_stop(void) | ||
{ | ||
struct s5p_watchdog *wdt = | ||
(struct s5p_watchdog *)samsung_get_base_watchdog(); | ||
unsigned int wtcon; | ||
|
||
wtcon = readl(&wdt->wtcon); | ||
wtcon &= ~(WTCON_EN | WTCON_INT | WTCON_RESET); | ||
|
||
writel(wtcon, &wdt->wtcon); | ||
} | ||
|
||
void wdt_start(unsigned int timeout) | ||
{ | ||
struct s5p_watchdog *wdt = | ||
(struct s5p_watchdog *)samsung_get_base_watchdog(); | ||
unsigned int wtcon; | ||
|
||
wdt_stop(); | ||
|
||
wtcon = readl(&wdt->wtcon); | ||
wtcon |= (WTCON_EN | WTCON_CLK(WTCON_CLK_128)); | ||
wtcon &= ~WTCON_INT; | ||
wtcon |= WTCON_RESET; | ||
wtcon |= WTCON_PRESCALER(PRESCALER_VAL); | ||
|
||
writel(timeout, &wdt->wtdat); | ||
writel(timeout, &wdt->wtcnt); | ||
writel(wtcon, &wdt->wtcon); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
/* | ||
* Copyright (C) 2011 Samsung Electronics | ||
* Heungjun Kim <[email protected]> | ||
* Minkyu Kang <[email protected]> | ||
* | ||
* See file CREDITS for list of people who contributed to this | ||
* project. | ||
* | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public License as | ||
* published by the Free Software Foundation; either version 2 of | ||
* the License, or (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program; if not, write to the Free Software | ||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||
* MA 02111-1307 USA | ||
*/ | ||
|
||
#ifndef __ASM_ARM_ARCH_WATCHDOG_H_ | ||
#define __ASM_ARM_ARCH_WATCHDOG_H_ | ||
|
||
#define WTCON_RESET_OFFSET 0 | ||
#define WTCON_INTEN_OFFSET 2 | ||
#define WTCON_CLKSEL_OFFSET 3 | ||
#define WTCON_EN_OFFSET 5 | ||
#define WTCON_PRE_OFFSET 8 | ||
|
||
#define WTCON_CLK_16 0x0 | ||
#define WTCON_CLK_32 0x1 | ||
#define WTCON_CLK_64 0x2 | ||
#define WTCON_CLK_128 0x3 | ||
|
||
#define WTCON_CLK(x) ((x & 0x3) << WTCON_CLKSEL_OFFSET) | ||
#define WTCON_PRESCALER(x) ((x) << WTCON_PRE_OFFSET) | ||
#define WTCON_EN (0x1 << WTCON_EN_OFFSET) | ||
#define WTCON_RESET (0x1 << WTCON_RESET_OFFSET) | ||
#define WTCON_INT (0x1 << WTCON_INTEN_OFFSET) | ||
|
||
#ifndef __ASSEMBLY__ | ||
struct s5p_watchdog { | ||
unsigned int wtcon; | ||
unsigned int wtdat; | ||
unsigned int wtcnt; | ||
unsigned int wtclrint; | ||
}; | ||
|
||
/* functions */ | ||
void wdt_stop(void); | ||
void wdt_start(unsigned int timeout); | ||
#endif /* __ASSEMBLY__ */ | ||
|
||
#endif |