diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-03-16 18:57:47 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-03-22 14:41:27 -0400 |
commit | 09e10d7fe509408d15818db6a0299f563668a7ba (patch) | |
tree | c00c5cff262e93e0c2fd697fe4ac2359f28fd98e /include/linux/mfd/wm8994 | |
parent | f20d77ce2663b31c2994462d9ab9143726b67f3e (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.h | 34 |
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 | */ | ||
88 | struct 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 | */ | ||
99 | struct wm8958_vss_cfg { | ||
100 | const char *name; | ||
101 | u16 regs[WM8958_VSS_REGS]; | ||
74 | }; | 102 | }; |
75 | 103 | ||
76 | struct wm8994_pdata { | 104 | struct 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; |