コード例 #1
0
/*suspend时需要关闭电源*/
int bsp_pmu_suspend(void)
{

    int iret = BSP_PMU_OK;
    PMIC_HI6551_VLTGS_TABLE *hi6551_volt_table = (PMIC_HI6551_VLTGS_TABLE *)SHM_PMU_VOLTTABLE_ADDR;
    PMIC_HI6551_VLTGS_ATTR *hi6551_volt;
    unsigned int i = 0 ;
    u8 volt_id = 0;
    u8 regval = 0;


    /*DDR中电压属性表安全性检查*/
    iret = hi6551_volt_table_check(hi6551_volt_table);
    if(BSP_PMU_OK != iret)
        return  BSP_PMU_VOLTTABLE_ERROR;

    for(i = 0;i < sizeof(pmu_volt)/(sizeof((pmu_volt)[0]));i++)
    {
        volt_id = pmu_volt[i].volt_id;
        hi6551_volt = &hi6551_volt_table->hi6551_volt_attr[volt_id];

        bsp_hi6551_reg_read(hi6551_volt->is_enabled_reg_addr, &regval);
        if(regval & ((u32)0x1 << hi6551_volt->is_enabled_bit_offset))
        {
            regval = (u8)((u32)0x1 << hi6551_volt->disable_bit_offset);
            bsp_hi6551_reg_write(hi6551_volt->disable_reg_addr, regval);
            pmu_volt[i].flag = 1;
        }
    }

     return  BSP_PMU_OK;
}
コード例 #2
0
int bsp_hi6551_dr_get_current(int dr_id)
{
    u8 regval = 0;
    int iret = BSP_PMU_OK;
    PMIC_HI6551_DRS_ATTR *hi6551_dr;
    u32 cur = 0;

    /*参数有效性检查*/
    iret = hi6551_dr_para_check(dr_id);
    if(BSP_PMU_OK != iret)
        return BSP_PMU_PARA_ERROR;

    hi6551_dr = &hi6551_dr_attr[dr_id];

    bsp_hi6551_reg_read(hi6551_dr->current_reg_addr, &regval);

    /* 获取电压档位值 */
    cur = (regval & hi6551_dr->current_bit_mask) >> hi6551_dr->current_bit_offset;

    cur = hi6551_dr->current_list[cur];

    pmic_print_info("dr_id %d's current is  %d uA!\n", dr_id,cur);

    return cur;

}
コード例 #3
0
u8 bsp_pmu_version_get(void)
{
    u8 regval = 0;

    bsp_hi6551_reg_read(HI6551_VERSION_OFFSET, &regval);
    return  regval;
}
コード例 #4
0
u8 coul_reg_read(u16 reg)
{
    unsigned char val = 0;

    bsp_hi6551_reg_read(reg, &val);

    return val;
}
コード例 #5
0
static char __ddrrun_func pmussi_reg_read(int reg_addr)
{
    char regval;

    bsp_hi6551_reg_read(reg_addr, &regval);
    PMUSSI_DELAY();

    return regval;
}
コード例 #6
0
static int __ddrrun_func pmussi_recv_data (int reg_addr, char *buffer, int len)
{
    int i;

    for (i = 0; i < len; i++) {
        bsp_hi6551_reg_read(reg_addr + i, (buffer + i));
        PMUSSI_DELAY();
    }

    return 0;
}
コード例 #7
0
/*****************************************************************************
* 函 数 名  : hi6551_reg_read
*
* 功能描述  : 对pmu芯片寄存器的读函数
*
* 输入参数  : u16 addr:待写入的寄存器地址
*             u8 u8Data:读出的数据
*
* 输出参数  : 无
*
* 返 回 值  : 无
*****************************************************************************/
void  bsp_dr_reg_read( u16 addr, u8 *pValue)
{
    bsp_hi6551_reg_read(addr,pValue);
}