int do_lowlevel_init(void)
{
	uint32_t reset_status;
	int actions = 0;

	arch_cpu_init();

	reset_status = get_reset_status();

	switch (reset_status) {
	case S5P_CHECK_SLEEP:
		actions = DO_CLOCKS | DO_WAKEUP;
		break;
	case S5P_CHECK_DIDLE:
	case S5P_CHECK_LPA:
		actions = DO_WAKEUP;
		break;
	default:
		/* This is a normal boot (not a wake from sleep) */
		actions = DO_CLOCKS | DO_MEM_RESET | DO_POWER;
	}

	if (actions & DO_POWER)
		set_ps_hold_ctrl();

	if (actions & DO_CLOCKS) {
		//system_clock_init();
		//mem_ctrl_init(actions & DO_MEM_RESET);
		//tzpc_init();
	}

	return actions & DO_WAKEUP;
}
int watchdog_device_is_poweron_reset()
{
    int reset_status = get_reset_status();
    return (reset_status == AT91C_RSTC_RSTTYP_POWERUP)? 1 : 0;
}
int watchdog_device_is_watchdog_reset()
{
    int reset_status = get_reset_status();
    return (reset_status == AT91C_RSTC_RSTTYP_WATCHDOG)? 1 : 0;
}