diff options
author | Mark Brown <broonie@linaro.org> | 2013-10-24 11:24:01 +0100 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-10-24 11:24:01 +0100 |
commit | 618056167059afdf43a36aa9db40e51a6482797d (patch) | |
tree | 27c0b8a317db32e4c5e44edccf888cc7e7dc6654 /include/sound | |
parent | d1c59c87128722d159db1d83bd2b8f2d8a89915f (diff) | |
parent | cb470087669a3fab1958fec79dd7db280b33f178 (diff) | |
download | kernel-common-618056167059afdf43a36aa9db40e51a6482797d.tar.gz kernel-common-618056167059afdf43a36aa9db40e51a6482797d.tar.bz2 kernel-common-618056167059afdf43a36aa9db40e51a6482797d.zip |
Merge remote-tracking branch 'asoc/topic/component' into asoc-next
Diffstat (limited to 'include/sound')
-rw-r--r-- | include/sound/soc.h | 41 |
1 files changed, 27 insertions, 14 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h index d22cb0a06feb..1dd7dc5f7d52 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h @@ -13,6 +13,7 @@ #ifndef __LINUX_SND_SOC_H #define __LINUX_SND_SOC_H +#include <linux/of.h> #include <linux/platform_device.h> #include <linux/types.h> #include <linux/notifier.h> @@ -670,6 +671,26 @@ struct snd_soc_cache_ops { int (*sync)(struct snd_soc_codec *codec); }; +/* component interface */ +struct snd_soc_component_driver { + const char *name; + + /* DT */ + int (*of_xlate_dai_name)(struct snd_soc_component *component, + struct of_phandle_args *args, + const char **dai_name); +}; + +struct snd_soc_component { + const char *name; + int id; + int num_dai; + struct device *dev; + struct list_head list; + + const struct snd_soc_component_driver *driver; +}; + /* SoC Audio Codec device */ struct snd_soc_codec { const char *name; @@ -715,6 +736,9 @@ struct snd_soc_codec { struct mutex cache_rw_mutex; int val_bytes; + /* component */ + struct snd_soc_component component; + /* dapm */ struct snd_soc_dapm_context dapm; unsigned int ignore_pmdown_time:1; /* pmdown_time is ignored at stop */ @@ -733,6 +757,7 @@ struct snd_soc_codec_driver { int (*remove)(struct snd_soc_codec *); int (*suspend)(struct snd_soc_codec *); int (*resume)(struct snd_soc_codec *); + struct snd_soc_component_driver component_driver; /* Default control and setup, added after probe() is run */ const struct snd_kcontrol_new *controls; @@ -849,20 +874,6 @@ struct snd_soc_platform { #endif }; -struct snd_soc_component_driver { - const char *name; -}; - -struct snd_soc_component { - const char *name; - int id; - int num_dai; - struct device *dev; - struct list_head list; - - const struct snd_soc_component_driver *driver; -}; - struct snd_soc_dai_link { /* config - must be set by machine driver */ const char *name; /* Codec name */ @@ -1201,6 +1212,8 @@ int snd_soc_of_parse_audio_routing(struct snd_soc_card *card, const char *propname); unsigned int snd_soc_of_parse_daifmt(struct device_node *np, const char *prefix); +int snd_soc_of_get_dai_name(struct device_node *of_node, + const char **dai_name); #include <sound/soc-dai.h> |