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>
master
Christophe Leroy 6 years ago committed by Tom Rini
parent ab0d819258
commit 5c5da4318b
  1. 1
      arch/powerpc/Kconfig
  2. 19
      arch/powerpc/cpu/mpc8xx/cpu.c
  3. 9
      arch/powerpc/cpu/mpc8xx/cpu_init.c
  4. 2
      include/configs/MCR3000.h
  5. 5
      include/watchdog.h

@ -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…
Cancel
Save