| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/sound/ti,tas67524.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Texas Instruments TAS67524 Audio Amplifier |
| |
| maintainers: |
| - Sen Wang <sen@ti.com> |
| |
| description: |
| The TAS67524 is a four-channel, digital-input, automotive |
| Class-D audio amplifier with load diagnostics and an integrated |
| DSP for audio processing. |
| |
| allOf: |
| - $ref: dai-common.yaml# |
| |
| properties: |
| compatible: |
| oneOf: |
| - items: |
| - enum: |
| - ti,tas6754 |
| - const: ti,tas67524 |
| - const: 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. |
| |
| 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. |
| |
| powerdown-gpios: |
| maxItems: 1 |
| description: |
| GPIO connected to the 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. |
| |
| standby-gpios: |
| maxItems: 1 |
| description: |
| GPIO connected to the 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: [powerdown-gpios] |
| - required: [standby-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"; |
| |
| standby-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>; |
| }; |
| }; |
| }; |
| }; |
| }; |