| /* SPDX-License-Identifier: GPL-2.0 */ |
| // |
| // ALSA SoC Texas Instruments TAS2563/TAS2781 Audio Smart Amplifier |
| // |
| // Copyright (C) 2025 Texas Instruments Incorporated |
| // https://www.ti.com |
| // |
| // The TAS2563/TAS2781 driver implements a flexible and configurable |
| // algo coefficient setting for one, two, or even multiple |
| // TAS2563/TAS2781 chips. |
| // |
| // Author: Shenghao Ding <shenghao-ding@ti.com> |
| // |
| |
| #ifndef __TAS2781_COMLIB_I2C_H__ |
| #define __TAS2781_COMLIB_I2C_H__ |
| |
| void tasdevice_reset(struct tasdevice_priv *tas_dev); |
| int tascodec_init(struct tasdevice_priv *tas_priv, void *codec, |
| struct module *module, |
| void (*cont)(const struct firmware *fw, void *context)); |
| struct tasdevice_priv *tasdevice_kzalloc(struct i2c_client *i2c); |
| int tasdevice_init(struct tasdevice_priv *tas_priv); |
| int tasdev_chn_switch(struct tasdevice_priv *tas_priv, |
| unsigned short chn); |
| int tasdevice_dev_update_bits( |
| struct tasdevice_priv *tasdevice, unsigned short chn, |
| unsigned int reg, unsigned int mask, unsigned int value); |
| int tasdevice_amp_putvol(struct tasdevice_priv *tas_priv, |
| struct snd_ctl_elem_value *ucontrol, struct soc_mixer_control *mc); |
| int tasdevice_amp_getvol(struct tasdevice_priv *tas_priv, |
| struct snd_ctl_elem_value *ucontrol, struct soc_mixer_control *mc); |
| int tasdevice_digital_getvol(struct tasdevice_priv *tas_priv, |
| struct snd_ctl_elem_value *ucontrol, struct soc_mixer_control *mc); |
| int tasdevice_digital_putvol(struct tasdevice_priv *tas_priv, |
| struct snd_ctl_elem_value *ucontrol, struct soc_mixer_control *mc); |
| #endif /* __TAS2781_COMLIB_I2C_H__ */ |