* [PATCH v2 2/2] ASoC: tas2781: Add TAS2573 support
2026-06-02 10:05 [PATCH v2 1/2] ASoC: dt-bindings: ti,tas2781: Add TAS2573 support Baojun Xu
@ 2026-06-02 10:05 ` Baojun Xu
2026-06-02 10:16 ` [PATCH v2 1/2] ASoC: dt-bindings: ti,tas2781: " sashiko-bot
1 sibling, 0 replies; 3+ messages in thread
From: Baojun Xu @ 2026-06-02 10:05 UTC (permalink / raw)
To: broonie, tiwai
Cc: andriy.shevchenko, 13916275206, shenghao-ding, baojun.xu,
linux-sound, linux-kernel, lgirdwood, robh, krzk+dt, conor+dt,
devicetree, k-yi, henry.lo, robinchen, will-wang, jim.shil,
toastcheng, chinkaiting, riyo, a0393308
The TAS2573 belongs to the TAS257x device family, featuring an integrated
DSP and IV sensing capability.
Signed-off-by: Baojun Xu <baojun.xu@ti.com>
---
v2:
- Skip TAS2573 calibration; assign calibration kcontrol to TAS2563 and
TAS2781
---
include/sound/tas2781.h | 1 +
sound/soc/codecs/tas2781-i2c.c | 7 ++++++-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/include/sound/tas2781.h b/include/sound/tas2781.h
index 95296bb4a33a..d45f805b5d18 100644
--- a/include/sound/tas2781.h
+++ b/include/sound/tas2781.h
@@ -120,6 +120,7 @@ enum audio_device {
TAS2568,
TAS2570,
TAS2572,
+ TAS2573,
TAS2574,
TAS2781,
TAS5802,
diff --git a/sound/soc/codecs/tas2781-i2c.c b/sound/soc/codecs/tas2781-i2c.c
index 620ed4ef577d..9e6f0ad5f05d 100644
--- a/sound/soc/codecs/tas2781-i2c.c
+++ b/sound/soc/codecs/tas2781-i2c.c
@@ -108,6 +108,7 @@ static const struct i2c_device_id tasdevice_id[] = {
{ .name = "tas2568", .driver_data = TAS2568 },
{ .name = "tas2570", .driver_data = TAS2570 },
{ .name = "tas2572", .driver_data = TAS2572 },
+ { .name = "tas2573", .driver_data = TAS2573 },
{ .name = "tas2574", .driver_data = TAS2574 },
{ .name = "tas2781", .driver_data = TAS2781 },
{ .name = "tas5802", .driver_data = TAS5802 },
@@ -132,6 +133,7 @@ static const struct of_device_id tasdevice_of_match[] = {
{ .compatible = "ti,tas2568", .data = &tasdevice_id[TAS2568] },
{ .compatible = "ti,tas2570", .data = &tasdevice_id[TAS2570] },
{ .compatible = "ti,tas2572", .data = &tasdevice_id[TAS2572] },
+ { .compatible = "ti,tas2573", .data = &tasdevice_id[TAS2573] },
{ .compatible = "ti,tas2574", .data = &tasdevice_id[TAS2574] },
{ .compatible = "ti,tas2781", .data = &tasdevice_id[TAS2781] },
{ .compatible = "ti,tas5802", .data = &tasdevice_id[TAS5802] },
@@ -1683,7 +1685,7 @@ static void tasdevice_fw_ready(const struct firmware *fmw,
tas_priv->fw_state = TASDEVICE_DSP_FW_ALL_OK;
/* There is no calibration required for TAS58XX. */
- if (tas_priv->chip_id < TAS5802) {
+ if (tas_priv->chip_id == TAS2563 || tas_priv->chip_id == TAS2781) {
ret = tasdevice_create_cali_ctrls(tas_priv);
if (ret) {
dev_err(tas_priv->dev, "cali controls error\n");
@@ -1736,6 +1738,7 @@ static void tasdevice_fw_ready(const struct firmware *fmw,
if (tas_priv->fw_state == TASDEVICE_RCA_FW_OK) {
switch (tas_priv->chip_id) {
case TAS2563:
+ case TAS2573:
case TAS2781:
case TAS5802:
case TAS5806M:
@@ -1900,6 +1903,7 @@ static int tasdevice_codec_probe(struct snd_soc_component *codec)
case TAS2568:
case TAS2570:
case TAS2572:
+ case TAS2573:
case TAS2574:
p = (struct snd_kcontrol_new *)tas2x20_snd_controls;
size = ARRAY_SIZE(tas2x20_snd_controls);
@@ -2094,6 +2098,7 @@ static const struct acpi_device_id tasdevice_acpi_match[] = {
{ "TXNW2568", (kernel_ulong_t)&tasdevice_id[TAS2568] },
{ "TXNW2570", (kernel_ulong_t)&tasdevice_id[TAS2570] },
{ "TXNW2572", (kernel_ulong_t)&tasdevice_id[TAS2572] },
+ { "TXNW2573", (kernel_ulong_t)&tasdevice_id[TAS2573] },
{ "TXNW2574", (kernel_ulong_t)&tasdevice_id[TAS2574] },
{ "TXNW2781", (kernel_ulong_t)&tasdevice_id[TAS2781] },
{ "TXNW5802", (kernel_ulong_t)&tasdevice_id[TAS5802] },
--
2.25.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH v2 1/2] ASoC: dt-bindings: ti,tas2781: Add TAS2573 support
2026-06-02 10:05 [PATCH v2 1/2] ASoC: dt-bindings: ti,tas2781: Add TAS2573 support Baojun Xu
2026-06-02 10:05 ` [PATCH v2 2/2] ASoC: tas2781: " Baojun Xu
@ 2026-06-02 10:16 ` sashiko-bot
1 sibling, 0 replies; 3+ messages in thread
From: sashiko-bot @ 2026-06-02 10:16 UTC (permalink / raw)
To: Baojun Xu; +Cc: devicetree, conor+dt, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The dt-binding schema enforces mutually exclusive `reg` constraints for `ti,tas2573`, causing schema validation to always fail for this device.
--
commit fae137d4c240a643a606f184ad877663a7719392
Author: Baojun Xu <baojun.xu@ti.com>
ASoC: dt-bindings: ti,tas2781: Add TAS2573 support
The TAS2573 belongs to the TAS257x device family, featuring an integrated
DSP and IV sensing capability. This commit adds support for the TAS2573
to the ti,tas2781 dt-binding schema.
> diff --git a/Documentation/devicetree/bindings/sound/ti,tas2781.yaml b/Documentation/devicetree/bindings/sound/ti,tas2781.yaml
> index b21466bb0730a..aa5a317b5a361 100644
> --- a/Documentation/devicetree/bindings/sound/ti,tas2781.yaml
> +++ b/Documentation/devicetree/bindings/sound/ti,tas2781.yaml
[ ... ]
> @@ -183,6 +187,7 @@ allOf:
> contains:
> enum:
> - ti,tas2563
> + - ti,tas2573
> - ti,tas5825
> then:
> properties:
[Severity: Medium]
Will these mutually exclusive reg constraints cause a regression during
schema validation for ti,tas2573?
Since the schema requires ti,tas2573 to have ti,tas2781 as a fallback in the
compatible array, a device tree node will typically have:
compatible = "ti,tas2573", "ti,tas2781";
This triggers the conditional block here, restricting reg addresses to
0x4c-0x4f.
However, it also triggers the later conditional block for ti,tas2781, which
restricts reg addresses to 0x38-0x3f.
Since reg cannot satisfy both disjoint ranges simultaneously, will
dt_binding_check always fail for valid ti,tas2573 device trees?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260602100532.6463-1-baojun.xu@ti.com?part=1
^ permalink raw reply [flat|nested] 3+ messages in thread