# 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 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 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>; }; }; }; }; };