/* * reset the cpu by setting up the watchdog timer and let him time out */ void reset_cpu (ulong ignored) { volatile S3C24X0_WATCHDOG * watchdog; #ifdef CONFIG_TRAB extern void disable_vfd (void); disable_vfd(); #endif watchdog = S3C24X0_GetBase_WATCHDOG(); /* Disable watchdog */ watchdog->WTCON = 0x0000; /* Initialize watchdog timer count register */ watchdog->WTCNT = 0x0001; /* Enable watchdog timer; assert reset at timer timeout */ watchdog->WTCON = 0x0021; while(1); /* loop forever and wait for reset to happen */ /*NOTREACHED*/ }
/* * reset the cpu by setting up the watchdog timer and let him time out */ void reset_cpu(ulong ignored) { struct s3c24x0_watchdog *watchdog; #ifdef CONFIG_TRAB extern void disable_vfd(void); disable_vfd(); #endif watchdog = s3c24x0_get_base_watchdog(); /* Disable watchdog */ writel(0x0000, &watchdog->WTCON); /* Initialize watchdog timer count register */ writel(0x0001, &watchdog->WTCNT); /* Enable watchdog timer; assert reset at timer timeout */ writel(0x0021, &watchdog->WTCON); while (1) /* loop forever and wait for reset to happen */; /*NOTREACHED*/ }