コード例 #1
0
void hsusb_chg_vbus_draw(unsigned mA)
{
	if (mA)
		msm_chg_usb_i_is_available(mA);
	else
		msm_chg_usb_i_is_not_available();
}
コード例 #2
0
void hsusb_chg_connected(enum chg_type chgtype)
{
	char *chg_types[] = {"STD DOWNSTREAM PORT",
			"CARKIT",
			"DEDICATED CHARGER",
			"INVALID"};

	if (chgtype == USB_CHG_TYPE__INVALID) {
		msm_chg_usb_i_is_not_available();
		msm_chg_usb_charger_disconnected();
		return;
	}

	pr_info("\nCharger Type: %s\n", chg_types[chgtype]);

	msm_chg_usb_charger_connected(chgtype);
}
コード例 #3
0
void hsusb_chg_connected(enum chg_type chgtype)
{
	switch (chgtype) {
	case CHG_TYPE_HOSTPC:
		pr_debug("Charger Type: HOST PC\n");
		msm_chg_usb_charger_connected(0);
		msm_chg_usb_i_is_available(100);
		break;
	case CHG_TYPE_WALL_CHARGER:
		pr_debug("Charger Type: WALL CHARGER\n");
		msm_chg_usb_charger_connected(2);
		msm_chg_usb_i_is_available(1500);
		break;
	case CHG_TYPE_INVALID:
		pr_debug("Charger Type: DISCONNECTED\n");
		msm_chg_usb_i_is_not_available();
		msm_chg_usb_charger_disconnected();
		break;
	}
}
コード例 #4
0
void hsusb_chg_connected(enum chg_type chgtype)
{
	char *chg_types[] = {"STD DOWNSTREAM PORT",
			"CARKIT",
			"DEDICATED CHARGER",
			"INVALID"};
	pr_debug("%s: enter\n", __func__);

	if (chgtype == USB_CHG_TYPE__INVALID) {
		
		msm_chg_usb_i_is_not_available();
		msm_batt_update_psy_status();
		msm_chg_usb_charger_disconnected();
		pr_debug("%s: after call %d\n", __func__,__LINE__);
		return;
	}

	pr_info("\nCharger Type: %s\n", chg_types[chgtype]);
	pr_debug("%s: exit\n", __func__);

	msm_chg_usb_charger_connected(chgtype);
}
コード例 #5
0
void hsusb_chg_connected(enum chg_type chgtype)
{
	char *chg_types[] = {"STD DOWNSTREAM PORT",
			"CARKIT",
			"DEDICATED CHARGER",
			"INVALID"};
#if defined(CONFIG_MACH_ARUBA_DUOS_CTC) || defined(CONFIG_MACH_INFINITE_DUOS_CTC) || defined(CONFIG_MACH_ARUBA_OPEN_CHN)
	printk("%s : intended_set = %d\n" , __func__ , intended_set );	

	if (intended_set)
		return;
#endif
	if (chgtype == USB_CHG_TYPE__INVALID) {
		msm_chg_usb_i_is_not_available();
		msm_chg_usb_charger_disconnected();
		return;
	}

	pr_info("\nCharger Type: %s\n", chg_types[chgtype]);

	msm_chg_usb_charger_connected(chgtype);
}
コード例 #6
0
void hsusb_chg_connected(enum chg_type chgtype)
{
	char *chg_types[] = {"STD DOWNSTREAM PORT",
			"CARKIT",
			"DEDICATED CHARGER",
			"INVALID"};

/* Div2-SW2-BSP-FBX-CHG { */
#ifdef CONFIG_BATTERY_FIH_MSM            
    msm_batt_update_charger_type(chgtype);
#endif
/* } Div2-SW2-BSP-FBX-CHG */

	if (chgtype == USB_CHG_TYPE__INVALID) {
		msm_chg_usb_i_is_not_available();
		msm_chg_usb_charger_disconnected();
		return;
	}

	pr_info("\nCharger Type: %s\n", chg_types[chgtype]);

	msm_chg_usb_charger_connected(chgtype);
}
コード例 #7
0
static void chgic_chg_workqueue(struct work_struct *work)
{
    uint32_t type = USB_CHG_TYPE__NONE;
    unsigned chg = 0;
    bool retryflg = false;

    CHGIC_DBG_PRINT("%s: changer_set_mode:%x\n", __func__, changer_set_mode);
    switch (changer_set_mode)
    {
        case KC_CHANGER_NO_ACCESSORY:
            type = USB_CHG_TYPE__INVALID;
            break;
        case KC_CHANGER_USB_MODE:
            type = USB_CHG_TYPE__NONE;
            break;
        case KC_CHANGER_AC_ADAPTER:
            type = USB_CHG_TYPE__WALLCHARGER;
            chg = MAX_CHG_VAL;
            break;
        case  KC_CHANGER_AUDIO_CHG_MIC_MONO:
            type = USB_CHG_TYPE__MONO_EARPHONE;
            chg = MAX_CHG_VAL;
            break;
        case KC_CHANGER_AUDIO_CHG_STEREO:
            type = USB_CHG_TYPE__STEREO_EARPHONE;
            chg = MAX_CHG_VAL;
            break;
        default:
            if (changer_set_mode & CHGIC_MODE_VBUS_MASK)
            {
                type = USB_CHG_TYPE__WALLCHARGER;
                chg = MAX_CHG_VAL;
            }
            else
            {
                type = USB_CHG_TYPE__INVALID;
            }
            break;
    }
    if (type != USB_CHG_TYPE__NONE && type != USB_CHG_TYPE__INVALID)
    {
        if ((msm_chg_usb_charger_connected(type) < 0)
         || (msm_chg_usb_i_is_available(chg) < 0))
        {
            retryflg = true;
        }
    }
    else if (type == USB_CHG_TYPE__INVALID)
    {
        if ((changer_set_mode_prev != KC_CHANGER_USB_MODE) &&
            (changer_set_mode_prev != KC_CHANGER_NO_ACCESSORY) )
        {
            if ((msm_chg_usb_i_is_not_available() < 0)
             || (msm_chg_usb_charger_disconnected() < 0))
            {
                retryflg = true;
            }
        }
    }
    if (retryflg)
    {
        msleep(WAIT_START_RETRY);
        schedule_work(&changer_info->chg_work);
    }
}