From: Baojun Xu Date: Tue, 2 Jun 2026 10:05:32 +0000 (+0800) Subject: ASoC: tas2781: Add TAS2573 support X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=06ff6ffec2f73f315558483d723a4bf81f2bcd3a;p=thirdparty%2Flinux.git ASoC: tas2781: Add TAS2573 support The TAS2573 belongs to the TAS257x device family, featuring an integrated DSP and IV sensing capability. Signed-off-by: Baojun Xu Link: https://patch.msgid.link/20260602100532.6463-2-baojun.xu@ti.com Signed-off-by: Mark Brown --- 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 @@ out: 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] },