]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/extcon/extcon-max77693.c
extcon: Use the unique id for external connector instead of string
[karo-tx-linux.git] / drivers / extcon / extcon-max77693.c
index a66bec8f6252dc140fbe6919b3cb846740f70a64..20e796e10e5790a54a30ec8d67f3b8887b727c16 100644 (file)
@@ -200,44 +200,17 @@ enum max77693_muic_acc_type {
 /*
  * MAX77693 MUIC device support below list of accessories(external connector)
  */
-enum {
-       EXTCON_CABLE_USB = 0,
-       EXTCON_CABLE_USB_HOST,
-       EXTCON_CABLE_TA,
-       EXTCON_CABLE_FAST_CHARGER,
-       EXTCON_CABLE_SLOW_CHARGER,
-       EXTCON_CABLE_CHARGE_DOWNSTREAM,
-       EXTCON_CABLE_MHL,
-       EXTCON_CABLE_MHL_TA,
-       EXTCON_CABLE_JIG_USB_ON,
-       EXTCON_CABLE_JIG_USB_OFF,
-       EXTCON_CABLE_JIG_UART_OFF,
-       EXTCON_CABLE_JIG_UART_ON,
-       EXTCON_CABLE_DOCK_SMART,
-       EXTCON_CABLE_DOCK_DESK,
-       EXTCON_CABLE_DOCK_AUDIO,
-
-       _EXTCON_CABLE_NUM,
-};
-
-static const char *max77693_extcon_cable[] = {
-       [EXTCON_CABLE_USB]                      = "USB",
-       [EXTCON_CABLE_USB_HOST]                 = "USB-Host",
-       [EXTCON_CABLE_TA]                       = "TA",
-       [EXTCON_CABLE_FAST_CHARGER]             = "Fast-charger",
-       [EXTCON_CABLE_SLOW_CHARGER]             = "Slow-charger",
-       [EXTCON_CABLE_CHARGE_DOWNSTREAM]        = "Charge-downstream",
-       [EXTCON_CABLE_MHL]                      = "MHL",
-       [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_JIG_UART_ON]              = "JIG-UART-ON",
-       [EXTCON_CABLE_DOCK_SMART]               = "Dock-Smart",
-       [EXTCON_CABLE_DOCK_DESK]                = "Dock-Desk",
-       [EXTCON_CABLE_DOCK_AUDIO]               = "Dock-Audio",
-
-       NULL,
+static const enum extcon max77693_extcon_cable[] = {
+       EXTCON_USB,
+       EXTCON_USB_HOST,
+       EXTCON_TA,
+       EXTCON_FAST_CHARGER,
+       EXTCON_SLOW_CHARGER,
+       EXTCON_CHARGE_DOWNSTREAM,
+       EXTCON_MHL,
+       EXTCON_JIG,
+       EXTCON_DOCK,
+       EXTCON_NONE,
 };
 
 /*
@@ -484,7 +457,7 @@ static int max77693_muic_dock_handler(struct max77693_muic_info *info,
        int ret = 0;
        int vbvolt;
        bool cable_attached;
-       char dock_name[CABLE_NAME_MAX];
+       enum extcon dock_id;
 
        dev_info(info->dev,
                "external connector is %s (adc:0x%02x)\n",
@@ -507,15 +480,15 @@ static int max77693_muic_dock_handler(struct max77693_muic_info *info,
                }
 
                /*
-                * Notify Dock-Smart/MHL state.
-                * - Dock-Smart device include three type of cable which
+                * Notify Dock/MHL state.
+                * - Dock 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
+                * for USB/TA cable. Dock device need always exteranl
+                * power supply(USB/TA cable through micro-usb cable). Dock
+                * device support screen output of target to separate
                 * monitor and mouse/keyboard for desktop mode.
                 *
-                * Features of 'USB/TA cable with Dock-Smart device'
+                * Features of 'USB/TA cable with Dock device'
                 * - Support MHL
                 * - Support external output feature of audio
                 * - Support charging through micro-usb port without data
@@ -529,16 +502,16 @@ static int max77693_muic_dock_handler(struct max77693_muic_info *info,
                if (ret < 0)
                        return ret;
 
-               extcon_set_cable_state(info->edev, "Dock-Smart", attached);
-               extcon_set_cable_state(info->edev, "MHL", attached);
+               extcon_set_cable_state_(info->edev, EXTCON_DOCK, attached);
+               extcon_set_cable_state_(info->edev, EXTCON_MHL, attached);
                goto out;
        case MAX77693_MUIC_ADC_AUDIO_MODE_REMOTE:       /* Dock-Desk */
-               strcpy(dock_name, "Dock-Desk");
+               dock_id = EXTCON_DOCK;
                break;
        case MAX77693_MUIC_ADC_AV_CABLE_NOLOAD:         /* Dock-Audio */
-               strcpy(dock_name, "Dock-Audio");
+               dock_id = EXTCON_DOCK;
                if (!attached)
-                       extcon_set_cable_state(info->edev, "USB", false);
+                       extcon_set_cable_state_(info->edev, EXTCON_USB, false);
                break;
        default:
                dev_err(info->dev, "failed to detect %s dock device\n",
@@ -550,7 +523,7 @@ static int max77693_muic_dock_handler(struct max77693_muic_info *info,
        ret = max77693_muic_set_path(info, CONTROL1_SW_AUDIO, attached);
        if (ret < 0)
                return ret;
-       extcon_set_cable_state(info->edev, dock_name, attached);
+       extcon_set_cable_state_(info->edev, dock_id, attached);
 
 out:
        return 0;
@@ -615,20 +588,19 @@ static int max77693_muic_adc_ground_handler(struct max77693_muic_info *info)
                ret = max77693_muic_set_path(info, CONTROL1_SW_USB, attached);
                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 MAX77693_MUIC_GND_AV_CABLE_LOAD:
                /* Audio Video Cable with load, PATH:AUDIO */
                ret = max77693_muic_set_path(info, CONTROL1_SW_AUDIO, attached);
                if (ret < 0)
                        return ret;
-               extcon_set_cable_state(info->edev,
-                               "Audio-video-load", attached);
+               extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
                break;
        case MAX77693_MUIC_GND_MHL:
        case MAX77693_MUIC_GND_MHL_VB:
                /* MHL or MHL with USB/TA cable */
-               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 cable of gnd type\n",
@@ -642,7 +614,6 @@ static int max77693_muic_adc_ground_handler(struct max77693_muic_info *info)
 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;
 
@@ -652,23 +623,13 @@ static int max77693_muic_jig_handler(struct max77693_muic_info *info,
 
        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;
        case MAX77693_MUIC_ADC_FACTORY_MODE_UART_ON:    /* ADC_JIG_UART_ON */
                /* PATH:AP_UART */
-               strcpy(cable_name, "JIG-UART-ON");
                path = CONTROL1_SW_UART;
                break;
        default:
@@ -681,7 +642,7 @@ static int max77693_muic_jig_handler(struct max77693_muic_info *info,
        if (ret < 0)
                return ret;
 
-       extcon_set_cable_state(info->edev, cable_name, attached);
+       extcon_set_cable_state_(info->edev, EXTCON_JIG, attached);
 
        return 0;
 }
@@ -823,22 +784,22 @@ static int max77693_muic_chg_handler(struct max77693_muic_info *info)
                case MAX77693_MUIC_GND_MHL:
                case MAX77693_MUIC_GND_MHL_VB:
                        /*
-                        * MHL cable with MHL-TA(USB/TA) cable
+                        * MHL cable with 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
+                        * extcon driver check whether USB/TA cable is
+                        * connected. If USB/TA cable is connected, extcon
                         * driver notify state to notifiee for charging battery.
                         *
-                        * Features of 'MHL-TA(USB/TA) with MHL cable'
+                        * Features of 'USB/TA with MHL cable'
                         * - Support MHL
                         * - Support charging through micro-usb port without
                         *   data connection
                         */
-                       extcon_set_cable_state(info->edev, "MHL-TA", attached);
+                       extcon_set_cable_state_(info->edev, EXTCON_TA, attached);
                        if (!cable_attached)
-                               extcon_set_cable_state(info->edev,
-                                                     "MHL", cable_attached);
+                               extcon_set_cable_state_(info->edev, EXTCON_MHL,
+                                                       cable_attached);
                        break;
                }
 
@@ -861,11 +822,12 @@ static int max77693_muic_chg_handler(struct max77693_muic_info *info)
                         * - Support charging through micro-usb port without
                         *   data connection.
                         */
-                       extcon_set_cable_state(info->edev, "USB", attached);
+                       extcon_set_cable_state_(info->edev, EXTCON_USB,
+                                               attached);
 
                        if (!cable_attached)
-                               extcon_set_cable_state(info->edev, "Dock-Audio",
-                                                     cable_attached);
+                               extcon_set_cable_state_(info->edev, EXTCON_DOCK,
+                                                       cable_attached);
                        break;
                case MAX77693_MUIC_ADC_RESERVED_ACC_3:          /* Dock-Smart */
                        /*
@@ -893,10 +855,10 @@ static int max77693_muic_chg_handler(struct max77693_muic_info *info)
                        if (ret < 0)
                                return ret;
 
-                       extcon_set_cable_state(info->edev, "Dock-Smart",
-                                             attached);
-                       extcon_set_cable_state(info->edev, "MHL", attached);
-
+                       extcon_set_cable_state_(info->edev, EXTCON_DOCK,
+                                               attached);
+                       extcon_set_cable_state_(info->edev, EXTCON_MHL,
+                                               attached);
                        break;
                }
 
@@ -929,23 +891,26 @@ static int max77693_muic_chg_handler(struct max77693_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 MAX77693_CHARGER_TYPE_DEDICATED_CHG:
                        /* Only TA cable */
-                       extcon_set_cable_state(info->edev, "TA", attached);
+                       extcon_set_cable_state_(info->edev, EXTCON_TA, attached);
                        break;
                }
                break;
        case MAX77693_CHARGER_TYPE_DOWNSTREAM_PORT:
-               extcon_set_cable_state(info->edev,
-                               "Charge-downstream", attached);
+               extcon_set_cable_state_(info->edev, EXTCON_CHARGE_DOWNSTREAM,
+                                       attached);
                break;
        case MAX77693_CHARGER_TYPE_APPLE_500MA:
-               extcon_set_cable_state(info->edev, "Slow-charger", attached);
+               extcon_set_cable_state_(info->edev, EXTCON_SLOW_CHARGER,
+                                       attached);
                break;
        case MAX77693_CHARGER_TYPE_APPLE_1A_2A:
-               extcon_set_cable_state(info->edev, "Fast-charger", attached);
+               extcon_set_cable_state_(info->edev, EXTCON_FAST_CHARGER,
+                                       attached);
                break;
        case MAX77693_CHARGER_TYPE_DEAD_BATTERY:
                break;
@@ -1182,7 +1147,6 @@ static int max77693_muic_probe(struct platform_device *pdev)
                dev_err(&pdev->dev, "failed to allocate memory for extcon\n");
                return -ENOMEM;
        }
-       info->edev->name = DEV_NAME;
 
        ret = devm_extcon_dev_register(&pdev->dev, info->edev);
        if (ret) {