⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uem_proc_msg.c

📁 最新MTK手机软件源码
💻 C
📖 第 1 页 / 共 3 页
字号:
#ifndef __NVRAM_IN_USB_MS__
    else if ((action == DEVUSB_DETECT_ACTION_PLUGIN) && (uem_get_poweron_mode() == POWER_ON_USB))
    {
        DRV_POWERON();
    }
#endif /* __NVRAM_IN_USB_MS__ */ 

#if defined(PLUTO_MMI)
    if (action == DEVUSB_DETECT_ACTION_PLUGOUT)
    {
        /* check if the accessory prev state is IN && it is not in progress */
        if (FLAG_IS_ON(g_uem_cntx_p->acc_prev_state, UEM_ACCESSORY_TYPE_USB) &&
            !FLAG_IS_ON(g_uem_cntx_p->acc_progress, UEM_ACCESSORY_TYPE_USB))
        {
            l4cuem_usbdetect_ind(action);   /* Notify MMI */

            /* Set in progress */
            FLAG_SET_ON(g_uem_cntx_p->acc_progress, UEM_ACCESSORY_TYPE_USB);
        }
        /* update the latest status */
        FLAG_SET_OFF(g_uem_cntx_p->acc_latest_state, UEM_ACCESSORY_TYPE_USB);
    }
    else if (action == DEVUSB_DETECT_ACTION_PLUGIN)
    {
        /* check if the accessory prev state is OUT && it is not in progress */
        if (!FLAG_IS_ON(g_uem_cntx_p->acc_prev_state, UEM_ACCESSORY_TYPE_USB) &&
            !FLAG_IS_ON(g_uem_cntx_p->acc_progress, UEM_ACCESSORY_TYPE_USB))
        {
            l4cuem_usbdetect_ind(action);   /* Notify MMI */

            /* Set in progress */
            FLAG_SET_ON(g_uem_cntx_p->acc_progress, UEM_ACCESSORY_TYPE_USB);
        }
        /* update the latest status */
        FLAG_SET_ON(g_uem_cntx_p->acc_latest_state, UEM_ACCESSORY_TYPE_USB);
    }
#else /* defined(PLUTO_MMI) */ 
    l4cuem_usbdetect_ind(action);
#endif /* defined(PLUTO_MMI) */ 

    return;
}

/*****************************************************************************
*  Function 
*     uemdrv_usb_config_cnf
*  DESCRIPTION
*     ...
*  PARAMETERS
*  
*  
*  RETURNS
*     void
*  GLOBALS AFFECTED
*****************************************************************************/


/*****************************************************************************
 * FUNCTION
 *  uemdrv_usb_config_cnf
 * DESCRIPTION
 *  
 * PARAMETERS
 *  mode            [IN]        
 *  result          [IN]        
 *  reserved        [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void uemdrv_usb_config_cnf(kal_uint8 mode, kal_bool result, kal_uint32 reserved)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    l4cuem_usbconfig_cnf(g_uem_cntx_p->usb_msg_src_id, result, mode, reserved);
    return;
}
#endif /* __USB_ENABLE__ */ 

/*****************************************************************************
*  Function 
*     uemdrv_prechr_power_on_ind
*  DESCRIPTION
*     ...
*  PARAMETERS
*  
*  
*  RETURNS
*     void
*  GLOBALS AFFECTED
*****************************************************************************/


/*****************************************************************************
 * FUNCTION
 *  uemdrv_prechr_power_on_ind
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void uemdrv_prechr_power_on_ind(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    uem_bmt_struct bmt_status;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
#if !defined(__L1_STANDALONE__) && !defined(EMPTY_MMI)
    /* show the logo */
    MMICheckDiskDisplay();

    /* Turn on backlight after the picture is shown */
    custom_cfg_gpio_set_level(GPIO_DEV_LED_MAINLCD, 5);
#endif /* !defined(__L1_STANDALONE__) && !defined(EMPTY_MMI) */ 

    uem_get_bat_status(&bmt_status);
    uem_set_poweron_mode(POWER_ON_PRECHARGE);
    l4cuem_power_on_ind(POWER_ON_PRECHARGE, uem_vbat_level_convert(bmt_status.volt));
}

/*****************************************************************************
*  Function 
*     uemdrv_get_hw_level_pwm_info_req
*  DESCRIPTION
*     ...
*  PARAMETERS
*  
*  
*  RETURNS
*     void
*  GLOBALS AFFECTED
*****************************************************************************/


/*****************************************************************************
 * FUNCTION
 *  uemdrv_get_hw_level_pwm_info_req
 * DESCRIPTION
 *  
 * PARAMETERS
 *  type        [IN]        
 *  level       [IN]        
 *  info1       [?]         
 *  info2       [?]         
 * RETURNS
 *  void
 *****************************************************************************/
void uemdrv_get_hw_level_pwm_info_req(kal_uint8 type, kal_uint8 level, kal_uint8 *info1, kal_uint8 *info2)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    switch (type)
    {
        case PWM1:
            *info1 = PWM1_Level_Info[level - 1][0];
            *info2 = PWM1_Level_Info[level - 1][1];
            break;
        case PWM2:
            *info1 = PWM2_Level_Info[level - 1][0];
            *info2 = PWM2_Level_Info[level - 1][1];
            break;
        default:
            break;
    }
}

/*****************************************************************************
*  Function 
*     uemdrv_get_hw_level_alter_info_req
*  DESCRIPTION
*     ...
*  PARAMETERS
*  
*  
*  RETURNS
*     void
*  GLOBALS AFFECTED
*****************************************************************************/


/*****************************************************************************
 * FUNCTION
 *  uemdrv_get_hw_level_alter_info_req
 * DESCRIPTION
 *  
 * PARAMETERS
 *  level       [IN]        
 *  info1       [?]         
 *  info2       [?]         
 * RETURNS
 *  void
 *****************************************************************************/
void uemdrv_get_hw_level_alter_info_req(kal_uint8 level, kal_uint8 *info1, kal_uint8 *info2)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    *info1 = Alter_Level_Info[level - 1][0];
    *info2 = Alter_Level_Info[level - 1][1];
}

/*****************************************************************************
*   Function 
*      uem_poweron_timer_expiry_hdlr
*   DESCRIPTION
*      handle the power on timer expire
*   PARAMETERS
*
*   RETURNS
*      void
*   GLOBALS AFFECTED
*****************************************************************************/


/*****************************************************************************
 * FUNCTION
 *  uem_poweron_timer_expiry_hdlr
 * DESCRIPTION
 *  
 * PARAMETERS
 *  ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void uem_poweron_timer_expiry_hdlr(void *ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    uem_stop_timer(PWN_EVENT_TIMER);

    /* Latch power and do the rest */
    DRV_POWERON();

#if !defined(__L1_STANDALONE__) && !defined(EMPTY_MMI)
    /* show the logo */
    MMICheckDiskDisplay();

    /* Turn on backlight after the picture is shown */
    custom_cfg_gpio_set_level(GPIO_DEV_LED_MAINLCD, 5);
#endif /* !defined(__L1_STANDALONE__) && !defined(EMPTY_MMI) */ 

#if !defined(__FS_CHECKDRIVE_SUPPORT__) && !defined(_LOW_COST_SINGLE_BANK_FLASH_)
    /* Before this point, releasing power key does not consider as "abnormal poweroff" */
    FS_SetDiskFlag();
#endif /* !defined(__FS_CHECKDRIVE_SUPPORT__) && !defined(_LOW_COST_SINGLE_BANK_FLASH_) */ 

    /* send message to L4/MMI */
    uemdrv_keypad_power_on_ind();
}

/*****************************************************************************
*   Function 
*      uem_poweron_timer_start
*   DESCRIPTION
*      start a timer to t
*   PARAMETERS
*     time left to power on
*   RETURNS
*      void
*   GLOBALS AFFECTED
*****************************************************************************/


/*****************************************************************************
 * FUNCTION
 *  uem_poweron_timer_start
 * DESCRIPTION
 *  
 * PARAMETERS
 *  time_in_ms      [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void uem_poweron_timer_start(kal_uint32 time_in_ms)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    uem_start_timer(PWN_EVENT_TIMER, uem_poweron_timer_expiry_hdlr, time_in_ms);
}

/***************************************************************************** 
****************************************************************************** 
* Local Funcations 
******************************************************************************
*****************************************************************************/
/*****************************************************************************
*  Function 
*     uem_pmic_power_on_if_needed
*  DESCRIPTION
*     ...
*  PARAMETERS
*  
*  
*  RETURNS
*     void
*  GLOBALS AFFECTED
*****************************************************************************/


/*****************************************************************************
 * FUNCTION
 *  uem_pmic_power_on_if_needed
 * DESCRIPTION
 *  
 * PARAMETERS
 *  vbat_level      [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
static void uem_pmic_power_on_if_needed(kal_uint8 vbat_level)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_uint8 poweron_mode = uem_get_poweron_mode();

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (uem_get_state() < UEM_STATE_STARTUP)    /* to avoid startup twice */
    {
        if ((poweron_mode == POWER_ON_CHARGER_IN) || (poweron_mode == POWER_ON_USB))
        {
        #ifdef __MTK_TARGET__
            if (g_uem_cntx_p->adc_sche_id == 0)
            {
                g_uem_cntx_p->adc_sche_id = adc_sche_create_object(
                                                MOD_UEM,
                                                ADC_VBAT,
                                                ADC_IDLE_EVAL_PERIOD,
                                                (kal_uint8) ADC_IDLE_EVAL_COUNT,
                                                KAL_TRUE);
                uem_send_msg_to_bmt(MSG_ID_BMT_ADC_ADD_ITEM_REQ, g_uem_cntx_p->adc_sche_id);
            }
        #endif /* __MTK_TARGET__ */ 

            DRV_POWERON();
            l4cuem_power_on_ind(poweron_mode, vbat_level);
        }
    }
}


/*****************************************************************************
*	Function 
*		uemdrv_rf_test_gsm_powerscan_callback
*	DESCRIPTION
*		callback function for RF Test GSM
*	PARAMETERS
*	
*	
*	RETURNS
*		void
*	GLOBALS AFFECTED
*****************************************************************************/
void uemdrv_rf_test_gsm_powerscan_callback(kal_int16 *arfcn, kal_int16 *power)
{
    kal_uint8 i;
    rf_test_gsm_param_struct request={0};

    for (i=0; i<20; i++)
    {
        request.gsm_power_scan.arfcn_out[i] = arfcn[i];
        request.gsm_power_scan.power[i] = power[i];
    }
     
    l4cuem_rf_test_gsm_cnf(g_uem_cntx_p->src_id , RF_TEST_GSM_POWER_SCAN, request);
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -