ASoC: Add TAS675x quad-channel Class-D amplifier driver
Subsystems (5)
Sen Wang
maintainercover ASoC: Add TAS675x quad-channel Class-D amplifier driver
This series adds support for the TI TAS675x (TAS6754, TAS67524) quad-channel automotive Class-D amplifiers. The devices have an integrated DSP and load diagnostics, and are controlled over I2C.
Patch 1 adds the dt-binding, patch 2 the codec driver, patch 3 the ALSA mixer controls documentation, and patch 4 adds the MAINTAINERS entry.
Tested on AM62D-EVM with a TAS67CD-AEC daughter card, on setups & test procedures, refer to the Github repository.
GitHub: https://github.com/SenWang125/tas67-linux
Sen Wang (4):
dt-bindings: sound: Add ti,tas675x
ASoC: codecs: Add TAS675x quad-channel audio amplifier driver
Documentation: sound: Add TAS675x codec mixer controls documentation
MAINTAINERS: add entry for TAS675x audio amplifier
.../devicetree/bindings/sound/ti,tas675x.yaml | 278 +++ Documentation/sound/codecs/index.rst | 1 + Documentation/sound/codecs/tas675x.rst | 618 +++++ MAINTAINERS | 4 + sound/soc/codecs/Kconfig | 12 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/tas675x.c | 2172 +++++++++++++++++ sound/soc/codecs/tas675x.h | 367 +++ 8 files changed, 3454 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/ti,tas675x.yaml create mode 100644 Documentation/sound/codecs/tas675x.rst create mode 100644 sound/soc/codecs/tas675x.c create mode 100644 sound/soc/codecs/tas675x.h
Signature · 1 line
2.43.0
Sen Wang
maintainerPATCH 1/4 dt-bindings: sound: Add ti,tas675x
Add device tree binding for the Texas Instruments TAS675x family of four-channel Class-D audio amplifiers with integrated DSP.
--- .../devicetree/bindings/sound/ti,tas675x.yaml | 278 ++++++++++++++++++ 1 file changed, 278 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/ti,tas675x.yaml
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +278 -0
@@ -0,0 +1,278 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/sound/ti,tas675x.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Texas Instruments TAS675x Audio Amplifier + +maintainers: + - Sen Wang <[email protected]> + +description: | + The TAS675x family (TAS6754, TAS67524) are four-channel, digital-input, + automotive Class-D audio amplifiers with load diagnostics and an integrated + DSP for audio processing. + +allOf: + - $ref: dai-common.yaml# + +properties: + compatible: + enum: + - ti,tas6754 + - ti,tas67524 + + reg: + maxItems: 1 + + '#sound-dai-cells': + const: 1 + description: | + The device exposes three DAIs, selected by index. + 0 - Standard Audio Path (Playback) + 1 - Low-Latency Playback Path (Playback) + 2 - Sensory Feedback (Capture - Vpredict and Isense) + By default, all four channels of each DAI are active. Runtime + reconfiguration is available through DAPM widgets. + + interrupts: + maxItems: 1 + description: + Active-low falling-edge interrupt from the FAULT pin. When provided, + the driver uses IRQ-driven fault reporting instead of polling. + + pd-gpios: + maxItems: 1 + description: + GPIO connected to the power-down (PD#) pin, active low. Controls the + internal digital circuitry power state. When asserted the device enters + full power-down mode and all register state is lost. Can be omitted if + PD pin is hardwired or externally controlled. + + stby-gpios: + maxItems: 1 + description: + GPIO connected to the standby (STBY#) pin, active low. Controls the + analog power stage. When asserted the device enters Deep Sleep mode + but remains I2C-accessible with registers retained. Can be omitted if + STBY pin is tied to PD or hardwired. + + dvdd-supply: + description: + Digital logic supply (1.62 V to 3.6 V). All three supply rails must + be within their recommended operating ranges before the PD pin is + released. + + pvdd-supply: + description: + Output FET power supply (4.5 V to 19 V). All three supply rails must + be within their recommended operating ranges before the PD pin is + released. + + vbat-supply: + description: + Battery supply for the Class-D output stage (4.5 V to 19 V). Optional + when PVDD and VBAT are connected to the same supply rail. When absent, + VBAT is assumed hardwired to PVDD. + + ti,fast-boot: + type: boolean + description: + Skip DC load diagnostic sweep at power-on to reduce boot latency. + Automatic diagnostics after fault conditions remain enabled. Hardware + overcurrent protection is always active. + + ti,audio-slot-no: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + TDM slot offset for the standard audio playback path via SDIN1. A value + of 4 maps to slot 4. If omitted, slot assignment is derived from the + tx_mask provided via set_tdm_slot(). Without either property, no slot + mapping is configured. + + ti,llp-slot-no: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + TDM slot offset for the low-latency playback path via SDIN1. If omitted, + slot assignment is derived from the tx_mask provided via set_tdm_slot(). + Without either property, no slot mapping is configured. Disabled outside + of LLP mode, and only relevant for TDM formats. + + ti,vpredict-slot-no: + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + In TDM mode, enables Vpredict output and assigns its starting slot; + four consecutive slots carry Vpredict Ch1-4 on SDOUT1. May coexist + with ti,isense-slot-no using separate non-overlapping slots. + + In I2S mode, enables Vpredict output on SDOUT1 (Ch1/Ch2) and SDOUT2 + (Ch3/Ch4). The slot value is unused. Requires a GPIO configured as + sdout2 for Ch3/Ch4; without it only Ch1/Ch2 are output. Mutually + exclusive with ti,isense-slot-no; if both are set, Vpredict takes + priority. + + Irrelevant in Left-J and Right-J modes. + + ti,isense-slot-no: + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + In TDM mode, enables Isense output and assigns its starting slot; + four consecutive slots carry Isense Ch1-4 on SDOUT1. May coexist + with ti,vpredict-slot-no using separate non-overlapping slots. + + In I2S mode, enables Isense output on SDOUT1 (Ch1/Ch2) and SDOUT2 + (Ch3/Ch4). The slot value is unused. Requires a GPIO configured as + sdout2 for Ch3/Ch4; without it only Ch1/Ch2 are output. Mutually + exclusive with ti,vpredict-slot-no; Vpredict takes priority if both + are set. + + Irrelevant in Left-J and Right-J modes. + + ti,gpio1-function: + $ref: /schemas/types.yaml#/definitions/string + description: | + Function for the GPIO_1 pin. When omitted, GPIO_1 remains in its + power-on default state. + enum: + - low # Output: driven low + - auto-mute # Output: high when all channels are auto-muted + - auto-mute-ch4 # Output: high when channel 4 is auto-muted + - auto-mute-ch3 # Output: high when channel 3 is auto-muted + - auto-mute-ch2 # Output: high when channel 2 is auto-muted + - auto-mute-ch1 # Output: high when channel 1 is auto-muted + - sdout2 # Output: Routes secondary serial data output 2 + - sdout1 # Output: Re-routes secondary serial data output 1 + - warn # Output: warning signal (OTW, CBC) + - fault # Output: fault signal (OTSD, OC, DC) + - clock-sync # Output: clock synchronisation + - invalid-clock # Output: high when clock is invalid + - high # Output: driven high + - mute # Input: external mute control + - phase-sync # Input: phase synchronisation + - sdin2 # Input: secondary SDIN2 for I2S/LJ/RJ ch3/ch4 + - deep-sleep # Input: asserted transitions device to Deep Sleep + - hiz # Input: asserted transitions device to Hi-Z + - play # Input: asserted transitions device to Play + - sleep # Input: asserted transitions device to Sleep + + ti,gpio2-function: + $ref: /schemas/types.yaml#/definitions/string + description: | + Function for the GPIO_2 pin. When omitted, GPIO_2 remains in its + power-on default state. + enum: + - low # Output: driven low + - auto-mute # Output: high when all channels are auto-muted + - auto-mute-ch4 # Output: high when channel 4 is auto-muted + - auto-mute-ch3 # Output: high when channel 3 is auto-muted + - auto-mute-ch2 # Output: high when channel 2 is auto-muted + - auto-mute-ch1 # Output: high when channel 1 is auto-muted + - sdout2 # Output: Routes secondary serial data output 2 + - sdout1 # Output: Re-routes secondary serial data output 1 + - warn # Output: warning signal (OTW, CBC) + - fault # Output: fault signal (OTSD, OC, DC) + - clock-sync # Output: clock synchronisation + - invalid-clock # Output: high when clock is invalid + - high # Output: driven high + - mute # Input: external mute control + - phase-sync # Input: phase synchronisation + - sdin2 # Input: secondary SDIN2 for I2S/LJ/RJ ch3/ch4 + - deep-sleep # Input: asserted transitions device to Deep Sleep + - hiz # Input: asserted transitions device to Hi-Z + - play # Input: asserted transitions device to Play + - sleep # Input: asserted transitions device to Sleep + + ports: + $ref: /schemas/graph.yaml#/properties/ports + properties: + port@0: + $ref: audio-graph-port.yaml# + unevaluatedProperties: false + description: Standard audio playback port (DAI 0). + + port@1: + $ref: audio-graph-port.yaml# + unevaluatedProperties: false + description: Low-latency playback port (LLP) (DAI 1). + + port@2: + $ref: audio-graph-port.yaml# + unevaluatedProperties: false + description: Sensory feedback capture port (DAI 2). + + port: + $ref: audio-graph-port.yaml# + unevaluatedProperties: false + +required: + - compatible + - reg + - '#sound-dai-cells' + - dvdd-supply + - pvdd-supply + +anyOf: + - required: [pd-gpios] + - required: [stby-gpios] + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + amplifier@70 { + compatible = "ti,tas67524"; + reg = <0x70>; + #sound-dai-cells = <1>; + sound-name-prefix = "TAS0"; + + stby-gpios = <&main_gpio0 33 GPIO_ACTIVE_LOW>; + + dvdd-supply = <&dvdd_1v8>; + pvdd-supply = <&pvdd_12v>; + vbat-supply = <&vbat_12v>; + + ti,audio-slot-no = <0>; + ti,llp-slot-no = <4>; + ti,vpredict-slot-no = <0>; + ti,isense-slot-no = <4>; + + ti,gpio2-function = "warn"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + tas0_audio_ep: endpoint { + dai-format = "dsp_b"; + remote-endpoint = <&be_tas0_audio_ep>; + }; + }; + + port@1 { + reg = <1>; + + tas0_anc_ep: endpoint { + remote-endpoint = <&be_tas0_anc_ep>; + }; + }; + + port@2 { + reg = <2>; + + tas0_fb_ep: endpoint { + remote-endpoint = <&be_tas0_fb_ep>; + }; + }; + }; + }; + };
Signature · 1 line
2.43.0
Sen Wang
maintainerPATCH 2/4 ASoC: codecs: Add TAS675x quad-channel audio amplifier driver
In reply to Sen WangThe TAS675x (TAS6754, TAS67524) are quad-channel, digital-input Class-D amplifiers with an integrated DSP, controlled over I2C. They support I2S and TDM serial audio interfaces.
The driver exposes three DAI endpoints: standard playback, a low-latency DSP bypass path, and a sense capture DAI for real-time voltage and current feedback. DC, AC and real-time load diagnostics and hardware fault monitoring are supported.
--- sound/soc/codecs/Kconfig | 12 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/tas675x.c | 2172 ++++++++++++++++++++++++++++++++++++ sound/soc/codecs/tas675x.h | 367 ++++++ 4 files changed, 2553 insertions(+) create mode 100644 sound/soc/codecs/tas675x.c create mode 100644 sound/soc/codecs/tas675x.h
sound/soc/codecs/Kconfig +12 -0
@@ -275,6 +275,7 @@ config SND_SOC_ALL_CODECS imply SND_SOC_TAS571X imply SND_SOC_TAS5720 imply SND_SOC_TAS6424 + imply SND_SOC_TAS675X imply SND_SOC_TDA7419 imply SND_SOC_TFA9879 imply SND_SOC_TFA989X
@@ -2240,6 +2241,17 @@ config SND_SOC_TAS6424 Enable support for Texas Instruments TAS6424 high-efficiency digital input quad-channel Class-D audio power amplifiers. +config SND_SOC_TAS675X + tristate "Texas Instruments TAS675x Quad-Channel Audio Amplifier" + depends on I2C + select REGMAP_I2C + help + Enable support for Texas Instruments TAS675x quad-channel Class-D + audio power amplifiers (TAS6754, TAS67524). The devices support I2S + and TDM interfaces with real-time voltage and current sense feedback + via SDOUT, and provide DC/AC/real-time load diagnostics for speaker + monitoring. + config SND_SOC_TDA7419 tristate "ST TDA7419 audio processor" depends on I2C
sound/soc/codecs/Makefile +2 -0
@@ -318,6 +318,7 @@ snd-soc-tas571x-y := tas571x.o snd-soc-tas5720-y := tas5720.o snd-soc-tas5805m-y := tas5805m.o snd-soc-tas6424-y := tas6424.o +snd-soc-tas675x-y := tas675x.o snd-soc-tda7419-y := tda7419.o snd-soc-tas2770-y := tas2770.o snd-soc-tas2781-comlib-y := tas2781-comlib.o
@@ -760,6 +761,7 @@ obj-$(CONFIG_SND_SOC_TAS571X) += snd-soc-tas571x.o obj-$(CONFIG_SND_SOC_TAS5720) += snd-soc-tas5720.o obj-$(CONFIG_SND_SOC_TAS5805M) += snd-soc-tas5805m.o obj-$(CONFIG_SND_SOC_TAS6424) += snd-soc-tas6424.o +obj-$(CONFIG_SND_SOC_TAS675X) += snd-soc-tas675x.o obj-$(CONFIG_SND_SOC_TDA7419) += snd-soc-tda7419.o obj-$(CONFIG_SND_SOC_TAS2770) += snd-soc-tas2770.o obj-$(CONFIG_SND_SOC_TFA9879) += snd-soc-tfa9879.o
sound/soc/codecs/tas675x.c new file +2172 -0
2,172 lines not on this page · raw message
sound/soc/codecs/tas675x.h new file +367 -0
367 lines not on this page · raw message
Signature · 1 line
2.43.0
Mark Brown
maintainerRe: [PATCH 2/4] ASoC: codecs: Add TAS675x quad-channel audio amplifier driver
Quoted 11 lines · Sen Wang
The TAS675x (TAS6754, TAS67524) are quad-channel, digital-input Class-D amplifiers with an integrated DSP, controlled over I2C. They support I2S and TDM serial audio interfaces.
sound/soc/codecs/tas675x.c new file +7
-0+static int tas675x_dapm_sleep_event (struct snd_soc_dapm_widget *widget, +struct snd_kcontrol *kcontrol,int event) +{ +struct snd_soc_component *component =snd_soc_dapm_to_component (widget->dapm); +int ret =0 ; + +switch (event) {
sound/soc/codecs/tas675x.c line 1011
Quoted 10 lines
sound/soc/codecs/tas675x.c new file +10
-0+case SND_SOC_DAPM_POST_PMU : + ret =pm_runtime_resume_and_get (component->dev); +break ; +case SND_SOC_DAPM_PRE_PMD : +pm_runtime_mark_last_busy (component->dev); +pm_runtime_put_autosuspend (component->dev); +break ; + } +return ret <0 ? ret :0 ; +}
I'm confused what's going on here, there's runtime PM management in the ASoC core - isn't this just duplicating what's there?
sound/soc/codecs/tas675x.c line 1716
Quoted 6 lines
sound/soc/codecs/tas675x.c new file +5
-0+static int tas675x_runtime_resume (struct device *dev) +{ +if (!to_i2c_client (dev)->irq) +schedule_delayed_work (&tas->fault_check_work, +msecs_to_jiffies (TAS675X_FAULT_CHECK_INTERVAL_MS ));
This is the only place where we start the fault checking but runtime PM can be disabled in configuration and we also start runtime PM in the active state so potentially might never suspend and resume. probe() should kick off the work as well.
Quoted 11 lines
(quoted diff) +9
-0+static int tas675x_init_device(struct tas675x_priv *tas) +{ + struct regmap *regmap = tas->regmap; + unsigned int val; + int ret, i; + + /* Clear POR fault flag to prevent IRQ storm */ + regmap_read(regmap, TAS675X_POWER_FAULT_LATCHED_REG, &val); +static int tas675x_i2c_probe(struct i2c_client *client)
Review
Quoted 10 lines
(quoted diff) +9
-0+{ + if (client->irq) { + ret = devm_request_threaded_irq(tas->dev, client->irq, NULL, + tas675x_irq_handler, + IRQF_ONESHOT | IRQF_TRIGGER_FALLING, + "tas675x-fault", tas); + if (ret) + return dev_err_probe(tas->dev, ret, "Failed to request IRQ\n"); + }
We request the interrupt here...
sound/soc/codecs/tas675x.c line 2106
Quoted 5 lines
sound/soc/codecs/tas675x.c new file +4
-0+INIT_DELAYED_WORK (&tas->fault_check_work, tas675x_fault_check_work); + ret =tas675x_power_on (tas); +if (ret) +return ret;
...before we do _power_on() which is what calls _hw_init() and clears any faults that were latched in the registers. This means that if there is something there we'll handle it through the normal interrupt handling flow and the rest won't buy is much, probably better to reorder the init vs the interrupt request.
Sen Wang
maintainerRe: [PATCH 2/4] ASoC: codecs: Add TAS675x quad-channel audio amplifier driver
Quoted 18 lines · Mark Brown
Quoted 16 lines · Sen Wang
The TAS675x (TAS6754, TAS67524) are quad-channel, digital-input Class-D amplifiers with an integrated DSP, controlled over I2C. They support I2S and TDM serial audio interfaces.
sound/soc/codecs/tas675x.c new file +12
-0+static int tas675x_dapm_sleep_event (struct snd_soc_dapm_widget *widget, +struct snd_kcontrol *kcontrol,int event) +{ +struct snd_soc_component *component =snd_soc_dapm_to_component (widget->dapm); +int ret =0 ; + +switch (event) { +case SND_SOC_DAPM_POST_PMU : + ret =pm_runtime_resume_and_get (component->dev); +break ; +case SND_SOC_DAPM_PRE_PMD : +pm_runtime_mark_last_busy (component->dev);
Quoted 9 lines
sound/soc/codecs/tas675x.c line 1011
Quoted 5 lines
sound/soc/codecs/tas675x.c new file +5
-0+pm_runtime_put_autosuspend (component->dev); +break ; + } +return ret <0 ? ret :0 ; +}I'm confused what's going on here, there's runtime PM management in the ASoC core - isn't this just duplicating what's there?
Hi Mark, thanks for the review.
Yes this function is redundant, it was a residue that I neglected to clean up, let me remove this function.
I was experimenting with DAPM events and see if this would a better way to systematically clear fault status and set the prerequisite registers for LLP (DAI1). But ultimately reverted for the sake of simplicity.
Quoted 12 lines
sound/soc/codecs/tas675x.c line 1716
Quoted 6 lines
sound/soc/codecs/tas675x.c new file +5
-0+static int tas675x_runtime_resume (struct device *dev) +{ +if (!to_i2c_client (dev)->irq) +schedule_delayed_work (&tas->fault_check_work, +msecs_to_jiffies (TAS675X_FAULT_CHECK_INTERVAL_MS ));This is the only place where we start the fault checking but runtime PM can be disabled in configuration and we also start runtime PM in the active state so potentially might never suspend and resume.
probe()should kick off the work as well.
Yes, I need to add work at probe time as well. Didn't consider the scenario when PM is disabled in configuration.
I originally wanted detection to only kick off after the first playback. But scheduling work after the power_on which clears faults status essentially does the same thing.
Quoted 26 lines
Quoted 11 lines
(quoted diff) +9
-0+static int tas675x_init_device(struct tas675x_priv *tas) +{ + struct regmap *regmap = tas->regmap; + unsigned int val; + int ret, i; + + /* Clear POR fault flag to prevent IRQ storm */ + regmap_read(regmap, TAS675X_POWER_FAULT_LATCHED_REG, &val); +static int tas675x_i2c_probe(struct i2c_client *client)Review
Quoted 10 lines
(quoted diff) +9
-0+{ + if (client->irq) { + ret = devm_request_threaded_irq(tas->dev, client->irq, NULL, + tas675x_irq_handler, + IRQF_ONESHOT | IRQF_TRIGGER_FALLING, + "tas675x-fault", tas); + if (ret) + return dev_err_probe(tas->dev, ret, "Failed to request IRQ\n"); + }We request the interrupt here...
Quoted 1 line
sound/soc/codecs/tas675x.c new file +1
-0+INIT_DELAYED_WORK (&tas->fault_check_work, tas675x_fault_check_work);
Quoted 9 lines
sound/soc/codecs/tas675x.c line 1741
Quoted 3 lines
sound/soc/codecs/tas675x.c new file +3
-0+ ret =tas675x_power_on (tas); +if (ret) +return ret;...before we do
_power_on()which is what calls_hw_init()and clears any faults that were latched in the registers. This means that if there is something there we'll handle it through the normal interrupt handling flow and the rest won't buy is much, probably better to reorder the init vs the interrupt request.
Absolutely, will reorder the IRQ request to after power_on(), so the handler only starts once the fault reg gets cleared and in a known state. Along with scheduling work at probe that I've mentioned above.
Thanks a lot for the catch! Will post a V2 addressing these concerns.
Best,
Sen Wang
kernel test robot
build botRe: [PATCH 2/4] ASoC: codecs: Add TAS675x quad-channel audio amplifier driver
In reply to Sen Wangkernel test robot noticed the following build warnings:
Hi Sen,
kernel test robot noticed the following build warnings:
[auto build test WARNING on broonie-sound/for-next]
[also build test WARNING on tiwai-sound/for-next tiwai-sound/for-linus robh/for-next linus/master v7.0-rc6 next-20260401] [If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Sen-Wang/dt-bindings-sound-Add-ti-tas675x/20260401-114532 base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next patch link: https://lore.kernel.org/r/20260401024210.28542-3-sen%40ti.com patch subject: [PATCH 2/4] ASoC: codecs: Add TAS675x quad-channel audio amplifier driver config: arc-randconfig-001-20260402 (https://download.01.org/0day-ci/archive/20260402/[email protected]/config) compiler: arc-linux-gcc (GCC) 13.4.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260402/[email protected]/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
All warnings (new ones prefixed by >>):
>> Warning: sound/soc/codecs/tas675x.c:1473 This comment starts with '/**', but isn't a kernel-doc comment. Refer to Documentation/doc-guide/kernel-doc.rst
* Hardware power sequencing
Warning: sound/soc/codecs/tas675x.c:1551 This comment starts with '/**', but isn't a kernel-doc comment. Refer to Documentation/doc-guide/kernel-doc.rst
* Device start-up defaults
Warning: sound/soc/codecs/tas675x.c:1790 This comment starts with '/**', but isn't a kernel-doc comment. Refer to Documentation/doc-guide/kernel-doc.rst
* Read and log all latched fault registers
Signature · 2 lines
0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
Sen Wang
maintainerPATCH 3/4 Documentation: sound: Add TAS675x codec mixer controls documentation
In reply to Sen WangAdd ALSA mixer controls documentation for the TAS675x driver, covering DSP signal path modes, volume controls, load diagnostics, and fault monitoring.
--- Documentation/sound/codecs/index.rst | 1 + Documentation/sound/codecs/tas675x.rst | 618 +++++++++++++++++++++++++ 2 files changed, 619 insertions(+) create mode 100644 Documentation/sound/codecs/tas675x.rst
Documentation/sound/codecs/index.rst +1 -0
@@ -7,3 +7,4 @@ Codec-Specific Information :maxdepth: 2 cs35l56 + tas675x
Documentation/sound/codecs/tas675x.rst new file +618 -0
618 lines not on this page · raw message
Signature · 1 line
2.43.0
Sen Wang
maintainerPATCH 4/4 MAINTAINERS: add entry for TAS675x audio amplifier
In reply to Sen WangAdd Sen Wang as maintainer and register file patterns for the newly added TAS675x quad-channel amplifier driver.
--- MAINTAINERS | 4 ++++ 1 file changed, 4 insertions(+)
MAINTAINERS +4 -0
@@ -26191,17 +26191,20 @@ TEXAS INSTRUMENTS AUDIO (ASoC/HDA) DRIVERS M: Shenghao Ding <[email protected]> M: Kevin Lu <[email protected]> M: Baojun Xu <[email protected]> +M: Sen Wang <[email protected]> L: [email protected] S: Maintained F: Documentation/devicetree/bindings/sound/ti,tas2552.yaml F: Documentation/devicetree/bindings/sound/ti,tas2562.yaml F: Documentation/devicetree/bindings/sound/ti,tas2770.yaml F: Documentation/devicetree/bindings/sound/ti,tas27xx.yaml +F: Documentation/devicetree/bindings/sound/ti,tas675x.yaml F: Documentation/devicetree/bindings/sound/ti,tpa6130a2.yaml F: Documentation/devicetree/bindings/sound/ti,pcm1681.yaml F: Documentation/devicetree/bindings/sound/ti,pcm3168a.yaml F: Documentation/devicetree/bindings/sound/ti,tlv320*.yaml F: Documentation/devicetree/bindings/sound/ti,tlv320adcx140.yaml +F: Documentation/sound/codecs/tas675* F: include/sound/tas2*.h F: include/sound/tlv320*.h F: sound/hda/codecs/side-codecs/tas2781_hda_i2c.c
@@ -26215,6 +26218,7 @@ F: sound/soc/codecs/pcm3168a*.* F: sound/soc/codecs/pcm5102a.c F: sound/soc/codecs/pcm512x*.* F: sound/soc/codecs/tas2*.* +F: sound/soc/codecs/tas675*.* F: sound/soc/codecs/tlv320*.* F: sound/soc/codecs/tpa6130a2.*
Signature · 1 line
2.43.0
Sen Wang
maintainerOn 3/31/26 21:42, Sen Wang wrote:
Apologies, the RFC tag was included by mistake. This is a proper upstream submission, please kindly ignore the RFC tag.
Quoted 33 lines
This series adds support for the TI TAS675x (TAS6754, TAS67524) quad-channel automotive Class-D amplifiers. The devices have an integrated DSP and load diagnostics, and are controlled over I2C.
Patch 1 adds the dt-binding, patch 2 the codec driver, patch 3 the ALSA mixer controls documentation, and patch 4 adds the
MAINTAINERSentry.Tested on AM62D-EVM with a TAS67CD-AEC daughter card, on setups & test procedures, refer to the Github repository.
GitHub: https://github.com/SenWang125/tas67-linux
Sen Wang (4):
dt-bindings: sound: Add ti,tas675x
ASoC: codecs: Add TAS675x quad-channel audio amplifier driver
Documentation: sound: Add TAS675x codec mixer controls documentation
MAINTAINERS: add entry for TAS675x audio amplifier.../devicetree/bindings/sound/ti,tas675x.yaml | 278 +++ Documentation/sound/codecs/index.rst | 1 + Documentation/sound/codecs/tas675x.rst | 618 +++++ MAINTAINERS | 4 + sound/soc/codecs/Kconfig | 12 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/tas675x.c | 2172 +++++++++++++++++ sound/soc/codecs/tas675x.h | 367 +++ 8 files changed, 3454 insertions(+)create mode 100644
Documentation/devicetree/bindings/sound/ti,tas675x.yamlcreate mode 100644Documentation/sound/codecs/tas675x.rstcreate mode 100644sound/soc/codecs/tas675x.c
create mode 100644sound/soc/codecs/tas675x.h