2 * wmfw.h - Wolfson firmware format information
4 * Copyright 2012 Wolfson Microelectronics plc
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
16 #include <linux/types.h>
18 #define WMFW_MAX_ALG_NAME 256
19 #define WMFW_MAX_ALG_DESCR_NAME 256
21 #define WMFW_MAX_COEFF_NAME 256
22 #define WMFW_MAX_COEFF_DESCR_NAME 256
24 #define WMFW_CTL_FLAG_SYS 0x8000
25 #define WMFW_CTL_FLAG_VOLATILE 0x0004
26 #define WMFW_CTL_FLAG_WRITEABLE 0x0002
27 #define WMFW_CTL_FLAG_READABLE 0x0001
29 /* Non-ALSA coefficient types start at 0x1000 */
30 #define WMFW_CTL_TYPE_ACKED 0x1000 /* acked control */
31 #define WMFW_CTL_TYPE_HOSTEVENT 0x1001 /* event control */
32 #define WMFW_CTL_TYPE_HOST_BUFFER 0x1002 /* host buffer pointer */
47 struct wmfw_adsp1_sizes {
53 struct wmfw_adsp2_sizes {
76 struct wmfw_adsp1_id_hdr {
77 struct wmfw_id_hdr fw;
83 struct wmfw_adsp2_id_hdr {
84 struct wmfw_id_hdr fw;
96 struct wmfw_adsp1_alg_hdr {
97 struct wmfw_alg_hdr alg;
102 struct wmfw_adsp2_alg_hdr {
103 struct wmfw_alg_hdr alg;
109 struct wmfw_adsp_alg_data {
111 u8 name[WMFW_MAX_ALG_NAME];
112 u8 descr[WMFW_MAX_ALG_DESCR_NAME];
117 struct wmfw_adsp_coeff_data {
123 u8 name[WMFW_MAX_COEFF_NAME];
124 u8 descr[WMFW_MAX_COEFF_DESCR_NAME];
131 struct wmfw_coeff_hdr {
145 struct wmfw_coeff_item {
158 #define WMFW_ABSOLUTE 0xf0
159 #define WMFW_ALGORITHM_DATA 0xf2
160 #define WMFW_NAME_TEXT 0xfe
161 #define WMFW_INFO_TEXT 0xff
163 #define WMFW_ADSP1_PM 2
164 #define WMFW_ADSP1_DM 3
165 #define WMFW_ADSP1_ZM 4
167 #define WMFW_ADSP2_PM 2
168 #define WMFW_ADSP2_ZM 4
169 #define WMFW_ADSP2_XM 5
170 #define WMFW_ADSP2_YM 6