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, ®_val, 0xFFFF, 0); printk("Reg[0x%x]=0x%x\n", VCA15_CON7, reg_val); ret_val=pmic_read_interface(VSRMCA15_CON7, ®_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 } }
void hal_rtc_bbpu_pwdn(void) { u16 ret_val, con; /* disable 32K export if there are no RTC_GPIO users */ if (!(rtc_read(RTC_PDN1) & RTC_GPIO_USER_MASK)) { con = rtc_read(RTC_CON) | RTC_CON_F32KOB; rtc_write(RTC_CON, con); rtc_write_trigger(); } ret_val = hal_rtc_get_spare_register(RTC_32K_LESS); #if !defined(CONFIG_MTK_FPGA) if (!ret_val && pmic_chrdet_status() == KAL_FALSE) { /* 1. Set SRCLKENAs GPIO GPIO as Output Mode, Output Low */ mt_set_gpio_dir(GPIO_SRCLKEN_PIN, GPIO_DIR_OUT); mt_set_gpio_out(GPIO_SRCLKEN_PIN, GPIO_OUT_ZERO); /* 2. pull PWRBB low */ rtc_bbpu_pwrdown(true); /* 3. Switch SRCLKENAs GPIO MUX function to GPIO Mode */ mt_set_gpio_mode(GPIO_SRCLKEN_PIN, GPIO_MODE_GPIO); } else #endif { rtc_bbpu_pwrdown(true); } }
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"); } }
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"); } }
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 } }
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 } }
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 } }