mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-22 19:23:07 +00:00
38 lines
638 B
C
38 lines
638 B
C
|
// SPDX-License-Identifier: GPL-2.0+
|
||
|
/*
|
||
|
* Copyright (c) 2022 Nuvoton Technology Corp.
|
||
|
*/
|
||
|
|
||
|
#include <common.h>
|
||
|
#include <asm/io.h>
|
||
|
#include <asm/arch/gcr.h>
|
||
|
#include <asm/arch/rst.h>
|
||
|
|
||
|
void reset_cpu(void)
|
||
|
{
|
||
|
/* Generate a watchdog0 reset */
|
||
|
writel(WTCR_WTR | WTCR_WTRE | WTCR_WTE, WTCR0_REG);
|
||
|
|
||
|
while (1)
|
||
|
;
|
||
|
}
|
||
|
|
||
|
void reset_misc(void)
|
||
|
{
|
||
|
struct npcm_gcr *gcr = (struct npcm_gcr *)NPCM_GCR_BA;
|
||
|
|
||
|
clrbits_le32(&gcr->intcr2, INTCR2_WDC);
|
||
|
}
|
||
|
|
||
|
int npcm_get_reset_status(void)
|
||
|
{
|
||
|
struct npcm_gcr *gcr = (struct npcm_gcr *)NPCM_GCR_BA;
|
||
|
u32 val;
|
||
|
|
||
|
val = readl(&gcr->ressr);
|
||
|
if (!val)
|
||
|
val = readl(&gcr->intcr2);
|
||
|
|
||
|
return val & RST_STS_MASK;
|
||
|
}
|