linux/include/linux/firmware/cirrus/wmfw.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * wmfw.h - Wolfson firmware format information
 *
 * Copyright 2012 Wolfson Microelectronics plc
 *
 * Author: Mark Brown <[email protected]>
 */

#ifndef __WMFW_H
#define __WMFW_H

#include <linux/types.h>

#define WMFW_MAX_ALG_NAME
#define WMFW_MAX_ALG_DESCR_NAME

#define WMFW_MAX_COEFF_NAME
#define WMFW_MAX_COEFF_DESCR_NAME

#define WMFW_CTL_FLAG_SYS
#define WMFW_CTL_FLAG_VOLATILE
#define WMFW_CTL_FLAG_WRITEABLE
#define WMFW_CTL_FLAG_READABLE

#define WMFW_CTL_TYPE_BYTES

/* Non-ALSA coefficient types start at 0x1000 */
#define WMFW_CTL_TYPE_ACKED
#define WMFW_CTL_TYPE_HOSTEVENT
#define WMFW_CTL_TYPE_HOST_BUFFER
#define WMFW_CTL_TYPE_FWEVENT

struct wmfw_header {} __packed;

struct wmfw_footer {} __packed;

struct wmfw_adsp1_sizes {} __packed;

struct wmfw_adsp2_sizes {} __packed;

struct wmfw_region {} __packed;

struct wmfw_id_hdr {} __packed;

struct wmfw_v3_id_hdr {} __packed;

struct wmfw_adsp1_id_hdr {} __packed;

struct wmfw_adsp2_id_hdr {} __packed;

struct wmfw_halo_id_hdr {} __packed;

struct wmfw_alg_hdr {} __packed;

struct wmfw_adsp1_alg_hdr {} __packed;

struct wmfw_adsp2_alg_hdr {} __packed;

struct wmfw_halo_alg_hdr {} __packed;

struct wmfw_adsp_alg_data {} __packed;

struct wmfw_adsp_coeff_data {} __packed;

struct wmfw_coeff_hdr {} __packed;

struct wmfw_coeff_item {} __packed;

#define WMFW_ADSP1
#define WMFW_ADSP2
#define WMFW_HALO

#define WMFW_ABSOLUTE
#define WMFW_ALGORITHM_DATA
#define WMFW_METADATA
#define WMFW_NAME_TEXT
#define WMFW_INFO_TEXT

#define WMFW_ADSP1_PM
#define WMFW_ADSP1_DM
#define WMFW_ADSP1_ZM

#define WMFW_ADSP2_PM
#define WMFW_ADSP2_ZM
#define WMFW_ADSP2_XM
#define WMFW_ADSP2_YM

#define WMFW_HALO_PM_PACKED
#define WMFW_HALO_XM_PACKED
#define WMFW_HALO_YM_PACKED

#endif