]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/extcon/extcon-sm5502.c
extcon: Use the unique id for external connector instead of string
[karo-tx-linux.git] / drivers / extcon / extcon-sm5502.c
index 6f1d11f8723bb1df4f3b92a3949effdda3624357..520693d6fa8ab8665012ff359610c9144d0365d4 100644 (file)
@@ -92,19 +92,11 @@ static struct reg_data sm5502_reg_data[] = {
 };
 
 /* List of detectable cables */
-enum {
-       EXTCON_CABLE_USB = 0,
-       EXTCON_CABLE_USB_HOST,
-       EXTCON_CABLE_TA,
-
-       EXTCON_CABLE_END,
-};
-
-static const char *sm5502_extcon_cable[] = {
-       [EXTCON_CABLE_USB]      = "USB",
-       [EXTCON_CABLE_USB_HOST] = "USB-Host",
-       [EXTCON_CABLE_TA]       = "TA",
-       NULL,
+static const enum extcon sm5502_extcon_cable[] = {
+       EXTCON_USB,
+       EXTCON_USB_HOST,
+       EXTCON_TA,
+       EXTCON_NONE,
 };
 
 /* Define supported accessory type */
@@ -377,16 +369,12 @@ static int sm5502_muic_cable_handler(struct sm5502_muic_info *info,
                                     bool attached)
 {
        static unsigned int prev_cable_type = SM5502_MUIC_ADC_GROUND;
-       const char **cable_names = info->edev->supported_cable;
        unsigned int cable_type = SM5502_MUIC_ADC_GROUND;
        unsigned int con_sw = DM_DP_SWITCH_OPEN;
        unsigned int vbus_sw = VBUSIN_SWITCH_OPEN;
-       unsigned int idx = 0;
+       enum extcon id;
        int ret;
 
-       if (!cable_names)
-               return 0;
-
        /* Get the type of attached or detached cable */
        if (attached)
                cable_type = sm5502_muic_get_cable_type(info);
@@ -396,17 +384,17 @@ static int sm5502_muic_cable_handler(struct sm5502_muic_info *info,
 
        switch (cable_type) {
        case SM5502_MUIC_ADC_OPEN_USB:
-               idx     = EXTCON_CABLE_USB;
+               id      = EXTCON_USB;
                con_sw  = DM_DP_SWITCH_USB;
                vbus_sw = VBUSIN_SWITCH_VBUSOUT_WITH_USB;
                break;
        case SM5502_MUIC_ADC_OPEN_TA:
-               idx     = EXTCON_CABLE_TA;
+               id      = EXTCON_TA;
                con_sw  = DM_DP_SWITCH_OPEN;
                vbus_sw = VBUSIN_SWITCH_VBUSOUT;
                break;
        case SM5502_MUIC_ADC_OPEN_USB_OTG:
-               idx     = EXTCON_CABLE_USB_HOST;
+               id      = EXTCON_USB_HOST;
                con_sw  = DM_DP_SWITCH_USB;
                vbus_sw = VBUSIN_SWITCH_OPEN;
                break;
@@ -422,7 +410,7 @@ static int sm5502_muic_cable_handler(struct sm5502_muic_info *info,
                return ret;
 
        /* Change the state of external accessory */
-       extcon_set_cable_state(info->edev, cable_names[idx], attached);
+       extcon_set_cable_state_(info->edev, id, attached);
 
        return 0;
 }