summaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wmfw.h
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-10-05 19:43:18 +0100
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-10-05 20:17:56 +0100
commit6e87badd3f38e1a095d6e1b13828246c3e8486b5 (patch)
treee9e08f552e7d24750e04563ecb3515a90deb835c /sound/soc/codecs/wmfw.h
parente10f871190ce2f912317c874a56b9cc417e46e84 (diff)
downloadlinux-6e87badd3f38e1a095d6e1b13828246c3e8486b5.tar.bz2
ASoC: wm2200: Provide initial coefficient loading
Allow a coefficient set provided using the Wolfson callibration tools to be provided along with the firmware files. Currently only coefficient files which configure absolute register addresses are supported. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/codecs/wmfw.h')
-rw-r--r--sound/soc/codecs/wmfw.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/sound/soc/codecs/wmfw.h b/sound/soc/codecs/wmfw.h
index ef37316f0643..5791f8e440ad 100644
--- a/sound/soc/codecs/wmfw.h
+++ b/sound/soc/codecs/wmfw.h
@@ -43,6 +43,49 @@ struct wmfw_region {
u8 data[];
} __packed;
+struct wmfw_id_hdr {
+ __be32 core_id;
+ __be32 core_rev;
+ __be32 id;
+ __be32 ver;
+} __packed;
+
+struct wmfw_adsp1_id_hdr {
+ struct wmfw_id_hdr fw;
+ __be32 zm;
+ __be32 dm;
+ __be32 algs;
+} __packed;
+
+struct wmfw_alg_hdr {
+ __be32 id;
+ __be32 ver;
+} __packed;
+
+struct wmfw_adsp1_alg_hdr {
+ struct wmfw_alg_hdr alg;
+ __be32 zm;
+ __be32 dm;
+} __packed;
+
+struct wmfw_coeff_hdr {
+ u8 magic[4];
+ __le32 len;
+ __le32 ver;
+ u8 data[];
+} __packed;
+
+struct wmfw_coeff_item {
+ union {
+ __be32 type;
+ __le32 offset;
+ };
+ __le32 id;
+ __le32 ver;
+ __le32 sr;
+ __le32 len;
+ u8 data[];
+} __packed;
#define WMFW_ADSP1 1
#define WMFW_ABSOLUTE 0xf0