Merge branch 'overlayfs-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mszere...
[firefly-linux-kernel-4.4.55.git] / drivers / extcon / extcon-max77843.c
index 8db6a926ea07cd8569b62cc1dc0bc379663dccc8..fac2f1417a79ca47752839b79ae7a07522cb1ebb 100644 (file)
@@ -118,36 +118,16 @@ enum max77843_muic_charger_type {
        MAX77843_MUIC_CHG_GND,
 };
 
-enum {
-       MAX77843_CABLE_USB = 0,
-       MAX77843_CABLE_USB_HOST,
-       MAX77843_CABLE_TA,
-       MAX77843_CABLE_CHARGE_DOWNSTREAM,
-       MAX77843_CABLE_FAST_CHARGER,
-       MAX77843_CABLE_SLOW_CHARGER,
-       MAX77843_CABLE_MHL,
-       MAX77843_CABLE_MHL_TA,
-       MAX77843_CABLE_JIG_USB_ON,
-       MAX77843_CABLE_JIG_USB_OFF,
-       MAX77843_CABLE_JIG_UART_ON,
-       MAX77843_CABLE_JIG_UART_OFF,
-
-       MAX77843_CABLE_NUM,
-};
-
-static const char *max77843_extcon_cable[] = {
-       [MAX77843_CABLE_USB]                    = "USB",
-       [MAX77843_CABLE_USB_HOST]               = "USB-HOST",
-       [MAX77843_CABLE_TA]                     = "TA",
-       [MAX77843_CABLE_CHARGE_DOWNSTREAM]      = "CHARGER-DOWNSTREAM",
-       [MAX77843_CABLE_FAST_CHARGER]           = "FAST-CHARGER",
-       [MAX77843_CABLE_SLOW_CHARGER]           = "SLOW-CHARGER",
-       [MAX77843_CABLE_MHL]                    = "MHL",
-       [MAX77843_CABLE_MHL_TA]                 = "MHL-TA",
-       [MAX77843_CABLE_JIG_USB_ON]             = "JIG-USB-ON",
-       [MAX77843_CABLE_JIG_USB_OFF]            = "JIG-USB-OFF",
-       [MAX77843_CABLE_JIG_UART_ON]            = "JIG-UART-ON",
-       [MAX77843_CABLE_JIG_UART_OFF]           = "JIG-UART-OFF",
+static const unsigned int max77843_extcon_cable[] = {
+       EXTCON_USB,
+       EXTCON_USB_HOST,
+       EXTCON_TA,
+       EXTCON_CHARGE_DOWNSTREAM,
+       EXTCON_FAST_CHARGER,
+       EXTCON_SLOW_CHARGER,
+       EXTCON_MHL,
+       EXTCON_JIG,
+       EXTCON_NONE,
 };
 
 struct max77843_muic_irq {
@@ -362,7 +342,7 @@ static int max77843_muic_adc_gnd_handler(struct max77843_muic_info *info)
                if (ret < 0)
                        return ret;
 
-               extcon_set_cable_state(info->edev, "USB-HOST", attached);
+               extcon_set_cable_state_(info->edev, EXTCON_USB_HOST, attached);
                break;
        case MAX77843_MUIC_GND_MHL_VB:
        case MAX77843_MUIC_GND_MHL:
@@ -370,7 +350,7 @@ static int max77843_muic_adc_gnd_handler(struct max77843_muic_info *info)
                if (ret < 0)
                        return ret;
 
-               extcon_set_cable_state(info->edev, "MHL", attached);
+               extcon_set_cable_state_(info->edev, EXTCON_MHL, attached);
                break;
        default:
                dev_err(info->dev, "failed to detect %s accessory(gnd:0x%x)\n",
@@ -385,36 +365,29 @@ static int max77843_muic_jig_handler(struct max77843_muic_info *info,
                int cable_type, bool attached)
 {
        int ret;
+       u8 path = CONTROL1_SW_OPEN;
 
        dev_dbg(info->dev, "external connector is %s (adc:0x%02x)\n",
                        attached ? "attached" : "detached", cable_type);
 
        switch (cable_type) {
        case MAX77843_MUIC_ADC_FACTORY_MODE_USB_OFF:
-               ret = max77843_muic_set_path(info, CONTROL1_SW_USB, attached);
-               if (ret < 0)
-                       return ret;
-               extcon_set_cable_state(info->edev, "JIG-USB-OFF", attached);
-               break;
        case MAX77843_MUIC_ADC_FACTORY_MODE_USB_ON:
-               ret = max77843_muic_set_path(info, CONTROL1_SW_USB, attached);
-               if (ret < 0)
-                       return ret;
-               extcon_set_cable_state(info->edev, "JIG-USB-ON", attached);
+               path = CONTROL1_SW_USB;
                break;
        case MAX77843_MUIC_ADC_FACTORY_MODE_UART_OFF:
-               ret = max77843_muic_set_path(info, CONTROL1_SW_UART, attached);
-               if (ret < 0)
-                       return ret;
-               extcon_set_cable_state(info->edev, "JIG-UART-OFF", attached);
+               path = CONTROL1_SW_UART;
                break;
        default:
-               ret = max77843_muic_set_path(info, CONTROL1_SW_OPEN, attached);
-               if (ret < 0)
-                       return ret;
-               break;
+               return -EINVAL;
        }
 
+       ret = max77843_muic_set_path(info, path, attached);
+       if (ret < 0)
+               return ret;
+
+       extcon_set_cable_state_(info->edev, EXTCON_JIG, attached);
+
        return 0;
 }
 
@@ -505,36 +478,38 @@ static int max77843_muic_chg_handler(struct max77843_muic_info *info)
                if (ret < 0)
                        return ret;
 
-               extcon_set_cable_state(info->edev, "USB", attached);
+               extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
                break;
        case MAX77843_MUIC_CHG_DOWNSTREAM:
                ret = max77843_muic_set_path(info, CONTROL1_SW_OPEN, attached);
                if (ret < 0)
                        return ret;
 
-               extcon_set_cable_state(info->edev,
-                               "CHARGER-DOWNSTREAM", attached);
+               extcon_set_cable_state_(info->edev, EXTCON_CHARGE_DOWNSTREAM,
+                                       attached);
                break;
        case MAX77843_MUIC_CHG_DEDICATED:
                ret = max77843_muic_set_path(info, CONTROL1_SW_OPEN, attached);
                if (ret < 0)
                        return ret;
 
-               extcon_set_cable_state(info->edev, "TA", attached);
+               extcon_set_cable_state_(info->edev, EXTCON_TA, attached);
                break;
        case MAX77843_MUIC_CHG_SPECIAL_500MA:
                ret = max77843_muic_set_path(info, CONTROL1_SW_OPEN, attached);
                if (ret < 0)
                        return ret;
 
-               extcon_set_cable_state(info->edev, "SLOW-CHAREGER", attached);
+               extcon_set_cable_state_(info->edev, EXTCON_SLOW_CHARGER,
+                                       attached);
                break;
        case MAX77843_MUIC_CHG_SPECIAL_1A:
                ret = max77843_muic_set_path(info, CONTROL1_SW_OPEN, attached);
                if (ret < 0)
                        return ret;
 
-               extcon_set_cable_state(info->edev, "FAST-CHARGER", attached);
+               extcon_set_cable_state_(info->edev, EXTCON_FAST_CHARGER,
+                                       attached);
                break;
        case MAX77843_MUIC_CHG_GND:
                gnd_type = max77843_muic_get_cable_type(info,
@@ -542,9 +517,9 @@ static int max77843_muic_chg_handler(struct max77843_muic_info *info)
 
                /* Charger cable on MHL accessory is attach or detach */
                if (gnd_type == MAX77843_MUIC_GND_MHL_VB)
-                       extcon_set_cable_state(info->edev, "MHL-TA", true);
+                       extcon_set_cable_state_(info->edev, EXTCON_TA, true);
                else if (gnd_type == MAX77843_MUIC_GND_MHL)
-                       extcon_set_cable_state(info->edev, "MHL-TA", false);
+                       extcon_set_cable_state_(info->edev, EXTCON_TA, false);
                break;
        case MAX77843_MUIC_CHG_NONE:
                break;