xref: /linux/Documentation/sound/codecs/tas675x.rst (revision fab183d632628381b466a41479489541ac0e29a0)
1.. SPDX-License-Identifier: GPL-2.0
2
3======================================
4TAS675x Codec Mixer Controls
5======================================
6
7This document describes the ALSA mixer controls for the TAS675x
84-channel amplifier driver.
9
10For device tree bindings, see:
11Documentation/devicetree/bindings/sound/ti,tas67524.yaml
12
13DSP Signal Path Mode
14====================
15
16DSP Signal Path Mode
17--------------------
18
19:Description: Signal processing mode selection.
20:Type:        Enumerated
21:Default:     Normal
22:Options:     Normal, LLP, FFLP
23:Register:    0x32 bits [1:0]
24
25Normal
26  Full DSP with all features available.
27
28LLP (Low Latency Path)
29  Bypasses DSP processing. DSP protection features (Thermal Foldback,
30  PVDD Foldback, Clip Detect) and Real-Time Load Diagnostics unavailable.
31
32FFLP (Full Feature Low Latency Path)
33  Reduced latency. Real-Time Load Diagnostics unavailable.
34
35The following controls are unavailable in LLP mode:
36``Thermal Foldback Switch``, ``PVDD Foldback Switch``,
37``DC Blocker Bypass Switch``, ``Clip Detect Switch``, ``Audio SDOUT Switch``.
38
39The following controls require Normal mode (unavailable in FFLP and LLP):
40``CHx RTLDG Switch``, ``RTLDG Clip Mask Switch``, ``ISENSE Calibration Switch``,
41``RTLDG Open Load Threshold``, ``RTLDG Short Load Threshold``,
42``CHx RTLDG Impedance``.
43
44Volume Controls
45===============
46
47Analog Playback Volume
48----------------------
49
50:Description: Analog output gain for all channels (CH1/CH2 and CH3/CH4 pairs).
51:Type:        Volume (TLV)
52:Default:     0 dB
53:Range:       -15.5 dB to 0 dB (0.5 dB steps)
54:Register:    0x4A (CH1/CH2), 0x4B (CH3/CH4)
55
56Analog Gain Ramp Step
57---------------------
58
59:Description: Anti-pop ramp step duration for analog gain transitions.
60:Type:        Enumerated
61:Default:     15us
62:Options:     15us, 60us, 200us, 400us
63:Register:    0x4E bits [3:2]
64
65CHx Digital Playback Volume
66---------------------------
67
68:Description: Per-channel digital volume control (x = 1, 2, 3, 4).
69:Type:        Volume (TLV)
70:Default:     0 dB
71:Range:       -103 dB to 0 dB (0.5 dB steps)
72:Bounds:      0x30 (min/mute) to 0xFF (max)
73:Register:    0x40 (CH1), 0x41 (CH2), 0x42 (CH3), 0x43 (CH4)
74
75Volume Ramp Down Rate
76---------------------
77
78:Description: Update frequency during mute transition.
79:Type:        Enumerated
80:Default:     16 FS
81:Options:     4 FS, 16 FS, 32 FS, Instant
82:Register:    0x44 bits [7:6]
83
84Volume Ramp Down Step
85---------------------
86
87:Description: dB change per update during mute.
88:Type:        Enumerated
89:Default:     0.5dB
90:Options:     4dB, 2dB, 1dB, 0.5dB
91:Register:    0x44 bits [5:4]
92
93Volume Ramp Up Rate
94-------------------
95
96:Description: Update frequency during unmute transition.
97:Type:        Enumerated
98:Default:     16 FS
99:Options:     4 FS, 16 FS, 32 FS, Instant
100:Register:    0x44 bits [3:2]
101
102Volume Ramp Up Step
103-------------------
104
105:Description: dB change per update during unmute.
106:Type:        Enumerated
107:Default:     0.5dB
108:Options:     4dB, 2dB, 1dB, 0.5dB
109:Register:    0x44 bits [1:0]
110
111CH1/2 Volume Combine
112--------------------
113
114:Description: Links digital volume controls for CH1 and CH2.
115:Type:        Enumerated
116:Default:     Independent
117:Options:     Independent, CH2 follows CH1, CH1 follows CH2
118:Register:    0x46 bits [1:0]
119
120CH3/4 Volume Combine
121--------------------
122
123:Description: Links digital volume controls for CH3 and CH4.
124:Type:        Enumerated
125:Default:     Independent
126:Options:     Independent, CH4 follows CH3, CH3 follows CH4
127:Register:    0x46 bits [3:2]
128
129Auto Mute & Silence Detection
130==============================
131
132CHx Auto Mute Switch
133--------------------
134
135:Description: Enables automatic muting on zero-signal detection (x = 1, 2, 3, 4).
136:Type:        Boolean Switch
137:Default:     Disabled (0)
138:Register:    0x47 bit [0] (CH1), bit [1] (CH2), bit [2] (CH3), bit [3] (CH4)
139
140Auto Mute Combine Switch
141------------------------
142
143:Description: Coordinated muting behaviour across all channels.
144:Type:        Boolean Switch
145:Default:     Disabled (0)
146:Behavior:    Disabled: channels mute independently when their signal is zero.
147              Enabled: all channels mute together only when all detect zero
148              signal; unmute when any channel has non-zero signal.
149:Register:    0x47 bit [4]
150
151CHx Auto Mute Time
152------------------
153
154:Description: Duration of zero signal before muting triggers (x = 1, 2, 3, 4).
155:Type:        Enumerated
156:Default:     11.5ms
157:Options:     11.5ms, 53ms, 106.5ms, 266.5ms, 535ms, 1065ms, 2665ms, 5330ms
158:Register:    0x48 bits [7:4] (CH1), bits [3:0] (CH2),
159              0x49 bits [7:4] (CH3), bits [3:0] (CH4)
160:Note:        Values are at 96 kHz. At 48 kHz, times are doubled.
161
162Clock & EMI Management
163======================
164
165Spread Spectrum Mode
166--------------------
167
168:Description: Frequency dithering mode to reduce peak EMI.
169:Type:        Enumerated
170:Default:     Disabled
171:Options:     Disabled, Triangle, Random, Triangle and Random
172:Register:    0x61 bits [1:0]
173
174SS Triangle Range
175-----------------
176
177:Description: Frequency deviation range for Triangle spread spectrum.
178:Type:        Enumerated
179:Default:     6.5%
180:Options:     6.5%, 13.5%, 5%, 10%
181:Register:    0x62 bits [1:0]
182:Note:        Applies only when Spread Spectrum Mode includes Triangle.
183
184SS Random Range
185---------------
186
187:Description: Frequency deviation range for Random spread spectrum.
188:Type:        Enumerated
189:Default:     0.83%
190:Options:     0.83%, 2.50%, 5.83%, 12.50%, 25.83%
191:Register:    0x62 bits [6:4]
192:Note:        Applies only when Spread Spectrum Mode includes Random.
193
194SS Random Dwell Range
195---------------------
196
197:Description: Dwell time range for Random spread spectrum (FSS = spread
198              spectrum modulation frequency).
199:Type:        Enumerated
200:Default:     1/FSS to 2/FSS
201:Options:     1/FSS to 2/FSS, 1/FSS to 4/FSS, 1/FSS to 8/FSS, 1/FSS to 15/FSS
202:Register:    0x62 bits [3:2]
203:Note:        Applies only when Spread Spectrum Mode includes Random.
204
205SS Triangle Dwell Min
206---------------------
207
208:Description: Minimum dwell time at Triangle spread spectrum frequency extremes.
209:Type:        Integer
210:Default:     0
211:Range:       0 to 15 (0 = feature disabled)
212:Register:    0x66 bits [7:4]
213:Note:        Counts in FSS clock cycles. The modulator holds the extreme
214              frequency for at least this many FSS cycles before reversing.
215              When Dwell Min equals Dwell Max, the dwell feature is inactive.
216              For FSS values at each PWM frequency refer to the "Spread
217              Spectrum" section of the TRM.
218
219SS Triangle Dwell Max
220---------------------
221
222:Description: Maximum dwell time at Triangle spread spectrum frequency extremes.
223:Type:        Integer
224:Default:     0
225:Range:       0 to 15 (0 = feature disabled)
226:Register:    0x66 bits [3:0]
227:Note:        Counts in FSS clock cycles. Must be >= Dwell Min. When Dwell Max
228              equals Dwell Min, the dwell feature is inactive.
229
230Hardware Protection
231===================
232
233OTSD Auto Recovery Switch
234--------------------------
235
236:Description: Enables automatic recovery from over-temperature shutdown.
237:Type:        Boolean Switch
238:Default:     Disabled (0)
239:Register:    0x8F bit [1]
240:Note:        When disabled, manual fault clearing is required after OTSD events.
241
242Overcurrent Limit Level
243-----------------------
244
245:Description: Current-limit trip point sensitivity.
246:Type:        Enumerated
247:Default:     Level 4
248:Options:     Level 4, Level 3, Level 2, Level 1
249:Register:    0x55 bits [1:0]
250:Note:        Level 4 is the least sensitive (highest trip current); Level 1 is
251              the most sensitive. The exact ILIM values depend on operating
252              conditions (PVDD voltage, switching frequency, and temperature).
253              Refer to the Electrical Characteristics table and the
254              "Overcurrent Limit (Cycle-By-Cycle)" section of the TRM.
255
256CHx OTW Threshold
257-----------------
258
259:Description: Over-temperature warning threshold per channel (x = 1, 2, 3, 4).
260:Type:        Enumerated
261:Default:     >95C
262:Options:     Disabled, >95C, >110C, >125C, >135C, >145C, >155C, >165C
263:Register:    0xE2 bits [6:4] (CH1), bits [2:0] (CH2),
264              0xE3 bits [6:4] (CH3), bits [2:0] (CH4)
265
266Temperature and Voltage Monitoring
267===================================
268
269PVDD Sense
270----------
271
272:Description: Supply voltage sense register.
273:Type:        Integer (read-only)
274:Range:       0 to 255
275:Conversion:  value × 0.19 V
276:Register:    0x74
277
278Global Temperature
279------------------
280
281:Description: Global die temperature sense register.
282:Type:        Integer (read-only)
283:Range:       0 to 255
284:Conversion:  value × 2.19 K; subtract 273.15 for °C
285:Register:    0x75
286
287CHx Temperature Range
288---------------------
289
290:Description: Per-channel coarse temperature range indicator (x = 1, 2, 3, 4).
291:Type:        Integer (read-only)
292:Range:       0 to 7
293:Mapping:     0 = <95 °C, 1 = 95–110 °C, 2 = 110–125 °C, 3 = 125–135 °C,
294              4 = 135–145 °C, 5 = 145–155 °C, 6 = 155–165 °C, 7 = >165 °C
295:Register:    0xBB bits [2:0] (CH1), bits [5:3] (CH2),
296              0xBC bits [2:0] (CH3), bits [5:3] (CH4)
297
298Load Diagnostics
299================
300
301The TAS675x provides three load diagnostic modes:
302
303DC Load Diagnostics (DC LDG)
304  Measures DC resistance to detect S2G (short-to-ground), S2P
305  (short-to-power), OL (open load), and SL (shorted load) faults.
306
307AC Load Diagnostics (AC LDG)
308  Measures complex AC impedance at a configurable frequency. Detects
309  capacitive loads and tweeter configurations.
310
311Real-Time Load Diagnostics (RTLDG)
312  Monitors impedance continuously during playback using a pilot tone.
313  Normal DSP mode only, at 48 kHz or 96 kHz.
314
315Fast Boot Mode
316--------------
317
318By default the device runs DC load diagnostics at initialization before
319accepting audio. Setting ``ti,fast-boot`` in the device tree bypasses this
320initial diagnostic run for faster startup. Automatic diagnostics after
321fault recovery remain enabled.
322
323DC Load Diagnostics
324-------------------
325
326The ``CHx DC LDG Report`` 4-bit fault field uses the following encoding:
327
328  ======  ===========  ===================================================
329  Bit     Fault        Description
330  ======  ===========  ===================================================
331  [3]     S2G          Short-to-Ground
332  [2]     S2P          Short-to-Power
333  [1]     OL           Open Load
334  [0]     SL           Shorted Load
335  ======  ===========  ===================================================
336
337DC LDG Trigger
338~~~~~~~~~~~~~~
339
340:Description: Triggers manual DC load diagnostics on all channels.
341:Type:        Boolean (write-only)
342:Note:        Returns -EBUSY if any DAI stream (playback or capture) is active.
343              The driver manages all channel state transitions. Blocks until
344              diagnostics complete or time out (300 ms).
345
346DC LDG Auto Diagnostics Switch
347~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
348
349:Description: Enables automatic DC diagnostics after fault recovery.
350:Type:        Boolean Switch
351:Default:     Enabled (1)
352:Register:    0xB0 bit [0]
353:Note:        Active-low, when enabled, affected channels re-run diagnostics after
354              fault recovery and retry approximately every 750 ms until resolved.
355
356CHx LO LDG Switch
357~~~~~~~~~~~~~~~~~
358
359:Description: Enables line output load detection per channel (x = 1, 2, 3, 4).
360:Type:        Boolean Switch
361:Default:     Disabled (0)
362:Register:    0xB1 bit [3] (CH1), bit [2] (CH2), bit [1] (CH3), bit [0] (CH4)
363:Note:        When enabled and DC diagnostics report OL, the device tests for
364              a high-impedance line output load.
365
366DC LDG SLOL Ramp Time
367~~~~~~~~~~~~~~~~~~~~~
368
369:Description: Voltage ramp time for shorted-load and open-load detection.
370:Type:        Enumerated
371:Default:     15 ms
372:Options:     15 ms, 30 ms, 10 ms, 20 ms
373:Register:    0xB2 bits [7:6]
374
375DC LDG SLOL Settling Time
376~~~~~~~~~~~~~~~~~~~~~~~~~~
377
378:Description: Settling time for shorted-load and open-load detection.
379:Type:        Enumerated
380:Default:     10 ms
381:Options:     10 ms, 5 ms, 20 ms, 15 ms
382:Register:    0xB2 bits [5:4]
383
384DC LDG S2PG Ramp Time
385~~~~~~~~~~~~~~~~~~~~~
386
387:Description: Voltage ramp time for short-to-power and short-to-ground detection.
388:Type:        Enumerated
389:Default:     5 ms
390:Options:     5 ms, 2.5 ms, 10 ms, 15 ms
391:Register:    0xB2 bits [3:2]
392
393DC LDG S2PG Settling Time
394~~~~~~~~~~~~~~~~~~~~~~~~~~
395
396:Description: Settling time for short-to-power and short-to-ground detection.
397:Type:        Enumerated
398:Default:     10 ms
399:Options:     10 ms, 5 ms, 20 ms, 30 ms
400:Register:    0xB2 bits [1:0]
401
402CHx DC LDG SL Threshold
403~~~~~~~~~~~~~~~~~~~~~~~~
404
405:Description: Shorted-load detection threshold per channel (x = 1, 2, 3, 4).
406:Type:        Enumerated
407:Default:     1 Ohm
408:Options:     0.5 Ohm, 1 Ohm, 1.5 Ohm, 2 Ohm, 2.5 Ohm,
409              3 Ohm, 3.5 Ohm, 4 Ohm, 4.5 Ohm, 5 Ohm
410:Register:    0xB3 bits [7:4] (CH1), bits [3:0] (CH2),
411              0xB4 bits [7:4] (CH3), bits [3:0] (CH4)
412
413DC LDG Result
414~~~~~~~~~~~~~
415
416:Description: Overall DC diagnostic result register.
417:Type:        Integer (read-only)
418:Range:       0x00 to 0xFF
419:Register:    0xC2
420:Bit Encoding:
421
422  ========  =====================================================
423  Bits      Description
424  ========  =====================================================
425  [7:4]     Line output detection result, one bit per channel
426  [3:0]     DC diagnostic pass/fail per channel (1=pass, 0=fail)
427  ========  =====================================================
428
429CHx DC LDG Report
430~~~~~~~~~~~~~~~~~
431
432:Description: DC diagnostic fault status per channel (x = 1, 2, 3, 4).
433:Type:        Integer (read-only)
434:Range:       0x0 to 0xF
435:Register:    0xC0 bits [7:4] (CH1), bits [3:0] (CH2),
436              0xC1 bits [7:4] (CH3), bits [3:0] (CH4)
437:Note:        See fault bit encoding table at the start of this section.
438
439CHx LO LDG Report
440~~~~~~~~~~~~~~~~~
441
442:Description: Line output load detection result per channel (x = 1, 2, 3, 4).
443:Type:        Boolean (read-only)
444:Values:      0 = not detected, 1 = line output load detected
445:Register:    0xC2 bit [7] (CH1), bit [6] (CH2), bit [5] (CH3), bit [4] (CH4)
446
447CHx DC Resistance
448~~~~~~~~~~~~~~~~~
449
450:Description: Measured DC load resistance per channel (x = 1, 2, 3, 4).
451:Type:        Float (read-only, displayed in ohms)
452:Resolution:  0.1 ohm per code (10-bit value)
453:Range:       0.0 to 102.3 ohms
454:Register:    0xD9 bits [7:6]/[5:4]/[3:2]/[1:0] (MSB for CH1–CH4),
455              0xDA (CH1 LSB), 0xDB (CH2 LSB), 0xDC (CH3 LSB), 0xDD (CH4 LSB)
456
457AC Load Diagnostics
458-------------------
459
460AC LDG Trigger
461~~~~~~~~~~~~~~
462
463:Description: Triggers AC impedance measurement on all channels.
464:Type:        Boolean (write-only)
465:Note:        Returns -EBUSY if any DAI stream (playback or capture) is active.
466              The driver transitions all channels to SLEEP state before starting
467              the measurement. Blocks until diagnostics complete or time out.
468
469AC LDG Gain
470~~~~~~~~~~~
471
472:Description: Measurement resolution for AC diagnostics.
473:Type:        Boolean Switch
474:Default:     1 (Gain 8)
475:Values:      0 = 0.8 ohm/code (Gain 1), 1 = 0.1 ohm/code (Gain 8)
476:Register:    0xB5 bit [4]
477:Note:        Gain 8 recommended for load impedances below 8 ohms.
478
479AC LDG Test Frequency
480~~~~~~~~~~~~~~~~~~~~~
481
482:Description: Test signal frequency for AC impedance measurement.
483:Type:        Integer
484:Default:     200 (0xC8 = 18.75 kHz)
485:Range:       0x01 to 0xFF (0x00 reserved)
486:Formula:     Frequency = 93.75 Hz × register value
487:Register:    0xB8
488
489CHx AC LDG Real / CHx AC LDG Imag
490~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
491
492:Description: Real and imaginary AC impedance components per channel
493              (x = 1, 2, 3, 4).
494:Type:        Integer (read-only)
495:Range:       0x00 to 0xFF (8-bit signed)
496:Register:    0xC3 (CH1 Real), 0xC4 (CH1 Imag), 0xC5 (CH2 Real), 0xC6 (CH2 Imag),
497              0xC7 (CH3 Real), 0xC8 (CH3 Imag), 0xC9 (CH4 Real), 0xCA (CH4 Imag)
498:Note:        Scale set by AC LDG Gain.
499
500Speaker Protection & Detection
501-------------------------------
502
503Tweeter Detection Switch
504~~~~~~~~~~~~~~~~~~~~~~~~
505
506:Description: Enables tweeter detection using the AC impedance magnitude comparator.
507:Type:        Boolean Switch
508:Default:     Enabled (1)
509:Register:    0xB6 bit [0]
510:Note:        The underlying register bit is TWEETER DETECT DISABLE (active-low).
511              Control value 1 = detection enabled (register bit 0), 0 = disabled
512              (register bit 1).
513
514Tweeter Detect Threshold
515~~~~~~~~~~~~~~~~~~~~~~~~~
516
517:Description: Magnitude threshold for tweeter detection.
518:Type:        Integer
519:Default:     0
520:Range:       0x00 to 0xFF
521:Resolution:  0.8 ohm/code (AC LDG Gain=0) or 0.1 ohm/code (AC LDG Gain=1)
522:Register:    0xB7
523
524CHx Tweeter Detect Report
525~~~~~~~~~~~~~~~~~~~~~~~~~~
526
527:Description: Tweeter detection result per channel (x = 1, 2, 3, 4).
528:Type:        Boolean (read-only)
529:Values:      0 = no tweeter detected, 1 = tweeter detected
530:Register:    0xCB bit [3] (CH1), bit [2] (CH2), bit [1] (CH3), bit [0] (CH4)
531
532DSP Protection Features
533=======================
534
535These controls are unavailable in LLP mode.
536
537Thermal Foldback Switch
538-----------------------
539
540:Description: Enables dynamic gain reduction based on die temperature.
541:Type:        Boolean Switch
542:Default:     Disabled (0)
543:Register:    0x3A bit [0]
544
545PVDD Foldback Switch
546--------------------
547
548:Description: Enables automatic gain limiting when supply voltage drops
549              (Automatic Gain Limiter).
550:Type:        Boolean Switch
551:Default:     Disabled (0)
552:Register:    0x3A bit [4]
553
554DC Blocker Bypass Switch
555------------------------
556
557:Description: Bypasses the DC-blocking high-pass filter.
558:Type:        Boolean Switch
559:Default:     Not bypassed (0)
560:Register:    0x39 bit [0]
561
562Clip Detect Switch
563------------------
564
565:Description: Enables DSP-based clip detection (Pseudo-Analog Clip Detect).
566:Type:        Boolean Switch
567:Default:     Disabled (0)
568:Register:    0x93 bit [6]
569
570Audio SDOUT Switch
571------------------
572
573:Description: Routes post-processed audio to the SDOUT pin instead of
574              Vpredict data.
575:Type:        Boolean Switch
576:Default:     Disabled (0)
577:Register:    0x3A bit [5]
578:Note:        When enabled, replaces Vpredict data on SDOUT with post-processed
579              SDIN. All SDOUT configurations that apply to Vpredict also apply
580              to SDIN-to-SDOUT transmission.
581
582Real-Time Load Diagnostics
583===========================
584
585These controls require Normal DSP mode at 48 kHz or 96 kHz. They are
586unavailable at 192 kHz and in FFLP and LLP modes.
587
588
589CHx RTLDG Switch
590----------------
591
592:Description: Enables real-time impedance monitoring during playback
593              (x = 1, 2, 3, 4).
594:Type:        Boolean Switch
595:Default:     Disabled (0)
596:Register:    0x37 bit [3] (CH1), bit [2] (CH2), bit [1] (CH3), bit [0] (CH4)
597
598RTLDG Clip Mask Switch
599----------------------
600
601:Description: Suppresses impedance updates during clipping events.
602:Type:        Boolean Switch
603:Default:     Enabled (1)
604:Register:    0x37 bit [4]
605
606ISENSE Calibration Switch
607--------------------------
608
609:Description: Enables current sense calibration for accurate impedance
610              measurements.
611:Type:        Boolean Switch
612:Default:     Disabled (0)
613:Register:    0x5B bit [3]
614
615RTLDG Open Load Threshold
616--------------------------
617
618:Description: DSP coefficient for open load fault detection threshold.
619:Type:        DSP coefficient (extended control)
620:Register:    DSP Book 0x8C, page 0x22, 0x98
621
622RTLDG Short Load Threshold
623---------------------------
624
625:Description: DSP coefficient for shorted load fault detection threshold.
626:Type:        DSP coefficient (extended control)
627:Register:    DSP Book 0x8C, page 0x22, 0x9C
628
629CHx RTLDG Impedance
630-------------------
631
632:Description: Real-time load impedance per channel (x = 1, 2, 3, 4).
633:Type:        Float (read-only, displayed in ohms)
634:Register:    0xD1–0xD2 (CH1), 0xD3–0xD4 (CH2), 0xD5–0xD6 (CH3), 0xD7–0xD8 (CH4)
635:Note:        Valid only during PLAY state with RTLDG enabled at 48 or
636              96 kHz. Holds stale data in SLEEP, MUTE, or Hi-Z states.
637
638Fault Monitoring
639================
640
641The driver monitors faults via IRQ or periodic polling (fallback when
642no ``interrupts`` DT property is present). Detected faults are logged
643and cleared so affected channels can recover.
644
645Kernel log messages use the format::
646
647  tas675x <addr>: <Name> Latched: 0x<value>
648
649Critical faults are logged at ``CRIT`` level; warnings at ``WARN``.
650
651The following fault registers are monitored:
652
653Critical Faults
654---------------
655
656These faults place affected channels into the FAULT state. The driver
657issues fault clear (register 0x01 bit 3) to allow recovery.
658
659Overtemperature Shutdown (0x87)
660~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
661
662  ========  ==========================================
663  Bits      Description
664  ========  ==========================================
665  [4]       Global OTSD
666  [3:0]     CH1-CH4 OTSD respectively
667  ========  ==========================================
668
669Fires when die temperature exceeds the OTSD threshold. If auto-recovery
670is enabled (``OTSD Auto Recovery Switch``), channels return to their
671previous state after cooling. Otherwise fault clear is required.
672
673Overcurrent / DC Fault (0x8E)
674~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
675
676  ========  ==========================================
677  Bits      Description
678  ========  ==========================================
679  [7:4]     Overcurrent Shutdown, CH1-CH4 respectively
680  [3:0]     DC Fault, CH1-CH4 respectively
681  ========  ==========================================
682
683Overcurrent shutdown occurs when output current reaches the shutdown
684threshold (e.g. output short to GND). DC fault fires when DC offset
685exceeds the DCFAULT threshold.
686
687Real-Time Load Diagnostic Fault (0x8B)
688~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
689
690  ========  ==========================================
691  Bits      Description
692  ========  ==========================================
693  [7:4]     Shorted Load faults, CH1-CH4 respectively
694  [3:0]     Open Load faults, CH1-CH4 respectively
695  ========  ==========================================
696
697Reported during playback when RTLDG detects impedance outside the
698configured open/short thresholds. Requires RTLDG and current sense to
699be enabled, and a sampling rate of 48 kHz or 96 kHz.
700
701CBC Fault/Warning (0x8D)
702~~~~~~~~~~~~~~~~~~~~~~~~
703
704  ========  ==========================================
705  Bits      Description
706  ========  ==========================================
707  [7:4]     Load current warning, CH1-CH4 respectively
708  [3:0]     Load current fault, CH1-CH4 respectively
709  ========  ==========================================
710
711Cycle-by-cycle current limiting events. A warning fires when the
712current limit is active for at least 25% of a 21.3 ms window. A fault
713fires if the warning persists for 170.4 ms continuously.
714
715Warnings
716--------
717
718These conditions are logged but do not place channels into FAULT state.
719Corresponding register bits are cleared when read. Nonetheless, the driver
720still clears all events as warnings also latch the (mapped) FAULT pin.
721
722Power Fault (0x86)
723~~~~~~~~~~~~~~~~~~
724
725  ========  ==========================================
726  Bits      Description
727  ========  ==========================================
728  [7]       DVDD Power-On-Reset
729  [4]       DVDD Undervoltage
730  [3]       PVDD Overvoltage
731  [2]       VBAT Overvoltage
732  [1]       PVDD Undervoltage
733  [0]       VBAT Undervoltage
734  ========  ==========================================
735
736Supply-related events. DVDD POR at bit 7 is expected after every
737power-up and can be ignored.
738
739CP / OUTM Soft Short Fault (0x7D)
740~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
741
742  ========  ==========================================
743  Bits      Description
744  ========  ==========================================
745  [5:2]     OUTM soft short, CH4-CH1 respectively
746  [1]       Charge Pump UVLO (latched)
747  [0]       Charge Pump UVLO (unlatched/live status)
748  ========  ==========================================
749
750Per-channel out_minus soft short faults and charge pump undervoltage lockout.
751
752Clock Fault (0x8A)
753~~~~~~~~~~~~~~~~~~
754
755  ========  ==========================================
756  Bits      Description
757  ========  ==========================================
758  [0]       Clock error
759  ========  ==========================================
760
761Fires on clock halt or unsupported SCLK/FSYNC ratio. Only logged when
762a stream is active (suppressed during idle to avoid noise from normal
763stream stop/start transitions). See `Clock Fault Behaviour`_ below.
764
765Overtemperature Warning (0x88)
766~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
767
768  ========  ==========================================
769  Bits      Description
770  ========  ==========================================
771  [4]       Global OTW
772  [3:0]     CH1-CH4 OTW respectively
773  ========  ==========================================
774
775Fires when temperature crosses the OTW threshold. The device continues
776to operate. Only logged on change to avoid log spam.
777
778Clip Warning (0x89)
779~~~~~~~~~~~~~~~~~~~
780
781  ========  ==========================================
782  Bits      Description
783  ========  ==========================================
784  [3:0]     CH1-CH4 clip detected respectively
785  ========  ==========================================
786
787Fires when the audio signal magnitude exceeds the clip detection
788threshold. Requires Clip Detect to be enabled. Only logged when a
789stream is active.
790
791Driver Known Limitations
792========================
793
794Clock Fault Behaviour
795---------------------
796
797On Stream Stop
798~~~~~~~~~~~~~~
799
800Every time a playback stream stops the FAULT pin briefly asserts. The
801ASoC PCM trigger stop sequence calls DAIs in reverse order, so the CPU
802DAI stops SCLK before the codec can transition to sleep. The device
803detects the clock halt and latches ``CLK_FAULT_LATCHED``, which asserts
804the FAULT pin. The driver clears the latch in the ``mute_stream``
805callback that follows, so the FAULT pin flicker lasts only a few
806milliseconds. Audio output is not affected and no kernel log message
807is produced.
808
809On Rapid Rate Switching
810~~~~~~~~~~~~~~~~~~~~~~~
811
812When streams are started in rapid succession, an intermittent
813``Clock Fault Latched: 0x01`` message may appear in the kernel log.
814A (conservative) ~0.5 second gap between sessions eliminates this.
815
816References
817==========
818
819- TAS675x Technical Reference Manual: SLOU589A
820- Device Tree Bindings: Documentation/devicetree/bindings/sound/ti,tas67524.yaml
821- ALSA Control Name Conventions: Documentation/sound/designs/control-names.rst
822