aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mfd/wm8994
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2011-03-16 18:57:47 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-03-22 14:41:27 -0400
commit09e10d7fe509408d15818db6a0299f563668a7ba (patch)
treec00c5cff262e93e0c2fd697fe4ac2359f28fd98e /include/linux/mfd/wm8994
parentf20d77ce2663b31c2994462d9ab9143726b67f3e (diff)
ASoC: Add WM8958 VSS support
With appropriate firmware the WM8958 can support Virtual Surround Sound or VSS, widening the stereo audio image for improved user experience. Enable support for this mode of operation when the appropriate firmware can be loaded at runtime. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
Diffstat (limited to 'include/linux/mfd/wm8994')
-rw-r--r--include/linux/mfd/wm8994/pdata.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/linux/mfd/wm8994/pdata.h b/include/linux/mfd/wm8994/pdata.h
index 466b1c777aff..c72174aff1fe 100644
--- a/include/linux/mfd/wm8994/pdata.h
+++ b/include/linux/mfd/wm8994/pdata.h
@@ -32,6 +32,9 @@ struct wm8994_ldo_pdata {
32#define WM8994_EQ_REGS 20 32#define WM8994_EQ_REGS 20
33#define WM8958_MBC_CUTOFF_REGS 20 33#define WM8958_MBC_CUTOFF_REGS 20
34#define WM8958_MBC_COEFF_REGS 48 34#define WM8958_MBC_COEFF_REGS 48
35#define WM8958_MBC_COMBINED_REGS 56
36#define WM8958_VSS_HPF_REGS 2
37#define WM8958_VSS_REGS 148
35 38
36/** 39/**
37 * DRC configurations are specified with a label and a set of register 40 * DRC configurations are specified with a label and a set of register
@@ -71,6 +74,31 @@ struct wm8958_mbc_cfg {
71 const char *name; 74 const char *name;
72 u16 cutoff_regs[WM8958_MBC_CUTOFF_REGS]; 75 u16 cutoff_regs[WM8958_MBC_CUTOFF_REGS];
73 u16 coeff_regs[WM8958_MBC_COEFF_REGS]; 76 u16 coeff_regs[WM8958_MBC_COEFF_REGS];
77
78 /* Coefficient layout when using MBC+VSS firmware */
79 u16 combined_regs[WM8958_MBC_COMBINED_REGS];
80};
81
82/**
83 * VSS HPF configurations are specified with a label and two values to
84 * write. Configurations are expected to be generated using the
85 * multiband compressor configuration panel in WISCE - see
86 * http://www.wolfsonmicro.com/wisce/
87 */
88struct wm8958_vss_hpf_cfg {
89 const char *name;
90 u16 regs[WM8958_VSS_HPF_REGS];
91};
92
93/**
94 * VSS configurations are specified with a label and array of values
95 * to write. Configurations are expected to be generated using the
96 * multiband compressor configuration panel in WISCE - see
97 * http://www.wolfsonmicro.com/wisce/
98 */
99struct wm8958_vss_cfg {
100 const char *name;
101 u16 regs[WM8958_VSS_REGS];
74}; 102};
75 103
76struct wm8994_pdata { 104struct wm8994_pdata {
@@ -95,6 +123,12 @@ struct wm8994_pdata {
95 int num_mbc_cfgs; 123 int num_mbc_cfgs;
96 struct wm8958_mbc_cfg *mbc_cfgs; 124 struct wm8958_mbc_cfg *mbc_cfgs;
97 125
126 int num_vss_cfgs;
127 struct wm8958_vss_cfg *vss_cfgs;
128
129 int num_vss_hpf_cfgs;
130 struct wm8958_vss_hpf_cfg *vss_hpf_cfgs;
131
98 /* LINEOUT can be differential or single ended */ 132 /* LINEOUT can be differential or single ended */
99 unsigned int lineout1_diff:1; 133 unsigned int lineout1_diff:1;
100 unsigned int lineout2_diff:1; 134 unsigned int lineout2_diff:1;