[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20251221-tdm-idle-slots-v2-3-ed4d96413aec@gmail.com>
Date: Sun, 21 Dec 2025 19:35:59 +1000
From: James Calligeros <jcalligeros99@...il.com>
To: Liam Girdwood <lgirdwood@...il.com>, Mark Brown <broonie@...nel.org>,
Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Shawn Guo <shawnguo@...nel.org>,
Sascha Hauer <s.hauer@...gutronix.de>,
Pengutronix Kernel Team <kernel@...gutronix.de>,
Fabio Estevam <festevam@...il.com>,
Kuninori Morimoto <kuninori.morimoto.gx@...esas.com>,
Shengjiu Wang <shengjiu.wang@....com>, Jaroslav Kysela <perex@...ex.cz>,
Takashi Iwai <tiwai@...e.com>, Shenghao Ding <shenghao-ding@...com>,
Kevin Lu <kevin-lu@...com>, Baojun Xu <baojun.xu@...com>
Cc: linux-sound@...r.kernel.org, devicetree@...r.kernel.org,
imx@...ts.linux.dev, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, asahi@...ts.linux.dev,
James Calligeros <jcalligeros99@...il.com>
Subject: [PATCH v2 3/7] 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@...il.com>
---
.../bindings/sound/tdm-slot.yaml | 33 +++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/tdm-slot.yaml b/Documentation/devicetree/bindings/sound/tdm-slot.yaml
index 5bc46048d689..e8b2d35a7c37 100644
--- a/Documentation/devicetree/bindings/sound/tdm-slot.yaml
+++ b/Documentation/devicetree/bindings/sound/tdm-slot.yaml
@@ -33,6 +33,17 @@ $defs:
$ref: /schemas/types.yaml#/definitions/uint32-array
description: Receive direction slot mask. Optional. Identical to TX mask.
+ dai-tdm-idle-mode:
+ $ref: /schemas/types.yaml#/definitions/string
+ enum:
+ - none
+ - off
+ - zero
+ - pulldown
+ - hiz
+ - pullup
+ - drivehigh
+
properties:
dai-tdm-slot-num:
$ref: "#/$defs/dai-tdm-slot-num"
@@ -46,4 +57,26 @@ properties:
dai-tdm-slot-rx-mask:
$ref: "#/$defs/dai-tdm-slot-rx-mask"
+ dai-tdm-slot-tx-idle-mode:
+ $ref: "#/$defs/dai-tdm-idle-mode"
+ description: Transmit direction idle slot mode. Optional. For hardware
+ that can configure its behaviour during idle TDM slots via
+ .set_tdm_idle(). "None" represents UB/unspecified behaviour and is the
+ same as not setting this property.
+
+ dai-tdm-slot-rx-idle-mode:
+ $ref: "#/$defs/dai-tdm-idle-mode"
+ description: Receive direction idle slot mode. Optional. Identical to TX
+ idle slot mode.
+
+ dai-tdm-slot-tx-idle-mask:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: Transmit direction idle slot mask. Optional. 1 represents
+ an idle slot.
+
+ dai-tdm-slot-rx-idle-mask:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: Receive direction idle slot mask. Optional. Identical to
+ TX mask.
+
additionalProperties: true
--
2.52.0
Powered by blists - more mailing lists