aboutsummaryrefslogtreecommitdiffstats
path: root/include/sound/soc.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/sound/soc.h')
-rw-r--r--include/sound/soc.h33
1 files changed, 28 insertions, 5 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index a6a059ca3874..85c15226103b 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -324,6 +324,8 @@ struct snd_soc_dai_link;
324struct snd_soc_platform_driver; 324struct snd_soc_platform_driver;
325struct snd_soc_codec; 325struct snd_soc_codec;
326struct snd_soc_codec_driver; 326struct snd_soc_codec_driver;
327struct snd_soc_component;
328struct snd_soc_component_driver;
327struct soc_enum; 329struct soc_enum;
328struct snd_soc_jack; 330struct snd_soc_jack;
329struct snd_soc_jack_zone; 331struct snd_soc_jack_zone;
@@ -371,12 +373,20 @@ int snd_soc_suspend(struct device *dev);
371int snd_soc_resume(struct device *dev); 373int snd_soc_resume(struct device *dev);
372int snd_soc_poweroff(struct device *dev); 374int snd_soc_poweroff(struct device *dev);
373int snd_soc_register_platform(struct device *dev, 375int snd_soc_register_platform(struct device *dev,
374 struct snd_soc_platform_driver *platform_drv); 376 const struct snd_soc_platform_driver *platform_drv);
375void snd_soc_unregister_platform(struct device *dev); 377void snd_soc_unregister_platform(struct device *dev);
378int snd_soc_add_platform(struct device *dev, struct snd_soc_platform *platform,
379 const struct snd_soc_platform_driver *platform_drv);
380void snd_soc_remove_platform(struct snd_soc_platform *platform);
381struct snd_soc_platform *snd_soc_lookup_platform(struct device *dev);
376int snd_soc_register_codec(struct device *dev, 382int snd_soc_register_codec(struct device *dev,
377 const struct snd_soc_codec_driver *codec_drv, 383 const struct snd_soc_codec_driver *codec_drv,
378 struct snd_soc_dai_driver *dai_drv, int num_dai); 384 struct snd_soc_dai_driver *dai_drv, int num_dai);
379void snd_soc_unregister_codec(struct device *dev); 385void snd_soc_unregister_codec(struct device *dev);
386int snd_soc_register_component(struct device *dev,
387 const struct snd_soc_component_driver *cmpnt_drv,
388 struct snd_soc_dai_driver *dai_drv, int num_dai);
389void snd_soc_unregister_component(struct device *dev);
380int snd_soc_codec_volatile_register(struct snd_soc_codec *codec, 390int snd_soc_codec_volatile_register(struct snd_soc_codec *codec,
381 unsigned int reg); 391 unsigned int reg);
382int snd_soc_codec_readable_register(struct snd_soc_codec *codec, 392int snd_soc_codec_readable_register(struct snd_soc_codec *codec,
@@ -801,10 +811,10 @@ struct snd_soc_platform_driver {
801 struct snd_soc_dai *); 811 struct snd_soc_dai *);
802 812
803 /* platform stream pcm ops */ 813 /* platform stream pcm ops */
804 struct snd_pcm_ops *ops; 814 const struct snd_pcm_ops *ops;
805 815
806 /* platform stream compress ops */ 816 /* platform stream compress ops */
807 struct snd_compr_ops *compr_ops; 817 const struct snd_compr_ops *compr_ops;
808 818
809 /* platform stream completion event */ 819 /* platform stream completion event */
810 int (*stream_event)(struct snd_soc_dapm_context *dapm, int event); 820 int (*stream_event)(struct snd_soc_dapm_context *dapm, int event);
@@ -823,7 +833,7 @@ struct snd_soc_platform {
823 const char *name; 833 const char *name;
824 int id; 834 int id;
825 struct device *dev; 835 struct device *dev;
826 struct snd_soc_platform_driver *driver; 836 const struct snd_soc_platform_driver *driver;
827 struct mutex mutex; 837 struct mutex mutex;
828 838
829 unsigned int suspended:1; /* platform is suspended */ 839 unsigned int suspended:1; /* platform is suspended */
@@ -841,6 +851,20 @@ struct snd_soc_platform {
841#endif 851#endif
842}; 852};
843 853
854struct snd_soc_component_driver {
855 const char *name;
856};
857
858struct snd_soc_component {
859 const char *name;
860 int id;
861 int num_dai;
862 struct device *dev;
863 struct list_head list;
864
865 const struct snd_soc_component_driver *driver;
866};
867
844struct snd_soc_dai_link { 868struct snd_soc_dai_link {
845 /* config - must be set by machine driver */ 869 /* config - must be set by machine driver */
846 const char *name; /* Codec name */ 870 const char *name; /* Codec name */
@@ -1086,7 +1110,6 @@ struct soc_enum {
1086 unsigned int mask; 1110 unsigned int mask;
1087 const char * const *texts; 1111 const char * const *texts;
1088 const unsigned int *values; 1112 const unsigned int *values;
1089 void *dapm;
1090}; 1113};
1091 1114
1092/* codec IO */ 1115/* codec IO */