static int pmu_hi6561_power_off_local(HI6561_POWER_ID power_id,HI6561_ID_ENUM chip_id )
{
	int ret=MIPI_OK;
	/*judge the paramemt is invalid or not*/
	if(power_id>PMU_HI6561_BUCK2||power_id<PMU_HI6561_LDO1)
	{
		mipi_print_error("Error:power id is invalid!\n");
		ret=MIPI_ERROR;
	}
	#if 0
	if(power_id>PMU_HI6561_LDO2&&power_id<PMU_HI6561_POWER_ID_BUTT){
		if(!strcmp(pmu_hi6561_exc_isr(chip_id),err_list[power_id])){
			over_flow_tag[chip_id][power_id]=PMU_HI6561_OVER_FLOW;/*需要和zhangliping确认,标志位如何让上层知道*/
		}
	}
	#endif
	ret=pmu_hi6561_power_switch(power_id, PA_STAR_POWER_OFF,chip_id);
	if(MIPI_OK!=ret){		
		mipi_print_error("Error:close buck failed!\n");
		ret=MIPI_ERROR;
	}
	#if 0
	ret=pmu_hi6561_exc_clear((EXCEPTION_TYPE_E)power_id,chip_id);
	if(MIPI_OK!=ret){		
		mipi_print_error("Error:close buck failed!\n");
		ret=MIPI_ERROR;
	}
	#endif
	return ret;
}
Пример #2
0
/*****************************************************************************
 函 数 名  : drv_pmu_hi6561_exc_check
 功能描述  : 通信模块检查PASTAR是否有异常接口
 输入参数  : modem_id       卡号
 输出参数  : 无
 返 回 值  : BSP_OK          没有异常
             BSP_ERROR       存在异常
*****************************************************************************/
s32 drv_pmu_hi6561_exc_check(PWC_COMM_MODEM_E modem_id)
{
	if(PWC_COMM_MODEM_BUTT<=modem_id){
		mipi_print_error("invalid param with modem id %d\n",modem_id);
		return MIPI_ERROR;
	}

    /* 副卡PA/RF不用PAStar供电时,不去check modem1。 */
    if((pa_power_unit.papower_m1 != PA_POWER_FROM_HI6561) && 
       (rf_power_unit.rfpower_m1 != RF_POWER_FROM_HI6561) && 
       (PWC_COMM_MODEM_1 == modem_id))
    {
        return MIPI_OK;
    }
    
	if(strcmp("UNKOWN",pmu_hi6561_exc_isr((HI6561_ID_ENUM)modem_id))){
		return (BSP_S32)MIPI_ERROR;/*pmu 存在异常*/
	}

	return (BSP_S32)MIPI_OK;
}