mirror of https://github.com/torvalds/linux.git
ALSA: hda/tas2781: Create a common header for both spi and i2c tas2781 hda driver
Move the common macro definition of kcontrols into a common header for code cleanup, and create a common header to store the common declaration for both spi and i2c hda driver. Signed-off-by: Shenghao Ding <shenghao-ding@ti.com> Link: https://patch.msgid.link/20250416051838.2001-1-shenghao-ding@ti.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
bbf9d31349
commit
813e311e61
|
|
@ -0,0 +1,44 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only
|
||||
*
|
||||
* HDA audio driver for Texas Instruments TAS2781 smart amp
|
||||
*
|
||||
* Copyright (C) 2025 Texas Instruments, Inc.
|
||||
*/
|
||||
#ifndef __TAS2781_HDA_H__
|
||||
#define __TAS2781_HDA_H__
|
||||
|
||||
#include <sound/asound.h>
|
||||
|
||||
/*
|
||||
* No standard control callbacks for SNDRV_CTL_ELEM_IFACE_CARD
|
||||
* Define two controls, one is Volume control callbacks, the other is
|
||||
* flag setting control callbacks.
|
||||
*/
|
||||
|
||||
/* Volume control callbacks for tas2781 */
|
||||
#define ACARD_SINGLE_RANGE_EXT_TLV(xname, xreg, xshift, xmin, xmax, xinvert, \
|
||||
xhandler_get, xhandler_put, tlv_array) { \
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_CARD, .name = (xname), \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | \
|
||||
SNDRV_CTL_ELEM_ACCESS_READWRITE, \
|
||||
.tlv.p = (tlv_array), \
|
||||
.info = snd_soc_info_volsw, \
|
||||
.get = xhandler_get, .put = xhandler_put, \
|
||||
.private_value = (unsigned long)&(struct soc_mixer_control) { \
|
||||
.reg = xreg, .rreg = xreg, \
|
||||
.shift = xshift, .rshift = xshift,\
|
||||
.min = xmin, .max = xmax, .invert = xinvert, \
|
||||
} \
|
||||
}
|
||||
|
||||
/* Flag control callbacks for tas2781 */
|
||||
#define ACARD_SINGLE_BOOL_EXT(xname, xdata, xhandler_get, xhandler_put) { \
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_CARD, \
|
||||
.name = xname, \
|
||||
.info = snd_ctl_boolean_mono_info, \
|
||||
.get = xhandler_get, \
|
||||
.put = xhandler_put, \
|
||||
.private_value = xdata, \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
//
|
||||
// TAS2781 HDA I2C driver
|
||||
//
|
||||
// Copyright 2023 - 2024 Texas Instruments, Inc.
|
||||
// Copyright 2023 - 2025 Texas Instruments, Inc.
|
||||
//
|
||||
// Author: Shenghao Ding <shenghao-ding@ti.com>
|
||||
// Current maintainer: Baojun Xu <baojun.xu@ti.com>
|
||||
|
|
@ -30,35 +30,10 @@
|
|||
#include "hda_component.h"
|
||||
#include "hda_jack.h"
|
||||
#include "hda_generic.h"
|
||||
#include "tas2781_hda.h"
|
||||
|
||||
#define TASDEVICE_SPEAKER_CALIBRATION_SIZE 20
|
||||
|
||||
/* No standard control callbacks for SNDRV_CTL_ELEM_IFACE_CARD
|
||||
* Define two controls, one is Volume control callbacks, the other is
|
||||
* flag setting control callbacks.
|
||||
*/
|
||||
|
||||
/* Volume control callbacks for tas2781 */
|
||||
#define ACARD_SINGLE_RANGE_EXT_TLV(xname, xreg, xshift, xmin, xmax, xinvert, \
|
||||
xhandler_get, xhandler_put, tlv_array) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_CARD, .name = (xname),\
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |\
|
||||
SNDRV_CTL_ELEM_ACCESS_READWRITE,\
|
||||
.tlv.p = (tlv_array), \
|
||||
.info = snd_soc_info_volsw, \
|
||||
.get = xhandler_get, .put = xhandler_put, \
|
||||
.private_value = (unsigned long)&(struct soc_mixer_control) \
|
||||
{.reg = xreg, .rreg = xreg, .shift = xshift, \
|
||||
.rshift = xshift, .min = xmin, .max = xmax, \
|
||||
.invert = xinvert} }
|
||||
|
||||
/* Flag control callbacks for tas2781 */
|
||||
#define ACARD_SINGLE_BOOL_EXT(xname, xdata, xhandler_get, xhandler_put) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_CARD, .name = xname, \
|
||||
.info = snd_ctl_boolean_mono_info, \
|
||||
.get = xhandler_get, .put = xhandler_put, \
|
||||
.private_value = xdata }
|
||||
|
||||
enum calib_data {
|
||||
R0_VAL = 0,
|
||||
INV_R0,
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
//
|
||||
// TAS2781 HDA SPI driver
|
||||
//
|
||||
// Copyright 2024 Texas Instruments, Inc.
|
||||
// Copyright 2024 - 2025 Texas Instruments, Inc.
|
||||
//
|
||||
// Author: Baojun Xu <baojun.xu@ti.com>
|
||||
|
||||
|
|
@ -38,38 +38,7 @@
|
|||
#include "hda_component.h"
|
||||
#include "hda_jack.h"
|
||||
#include "hda_generic.h"
|
||||
|
||||
/*
|
||||
* No standard control callbacks for SNDRV_CTL_ELEM_IFACE_CARD
|
||||
* Define two controls, one is Volume control callbacks, the other is
|
||||
* flag setting control callbacks.
|
||||
*/
|
||||
|
||||
/* Volume control callbacks for tas2781 */
|
||||
#define ACARD_SINGLE_RANGE_EXT_TLV(xname, xreg, xshift, xmin, xmax, xinvert, \
|
||||
xhandler_get, xhandler_put, tlv_array) { \
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_CARD, .name = (xname), \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | \
|
||||
SNDRV_CTL_ELEM_ACCESS_READWRITE, \
|
||||
.tlv.p = (tlv_array), \
|
||||
.info = snd_soc_info_volsw, \
|
||||
.get = xhandler_get, .put = xhandler_put, \
|
||||
.private_value = (unsigned long)&(struct soc_mixer_control) { \
|
||||
.reg = xreg, .rreg = xreg, \
|
||||
.shift = xshift, .rshift = xshift,\
|
||||
.min = xmin, .max = xmax, .invert = xinvert, \
|
||||
} \
|
||||
}
|
||||
|
||||
/* Flag control callbacks for tas2781 */
|
||||
#define ACARD_SINGLE_BOOL_EXT(xname, xdata, xhandler_get, xhandler_put) { \
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_CARD, \
|
||||
.name = xname, \
|
||||
.info = snd_ctl_boolean_mono_info, \
|
||||
.get = xhandler_get, \
|
||||
.put = xhandler_put, \
|
||||
.private_value = xdata, \
|
||||
}
|
||||
#include "tas2781_hda.h"
|
||||
|
||||
struct tas2781_hda {
|
||||
struct tasdevice_priv *priv;
|
||||
|
|
|
|||
Loading…
Reference in New Issue