[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20251230013807.GA3063323-robh@kernel.org>
Date: Mon, 29 Dec 2025 19:38:07 -0600
From: Rob Herring <robh@...nel.org>
To: James Calligeros <jcalligeros99@...il.com>
Cc: Liam Girdwood <lgirdwood@...il.com>, Mark Brown <broonie@...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>, 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
Subject: Re: [PATCH v2 3/7] ASoC: dt-bindings: add TDM slot idle mode
properties
On Sun, Dec 21, 2025 at 07:35:59PM +1000, James Calligeros wrote:
> 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.
These can be under a patternProperties:
patternProperties:
'^dai-tdm-slot-[rt]x-idle-mode$':
...
'^dai-tdm-slot-[rt]x-idle-mask$':
...
And then remove the $defs.
Rob
Powered by blists - more mailing lists