2 * wmfw.h - Wolfson firmware format information
4 * Copyright 2012 Wolfson Microelectronics plc
6 * Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
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 */
46 struct wmfw_adsp1_sizes
{
52 struct wmfw_adsp2_sizes
{
75 struct wmfw_adsp1_id_hdr
{
76 struct wmfw_id_hdr fw
;
82 struct wmfw_adsp2_id_hdr
{
83 struct wmfw_id_hdr fw
;
95 struct wmfw_adsp1_alg_hdr
{
96 struct wmfw_alg_hdr alg
;
101 struct wmfw_adsp2_alg_hdr
{
102 struct wmfw_alg_hdr alg
;
108 struct wmfw_adsp_alg_data
{
110 u8 name
[WMFW_MAX_ALG_NAME
];
111 u8 descr
[WMFW_MAX_ALG_DESCR_NAME
];
116 struct wmfw_adsp_coeff_data
{
122 u8 name
[WMFW_MAX_COEFF_NAME
];
123 u8 descr
[WMFW_MAX_COEFF_DESCR_NAME
];
130 struct wmfw_coeff_hdr
{
144 struct wmfw_coeff_item
{
157 #define WMFW_ABSOLUTE 0xf0
158 #define WMFW_ALGORITHM_DATA 0xf2
159 #define WMFW_NAME_TEXT 0xfe
160 #define WMFW_INFO_TEXT 0xff
162 #define WMFW_ADSP1_PM 2
163 #define WMFW_ADSP1_DM 3
164 #define WMFW_ADSP1_ZM 4
166 #define WMFW_ADSP2_PM 2
167 #define WMFW_ADSP2_ZM 4
168 #define WMFW_ADSP2_XM 5
169 #define WMFW_ADSP2_YM 6