#include <sound/soc.h>
 
 #define asoc_simple_init_hp(card, sjack, prefix) \
-       asoc_simple_init_jack(card, sjack, 1, prefix)
+       asoc_simple_init_jack(card, sjack, 1, prefix, NULL)
 #define asoc_simple_init_mic(card, sjack, prefix) \
-       asoc_simple_init_jack(card, sjack, 0, prefix)
+       asoc_simple_init_jack(card, sjack, 0, prefix, NULL)
 
 struct asoc_simple_dai {
        const char *name;
 
 int asoc_simple_init_jack(struct snd_soc_card *card,
                               struct asoc_simple_jack *sjack,
-                              int is_hp, char *prefix);
+                              int is_hp, char *prefix, char *pin);
 int asoc_simple_init_priv(struct asoc_simple_priv *priv,
                               struct link_info *li);
 
 
 
 int asoc_simple_init_jack(struct snd_soc_card *card,
                          struct asoc_simple_jack *sjack,
-                         int is_hp, char *prefix)
+                         int is_hp, char *prefix,
+                         char *pin)
 {
        struct device *dev = card->dev;
        enum of_gpio_flags flags;
 
        if (is_hp) {
                snprintf(prop, sizeof(prop), "%shp-det-gpio", prefix);
-               pin_name        = "Headphones";
+               pin_name        = pin ? pin : "Headphones";
                gpio_name       = "Headphone detection";
                mask            = SND_JACK_HEADPHONE;
        } else {
                snprintf(prop, sizeof(prop), "%smic-det-gpio", prefix);
-               pin_name        = "Mic Jack";
+               pin_name        = pin ? pin : "Mic Jack";
                gpio_name       = "Mic detection";
                mask            = SND_JACK_MICROPHONE;
        }