int source, unsigned int freq_in, unsigned int freq_out);
        int (*set_jack)(struct snd_soc_component *component,
                        struct snd_soc_jack *jack,  void *data);
+       int (*get_jack_type)(struct snd_soc_component *component);
 
        /* DT */
        int (*of_xlate_dai_name)(struct snd_soc_component *component,
                              unsigned int freq_out);
 int snd_soc_component_set_jack(struct snd_soc_component *component,
                               struct snd_soc_jack *jack, void *data);
+int snd_soc_component_get_jack_type(struct snd_soc_component *component);
 
 void snd_soc_component_seq_notifier(struct snd_soc_component *component,
                                    enum snd_soc_dapm_type type, int subseq);
 
 }
 EXPORT_SYMBOL_GPL(snd_soc_component_set_jack);
 
+/**
+ * snd_soc_component_get_jack_type
+ * @component: COMPONENTs
+ *
+ * Returns the jack type of the component
+ * This can either be the supported type or one read from
+ * devicetree with the property: jack-type.
+ */
+int snd_soc_component_get_jack_type(
+       struct snd_soc_component *component)
+{
+       int ret = -ENOTSUPP;
+
+       if (component->driver->get_jack_type)
+               ret = component->driver->get_jack_type(component);
+
+       return soc_component_ret(component, ret);
+}
+EXPORT_SYMBOL_GPL(snd_soc_component_get_jack_type);
+
 int snd_soc_component_module_get(struct snd_soc_component *component,
                                 void *mark, int upon_open)
 {