linux/sound/soc/codecs/pcm6240.h

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

#ifndef __PCM6240_H__
#define __PCM6240_H__

enum pcm_device {};

#define PCMDEV_GENERIC_VOL_CTRL
#define PCMDEV_PCM1690_VOL_CTRL
#define PCMDEV_PCM1690_FINE_VOL_CTRL

/* Maximum number of I2C addresses */
#define PCMDEVICE_MAX_I2C_DEVICES
/* Maximum number defined in REGBIN protocol */
#define PCMDEVICE_MAX_REGBIN_DEVICES
#define PCMDEVICE_CONFIG_SUM
#define PCMDEVICE_BIN_FILENAME_LEN

#define PCMDEVICE_RATES
#define PCMDEVICE_MAX_CHANNELS
#define PCMDEVICE_FORMATS

/* PAGE Control Register (available in page0 of each book) */
#define PCMDEVICE_PAGE_SELECT
#define PCMDEVICE_REG(page, reg)
#define PCMDEVICE_REG_SWRESET
#define PCMDEVICE_REG_SWRESET_RESET

#define ADC5120_REG_CH1_ANALOG_GAIN
#define ADC5120_REG_CH1_DIGITAL_GAIN
#define ADC5120_REG_CH2_ANALOG_GAIN
#define ADC5120_REG_CH2_DIGITAL_GAIN

#define PCM1690_REG_MODE_CTRL
#define PCM1690_REG_MODE_CTRL_DAMS_MSK
#define PCM1690_REG_MODE_CTRL_DAMS_FINE_STEP
#define PCM1690_REG_MODE_CTRL_DAMS_WIDE_RANGE

#define PCM1690_REG_CH1_DIGITAL_GAIN
#define PCM1690_REG_CH2_DIGITAL_GAIN
#define PCM1690_REG_CH3_DIGITAL_GAIN
#define PCM1690_REG_CH4_DIGITAL_GAIN
#define PCM1690_REG_CH5_DIGITAL_GAIN
#define PCM1690_REG_CH6_DIGITAL_GAIN
#define PCM1690_REG_CH7_DIGITAL_GAIN
#define PCM1690_REG_CH8_DIGITAL_GAIN

#define PCM6240_REG_CH1_ANALOG_GAIN
#define PCM6240_REG_CH1_DIGITAL_GAIN
#define PCM6240_REG_CH2_ANALOG_GAIN
#define PCM6240_REG_CH2_DIGITAL_GAIN
#define PCM6240_REG_CH3_ANALOG_GAIN
#define PCM6240_REG_CH3_DIGITAL_GAIN
#define PCM6240_REG_CH4_ANALOG_GAIN
#define PCM6240_REG_CH4_DIGITAL_GAIN

#define PCM6260_REG_CH1_ANALOG_GAIN
#define PCM6260_REG_CH1_DIGITAL_GAIN
#define PCM6260_REG_CH2_ANALOG_GAIN
#define PCM6260_REG_CH2_DIGITAL_GAIN
#define PCM6260_REG_CH3_ANALOG_GAIN
#define PCM6260_REG_CH3_DIGITAL_GAIN
#define PCM6260_REG_CH4_ANALOG_GAIN
#define PCM6260_REG_CH4_DIGITAL_GAIN
#define PCM6260_REG_CH5_ANALOG_GAIN
#define PCM6260_REG_CH5_DIGITAL_GAIN
#define PCM6260_REG_CH6_ANALOG_GAIN
#define PCM6260_REG_CH6_DIGITAL_GAIN

#define PCM9211_REG_SW_CTRL
#define PCM9211_REG_SW_CTRL_MRST_MSK
#define PCM9211_REG_SW_CTRL_MRST

#define PCM9211_REG_CH1_DIGITAL_GAIN
#define PCM9211_REG_CH2_DIGITAL_GAIN

#define PCMD3140_REG_CH1_DIGITAL_GAIN
#define PCMD3140_REG_CH2_DIGITAL_GAIN
#define PCMD3140_REG_CH3_DIGITAL_GAIN
#define PCMD3140_REG_CH4_DIGITAL_GAIN

#define PCMD3140_REG_CH1_FINE_GAIN
#define PCMD3140_REG_CH2_FINE_GAIN
#define PCMD3140_REG_CH3_FINE_GAIN
#define PCMD3140_REG_CH4_FINE_GAIN

#define PCMD3180_REG_CH1_DIGITAL_GAIN
#define PCMD3180_REG_CH2_DIGITAL_GAIN
#define PCMD3180_REG_CH3_DIGITAL_GAIN
#define PCMD3180_REG_CH4_DIGITAL_GAIN
#define PCMD3180_REG_CH5_DIGITAL_GAIN
#define PCMD3180_REG_CH6_DIGITAL_GAIN
#define PCMD3180_REG_CH7_DIGITAL_GAIN
#define PCMD3180_REG_CH8_DIGITAL_GAIN

#define PCMD3180_REG_CH1_FINE_GAIN
#define PCMD3180_REG_CH2_FINE_GAIN
#define PCMD3180_REG_CH3_FINE_GAIN
#define PCMD3180_REG_CH4_FINE_GAIN
#define PCMD3180_REG_CH5_FINE_GAIN
#define PCMD3180_REG_CH6_FINE_GAIN
#define PCMD3180_REG_CH7_FINE_GAIN
#define PCMD3180_REG_CH8_FINE_GAIN

#define TAA5412_REG_CH1_DIGITAL_VOLUME
#define TAA5412_REG_CH2_DIGITAL_VOLUME
#define TAA5412_REG_CH3_DIGITAL_VOLUME
#define TAA5412_REG_CH4_DIGITAL_VOLUME

#define TAA5412_REG_CH1_FINE_GAIN
#define TAA5412_REG_CH2_FINE_GAIN
#define TAA5412_REG_CH3_FINE_GAIN
#define TAA5412_REG_CH4_FINE_GAIN

#define PCMDEVICE_CMD_SING_W
#define PCMDEVICE_CMD_BURST
#define PCMDEVICE_CMD_DELAY
#define PCMDEVICE_CMD_FIELD_W

enum pcmdevice_bin_blk_type {};

enum pcmdevice_fw_state {};

struct pcmdevice_regbin_hdr {};

struct pcmdevice_block_data {};

struct pcmdevice_config_info {};

struct pcmdevice_regbin {};

struct pcmdevice_irqinfo {};

struct pcmdevice_priv {};

/* mixer control */
struct pcmdevice_mixer_control {};
struct pcmdev_ctrl_info {};
#endif /* __PCM6240_H__ */