示例#1
0
void dcl_pmic6327_init(void){
    kal_uint32 i;

#if defined(__MODEM_CCCI_EXIST__) && !defined(__UBL__) && !defined(__FUE__)
    ccci_init(CCCI_PMIC_CHANNEL, NULL);
	ccci_init(CCCI_PMIC_ACK_CHANNEL, pmic6327_ccci_callback);
#endif

	i2c_pmic_init();
	pmu_control_handler = PMIC6327_control_handler;
	pmu_parameter_size = GETARRNUM(pmu_parameter_table);

#if !defined(__UBL__) && !defined(__FUE__)
    i2cDcmHandle=DCM_GetHandle();
#endif

    //Disable deglitch.
    dcl_pmic6327_byte_write(0x01, 0x00, PMIC_BANK0);
    //Speed up I2C
    i2c_pmic_set_speed(0, 5);

    pmic6327_eco_version = PMIC6327_ECO_1_VERSION;

    // Get PMIC6327 ECO version
    {
        kal_uint16 eco_version = 0;
        eco_version = dcl_pmic6327_byte_return(VERSION_ADDR, PMIC_BANK0);       

        if (eco_version == PMIC6327_E1_VERSION)
        {
            pmic6327_eco_version = PMIC6327_ECO_1_VERSION;
        }
        else// if(eco_version == PMIC6327_E2_CID_CODE)
        {
            pmic6327_eco_version = PMIC6327_ECO_2_VERSION;
        }
        
    }

    for (i = 0;i < PMIC_BANK0_REG_NUM;i++){
        pmic6327_reg[PMIC_BANK0][i] = dcl_pmic6327_byte_return(i, PMIC_BANK0); 
    }

    dcl_pmic6327_internal_init();

#if (defined(MT6280_S00))
    //Set VCore sleep voltage to 1.1V for MT6280 E1
    dcl_pmic6327_byte_write(0x56, 0x10, 0);
#elif (defined(MT6280_S01))
    //Set VCore normal voltage to 1.1V for MT6280 E2
    dcl_pmic6327_byte_write(0x55, 0x10, 0);
#endif
    
    pmic6327_customization_init();

#if !defined(__UBL__) && !defined(__FUE__)
    pmu_drv_tool_customization_init();
#endif //#if !defined(__UBL__) && !defined(__FUE__)
}
示例#2
0
/*****************************************************************************
 * FUNCTION
 *  uem_init
 * DESCRIPTION
 *
 * PARAMETERS
 *  void
 * RETURNS
 *
 *****************************************************************************/
kal_bool uem_init(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_bool ret_val = KAL_TRUE;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_uem_cntx_p = &uem_g_data;

    /* initial UEM */
    if (g_uem_cntx_p != NULL)
    {
        g_uem_cntx_p->ext_dev_status = EXT_DEV_NONE;
        g_uem_cntx_p->bmt_status.status = PMIC_VBAT_STATUS;
        g_uem_cntx_p->bmt_status.volt = 0;
        g_uem_cntx_p->bmt_status.adc = 0;
        g_uem_cntx_p->bmt_status.disp_level = 0;
        g_uem_cntx_p->bmt_status.last_level = 0;
        g_uem_cntx_p->bmt_status.hit_count = 0;
        g_uem_cntx_p->power_on_mode = POWER_ON_UNINIT;
        g_uem_cntx_p->adc_sche_id = 0;
        g_uem_cntx_p->incall_state = UEM_CALL_UNKNOW;

        g_uem_cntx_p->acc_prev_state = 0;
        g_uem_cntx_p->acc_latest_state = 0;
        g_uem_cntx_p->acc_progress = 0;

#ifdef __USB_ENABLE__
        g_uem_cntx_p->usb_msg_src_id = 0;
#endif

        uem_timer_init();

#ifdef __MTK_TARGET__
#if defined(DCM_ENABLE)
        uem_dcm_handle = DCM_GetHandle();
#endif
#endif /* __MTK_TARGET__ */

        uem_set_state(UEM_STATE_INIT);
    }
    else
    {
        ret_val = KAL_FALSE;
    }

    /* read UEM data */
    return ret_val;
}