*/
        u8 air_input_count;
 
+       /* the first input with an air control (0-based) */
+       u8 air_input_first;
+
        /* the number of phantom (48V) software switchable controls */
        u8 phantom_count;
 
+       /* the first input with phantom power control (0-based) */
+       u8 phantom_first;
+
        /* the number of inputs each phantom switch controls */
        u8 inputs_per_phantom;
 
        struct usb_mixer_elem_info *elem = kctl->private_data;
        struct usb_mixer_interface *mixer = elem->head.mixer;
        struct scarlett2_data *private = mixer->private_data;
+       const struct scarlett2_device_info *info = private->info;
 
        int index = elem->control;
        int oval, val, err = 0;
 
        /* Send switch change to the device */
        err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_PHANTOM_SWITCH,
-                                      index, val);
+                                      index + info->phantom_first, val);
        if (err == 0)
                err = 1;
 
 
        /* Add input air controls */
        for (i = 0; i < info->air_input_count; i++) {
-               snprintf(s, sizeof(s), fmt, i + 1, "Air", "Switch");
+               snprintf(s, sizeof(s), fmt, i + 1 + info->air_input_first,
+                        "Air", "Switch");
                err = scarlett2_add_new_ctl(mixer, &scarlett2_air_ctl,
                                            i, 1, s, &private->air_ctls[i]);
                if (err < 0)
        /* Add input phantom controls */
        if (info->inputs_per_phantom == 1) {
                for (i = 0; i < info->phantom_count; i++) {
-                       scnprintf(s, sizeof(s), fmt, i + 1,
+                       scnprintf(s, sizeof(s), fmt,
+                                 i + 1 + info->phantom_first,
                                  "Phantom Power", "Switch");
                        err = scarlett2_add_new_ctl(
                                mixer, &scarlett2_phantom_ctl,