Skip to contentSkip to conversation

ASoC: Add TAS675x quad-channel Class-D amplifier driver

PATCH Superseded Sen Wang 3 participants 13 messages Apr 1 – Apr 4

Subsystems (5)

v2 of 6 Superseded Latest is v6 →

lore
Share & tools
lore

Sen Wang

author maintainer
#0 lore raw

v2 cover 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

Changes in v2:
- Remove redundant DAPM event function (2/4)
- Move IRQ request past power_on, so regs can be set in a clean state (2/4)
- Add delayed_work at probe time to accomdate no PM configs (2/4)
- Change .set_fmt and .dapm_routes callbacks to the same tas675x_set_fmt name (1/3)
- Links to v1: https://lore.kernel.org/all/[email protected]/

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                    | 2158 +++++++++++++++++
 sound/soc/codecs/tas675x.h                    |  367 +++
 8 files changed, 3440 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
author maintainer
#1 lore raw

PATCH v2 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
new file mode 100644
index 000000000000..23e4cc77b4ae
@@ -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
#2 lore raw

Re: [PATCH v2 1/4] dt-bindings: sound: Add ti,tas675x

Quoted 4 lines · Sen Wang

Add device tree binding for the Texas Instruments TAS675x family of four-channel Class-D audio amplifiers with integrated DSP.

Please use subject prefixes matching the subsystem. You can get them for example with 'git log --oneline -- DIRECTORY_OR_FILE' on the directory your patch is touching. For bindings, the preferred subjects are explained here:
https://www.kernel.org/doc/html/latest/devicetree/bindings/submitting-patches.html#i-for-patch-submitters

Quoted 2 lines
---
 .../devicetree/bindings/sound/ti,tas675x.yaml | 278 ++++++++++++++++++

Filename matching compatible, one of them.

Quoted 11 lines
 1 file changed, 278 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/sound/ti,tas675x.yaml
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +2 -0
new file mode 100644
index 000000000000..23e4cc77b4ae
@@ -0,0 +1,278 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 12

Quoted 10 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +10 -0
+---
+$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: |

Do not need '|' unless you need to preserve formatting.

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 13

Quoted 1 line
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +1 -0
+  The TAS675x family (TAS6754, TAS67524) are four-channel, digital-input,

And devices are not compatible?

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 24

Quoted 11 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +11 -0
+  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

Keep alphanumerical order (not natural).

Quoted 11 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +11 -0
+
+  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)

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 45

Quoted 10 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +10 -0
+      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:

Use names from gpio-consumer-common

Quoted 79 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +79 -0
+    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

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 134

Quoted 10 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +10 -0
+      (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: |

Do not need '|' unless you need to preserve formatting.

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 136

Quoted 2 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +2 -0
+      Function for the GPIO_1 pin. When omitted, GPIO_1 remains in its
+      power-on default state.

Best regards,
Krzysztof

author maintainer
#3 lore raw

Re: [PATCH v2 1/4] dt-bindings: sound: Add ti,tas675x

Quoted 6 lines · Krzysztof Kozlowski
Quoted 4 lines · Sen Wang

Add device tree binding for the Texas Instruments TAS675x family of four-channel Class-D audio amplifiers with integrated DSP.

Hi Krzysztof, Thank you for your review.

Quoted 5 lines

Please use subject prefixes matching the subsystem. You can get them for example with 'git log --oneline -- DIRECTORY_OR_FILE' on the directory your patch is touching. For bindings, the preferred subjects are explained here:
https://www.kernel.org/doc/html/latest/devicetree/bindings/submitting-patches.html#i-for-patch-submitters

Understood, ASoC: dt-bindings: Add ti,tas67524. Apologies for the oversight.

Quoted 30 lines
Quoted 3 lines
---
  .../devicetree/bindings/sound/ti,tas675x.yaml | 278 ++++++++++++++++++

Filename matching compatible, one of them.

Quoted 11 lines
  1 file changed, 278 insertions(+)

create mode 100644 Documentation/devicetree/bindings/sound/ti,tas675x.yaml

Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +2 -0
new file mode 100644
index 000000000000..23e4cc77b4ae
@@ -0,0 +1,278 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 12

Quoted 10 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +10 -0
+---
+$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: |

Do not need '|' unless you need to preserve formatting.

Quoted 4 lines

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 13

Quoted 1 line
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +1 -0
+  The TAS675x family (TAS6754, TAS67524) are four-channel, digital-input,

And devices are not compatible?

They're compatible, and I didn't have any differentiators for this initial driver. So I should only keep one. And also rename ti,tas675x.yaml to ti,tas67524.yaml.

Quoted 29 lines

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 24

Quoted 11 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +11 -0
+  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

Keep alphanumerical order (not natural).

Quoted 15 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +15 -0
+
+  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:
Quoted 9 lines

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 45

Quoted 6 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +6 -0
+    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:

Use names from gpio-consumer-common

Okay

Quoted 83 lines
Quoted 83 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +83 -0
+    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.
Quoted 9 lines

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 134

Quoted 6 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +6 -0
+
+      Irrelevant in Left-J and Right-J modes.
+
+  ti,gpio1-function:
+    $ref: /schemas/types.yaml#/definitions/string
+    description: |

Do not need '|' unless you need to preserve formatting.

Understood, thanks a lot for your review and the tip. Will post a V3.

Quoted 6 lines

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 136

Quoted 2 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +2 -0
+      Function for the GPIO_1 pin. When omitted, GPIO_1 remains in its
+      power-on default state.

Best regards,
Krzysztof

#4 lore raw

Re: [PATCH v2 1/4] dt-bindings: sound: Add ti,tas675x

Quoted 21 lines · Sen Wang
Quoted 21 lines
Quoted 8 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +2 -0
new file mode 100644
index 000000000000..23e4cc77b4ae
@@ -0,0 +1,278 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 12

Quoted 10 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +10 -0
+---
+$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: |

Do not need '|' unless you need to preserve formatting.

Quoted 8 lines
Quoted 4 lines

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 13

Quoted 1 line
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +1 -0
+  The TAS675x family (TAS6754, TAS67524) are four-channel, digital-input,

And devices are not compatible?

They're compatible, and I didn't have any differentiators for this initial driver. So I should only keep one.
And also rename ti,tas675x.yaml to ti,tas67524.yaml.

No, you should express compatibility. See writing bindings, writing schema, example schema docs or DTS101 talk.

Best regards,
Krzysztof

author maintainer
#5 lore raw

Re: [PATCH v2 1/4] dt-bindings: sound: Add ti,tas675x

Quoted 27 lines · Krzysztof Kozlowski
Quoted 26 lines · Sen Wang
Quoted 25 lines
Quoted 8 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +2 -0
new file mode 100644
index 000000000000..23e4cc77b4ae
@@ -0,0 +1,278 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 12

Quoted 10 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +10 -0
+---
+$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: |

Do not need '|' unless you need to preserve formatting.

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 13

Quoted 1 line
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +1 -0
+  The TAS675x family (TAS6754, TAS67524) are four-channel, digital-input,

And devices are not compatible?

Quoted 7 lines
Quoted 3 lines

They're compatible, and I didn't have any differentiators for this initial driver. So I should only keep one.
And also rename ti,tas675x.yaml to ti,tas67524.yaml.

No, you should express compatibility. See writing bindings, writing schema, example schema docs or DTS101 talk.

Thank you for clarifying Krzysztof, DTS101 talk is immensely helpful.

Regarding the compatibles, if I use ti,tas67524 as a fallback:

compatible:
oneOf:
- items:
- enum:
- ti,tas6754
- const: ti,tas67524
- const: ti,tas67524

Does this look correct? I've also seen some bindings use 'enum' even for single values under oneOf, but I'm assuming 'const' is preferred for single entries as advocated in the example schema?

Also, my apologies for the premature v3 series; Sorry for the noise. Lesson learned and will only send a proper v4 once all discussions are settled.

Best Regards,
Sen Wang

Quoted 3 lines

Best regards,
Krzysztof

#6 lore raw

Re: [PATCH v2 1/4] dt-bindings: sound: Add ti,tas675x

Quoted 48 lines · Sen Wang
Quoted 27 lines · Krzysztof Kozlowski
Quoted 26 lines · Sen Wang
Quoted 25 lines
Quoted 8 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +2 -0
new file mode 100644
index 000000000000..23e4cc77b4ae
@@ -0,0 +1,278 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 12

Quoted 10 lines
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +10 -0
+---
+$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: |

Do not need '|' unless you need to preserve formatting.

Documentation/devicetree/bindings/sound/ti,tas675x.yaml line 13

Quoted 1 line
Documentation/devicetree/bindings/sound/ti,tas675x.yaml new file +1 -0
+  The TAS675x family (TAS6754, TAS67524) are four-channel, digital-input,

And devices are not compatible?

Quoted 7 lines
Quoted 3 lines

They're compatible, and I didn't have any differentiators for this initial driver. So I should only keep one.
And also rename ti,tas675x.yaml to ti,tas67524.yaml.

No, you should express compatibility. See writing bindings, writing schema, example schema docs or DTS101 talk.

Thank you for clarifying Krzysztof, DTS101 talk is immensely helpful.

Regarding the compatibles, if I use ti,tas67524 as a fallback:

compatible:
oneOf:
- items:
- enum:
- ti,tas6754
- const: ti,tas67524
- const: ti,tas67524

Quoted 3 lines

Does this look correct? I've also seen some bindings use 'enum' even for single values under oneOf, but I'm assuming 'const' is preferred for single entries as advocated in the example schema?

Concept is correct. You have incomplete indentation, but this will be pointed out by yamllint during dt_binding_check, so be sure that yamlling and dtschema Python packages are installed.

Best regards,
Krzysztof

author maintainer
#7 lore raw

PATCH v2 2/4 ASoC: codecs: Add TAS675x quad-channel audio amplifier driver

In reply to 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.

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 | 2158 ++++++++++++++++++++++++++++++++++++
 sound/soc/codecs/tas675x.h |  367 ++++++
 4 files changed, 2539 insertions(+)
 create mode 100644 sound/soc/codecs/tas675x.c
 create mode 100644 sound/soc/codecs/tas675x.h
sound/soc/codecs/Kconfig +12 -0
index f9e6a83e55c6..0ca7c7e2283b 100644
@@ -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
index 172861d17cfd..106fdc140d42 100644
@@ -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 +2158 -0

2,158 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
#8 lore raw

Re: [PATCH v2 2/4] ASoC: codecs: Add TAS675x quad-channel audio amplifier driver

sound/soc/codecs/tas675x.c line 2131

Quoted 9 lines · Sen Wang
sound/soc/codecs/tas675x.c new file +9 -0
+
+static const struct dev_pm_ops tas675x_pm_ops = {
+	SYSTEM_SLEEP_PM_OPS(tas675x_system_suspend, tas675x_system_resume)
+	RUNTIME_PM_OPS(tas675x_runtime_suspend, tas675x_runtime_resume, NULL)
+};
+
+static const struct of_device_id tas675x_of_match[] = {
+	{ .compatible = "ti,tas6754",  .data = (void *)TAS6754 },
+	{ .compatible = "ti,tas67524", .data = (void *)TAS6754 },

I did not look detailed, but this ^^^

sound/soc/codecs/tas675x.c line 2138

Quoted 7 lines
sound/soc/codecs/tas675x.c new file +7 -0
+	{ }
+};
+MODULE_DEVICE_TABLE(of, tas675x_of_match);
+
+static const struct i2c_device_id tas675x_i2c_id[] = {
+	{ "tas6754",  TAS6754 },
+	{ "tas67524", TAS6754 },

... and this ^^^ clearly states devices are compatible, unlike your binding is stating

Review

Quoted 1 line
(quoted diff) +1 -0
+	{ }

Best regards,
Krzysztof

maintainer
#9 lore raw

Re: [PATCH v2 2/4] ASoC: codecs: Add TAS675x quad-channel audio amplifier driver

In reply to Sen Wang
Quoted 3 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.

One issue that didn't get noticed last time, sorry:

sound/soc/codecs/tas675x.c line 1686

Quoted 9 lines
sound/soc/codecs/tas675x.c new file +9 -0
+static int tas675x_runtime_suspend(struct device *dev)
+{
+	struct tas675x_priv *tas = dev_get_drvdata(dev);
+
+	cancel_delayed_work_sync(&tas->fault_check_work);
+	tas675x_set_state_all(tas, TAS675X_STATE_SLEEP_BOTH);
+
+	return 0;
+}

This cancels the work, completing any that's already running, but...

sound/soc/codecs/tas675x.c line 1830

Quoted 11 lines
sound/soc/codecs/tas675x.c new file +11 -0
+static void tas675x_fault_check_work(struct work_struct *work)
+{
+	struct tas675x_priv *tas = container_of(work, struct tas675x_priv,
+						fault_check_work.work);
+
+	if (tas675x_check_faults(tas))
+		regmap_write(tas->regmap, TAS675X_RESET_REG, TAS675X_FAULT_CLEAR);
+
+	schedule_delayed_work(&tas->fault_check_work,
+			      msecs_to_jiffies(TAS675X_FAULT_CHECK_INTERVAL_MS));
+}

...the work unconditionally rearms itself so we might race and requeue (we cancel *then* wait) with the device powered off. There's the disable_delayed_work_sync() API which should be a better fit.

sound/soc/codecs/tas675x.c line 1842

Quoted 11 lines
sound/soc/codecs/tas675x.c new file +11 -0
+static irqreturn_t tas675x_irq_handler(int irq, void *data)
+{
+	struct tas675x_priv *tas = data;
+
+	tas675x_check_faults(tas);
+
+	/* Clear the FAULT pin latch as something latched */
+	regmap_write(tas->regmap, TAS675X_RESET_REG, TAS675X_FAULT_CLEAR);
+
+	return IRQ_HANDLED;
+}

Also, this should return IRQ_NONE if no faults were seen (to allow for interrupt sharing and the genirq core's handling of hardware faults).

author maintainer
#10 lore raw

Re: [PATCH v2 2/4] ASoC: codecs: Add TAS675x quad-channel audio amplifier driver

Quoted 7 lines · Mark Brown
Quoted 3 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.

One issue that didn't get noticed last time, sorry:

The more the merrier :)

Quoted 12 lines

sound/soc/codecs/tas675x.c line 1686

Quoted 9 lines
sound/soc/codecs/tas675x.c new file +9 -0
+static int tas675x_runtime_suspend(struct device *dev)
+{
+	struct tas675x_priv *tas = dev_get_drvdata(dev);
+
+	cancel_delayed_work_sync(&tas->fault_check_work);
+	tas675x_set_state_all(tas, TAS675X_STATE_SLEEP_BOTH);
+
+	return 0;
+}

This cancels the work, completing any that's already running, but...

Quoted 16 lines

sound/soc/codecs/tas675x.c line 1830

Quoted 11 lines
sound/soc/codecs/tas675x.c new file +11 -0
+static void tas675x_fault_check_work(struct work_struct *work)
+{
+	struct tas675x_priv *tas = container_of(work, struct tas675x_priv,
+						fault_check_work.work);
+
+	if (tas675x_check_faults(tas))
+		regmap_write(tas->regmap, TAS675X_RESET_REG, TAS675X_FAULT_CLEAR);
+
+	schedule_delayed_work(&tas->fault_check_work,
+			      msecs_to_jiffies(TAS675X_FAULT_CHECK_INTERVAL_MS));
+}

...the work unconditionally rearms itself so we might race and requeue (we cancel *then* wait) with the device powered off. There's the disable_delayed_work_sync() API which should be a better fit.

Right the APIs themselves aren't atomic, disable would be a much less error-prone approach. Looks like TAS5720 & TAS6424 has a similar issue too, where they have cancel work at DAPM events instead of runtime suspend. I can test and send these changes in a separate patch.

Quoted 6 lines
Quoted 6 lines
sound/soc/codecs/tas675x.c new file +6 -0
+static irqreturn_t tas675x_irq_handler(int irq, void *data)
+{
+	struct tas675x_priv *tas = data;
+
+	tas675x_check_faults(tas);
+
Quoted 8 lines

sound/soc/codecs/tas675x.c line 1842

Quoted 5 lines
sound/soc/codecs/tas675x.c new file +5 -0
+	/* Clear the FAULT pin latch as something latched */
+	regmap_write(tas->regmap, TAS675X_RESET_REG, TAS675X_FAULT_CLEAR);
+
+	return IRQ_HANDLED;
+}

Also, this should return IRQ_NONE if no faults were seen (to allow for interrupt sharing and the genirq core's handling of hardware faults).

Understood, thank you for the context, didn't know IRQ_NONE provides additional heuristics to irq core. Will post a follow-up V3 addressing the issues.

Best,
Sen Wang

author maintainer
#11 lore raw

PATCH v2 3/4 Documentation: sound: Add TAS675x codec mixer controls documentation

In reply to Sen Wang

Add 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
index 2cb95d87bbef..7594d0a38d6b 100644
@@ -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
author maintainer
#12 lore raw

PATCH v2 4/4 MAINTAINERS: add entry for TAS675x audio amplifier

In reply to Sen Wang

Add 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
index a626dee5c106..ea61bb439652 100644
@@ -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