Linux Sound subsystem development
 help / color / mirror / Atom feed
* [PATCH 0/2] ASoC: Intel: add support for TAS2563 amplifier
@ 2025-12-17 11:04 Bard Liao
  2025-12-17 11:04 ` [PATCH 1/2] ASoC: Intel: ti-common: support tas2563 amplifier Bard Liao
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Bard Liao @ 2025-12-17 11:04 UTC (permalink / raw)
  To: broonie, tiwai; +Cc: linux-sound, pierre-louis.bossart, bard.liao

Add support for TAS2563 amplifier on Intel platforms.

David Lin (2):
  ASoC: Intel: ti-common: support tas2563 amplifier
  ASoC: Intel: sof_rt5682: add tas2563 speaker amp support

 include/sound/soc-acpi-intel-ssp-common.h     |  4 +
 sound/soc/intel/boards/Kconfig                |  5 ++
 sound/soc/intel/boards/Makefile               |  3 +
 sound/soc/intel/boards/sof_rt5682.c           |  6 ++
 sound/soc/intel/boards/sof_ti_common.c        | 76 +++++++++++++++++++
 sound/soc/intel/boards/sof_ti_common.h        | 24 ++++++
 .../intel/common/soc-acpi-intel-ssp-common.c  |  3 +
 7 files changed, 121 insertions(+)
 create mode 100644 sound/soc/intel/boards/sof_ti_common.c
 create mode 100644 sound/soc/intel/boards/sof_ti_common.h

-- 
2.43.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/2] ASoC: Intel: ti-common: support tas2563 amplifier
  2025-12-17 11:04 [PATCH 0/2] ASoC: Intel: add support for TAS2563 amplifier Bard Liao
@ 2025-12-17 11:04 ` Bard Liao
  2025-12-17 11:04 ` [PATCH 2/2] ASoC: Intel: sof_rt5682: add tas2563 speaker amp support Bard Liao
  2025-12-19 14:09 ` [PATCH 0/2] ASoC: Intel: add support for TAS2563 amplifier Mark Brown
  2 siblings, 0 replies; 4+ messages in thread
From: Bard Liao @ 2025-12-17 11:04 UTC (permalink / raw)
  To: broonie, tiwai; +Cc: linux-sound, pierre-louis.bossart, bard.liao

From: David Lin <david.lin@intel.com>

Implement tas2563 support code in this common module so it could be
shared between multiple SOF machine drivers.

Signed-off-by: David Lin <david.lin@intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
---
 include/sound/soc-acpi-intel-ssp-common.h     |  4 +
 sound/soc/intel/boards/Kconfig                |  3 +
 sound/soc/intel/boards/Makefile               |  3 +
 sound/soc/intel/boards/sof_ti_common.c        | 76 +++++++++++++++++++
 sound/soc/intel/boards/sof_ti_common.h        | 24 ++++++
 .../intel/common/soc-acpi-intel-ssp-common.c  |  3 +
 6 files changed, 113 insertions(+)
 create mode 100644 sound/soc/intel/boards/sof_ti_common.c
 create mode 100644 sound/soc/intel/boards/sof_ti_common.h

diff --git a/include/sound/soc-acpi-intel-ssp-common.h b/include/sound/soc-acpi-intel-ssp-common.h
index b4597c8dac78..fdb2fce42115 100644
--- a/include/sound/soc-acpi-intel-ssp-common.h
+++ b/include/sound/soc-acpi-intel-ssp-common.h
@@ -37,6 +37,9 @@
 #define RT5682_ACPI_HID		"10EC5682"
 #define RT5682S_ACPI_HID	"RTL5682"
 
+/* Texas Instruments */
+#define TAS2563_ACPI_HID	"TXNW2563"
+
 enum snd_soc_acpi_intel_codec {
 	CODEC_NONE,
 
@@ -63,6 +66,7 @@ enum snd_soc_acpi_intel_codec {
 	CODEC_RT1015P,
 	CODEC_RT1019P,
 	CODEC_RT1308,
+	CODEC_TAS2563,
 };
 
 enum snd_soc_acpi_intel_codec
diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
index c23fdb6aad4c..724064149906 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -41,6 +41,9 @@ config SND_SOC_INTEL_SOF_CIRRUS_COMMON
 config SND_SOC_INTEL_SOF_NUVOTON_COMMON
 	tristate
 
+config SND_SOC_INTEL_SOF_TI_COMMON
+	tristate
+
 config SND_SOC_INTEL_SOF_BOARD_HELPERS
 	select SND_SOC_ACPI_INTEL_MATCH
 	tristate
diff --git a/sound/soc/intel/boards/Makefile b/sound/soc/intel/boards/Makefile
index fcd517d6c279..25a1a9066cbf 100644
--- a/sound/soc/intel/boards/Makefile
+++ b/sound/soc/intel/boards/Makefile
@@ -69,5 +69,8 @@ obj-$(CONFIG_SND_SOC_INTEL_SOF_CIRRUS_COMMON) += snd-soc-intel-sof-cirrus-common
 snd-soc-intel-sof-nuvoton-common-y += sof_nuvoton_common.o
 obj-$(CONFIG_SND_SOC_INTEL_SOF_NUVOTON_COMMON) += snd-soc-intel-sof-nuvoton-common.o
 
+snd-soc-intel-sof-ti-common-y += sof_ti_common.o
+obj-$(CONFIG_SND_SOC_INTEL_SOF_TI_COMMON) += snd-soc-intel-sof-ti-common.o
+
 snd-soc-intel-sof-board-helpers-y += sof_board_helpers.o
 obj-$(CONFIG_SND_SOC_INTEL_SOF_BOARD_HELPERS) += snd-soc-intel-sof-board-helpers.o
diff --git a/sound/soc/intel/boards/sof_ti_common.c b/sound/soc/intel/boards/sof_ti_common.c
new file mode 100644
index 000000000000..218c3536723c
--- /dev/null
+++ b/sound/soc/intel/boards/sof_ti_common.c
@@ -0,0 +1,76 @@
+// SPDX-License-Identifier: GPL-2.0-only
+//
+// Copyright(c) 2025 Intel Corporation
+#include <linux/module.h>
+#include <linux/string.h>
+#include <sound/pcm.h>
+#include <sound/pcm_params.h>
+#include <sound/soc.h>
+#include <sound/soc-acpi.h>
+#include <sound/soc-dai.h>
+#include <sound/soc-dapm.h>
+#include <sound/sof.h>
+#include <uapi/sound/asound.h>
+#include "../common/soc-intel-quirks.h"
+#include "sof_ti_common.h"
+
+/*
+ * Texas Instruments TAS2563 just mount one device to manage multiple devices,
+ * so the kcontrols, widgets and routes just keep one item, respectively.
+ */
+static const struct snd_kcontrol_new tas2563_spk_kcontrols[] = {
+	SOC_DAPM_PIN_SWITCH("Spk"),
+};
+
+static const struct snd_soc_dapm_widget tas2563_spk_dapm_widgets[] = {
+	SND_SOC_DAPM_SPK("Spk", NULL),
+};
+
+static const struct snd_soc_dapm_route tas2563_spk_dapm_routes[] = {
+	{ "Spk", NULL, "OUT" },
+};
+
+static struct snd_soc_dai_link_component tas2563_dai_link_components[] = {
+	{
+		.name = TAS2563_DEV0_NAME,
+		.dai_name = TAS2563_CODEC_DAI,
+	},
+};
+
+static int tas2563_init(struct snd_soc_pcm_runtime *rtd)
+{
+	struct snd_soc_card *card = rtd->card;
+	int ret;
+
+	ret = snd_soc_dapm_new_controls(&card->dapm, tas2563_spk_dapm_widgets,
+					ARRAY_SIZE(tas2563_spk_dapm_widgets));
+	if (ret) {
+		dev_err(rtd->dev, "unable to add dapm widgets, ret %d\n", ret);
+		return ret;
+	}
+
+	ret = snd_soc_add_card_controls(card, tas2563_spk_kcontrols,
+					ARRAY_SIZE(tas2563_spk_kcontrols));
+	if (ret) {
+		dev_err(rtd->dev, "unable to add controls, ret %d\n", ret);
+		return ret;
+	}
+
+	ret = snd_soc_dapm_add_routes(&card->dapm, tas2563_spk_dapm_routes,
+				      ARRAY_SIZE(tas2563_spk_dapm_routes));
+	if (ret)
+		dev_err(rtd->dev, "unable to add dapm routes, ret %d\n", ret);
+
+	return ret;
+}
+
+void sof_tas2563_dai_link(struct snd_soc_dai_link *link)
+{
+	link->codecs = tas2563_dai_link_components;
+	link->num_codecs = ARRAY_SIZE(tas2563_dai_link_components);
+	link->init = tas2563_init;
+}
+EXPORT_SYMBOL_NS(sof_tas2563_dai_link, "SND_SOC_INTEL_SOF_TI_COMMON");
+
+MODULE_DESCRIPTION("ASoC Intel SOF Texas Instruments helpers");
+MODULE_LICENSE("GPL");
diff --git a/sound/soc/intel/boards/sof_ti_common.h b/sound/soc/intel/boards/sof_ti_common.h
new file mode 100644
index 000000000000..de15845aff0c
--- /dev/null
+++ b/sound/soc/intel/boards/sof_ti_common.h
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright(c) 2025 Intel Corporation.
+ */
+
+/*
+ * This file defines data structures used in Machine Driver for Intel
+ * platforms with Texas Instruments Codecs.
+ */
+#ifndef __SOF_TI_COMMON_H
+#define __SOF_TI_COMMON_H
+
+#include <sound/soc.h>
+#include <sound/soc-acpi-intel-ssp-common.h>
+
+/*
+ * Texas Instruments TAS2563
+ */
+#define TAS2563_CODEC_DAI	"tasdev_codec"
+#define TAS2563_DEV0_NAME	"i2c-" TAS2563_ACPI_HID ":00"
+
+void sof_tas2563_dai_link(struct snd_soc_dai_link *link);
+
+#endif /* __SOF_TI_COMMON_H */
diff --git a/sound/soc/intel/common/soc-acpi-intel-ssp-common.c b/sound/soc/intel/common/soc-acpi-intel-ssp-common.c
index f56f4bfa5187..a12b11f2cd7a 100644
--- a/sound/soc/intel/common/soc-acpi-intel-ssp-common.c
+++ b/sound/soc/intel/common/soc-acpi-intel-ssp-common.c
@@ -65,6 +65,9 @@ static const struct codec_map amps[] = {
 	CODEC_MAP_ENTRY("RT1019P", "rt1019", RT1019P_ACPI_HID, CODEC_RT1019P),
 	CODEC_MAP_ENTRY("RT1308", "rt1308", RT1308_ACPI_HID, CODEC_RT1308),
 
+	/* Texas Instruments */
+	CODEC_MAP_ENTRY("TAS2563", "tas2563", TAS2563_ACPI_HID, CODEC_TAS2563),
+
 	/*
 	 * Monolithic components
 	 *
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] ASoC: Intel: sof_rt5682: add tas2563 speaker amp support
  2025-12-17 11:04 [PATCH 0/2] ASoC: Intel: add support for TAS2563 amplifier Bard Liao
  2025-12-17 11:04 ` [PATCH 1/2] ASoC: Intel: ti-common: support tas2563 amplifier Bard Liao
@ 2025-12-17 11:04 ` Bard Liao
  2025-12-19 14:09 ` [PATCH 0/2] ASoC: Intel: add support for TAS2563 amplifier Mark Brown
  2 siblings, 0 replies; 4+ messages in thread
From: Bard Liao @ 2025-12-17 11:04 UTC (permalink / raw)
  To: broonie, tiwai; +Cc: linux-sound, pierre-louis.bossart, bard.liao

From: David Lin <david.lin@intel.com>

This patch adds tas2563 which supports the RT5682 headset codec
and TAS2563 speaker amplifier combination on PantherLake platform.

Signed-off-by: David Lin <david.lin@intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
---
 sound/soc/intel/boards/Kconfig      | 2 ++
 sound/soc/intel/boards/sof_rt5682.c | 6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
index 724064149906..c5942b5655d3 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -330,11 +330,13 @@ config SND_SOC_INTEL_SOF_RT5682_MACH
 	select SND_SOC_RT5645
 	select SND_SOC_RT5682_I2C
 	select SND_SOC_RT5682S
+	select SND_SOC_TAS2781_I2C
 	select SND_SOC_DMIC
 	select SND_SOC_INTEL_HDA_DSP_COMMON
 	select SND_SOC_INTEL_SOF_BOARD_HELPERS
 	select SND_SOC_INTEL_SOF_MAXIM_COMMON
 	select SND_SOC_INTEL_SOF_REALTEK_COMMON
+	select SND_SOC_INTEL_SOF_TI_COMMON
 	select SND_SOC_ACPI_INTEL_MATCH
 	help
 	   This adds support for ASoC machine driver for SOF platforms
diff --git a/sound/soc/intel/boards/sof_rt5682.c b/sound/soc/intel/boards/sof_rt5682.c
index 3d9d8a97d153..649378957b20 100644
--- a/sound/soc/intel/boards/sof_rt5682.c
+++ b/sound/soc/intel/boards/sof_rt5682.c
@@ -27,6 +27,7 @@
 #include "sof_board_helpers.h"
 #include "sof_maxim_common.h"
 #include "sof_realtek_common.h"
+#include "sof_ti_common.h"
 
 /* Driver-specific board quirks: from bit 0 to 7 */
 #define SOF_RT5682_MCLK_EN			BIT(0)
@@ -620,6 +621,9 @@ sof_card_dai_links_create(struct device *dev, struct snd_soc_card *card,
 		ctx->amp_link->init = rt5650_spk_init;
 		ctx->amp_link->ops = &sof_rt5682_ops;
 		break;
+	case CODEC_TAS2563:
+		sof_tas2563_dai_link(ctx->amp_link);
+		break;
 	default:
 		dev_err(dev, "invalid amp type %d\n", ctx->amp_type);
 		return -EINVAL;
@@ -767,6 +771,7 @@ static int sof_audio_probe(struct platform_device *pdev)
 	case CODEC_MAX98360A:
 	case CODEC_RT1019P:
 	case CODEC_RT5650:
+	case CODEC_TAS2563:
 	case CODEC_NONE:
 		/* no codec conf required */
 		break;
@@ -934,3 +939,4 @@ MODULE_LICENSE("GPL v2");
 MODULE_IMPORT_NS("SND_SOC_INTEL_SOF_BOARD_HELPERS");
 MODULE_IMPORT_NS("SND_SOC_INTEL_SOF_MAXIM_COMMON");
 MODULE_IMPORT_NS("SND_SOC_INTEL_SOF_REALTEK_COMMON");
+MODULE_IMPORT_NS("SND_SOC_INTEL_SOF_TI_COMMON");
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 0/2] ASoC: Intel: add support for TAS2563 amplifier
  2025-12-17 11:04 [PATCH 0/2] ASoC: Intel: add support for TAS2563 amplifier Bard Liao
  2025-12-17 11:04 ` [PATCH 1/2] ASoC: Intel: ti-common: support tas2563 amplifier Bard Liao
  2025-12-17 11:04 ` [PATCH 2/2] ASoC: Intel: sof_rt5682: add tas2563 speaker amp support Bard Liao
@ 2025-12-19 14:09 ` Mark Brown
  2 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2025-12-19 14:09 UTC (permalink / raw)
  To: tiwai, Bard Liao; +Cc: linux-sound, pierre-louis.bossart, bard.liao

On Wed, 17 Dec 2025 19:04:30 +0800, Bard Liao wrote:
> Add support for TAS2563 amplifier on Intel platforms.
> 
> David Lin (2):
>   ASoC: Intel: ti-common: support tas2563 amplifier
>   ASoC: Intel: sof_rt5682: add tas2563 speaker amp support
> 
> include/sound/soc-acpi-intel-ssp-common.h     |  4 +
>  sound/soc/intel/boards/Kconfig                |  5 ++
>  sound/soc/intel/boards/Makefile               |  3 +
>  sound/soc/intel/boards/sof_rt5682.c           |  6 ++
>  sound/soc/intel/boards/sof_ti_common.c        | 76 +++++++++++++++++++
>  sound/soc/intel/boards/sof_ti_common.h        | 24 ++++++
>  .../intel/common/soc-acpi-intel-ssp-common.c  |  3 +
>  7 files changed, 121 insertions(+)
>  create mode 100644 sound/soc/intel/boards/sof_ti_common.c
>  create mode 100644 sound/soc/intel/boards/sof_ti_common.h
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/2] ASoC: Intel: ti-common: support tas2563 amplifier
      commit: 331786db1b464fae42c36f53d6901d1d54975e04
[2/2] ASoC: Intel: sof_rt5682: add tas2563 speaker amp support
      commit: 02e7af5b6423d2dbf82f852572f2fa8c00aafb19

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-12-19 14:09 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-17 11:04 [PATCH 0/2] ASoC: Intel: add support for TAS2563 amplifier Bard Liao
2025-12-17 11:04 ` [PATCH 1/2] ASoC: Intel: ti-common: support tas2563 amplifier Bard Liao
2025-12-17 11:04 ` [PATCH 2/2] ASoC: Intel: sof_rt5682: add tas2563 speaker amp support Bard Liao
2025-12-19 14:09 ` [PATCH 0/2] ASoC: Intel: add support for TAS2563 amplifier Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox