linux/include/sound/tas2781-dsp.h

/* SPDX-License-Identifier: GPL-2.0 */
//
// ALSA SoC Texas Instruments TAS2781 Audio Smart Amplifier
//
// Copyright (C) 2022 - 2024 Texas Instruments Incorporated
// https://www.ti.com
//
// The TAS2781 driver implements a flexible and configurable
// algo coefficient setting for one, two, or even multiple
// TAS2781 chips.
//
// Author: Shenghao Ding <[email protected]>
// Author: Kevin Lu <[email protected]>
//

#ifndef __TAS2781_DSP_H__
#define __TAS2781_DSP_H__

#define MAIN_ALL_DEVICES
#define MAIN_DEVICE_A
#define MAIN_DEVICE_B
#define MAIN_DEVICE_C
#define MAIN_DEVICE_D
#define COEFF_DEVICE_A
#define COEFF_DEVICE_B
#define COEFF_DEVICE_C
#define COEFF_DEVICE_D
#define PRE_DEVICE_A
#define PRE_DEVICE_B
#define PRE_DEVICE_C
#define PRE_DEVICE_D

#define PPC3_VERSION
#define PPC3_VERSION_TAS2781
#define TASDEVICE_DEVICE_SUM
#define TASDEVICE_CONFIG_SUM

#define TASDEVICE_MAX_CHANNELS

enum tasdevice_dsp_dev_idx {};

struct tasdevice_fw_fixed_hdr {};

struct tasdevice_dspfw_hdr {};

struct tasdev_blk {};

struct tasdevice_data {};

struct tasdevice_prog {};

struct tasdevice_config {};

struct tasdevice_calibration {};

struct tasdevice_fw {};

enum tasdevice_fw_state {};

enum tasdevice_bin_blk_type {};

struct tasdevice_rca_hdr {};

struct tasdev_blk_data {};

struct tasdevice_config_info {};

struct tasdevice_rca {};

void tasdevice_select_cfg_blk(void *context, int conf_no,
	unsigned char block_type);
void tasdevice_config_info_remove(void *context);
void tasdevice_dsp_remove(void *context);
int tasdevice_dsp_parser(void *context);
int tasdevice_rca_parser(void *context, const struct firmware *fmw);
void tasdevice_dsp_remove(void *context);
void tasdevice_calbin_remove(void *context);
int tasdevice_select_tuningprm_cfg(void *context, int prm,
	int cfg_no, int rca_conf_no);
int tasdevice_prmg_load(void *context, int prm_no);
void tasdevice_tuning_switch(void *context, int state);
int tas2781_load_calibration(void *context, char *file_name,
	unsigned short i);

#endif