extcon: max77693: Add support jig cable
This patch detect several kinds of JIG cable according to ADC value and set the hardware line path according to type of JIG cable(JIG-USB-ON /JIG-USB-OFF/JIG-UART-OFF). Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
This commit is contained in:
parent
06bed0afa2
commit
d0587eb794
1 changed files with 46 additions and 6 deletions
|
@ -153,9 +153,10 @@ enum {
|
||||||
EXTCON_CABLE_CHARGE_DOWNSTREAM,
|
EXTCON_CABLE_CHARGE_DOWNSTREAM,
|
||||||
EXTCON_CABLE_MHL,
|
EXTCON_CABLE_MHL,
|
||||||
EXTCON_CABLE_MHL_TA,
|
EXTCON_CABLE_MHL_TA,
|
||||||
|
EXTCON_CABLE_JIG_USB_ON,
|
||||||
|
EXTCON_CABLE_JIG_USB_OFF,
|
||||||
|
EXTCON_CABLE_JIG_UART_OFF,
|
||||||
EXTCON_CABLE_AUDIO_VIDEO_LOAD,
|
EXTCON_CABLE_AUDIO_VIDEO_LOAD,
|
||||||
EXTCON_CABLE_AUDIO_VIDEO_NOLOAD,
|
|
||||||
EXTCON_CABLE_JIG,
|
|
||||||
|
|
||||||
_EXTCON_CABLE_NUM,
|
_EXTCON_CABLE_NUM,
|
||||||
};
|
};
|
||||||
|
@ -169,9 +170,11 @@ const char *max77693_extcon_cable[] = {
|
||||||
[EXTCON_CABLE_CHARGE_DOWNSTREAM] = "Charge-downstream",
|
[EXTCON_CABLE_CHARGE_DOWNSTREAM] = "Charge-downstream",
|
||||||
[EXTCON_CABLE_MHL] = "MHL",
|
[EXTCON_CABLE_MHL] = "MHL",
|
||||||
[EXTCON_CABLE_MHL_TA] = "MHL_TA",
|
[EXTCON_CABLE_MHL_TA] = "MHL_TA",
|
||||||
|
[EXTCON_CABLE_JIG_USB_ON] = "JIG-USB-ON",
|
||||||
|
[EXTCON_CABLE_JIG_USB_OFF] = "JIG-USB-OFF",
|
||||||
|
[EXTCON_CABLE_JIG_UART_OFF] = "JIG-UART-OFF",
|
||||||
[EXTCON_CABLE_AUDIO_VIDEO_LOAD] = "Audio-video-load",
|
[EXTCON_CABLE_AUDIO_VIDEO_LOAD] = "Audio-video-load",
|
||||||
[EXTCON_CABLE_AUDIO_VIDEO_NOLOAD] = "Audio-video-noload",
|
|
||||||
[EXTCON_CABLE_JIG] = "JIG",
|
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -450,6 +453,44 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int max77693_muic_jig_handler(struct max77693_muic_info *info,
|
||||||
|
int cable_type, bool attached)
|
||||||
|
{
|
||||||
|
char cable_name[32];
|
||||||
|
int ret = 0;
|
||||||
|
u8 path = CONTROL1_SW_OPEN;
|
||||||
|
|
||||||
|
dev_info(info->dev,
|
||||||
|
"external connector is %s (adc:0x%02x)\n",
|
||||||
|
attached ? "attached" : "detached", cable_type);
|
||||||
|
|
||||||
|
switch (cable_type) {
|
||||||
|
case MAX77693_MUIC_ADC_FACTORY_MODE_USB_OFF: /* ADC_JIG_USB_OFF */
|
||||||
|
/* PATH:AP_USB */
|
||||||
|
strcpy(cable_name, "JIG-USB-OFF");
|
||||||
|
path = CONTROL1_SW_USB;
|
||||||
|
break;
|
||||||
|
case MAX77693_MUIC_ADC_FACTORY_MODE_USB_ON: /* ADC_JIG_USB_ON */
|
||||||
|
/* PATH:AP_USB */
|
||||||
|
strcpy(cable_name, "JIG-USB-ON");
|
||||||
|
path = CONTROL1_SW_USB;
|
||||||
|
break;
|
||||||
|
case MAX77693_MUIC_ADC_FACTORY_MODE_UART_OFF: /* ADC_JIG_UART_OFF */
|
||||||
|
/* PATH:AP_UART */
|
||||||
|
strcpy(cable_name, "JIG-UART-OFF");
|
||||||
|
path = CONTROL1_SW_UART;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = max77693_muic_set_path(info, path, attached);
|
||||||
|
if (ret < 0)
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
extcon_set_cable_state(info->edev, cable_name, attached);
|
||||||
|
out:
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static int max77693_muic_adc_handler(struct max77693_muic_info *info)
|
static int max77693_muic_adc_handler(struct max77693_muic_info *info)
|
||||||
{
|
{
|
||||||
int cable_type;
|
int cable_type;
|
||||||
|
@ -474,10 +515,9 @@ static int max77693_muic_adc_handler(struct max77693_muic_info *info)
|
||||||
case MAX77693_MUIC_ADC_FACTORY_MODE_USB_ON:
|
case MAX77693_MUIC_ADC_FACTORY_MODE_USB_ON:
|
||||||
case MAX77693_MUIC_ADC_FACTORY_MODE_UART_OFF:
|
case MAX77693_MUIC_ADC_FACTORY_MODE_UART_OFF:
|
||||||
/* JIG */
|
/* JIG */
|
||||||
ret = max77693_muic_set_path(info, CONTROL1_SW_UART, attached);
|
ret = max77693_muic_jig_handler(info, cable_type, attached);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto out;
|
goto out;
|
||||||
extcon_set_cable_state(info->edev, "JIG", attached);
|
|
||||||
break;
|
break;
|
||||||
case MAX77693_MUIC_ADC_FACTORY_MODE_UART_ON:
|
case MAX77693_MUIC_ADC_FACTORY_MODE_UART_ON:
|
||||||
case MAX77693_MUIC_ADC_AUDIO_MODE_REMOTE:
|
case MAX77693_MUIC_ADC_AUDIO_MODE_REMOTE:
|
||||||
|
|
Loading…
Add table
Reference in a new issue