/*----------------电流源其他设置相关接口,给lcd背光模块调用的接口-------------------*/
s32 hi6559_lcd_bl_power_switch(power_switch_e sw)
{
    s32 iret = BSP_PMU_OK;
    switch(sw)
    {
        case POWER_OFF:
            iret = bsp_hi6559_dr_disable(PMIC_HI6559_DR01);
            break;
        case POWER_ON:
            iret = bsp_hi6559_dr_enable(PMIC_HI6559_DR01);
            break;
        default:
            break;
    }
    pmic_print_info("hi6559_bl_power ok!\n");
    return iret;
}
Beispiel #2
0
int bsp_dr_switch(int dr_id, power_switch_e sw)
{
    int iret = BSP_PMU_OK;

    switch(sw)
    {
        case POWER_OFF:
            iret = bsp_hi6559_dr_disable(dr_id);
            break;
        case POWER_ON:
            iret = bsp_hi6559_dr_enable(dr_id);
            break;
        default:
            break;
    }
    pmic_print_info("hi6559_ldo14_switch ok!\n");

    return iret;
}
/*****************************************************************************
 函 数 名  : hi6559_dr_onoff_err_test
 功能描述  : DR开关错误流程测试
 输入参数  : 无
 输出参数  : 无
 返 回 值  : 0 - 成功;else - 失败
*****************************************************************************/
s32 hi6559_dr_onoff_err_test(void)
{
    s32 iret = 0;
    s32 result = BSP_PMU_OK;

    /* 异常id */
    iret = bsp_hi6559_dr_enable(PMIC_HI6559_DR_MIN - 1);/*lint !e415 !e831*/
    if(BSP_PMU_OK != iret)
    {
        pmic_print_error("bsp_hi6559_dr_enable err, ret %d!\n", iret);
        result |= iret;
    }
    /* 异常id */
    iret = bsp_hi6559_dr_disable(PMIC_HI6559_DR_MAX + 1);/*lint !e415 !e831*/
    if(BSP_PMU_OK != iret)
    {
        pmic_print_error("bsp_hi6559_dr_disable err, ret %d!\n", iret);
        result |= iret;
    }
    /* 异常id */
    iret = bsp_hi6559_dr_is_enabled(PMIC_HI6559_DR_MIN - 1);/*lint !e415 !e831*/
    if(BSP_PMU_OK != iret)
    {
        pmic_print_error("bsp_hi6559_dr_is_enabled err, ret %d!\n", iret);
        result |= iret;
    }

    if(result)
    {
        pmic_print_error("hi6559_dr_onoff_err_test ok!!\n");
    }
    else
    {
        pmic_print_error("hi6559_dr_onoff_err_test failed!!\n");
    }
    
    return result;
}
/*****************************************************************************
 函 数 名  : hi6559_dr_disable_test
 功能描述  : DR不使能测试
 输入参数  : 无
 输出参数  : 无
 返 回 值  : 0 - 成功;else - 失败
*****************************************************************************/
s32 hi6559_dr_disable_test(void)
{
    s32 id_test = 0, ret = BSP_PMU_OK;
    s32 result = BSP_PMU_OK;

    for(id_test = PMIC_HI6559_DR_MIN; id_test <= PMIC_HI6559_DR_MAX; id_test++)
    {
        /* fla模式 */
        ret = bsp_hi6559_dr_set_mode(id_test,PMU_DRS_MODE_FLA_FLASH);
        if(ret)
        {
            pmic_print_error("ERROR bsp_hi6559_dr_set_mode failed, dr_id %d, ret %d!\n", id_test, ret);
            result |= ret;
        }         
        
        ret = bsp_hi6559_dr_disable(id_test);
        if(ret)
        {
            pmic_print_error("ERROR bsp_hi6559_dr_disable failed, dr_id %d, ret %d!\n", id_test, ret);
            result |= ret;
        }  
        
        ret = bsp_hi6559_dr_is_enabled(id_test);
        if(ret)
        {
            pmic_print_error("ERROR bsp_hi6559_dr_is_enabled failed, dr_id %d, ret %d!\n", id_test, ret);
            result |= ret;
        }         

        /* bre模式 */
        ret = bsp_hi6559_dr_set_mode(id_test,PMU_DRS_MODE_BRE_FLASH);
        if(ret)
        {
            pmic_print_error("ERROR bsp_hi6559_dr_set_mode failed, dr_id %d, ret %d!\n", id_test, ret);
            result |= ret;
        }      
        
        ret = bsp_hi6559_dr_disable(id_test);
        if(ret)
        {
            pmic_print_error("ERROR bsp_hi6559_dr_disable failed, dr_id %d, ret %d!\n", id_test, ret);
            result |= ret;
        } 

        ret = bsp_hi6559_dr_is_enabled(id_test);
        if(ret)
        {
            pmic_print_error("ERROR bsp_hi6559_dr_is_enabled failed, dr_id %d, ret %d!\n", id_test, ret);
            result |= ret;
        }         

        /* fla模式 */
        ret = bsp_hi6559_dr_set_mode(id_test,PMU_DRS_MODE_FLA_LIGHT);
        if(ret)
        {
            pmic_print_error("ERROR bsp_hi6559_dr_set_mode failed, dr_id %d, ret %d!\n", id_test, ret);
            result |= ret;
        }         

        ret = bsp_hi6559_dr_disable(id_test);
        if(ret)
        {
            pmic_print_error("ERROR bsp_hi6559_dr_disable failed, dr_id %d, ret %d!\n", id_test, ret);
            result |= ret;
        }         

        ret = bsp_hi6559_dr_is_enabled(id_test);
        if(ret)
        {
            pmic_print_error("ERROR bsp_hi6559_dr_is_enabled failed, dr_id %d, ret %d!\n", id_test, ret);
            result |= ret;
        }         

        /* bre模式 */
        ret = bsp_hi6559_dr_set_mode(id_test,PMU_DRS_MODE_BRE);
        if(ret)
        {
            pmic_print_error("ERROR bsp_hi6559_dr_set_mode failed, dr_id %d, ret %d!\n", id_test, ret);
            result |= ret;
        }         

        ret = bsp_hi6559_dr_disable(id_test);
        if(ret)
        {
            pmic_print_error("ERROR bsp_hi6559_dr_disable failed, dr_id %d, ret %d!\n", id_test, ret);
            result |= ret;
        }         

        ret = bsp_hi6559_dr_is_enabled(id_test);
        if(ret)
        {
            pmic_print_error("ERROR bsp_hi6559_dr_is_enabled failed, dr_id %d, ret %d!\n", id_test, ret);
            result |= ret;
        }         

        /* 呼吸常亮模式 */
        ret = bsp_hi6559_dr_set_mode(id_test,PMU_DRS_MODE_BRE_LIGHT);
        if(ret)
        {
            pmic_print_error("ERROR bsp_hi6559_dr_set_mode failed, dr_id %d, ret %d!\n", id_test, ret);
            result |= ret;
        }         

        ret = bsp_hi6559_dr_disable(id_test);
        if(ret)
        {
            pmic_print_error("ERROR bsp_hi6559_dr_disable failed, dr_id %d, ret %d!\n", id_test, ret);
            result |= ret;
        }         

        ret = bsp_hi6559_dr_is_enabled(id_test);
        if(ret)
        {
            pmic_print_error("ERROR bsp_hi6559_dr_is_enabled failed, dr_id %d, ret %d!\n", id_test, ret);
            result |= ret;
        }         

    }

    if(result)
    {
        pmic_print_error("hi6559_dr_disable_test ok!!\n");
    }
    else
    {
        pmic_print_error("hi6559_dr_disable_test failed!!\n");
    }
    
    return result;
}