CS420X_MBP53,
        CS420X_MBP55,
        CS420X_IMAC27,
+       CS420X_IMAC27_122,
        CS420X_APPLE,
        CS420X_AUTO,
        CS420X_MODELS
        [CS420X_MBP53] = "mbp53",
        [CS420X_MBP55] = "mbp55",
        [CS420X_IMAC27] = "imac27",
+       [CS420X_IMAC27_122] = "imac27_122",
        [CS420X_APPLE] = "apple",
        [CS420X_AUTO] = "auto",
 };
 };
 
 static const struct snd_pci_quirk cs420x_codec_cfg_tbl[] = {
+       SND_PCI_QUIRK(0x106b, 0x2000, "iMac 12,2", CS420X_IMAC27_122),
        SND_PCI_QUIRK_VENDOR(0x106b, "Apple", CS420X_APPLE),
        {} /* terminator */
 };
                spec->gpio_mask = spec->gpio_dir =
                        spec->gpio_eapd_hp | spec->gpio_eapd_speaker;
                break;
+       case CS420X_IMAC27_122:
+               spec->gpio_eapd_hp = 4; /* GPIO2 = headphones */
+               spec->gpio_eapd_speaker = 8; /* GPIO3 = speakers */
+               spec->gpio_mask = spec->gpio_dir =
+                       spec->gpio_eapd_hp | spec->gpio_eapd_speaker;
+               break;
        }
 
        err = cs_parse_auto_config(codec);