mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-06-09 23:36:03 +09:00
powerpc: mpc8xx: cleaning up watchdog
In preparation of migration to DM watchdog, clean up a bit. The 8xx watchdog really is a HW watchdog, so declare it as is then it goes through Kconfig And the watchdog reset doesn't mind getting interrupted, so no need to disable interrupts Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
This commit is contained in:
parent
ab0d819258
commit
5c5da4318b
|
@ -34,6 +34,7 @@ config MPC8xx
|
|||
bool "MPC8xx"
|
||||
select BOARD_EARLY_INIT_F
|
||||
imply CMD_REGINFO
|
||||
imply HW_WATCHDOG
|
||||
|
||||
endchoice
|
||||
|
||||
|
|
|
@ -272,24 +272,11 @@ unsigned long get_tbclk(void)
|
|||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
#if defined(CONFIG_WATCHDOG)
|
||||
void watchdog_reset(void)
|
||||
#if defined(CONFIG_HW_WATCHDOG)
|
||||
void hw_watchdog_reset(void)
|
||||
{
|
||||
int re_enable = disable_interrupts();
|
||||
immap_t __iomem *immr = (immap_t __iomem *)CONFIG_SYS_IMMR;
|
||||
|
||||
reset_8xx_watchdog((immap_t __iomem *)CONFIG_SYS_IMMR);
|
||||
if (re_enable)
|
||||
enable_interrupts();
|
||||
}
|
||||
#endif /* CONFIG_WATCHDOG */
|
||||
|
||||
#if defined(CONFIG_WATCHDOG)
|
||||
|
||||
void reset_8xx_watchdog(immap_t __iomem *immr)
|
||||
{
|
||||
/*
|
||||
* All other boards use the MPC8xx Internal Watchdog
|
||||
*/
|
||||
out_be16(&immr->im_siu_conf.sc_swsr, 0x556c); /* write magic1 */
|
||||
out_be16(&immr->im_siu_conf.sc_swsr, 0xaa39); /* write magic2 */
|
||||
}
|
||||
|
|
|
@ -26,11 +26,12 @@ void cpu_init_f(immap_t __iomem *immr)
|
|||
|
||||
/* SYPCR - contains watchdog control (11-9) */
|
||||
|
||||
out_be32(&immr->im_siu_conf.sc_sypcr, CONFIG_SYS_SYPCR);
|
||||
#ifndef CONFIG_HW_WATCHDOG
|
||||
/* deactivate watchdog if not enabled in config */
|
||||
out_be32(&immr->im_siu_conf.sc_sypcr, CONFIG_SYS_SYPCR & ~SYPCR_SWE);
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_WATCHDOG)
|
||||
reset_8xx_watchdog(immr);
|
||||
#endif /* CONFIG_WATCHDOG */
|
||||
WATCHDOG_RESET();
|
||||
|
||||
/* SIUMCR - contains debug pin configuration (11-6) */
|
||||
setbits_be32(&immr->im_siu_conf.sc_siumcr, CONFIG_SYS_SIUMCR);
|
||||
|
|
|
@ -60,8 +60,6 @@
|
|||
|
||||
#define CONFIG_LOADS_ECHO 1 /* echo on for serial download */
|
||||
|
||||
#define CONFIG_WATCHDOG 1 /* watchdog enabled */
|
||||
|
||||
/* Miscellaneous configurable options */
|
||||
|
||||
#define CONFIG_SYS_MEMTEST_START 0x00002000
|
||||
|
|
|
@ -72,11 +72,6 @@ int init_func_watchdog_reset(void);
|
|||
* Prototypes from $(CPU)/cpu.c.
|
||||
*/
|
||||
|
||||
/* MPC 8xx */
|
||||
#if defined(CONFIG_MPC8xx) && !defined(__ASSEMBLY__)
|
||||
void reset_8xx_watchdog(immap_t __iomem *immr);
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_HW_WATCHDOG) && !defined(__ASSEMBLY__)
|
||||
void hw_watchdog_init(void);
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue
Block a user