summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Calligeros <jcalligeros99@gmail.com>2026-03-01 11:05:22 +0300
committerMark Brown <broonie@kernel.org>2026-03-16 04:13:02 +0300
commit938c1ed56ab888b0715a8c7070dbb4e276c2d3fe (patch)
tree10594e5cbe4d6e320c215ab1378f926a9bd7fb8b
parentcc74890fb484a73420e46fc7be7bff8d02a82699 (diff)
downloadlinux-938c1ed56ab888b0715a8c7070dbb4e276c2d3fe.tar.xz
ASoC: dt-bindings: add TDM slot idle mode properties
Add properties to describe TDM slot idle behaviour. These properties can be used to describe how a DAI is supposed to behave when not active. For example, Apple Silicon laptops split a single I2S bus between two physical lines which are combined at an OR gate in front of the receiving port. One codec on each line is expected to transmit zeroes during the active TDM slots of the opposite line, or we will have corrupted data at the receiver. Signed-off-by: James Calligeros <jcalligeros99@gmail.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Link: https://patch.msgid.link/20260301-tdm-idle-slots-v3-3-c6ac5351489a@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--Documentation/devicetree/bindings/sound/tdm-slot.yaml19
1 files changed, 19 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/sound/tdm-slot.yaml b/Documentation/devicetree/bindings/sound/tdm-slot.yaml
index ca71e3660f62..457a899e8872 100644
--- a/Documentation/devicetree/bindings/sound/tdm-slot.yaml
+++ b/Documentation/devicetree/bindings/sound/tdm-slot.yaml
@@ -20,6 +20,20 @@ properties:
$ref: /schemas/types.yaml#/definitions/uint32
description: Width, in bits, of each slot
+ dai-tdm-idle-mode:
+ $ref: /schemas/types.yaml#/definitions/string
+ enum:
+ - none
+ - off
+ - zero
+ - pulldown
+ - hiz
+ - pullup
+ - drivehigh
+ description: Drive mode for inactive/idle TDM slots. For hardware that
+ implements .set_tdm_idle(). Optional. "None" represents undefined
+ behaviour and is the same as not setting this property.
+
patternProperties:
'^dai-tdm-slot-[rt]x-mask$':
$ref: /schemas/types.yaml#/definitions/uint32-array
@@ -30,4 +44,9 @@ patternProperties:
a mask. The first element of the array is slot 0 (LSB). Any nonzero
value will be treated as 1.
+ '^dai-tdm-slot-[rt]x-idle-mask$':
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: Idle slot mask. Optional. A bit being set to 1 indicates
+ that the corresponding TDM slot is inactive/idle.
+
additionalProperties: true