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.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index aa19f5a32ba8..24e17be38c19 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -19,6 +19,7 @@
19#include <linux/workqueue.h> 19#include <linux/workqueue.h>
20#include <linux/interrupt.h> 20#include <linux/interrupt.h>
21#include <linux/kernel.h> 21#include <linux/kernel.h>
22#include <linux/regmap.h>
22#include <sound/core.h> 23#include <sound/core.h>
23#include <sound/pcm.h> 24#include <sound/pcm.h>
24#include <sound/control.h> 25#include <sound/control.h>
@@ -260,6 +261,7 @@ extern struct snd_ac97_bus_ops soc_ac97_ops;
260enum snd_soc_control_type { 261enum snd_soc_control_type {
261 SND_SOC_I2C = 1, 262 SND_SOC_I2C = 1,
262 SND_SOC_SPI, 263 SND_SOC_SPI,
264 SND_SOC_REGMAP,
263}; 265};
264 266
265enum snd_soc_compress_type { 267enum snd_soc_compress_type {
@@ -274,7 +276,7 @@ enum snd_soc_pcm_subclass {
274}; 276};
275 277
276int snd_soc_codec_set_sysclk(struct snd_soc_codec *codec, int clk_id, 278int snd_soc_codec_set_sysclk(struct snd_soc_codec *codec, int clk_id,
277 unsigned int freq, int dir); 279 int source, unsigned int freq, int dir);
278int snd_soc_codec_set_pll(struct snd_soc_codec *codec, int pll_id, int source, 280int snd_soc_codec_set_pll(struct snd_soc_codec *codec, int pll_id, int source,
279 unsigned int freq_in, unsigned int freq_out); 281 unsigned int freq_in, unsigned int freq_out);
280 282
@@ -576,6 +578,7 @@ struct snd_soc_codec {
576 const void *reg_def_copy; 578 const void *reg_def_copy;
577 const struct snd_soc_cache_ops *cache_ops; 579 const struct snd_soc_cache_ops *cache_ops;
578 struct mutex cache_rw_mutex; 580 struct mutex cache_rw_mutex;
581 int val_bytes;
579 582
580 /* dapm */ 583 /* dapm */
581 struct snd_soc_dapm_context dapm; 584 struct snd_soc_dapm_context dapm;
@@ -607,7 +610,7 @@ struct snd_soc_codec_driver {
607 610
608 /* codec wide operations */ 611 /* codec wide operations */
609 int (*set_sysclk)(struct snd_soc_codec *codec, 612 int (*set_sysclk)(struct snd_soc_codec *codec,
610 int clk_id, unsigned int freq, int dir); 613 int clk_id, int source, unsigned int freq, int dir);
611 int (*set_pll)(struct snd_soc_codec *codec, int pll_id, int source, 614 int (*set_pll)(struct snd_soc_codec *codec, int pll_id, int source,
612 unsigned int freq_in, unsigned int freq_out); 615 unsigned int freq_in, unsigned int freq_out);
613 616
@@ -619,7 +622,7 @@ struct snd_soc_codec_driver {
619 int (*volatile_register)(struct snd_soc_codec *, unsigned int); 622 int (*volatile_register)(struct snd_soc_codec *, unsigned int);
620 int (*readable_register)(struct snd_soc_codec *, unsigned int); 623 int (*readable_register)(struct snd_soc_codec *, unsigned int);
621 int (*writable_register)(struct snd_soc_codec *, unsigned int); 624 int (*writable_register)(struct snd_soc_codec *, unsigned int);
622 short reg_cache_size; 625 unsigned int reg_cache_size;
623 short reg_cache_step; 626 short reg_cache_step;
624 short reg_word_size; 627 short reg_word_size;
625 const void *reg_cache_default; 628 const void *reg_cache_default;
@@ -630,10 +633,14 @@ struct snd_soc_codec_driver {
630 /* codec bias level */ 633 /* codec bias level */
631 int (*set_bias_level)(struct snd_soc_codec *, 634 int (*set_bias_level)(struct snd_soc_codec *,
632 enum snd_soc_bias_level level); 635 enum snd_soc_bias_level level);
636 bool idle_bias_off;
633 637
634 void (*seq_notifier)(struct snd_soc_dapm_context *, 638 void (*seq_notifier)(struct snd_soc_dapm_context *,
635 enum snd_soc_dapm_type, int); 639 enum snd_soc_dapm_type, int);
636 640
641 /* codec stream completion event */
642 int (*stream_event)(struct snd_soc_dapm_context *dapm, int event);
643
637 /* probe ordering - for components with runtime dependencies */ 644 /* probe ordering - for components with runtime dependencies */
638 int probe_order; 645 int probe_order;
639 int remove_order; 646 int remove_order;
@@ -669,6 +676,9 @@ struct snd_soc_platform_driver {
669 /* platform stream ops */ 676 /* platform stream ops */
670 struct snd_pcm_ops *ops; 677 struct snd_pcm_ops *ops;
671 678
679 /* platform stream completion event */
680 int (*stream_event)(struct snd_soc_dapm_context *dapm, int event);
681
672 /* probe ordering - for components with runtime dependencies */ 682 /* probe ordering - for components with runtime dependencies */
673 int probe_order; 683 int probe_order;
674 int remove_order; 684 int remove_order;