All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Calligeros <jcalligeros99@gmail.com>
To: "David Rhodes" <david.rhodes@cirrus.com>,
	"Richard Fitzgerald" <rf@opensource.cirrus.com>,
	"Martin Povišer" <povik+lin@cutebit.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Rob Herring" <robh@kernel.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"James Calligeros" <jcalligeros99@gmail.com>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Takashi Iwai" <tiwai@suse.com>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"AngeloGioacchino Del Regno"
	<angelogioacchino.delregno@collabora.com>,
	"Shenghao Ding" <shenghao-ding@ti.com>,
	"Kevin Lu" <kevin-lu@ti.com>, "Baojun Xu" <baojun.xu@ti.com>,
	"Sen Wang" <sen@ti.com>, "Sven Peter" <sven@kernel.org>,
	"Janne Grunau" <j@jannau.net>, "Neal Gompa" <neal@gompa.dev>
Cc: asahi@lists.linux.dev, linux-sound@vger.kernel.org,
	 patches@opensource.cirrus.com, devicetree@vger.kernel.org,
	 linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	 linux-mediatek@lists.infradead.org
Subject: [PATCH v4 03/22] ASoC: dt-bindings: tdm-slot: Allow indexed TDM idle properties
Date: Tue, 03 Nov 2026 17:39:51 +1000	[thread overview]
Message-ID: <20261103-macaudio-v4-3-637484efe46d@gmail.com> (raw)
In-Reply-To: <20261103-macaudio-v4-0-637484efe46d@gmail.com>

Some consumers may wish to configure a codec's TDM idle properties
at runtime based on specific dai-link-level conditions. This could
be achieved by doing something like

dai-link@0 {
    dai-tdm-idle-mode = "pulldown";
    dai-tdm-slot-tx-idle-mask = <0xf0f0>;

    cpu {
        sound-dai = <&some_cpu>;
    };
    codec {
        sound-dai = <&some_codec>;
    };
};

But what if we have a dai-link with multiple codecs across multiple
CPUs? What if the machine driver parsing the dai-link only expects
idle properties for specific codecs? We can extend the idle properties
with an index, allowing unique idle configurations for specific
components in the dai-link:

dai-link@1 {
    dai-tdm-idle-mode-0 = "zero";
    dai-tdm-idle-mode-2 = "zero";
    dai-tdm-slot-tx-idle-mask-0 = <0xf0f0>;
    dai-tdm-slot-tx-idle-mask-2 = <0x0f0f>;

    cpu {
        sound-dai = <&some_cpu0>, <&some_cpu2>;
    };
    codec {
        sound-dai = <&some_codec0>, <&some_codec1>,
                    <&some_codec2>, <&some_codec3>;
    };
};

Extend the TDM idle properties to optionally allow this indexing.

Signed-off-by: James Calligeros <jcalligeros99@gmail.com>
---
 .../devicetree/bindings/sound/tdm-slot.yaml        | 34 ++++++++++++----------
 1 file changed, 18 insertions(+), 16 deletions(-)

diff --git a/Documentation/devicetree/bindings/sound/tdm-slot.yaml b/Documentation/devicetree/bindings/sound/tdm-slot.yaml
index 457a899e8872..dafa5fa77006 100644
--- a/Documentation/devicetree/bindings/sound/tdm-slot.yaml
+++ b/Documentation/devicetree/bindings/sound/tdm-slot.yaml
@@ -20,20 +20,6 @@ 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
@@ -44,9 +30,25 @@ 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$':
+  '^dai-tdm-slot-[rt]x-idle-mask(-[0-9]+)?$':
     $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.
+      that the corresponding TDM slot is inactive/idle. Can be defined on
+      a per-component basis.
+
+  '^dai-tdm-idle-mode(-[0-9]+)?$':
+    $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. Can be defined
+      on a per-component basis.
 
 additionalProperties: true

-- 
2.56.0


  parent reply	other threads:[~2026-11-03  7:40 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-03  7:39 [PATCH v4 00/22] Add speaker and headset jack support for Apple Silicon Macs James Calligeros
2026-11-03  7:39 ` [PATCH v4 01/22] ASoC: dt-bindings: cs42l84: Allow referenced dai-common properties James Calligeros
2026-11-03  7:53   ` sashiko-bot
2026-11-04 10:48   ` Krzysztof Kozlowski
2026-11-04 10:59     ` James Calligeros
2026-11-03  7:39 ` [PATCH v4 02/22] ASoC: dt-bindings: cs42l42: " James Calligeros
2026-11-03  7:51   ` sashiko-bot
2026-11-04 10:49   ` Krzysztof Kozlowski
2026-11-04 10:52     ` Krzysztof Kozlowski
2026-11-04 10:58       ` James Calligeros
2026-11-04 11:04         ` Krzysztof Kozlowski
2026-11-03  7:39 ` James Calligeros [this message]
2026-11-03  7:39 ` [PATCH v4 04/22] ASoC: dt-bindings: Add binding for Apple Silicon Mac audio James Calligeros
2026-11-03  7:58   ` sashiko-bot
2026-11-03  7:39 ` [PATCH v4 05/22] ASoC: ops: Introduce 'snd_soc_ctl_activate' James Calligeros
2026-11-03  7:39 ` [PATCH v4 06/22] ASoC: ops: Introduce 'soc_set_enum_kctl' James Calligeros
2026-11-03  8:06   ` sashiko-bot
2026-11-03  7:39 ` [PATCH v4 07/22] ASoC: card: Let 'fixup_controls' return errors James Calligeros
2026-11-03  7:39 ` [PATCH v4 08/22] ASoC: tas2770: Add compatible for TAS5770L James Calligeros
2026-11-03  7:39 ` [PATCH v4 09/22] ASoC: apple: Add macaudio machine driver James Calligeros
2026-11-03  8:28   ` sashiko-bot
2026-11-03  7:39 ` [PATCH v4 10/22] arm64: dts: apple: t8103-jxxx: Add regulators for CS42L83 power supply James Calligeros
2026-11-03  7:39 ` [PATCH v4 11/22] arm64: dts: apple: t8103-j274: Add speaker/headset jack nodes James Calligeros
2026-11-03  8:15   ` sashiko-bot
2026-11-03  7:40 ` [PATCH v4 12/22] arm64: dts: apple: t8103-j313: " James Calligeros
2026-11-03  8:36   ` sashiko-bot
2026-11-03  7:40 ` [PATCH v4 13/22] arm64: dts: apple: t8103-j293: " James Calligeros
2026-11-03  8:52   ` sashiko-bot
2026-11-03  7:40 ` [PATCH v4 14/22] arm64: dts: apple: t8103-j45x: Add headset " James Calligeros
2026-11-03  7:40 ` [PATCH v4 15/22] arm64: dts: apple: t8112-j413: Add speaker/headset " James Calligeros
2026-11-03  7:40 ` [PATCH v4 16/22] arm64: dts: apple: t8112-j415: " James Calligeros
2026-11-03  7:40 ` [PATCH v4 17/22] arm64: dts: apple: t8112-j473: " James Calligeros
2026-11-03  7:40 ` [PATCH v4 18/22] arm64: dts: apple: t8112-j493: " James Calligeros
2026-11-03  7:40 ` [PATCH v4 19/22] arm64: dts: apple: t600x-j31x: " James Calligeros
2026-11-03  7:40 ` [PATCH v4 20/22] arm64: dts: apple: t600x-j375: " James Calligeros
2026-11-03  7:40 ` [PATCH v4 21/22] arm64: dts: apple: t602x-j41x: " James Calligeros
2026-11-03  7:40 ` [PATCH v4 22/22] arm64: dts: apple: t602x-j47x: " James Calligeros

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261103-macaudio-v4-3-637484efe46d@gmail.com \
    --to=jcalligeros99@gmail.com \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=asahi@lists.linux.dev \
    --cc=baojun.xu@ti.com \
    --cc=broonie@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=david.rhodes@cirrus.com \
    --cc=devicetree@vger.kernel.org \
    --cc=j@jannau.net \
    --cc=kevin-lu@ti.com \
    --cc=krzk+dt@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=matthias.bgg@gmail.com \
    --cc=neal@gompa.dev \
    --cc=patches@opensource.cirrus.com \
    --cc=perex@perex.cz \
    --cc=povik+lin@cutebit.org \
    --cc=rf@opensource.cirrus.com \
    --cc=robh@kernel.org \
    --cc=sen@ti.com \
    --cc=shenghao-ding@ti.com \
    --cc=sven@kernel.org \
    --cc=tiwai@suse.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.