|
@@ -189,14 +189,17 @@ enum max77693_muic_acc_type {
|
|
|
|
|
|
/* The below accessories have same ADC value so ADCLow and
|
|
|
ADC1K bit is used to separate specific accessory */
|
|
|
- MAX77693_MUIC_GND_USB_OTG = 0x100, /* ADC:0x0, VBVolot:0, ADCLow:0, ADC1K:0 */
|
|
|
- MAX77693_MUIC_GND_USB_OTG_VB = 0x104, /* ADC:0x0, VBVolot:1, ADCLow:0, ADC1K:0 */
|
|
|
- MAX77693_MUIC_GND_AV_CABLE_LOAD = 0x102,/* ADC:0x0, VBVolot:0, ADCLow:1, ADC1K:0 */
|
|
|
- MAX77693_MUIC_GND_MHL = 0x103, /* ADC:0x0, VBVolot:0, ADCLow:1, ADC1K:1 */
|
|
|
- MAX77693_MUIC_GND_MHL_VB = 0x107, /* ADC:0x0, VBVolot:1, ADCLow:1, ADC1K:1 */
|
|
|
+ /* ADC|VBVolot|ADCLow|ADC1K| */
|
|
|
+ MAX77693_MUIC_GND_USB_OTG = 0x100, /* 0x0| 0| 0| 0| */
|
|
|
+ MAX77693_MUIC_GND_USB_OTG_VB = 0x104, /* 0x0| 1| 0| 0| */
|
|
|
+ MAX77693_MUIC_GND_AV_CABLE_LOAD = 0x102,/* 0x0| 0| 1| 0| */
|
|
|
+ MAX77693_MUIC_GND_MHL = 0x103, /* 0x0| 0| 1| 1| */
|
|
|
+ MAX77693_MUIC_GND_MHL_VB = 0x107, /* 0x0| 1| 1| 1| */
|
|
|
};
|
|
|
|
|
|
-/* MAX77693 MUIC device support below list of accessories(external connector) */
|
|
|
+/*
|
|
|
+ * MAX77693 MUIC device support below list of accessories(external connector)
|
|
|
+ */
|
|
|
enum {
|
|
|
EXTCON_CABLE_USB = 0,
|
|
|
EXTCON_CABLE_USB_HOST,
|
|
@@ -395,12 +398,12 @@ static int max77693_muic_get_cable_type(struct max77693_muic_info *info,
|
|
|
vbvolt >>= STATUS2_VBVOLT_SHIFT;
|
|
|
|
|
|
/**
|
|
|
- * [0x1][VBVolt][ADCLow][ADC1K]
|
|
|
- * [0x1 0 0 0 ] : USB_OTG
|
|
|
- * [0x1 1 0 0 ] : USB_OTG_VB
|
|
|
- * [0x1 0 1 0 ] : Audio Video Cable with load
|
|
|
- * [0x1 0 1 1 ] : MHL without charging connector
|
|
|
- * [0x1 1 1 1 ] : MHL with charging connector
|
|
|
+ * [0x1|VBVolt|ADCLow|ADC1K]
|
|
|
+ * [0x1| 0| 0| 0] USB_OTG
|
|
|
+ * [0x1| 1| 0| 0] USB_OTG_VB
|
|
|
+ * [0x1| 0| 1| 0] Audio Video cable with load
|
|
|
+ * [0x1| 0| 1| 1] MHL without charging cable
|
|
|
+ * [0x1| 1| 1| 1] MHL with charging cable
|
|
|
*/
|
|
|
cable_type = ((0x1 << 8)
|
|
|
| (vbvolt << 2)
|
|
@@ -723,11 +726,11 @@ static int max77693_muic_adc_handler(struct max77693_muic_info *info)
|
|
|
if (ret < 0)
|
|
|
return ret;
|
|
|
break;
|
|
|
- case MAX77693_MUIC_ADC_REMOTE_S3_BUTTON: /* DOCK_KEY_PREV */
|
|
|
- case MAX77693_MUIC_ADC_REMOTE_S7_BUTTON: /* DOCK_KEY_NEXT */
|
|
|
- case MAX77693_MUIC_ADC_REMOTE_S9_BUTTON: /* DOCK_VOL_DOWN */
|
|
|
- case MAX77693_MUIC_ADC_REMOTE_S10_BUTTON: /* DOCK_VOL_UP */
|
|
|
- case MAX77693_MUIC_ADC_REMOTE_S12_BUTTON: /* DOCK_KEY_PLAY_PAUSE */
|
|
|
+ case MAX77693_MUIC_ADC_REMOTE_S3_BUTTON: /* DOCK_KEY_PREV */
|
|
|
+ case MAX77693_MUIC_ADC_REMOTE_S7_BUTTON: /* DOCK_KEY_NEXT */
|
|
|
+ case MAX77693_MUIC_ADC_REMOTE_S9_BUTTON: /* DOCK_VOL_DOWN */
|
|
|
+ case MAX77693_MUIC_ADC_REMOTE_S10_BUTTON: /* DOCK_VOL_UP */
|
|
|
+ case MAX77693_MUIC_ADC_REMOTE_S12_BUTTON: /* DOCK_KEY_PLAY_PAUSE */
|
|
|
/*
|
|
|
* Button of DOCK device
|
|
|
* - the Prev/Next/Volume Up/Volume Down/Play-Pause button
|
|
@@ -815,19 +818,21 @@ static int max77693_muic_chg_handler(struct max77693_muic_info *info)
|
|
|
case MAX77693_MUIC_GND_MHL_VB:
|
|
|
/*
|
|
|
* MHL cable with MHL_TA(USB/TA) cable
|
|
|
- * - MHL cable include two port(HDMI line and separate micro-
|
|
|
- * usb port. When the target connect MHL cable, extcon driver
|
|
|
- * check whether MHL_TA(USB/TA) cable is connected. If MHL_TA
|
|
|
- * cable is connected, extcon driver notify state to notifiee
|
|
|
- * for charging battery.
|
|
|
+ * - MHL cable include two port(HDMI line and separate
|
|
|
+ * micro-usb port. When the target connect MHL cable,
|
|
|
+ * extcon driver check whether MHL_TA(USB/TA) cable is
|
|
|
+ * connected. If MHL_TA cable is connected, extcon
|
|
|
+ * driver notify state to notifiee for charging battery.
|
|
|
*
|
|
|
* Features of 'MHL_TA(USB/TA) with MHL cable'
|
|
|
* - Support MHL
|
|
|
- * - Support charging through micro-usb port without data connection
|
|
|
+ * - Support charging through micro-usb port without
|
|
|
+ * data connection
|
|
|
*/
|
|
|
extcon_set_cable_state(info->edev, "MHL_TA", attached);
|
|
|
if (!cable_attached)
|
|
|
- extcon_set_cable_state(info->edev, "MHL", cable_attached);
|
|
|
+ extcon_set_cable_state(info->edev,
|
|
|
+ "MHL", cable_attached);
|
|
|
break;
|
|
|
}
|
|
|
|
|
@@ -839,47 +844,51 @@ static int max77693_muic_chg_handler(struct max77693_muic_info *info)
|
|
|
case MAX77693_MUIC_ADC_AV_CABLE_NOLOAD: /* Dock-Audio */
|
|
|
/*
|
|
|
* Dock-Audio device with USB/TA cable
|
|
|
- * - Dock device include two port(Dock-Audio and micro-usb
|
|
|
- * port). When the target connect Dock-Audio device, extcon
|
|
|
- * driver check whether USB/TA cable is connected. If USB/TA
|
|
|
- * cable is connected, extcon driver notify state to notifiee
|
|
|
- * for charging battery.
|
|
|
+ * - Dock device include two port(Dock-Audio and micro-
|
|
|
+ * usb port). When the target connect Dock-Audio device,
|
|
|
+ * extcon driver check whether USB/TA cable is connected
|
|
|
+ * or not. If USB/TA cable is connected, extcon driver
|
|
|
+ * notify state to notifiee for charging battery.
|
|
|
*
|
|
|
* Features of 'USB/TA cable with Dock-Audio device'
|
|
|
* - Support external output feature of audio.
|
|
|
- * - Support charging through micro-usb port without data
|
|
|
- * connection.
|
|
|
+ * - Support charging through micro-usb port without
|
|
|
+ * data connection.
|
|
|
*/
|
|
|
extcon_set_cable_state(info->edev, "USB", attached);
|
|
|
|
|
|
if (!cable_attached)
|
|
|
- extcon_set_cable_state(info->edev, "Dock-Audio", cable_attached);
|
|
|
+ extcon_set_cable_state(info->edev, "Dock-Audio",
|
|
|
+ cable_attached);
|
|
|
break;
|
|
|
case MAX77693_MUIC_ADC_RESERVED_ACC_3: /* Dock-Smart */
|
|
|
/*
|
|
|
* Dock-Smart device with USB/TA cable
|
|
|
* - Dock-Desk device include three type of cable which
|
|
|
* are HDMI, USB for mouse/keyboard and micro-usb port
|
|
|
- * for USB/TA cable. Dock-Smart device need always exteranl
|
|
|
- * power supply(USB/TA cable through micro-usb cable). Dock-
|
|
|
- * Smart device support screen output of target to separate
|
|
|
- * monitor and mouse/keyboard for desktop mode.
|
|
|
+ * for USB/TA cable. Dock-Smart device need always
|
|
|
+ * exteranl power supply(USB/TA cable through micro-usb
|
|
|
+ * cable). Dock-Smart device support screen output of
|
|
|
+ * target to separate monitor and mouse/keyboard for
|
|
|
+ * desktop mode.
|
|
|
*
|
|
|
* Features of 'USB/TA cable with Dock-Smart device'
|
|
|
* - Support MHL
|
|
|
* - Support external output feature of audio
|
|
|
- * - Support charging through micro-usb port without data
|
|
|
- * connection if TA cable is connected to target.
|
|
|
- * - Support charging and data connection through micro-usb port
|
|
|
- * if USB cable is connected between target and host
|
|
|
- * device.
|
|
|
+ * - Support charging through micro-usb port without
|
|
|
+ * data connection if TA cable is connected to target.
|
|
|
+ * - Support charging and data connection through micro-
|
|
|
+ * usb port if USB cable is connected between target
|
|
|
+ * and host device
|
|
|
* - Support OTG device (Mouse/Keyboard)
|
|
|
*/
|
|
|
- ret = max77693_muic_set_path(info, info->path_usb, attached);
|
|
|
+ ret = max77693_muic_set_path(info, info->path_usb,
|
|
|
+ attached);
|
|
|
if (ret < 0)
|
|
|
return ret;
|
|
|
|
|
|
- extcon_set_cable_state(info->edev, "Dock-Smart", attached);
|
|
|
+ extcon_set_cable_state(info->edev, "Dock-Smart",
|
|
|
+ attached);
|
|
|
extcon_set_cable_state(info->edev, "MHL", attached);
|
|
|
|
|
|
break;
|
|
@@ -889,25 +898,28 @@ static int max77693_muic_chg_handler(struct max77693_muic_info *info)
|
|
|
switch (chg_type) {
|
|
|
case MAX77693_CHARGER_TYPE_NONE:
|
|
|
/*
|
|
|
- * When MHL(with USB/TA cable) or Dock-Audio with USB/TA cable
|
|
|
- * is attached, muic device happen below two interrupt.
|
|
|
- * - 'MAX77693_MUIC_IRQ_INT1_ADC' for detecting MHL/Dock-Audio.
|
|
|
- * - 'MAX77693_MUIC_IRQ_INT2_CHGTYP' for detecting USB/TA cable
|
|
|
- * connected to MHL or Dock-Audio.
|
|
|
- * Always, happen eariler MAX77693_MUIC_IRQ_INT1_ADC interrupt
|
|
|
- * than MAX77693_MUIC_IRQ_INT2_CHGTYP interrupt.
|
|
|
+ * When MHL(with USB/TA cable) or Dock-Audio with USB/TA
|
|
|
+ * cable is attached, muic device happen below two irq.
|
|
|
+ * - 'MAX77693_MUIC_IRQ_INT1_ADC' for detecting
|
|
|
+ * MHL/Dock-Audio.
|
|
|
+ * - 'MAX77693_MUIC_IRQ_INT2_CHGTYP' for detecting
|
|
|
+ * USB/TA cable connected to MHL or Dock-Audio.
|
|
|
+ * Always, happen eariler MAX77693_MUIC_IRQ_INT1_ADC
|
|
|
+ * irq than MAX77693_MUIC_IRQ_INT2_CHGTYP irq.
|
|
|
*
|
|
|
- * If user attach MHL (with USB/TA cable and immediately detach
|
|
|
- * MHL with USB/TA cable before MAX77693_MUIC_IRQ_INT2_CHGTYP
|
|
|
- * interrupt is happened, USB/TA cable remain connected state to
|
|
|
- * target. But USB/TA cable isn't connected to target. The user
|
|
|
- * be face with unusual action. So, driver should check this
|
|
|
- * situation in spite of, that previous charger type is N/A.
|
|
|
+ * If user attach MHL (with USB/TA cable and immediately
|
|
|
+ * detach MHL with USB/TA cable before MAX77693_MUIC_IRQ
|
|
|
+ * _INT2_CHGTYP irq is happened, USB/TA cable remain
|
|
|
+ * connected state to target. But USB/TA cable isn't
|
|
|
+ * connected to target. The user be face with unusual
|
|
|
+ * action. So, driver should check this situation in
|
|
|
+ * spite of, that previous charger type is N/A.
|
|
|
*/
|
|
|
break;
|
|
|
case MAX77693_CHARGER_TYPE_USB:
|
|
|
/* Only USB cable, PATH:AP_USB */
|
|
|
- ret = max77693_muic_set_path(info, info->path_usb, attached);
|
|
|
+ ret = max77693_muic_set_path(info, info->path_usb,
|
|
|
+ attached);
|
|
|
if (ret < 0)
|
|
|
return ret;
|
|
|
|
|
@@ -1214,7 +1226,8 @@ static int max77693_muic_probe(struct platform_device *pdev)
|
|
|
}
|
|
|
|
|
|
if (pdata->muic_data) {
|
|
|
- struct max77693_muic_platform_data *muic_pdata = pdata->muic_data;
|
|
|
+ struct max77693_muic_platform_data *muic_pdata
|
|
|
+ = pdata->muic_data;
|
|
|
|
|
|
/*
|
|
|
* Default usb/uart path whether UART/USB or AUX_UART/AUX_USB
|