예제 #1
0
파일: pm.c 프로젝트: Arakmar/G3MOD
int __init s5p6442_pm_init(void)
{
	printk("S5P6442 Power Management, (c) 2008 Samsung Electronics\n");

#ifdef CONFIG_S5P64XX_POWER_GATING
	s5p6442_pwrgate_init();
#else
#ifdef CONFIG_S5P64XX_CLOCK_GATING
	s5p6442_clkgate_init();
#endif /* CONFIG_S5P64XX_CLOCK_GATING */
#endif /* CONFIG_S5P64XX_POWER_GATING */ 
	suspend_set_ops(&s5p6442_pm_ops);

	/* set default value for EINT_WAKEUP_MASK */
	s3c_irqwake_eintmask = 0x00000000;
	s3c_irqwake_eintmask |= (1 << 21); /* BT_HOST_WAKE */

	return 0;
}
예제 #2
0
void s5p6442_pwrgate_init(void)
{
	u32 tmp;

	spin_lock_init(&power_lock);	
	s5p6442_clkgate_init();

	tmp = __raw_readl(S5P_NORMAL_CFG);

#ifdef S5P6442_POWER_GATING_MFC
	tmp &= ~(1 << S5P6442_MFC_ID);
#endif /* S5P6442_POWER_GATING_MFC */

#ifdef S5P6442_POWER_GATING_G3D
	tmp &= ~(1 << S5P6442_G3D_ID);
#endif /* S5P6442_POWER_GATING_G3D */

#ifdef S5P6442_POWER_GATING_TV
	tmp &= ~(1 << S5P6442_TV_ID);
#endif /* S5P6442_POWER_GATING_TV */

#ifdef S5P6442_POWER_GATING_CAM
	tmp &= ~(1 << S5P6442_CAM_ID);
#endif /* S5P6442_POWER_GATING_CAM */

#ifdef S5P6442_POWER_GATING_AUDIO
	tmp &= ~(1 << S5P6442_AUDIO_ID);
#endif /* S5P6442_POWER_GATING_AUDIO */

#ifdef S5P6442_POWER_GATING_IROM
	tmp &= ~(1 << S5P6442_IROM_ID);
#endif
	__raw_writel(tmp, S5P_NORMAL_CFG);
	
	return;
}