1 /* SPDX-License-Identifier: GPL-2.0 */ 2 // 3 // ALSA SoC Texas Instruments TAS2563/TAS2781 Audio Smart Amplifier 4 // 5 // Copyright (C) 2025 Texas Instruments Incorporated 6 // https://www.ti.com 7 // 8 // The TAS2563/TAS2781 driver implements a flexible and configurable 9 // algo coefficient setting for one, two, or even multiple 10 // TAS2563/TAS2781 chips. 11 // 12 // Author: Shenghao Ding <shenghao-ding@ti.com> 13 // 14 15 #ifndef __TAS2781_COMLIB_I2C_H__ 16 #define __TAS2781_COMLIB_I2C_H__ 17 18 void tasdevice_reset(struct tasdevice_priv *tas_dev); 19 int tascodec_init(struct tasdevice_priv *tas_priv, void *codec, 20 struct module *module, 21 void (*cont)(const struct firmware *fw, void *context)); 22 struct tasdevice_priv *tasdevice_kzalloc(struct i2c_client *i2c); 23 int tasdevice_init(struct tasdevice_priv *tas_priv); 24 int tasdev_chn_switch(struct tasdevice_priv *tas_priv, 25 unsigned short chn); 26 int tasdevice_dev_update_bits( 27 struct tasdevice_priv *tasdevice, unsigned short chn, 28 unsigned int reg, unsigned int mask, unsigned int value); 29 int tasdevice_amp_putvol(struct tasdevice_priv *tas_priv, 30 struct snd_ctl_elem_value *ucontrol, struct soc_mixer_control *mc); 31 int tasdevice_amp_getvol(struct tasdevice_priv *tas_priv, 32 struct snd_ctl_elem_value *ucontrol, struct soc_mixer_control *mc); 33 int tasdevice_digital_getvol(struct tasdevice_priv *tas_priv, 34 struct snd_ctl_elem_value *ucontrol, struct soc_mixer_control *mc); 35 int tasdevice_digital_putvol(struct tasdevice_priv *tas_priv, 36 struct snd_ctl_elem_value *ucontrol, struct soc_mixer_control *mc); 37 #endif /* __TAS2781_COMLIB_I2C_H__ */ 38