Exemple #1
0
void jz_hibernate(void)
{
	local_irq_disable();
#ifdef CONFIG_BOARD_H600S
	poweroff_inand();
#endif
	/* Set minimum wakeup_n pin low-level assertion time for wakeup: 1000ms */
	rtc_write_reg(RTC_HWFCR, HWFCR_WAIT_TIME(1000));

	/* Set reset pin low-level assertion time after wakeup: must  > 60ms */
	rtc_write_reg(RTC_HRCR, (3 << 11));

	/* clear wakeup status register */
	rtc_write_reg(RTC_HWRSR, 0x0);

	rtc_write_reg(RTC_HWCR, 0x8);
	while(1) {
	/* Put CPU to hibernate mode */
	rtc_write_reg(RTC_HCR, 0x1);

	jz_notifier_call(NOTEFY_PROI_HIGH, JZ_POST_HIBERNATION, NULL);

	mdelay(200);
		printk("We should NOT come here.%08x\n",inl(RTC_IOBASE + RTC_HCR));
}
}
Exemple #2
0
void arch_exit_mmap(struct mm_struct *mm)
{
	jz_notifier_call(NOTEFY_PROI_NORMAL, MMU_CONTEXT_EXIT_MMAP, mm);
	return;
}