void mt_power_off(void)
{
#ifdef CONFIG_MTK_PMIC_MT6397
	int ret_val=0;
	int reg_val=0;
#endif

	printk("mt_power_off\n");

#ifdef CONFIG_MTK_PMIC_MT6397
	//Enable CA15 by default for different PMIC behavior
	pmic_config_interface(VCA15_CON7, 0x1, PMIC_VCA15_EN_MASK, PMIC_VCA15_EN_SHIFT);
	pmic_config_interface(VSRMCA15_CON7, 0x1, PMIC_VSRMCA15_EN_MASK, PMIC_VSRMCA15_EN_SHIFT);
	udelay(200);
         
	ret_val=pmic_read_interface(VCA15_CON7, &reg_val, 0xFFFF, 0);
	printk("Reg[0x%x]=0x%x\n", VCA15_CON7, reg_val);
	ret_val=pmic_read_interface(VSRMCA15_CON7, &reg_val, 0xFFFF, 0);
	printk("Reg[0x%x]=0x%x\n", VSRMCA15_CON7, reg_val);
#endif
	/* pull PWRBB low */
	rtc_bbpu_power_down();

	while (1) {
#if defined(CONFIG_POWER_EXT)
		//EVB
		printk("EVB without charger\n");
#else	
		//Phone	
		printk("Phone with charger\n");
		if (pmic_chrdet_status() == KAL_TRUE)
			arch_reset(0, "power_off_with_charger");
#endif
    }
}
Esempio n. 2
0
void mt_power_off(void)
{
	printk("mt_power_off\n");
	/* pull PWRBB low */
	rtc_bbpu_power_down();

	while (1) {
		printk("mt_power_off : check charger\n");
		if (pmic_chrdet_status() == KAL_TRUE)
			arch_reset(0, "charger");
	}
}
Esempio n. 3
0
void mt6575_power_off(void)
{
	//printf("mt_power_off\n");

	/* pull PWRBB low */
	rtc_bbpu_power_down();

	while (1) {
		//printf("mt_power_off : check charger\n");
		if (pmic_chrdet_status() == KAL_TRUE)
			mtk_arch_reset(0);
	}
}
void mt_power_off(void)
{
	printk("mt_power_off\n");
#ifdef MTK_NCP1851_SUPPORT
 //Set SPM = 0, for lenovo platform, GPIO83
  mt_set_gpio_mode(GPIO83, GPIO_MODE_00);
  mt_set_gpio_dir(GPIO83, GPIO_DIR_OUT);
  mt_set_gpio_out(GPIO83, GPIO_OUT_ZERO);
#endif

	/* pull PWRBB low */
	rtc_bbpu_power_down();

	while (1) {
		printk("mt_power_off : check charger\n");
		if (pmic_chrdet_status() == KAL_TRUE)
			arch_reset(0, "charger");
	}
}
Esempio n. 5
0
void mt_power_off(void)
{
	printk("mt_power_off\n");

	/* pull PWRBB low */
	rtc_bbpu_power_down();

	while (1) {
#if defined(CONFIG_POWER_EXT)
		//EVB
		printk("EVB without charger\n");
#else	
		//Phone	
		printk("Phone with charger\n");
		if (pmic_chrdet_status() == KAL_TRUE)
			arch_reset(0, "power_off_with_charger");
#endif
    }
}
Esempio n. 6
0
void mt_power_off(void)
{
	printk("mt_power_off\n");

	// enable VRTC PWM if needed
	rtc_pwm_enable_check();

	/* pull PWRBB low */
	/*Hong-Rong: FIXME for early porting*/
	rtc_bbpu_power_down();

	while (1) {
#if defined(CONFIG_POWER_EXT)
		//EVB
		printk("EVB without charger\n");
#else	
		//Phone	
		printk("Phone with charger\n");
		if (pmic_chrdet_status() == KAL_TRUE)
			arch_reset(0, "power_off_with_charger");
#endif
    }
}
Esempio n. 7
0
void mt_power_off(void)
{
	int count = 0;
	printk("mt_power_off\n");

	/* pull PWRBB low */
	rtc_bbpu_power_down();

	while (1) {
#if defined(CONFIG_POWER_EXT)
		//EVB
		printk("EVB without charger\n");
#else	
		//Phone
		mdelay(100);	
		printk("Phone with charger\n");
		if (pmic_chrdet_status() == KAL_TRUE || count > 10)
			arch_reset(0, "charger");

		count++;
#endif
    }
}