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 04/22] ASoC: dt-bindings: Add binding for Apple Silicon Mac audio
Date: Tue, 03 Nov 2026 17:39:52 +1000 [thread overview]
Message-ID: <20261103-macaudio-v4-4-637484efe46d@gmail.com> (raw)
In-Reply-To: <20261103-macaudio-v4-0-637484efe46d@gmail.com>
From: Martin Povišer <povik+lin@cutebit.org>
Add a binding for the primary audio subsystem found on Apple Silicon
Macs. This binding integrates the codecs and SoC I2S peripheral
used for driving the headset jack and speaker arrays on all Apple
Silicon Macs. The internal microphones on this platform are
connected to a distinct coprocessor and are not part of this
"main" audio subsystem.
Signed-off-by: Martin Povišer <povik+lin@cutebit.org>
Co-developed-by: James Calligeros <jcalligeros99@gmail.com>
Signed-off-by: James Calligeros <jcalligeros99@gmail.com>
---
.../devicetree/bindings/sound/apple,macaudio.yaml | 195 +++++++++++++++++++++
1 file changed, 195 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/apple,macaudio.yaml b/Documentation/devicetree/bindings/sound/apple,macaudio.yaml
new file mode 100644
index 000000000000..7a97ce5bb7a1
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/apple,macaudio.yaml
@@ -0,0 +1,195 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/apple,macaudio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sound peripheral integration for Apple Silicon Macs
+
+description:
+ The speakers and headphone jack on Apple Silicon Macs are part of an
+ integrated audio subsystem comprising of Apple's I2S peripheral (MCA) and a
+ series of codecs. The machines have a wide variety of topologies ranging
+ from a simple mono speaker in the desktops to complex stereo arrays with
+ dual-opposed woofers and tweeters all driven by their own mono amplifiers.
+ This arrangement can be expressed as a set of DAI links, where the MCA ports
+ each codec is connected to are represented by the CPU side of the link.
+
+maintainers:
+ - James Calligeros <jcalligeros99@gmail.com>
+
+properties:
+ compatible:
+ oneOf:
+ - items:
+ - enum:
+ - apple,j180-macaudio
+ - apple,j274-macaudio
+ - apple,j293-macaudio
+ - apple,j313-macaudio
+ - apple,j314-macaudio
+ - apple,j316-macaudio
+ - apple,j375-macaudio
+ - apple,j413-macaudio
+ - apple,j415-macaudio
+ - apple,j456-macaudio
+ - apple,j473-macaudio
+ - items:
+ - enum:
+ - apple,j493-macaudio
+ - const: apple,j293-macaudio
+ - items:
+ - enum:
+ - apple,j414-macaudio
+ - apple,j504-macaudio
+ - apple,j514-macaudio
+ - const: apple,j314-macaudio
+ - items:
+ - enum:
+ - apple,j416-macaudio
+ - apple,j516-macaudio
+ - const: apple,j316-macaudio
+ - items:
+ - enum:
+ - apple,j475-macaudio
+ - apple,j575-macaudio
+ - const: apple,j375-macaudio
+ - items:
+ - enum:
+ - apple,j613-macaudio
+ - const: apple,j413-macaudio
+ - items:
+ - enum:
+ - apple,j615-macaudio
+ - const: apple,j415-macaudio
+ - items:
+ - enum:
+ - apple,j457-macaudio
+ - const: apple,j456-macaudio
+ - items:
+ - enum:
+ - apple,j474-macaudio
+ - const: apple,j473-macaudio
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+ model:
+ description:
+ Model name for presentation to users
+ $ref: /schemas/types.yaml#/definitions/string
+
+patternProperties:
+ "^([a-z]+-)?dai-link$":
+ description: Node for each sound peripheral such as the speaker array,
+ headphones jack, or microphone.
+ type: object
+ $ref: tdm-slot.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ link-name:
+ description: Name for the peripheral
+ enum: [ Headphone Jack, Speaker, Speakers ]
+ $ref: /schemas/types.yaml#/definitions/string
+
+ codec:
+ type: object
+ additionalProperties: false
+
+ properties:
+ sound-dai:
+ minItems: 1
+ maxItems: 8
+ description: |
+ DAI list with the CODEC-side DAIs connected to the above CPU-side
+ DAIs and involved in this sound peripheral.
+
+ The list is in left/right order if applicable. If there are more
+ than one CPU-side DAIs (there can be two), the CODECs must be
+ listed first those connected to the first CPU, then those
+ connected to the second.
+
+ In addition, on some machines with many speaker codecs, the CODECs
+ are listed in this fixed order:
+
+ Four speakers: Left Front, Left Rear, Right Front, Right Rear
+ Six speakers: Left Woofer 1, Left Tweeter, Left Woofer 2,
+ Right Woofer 1, Right Tweeter, Right Woofer 2
+
+ required:
+ - sound-dai
+
+ cpu:
+ type: object
+ additionalProperties: false
+
+ properties:
+ sound-dai:
+ minItems: 1
+ maxItems: 2
+ description: |
+ DAI list with CPU-side I2S ports involved in this peripheral.
+
+ required:
+ - sound-dai
+
+ required:
+ - link-name
+ - codec
+ - cpu
+
+required:
+ - '#address-cells'
+ - '#size-cells'
+ - compatible
+ - model
+
+additionalProperties: false
+
+examples:
+ - |
+ sound {
+ compatible = "apple,j416-macaudio", "apple,j316-macaudio";
+ model = "MacBook Pro J416";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ headphone-dai-link {
+ link-name = "Headphone Jack";
+
+ codec {
+ sound-dai = <&jack_codec>;
+ };
+
+ cpu {
+ sound-dai = <&mca 2>;
+ };
+ };
+
+ speaker-dai-link {
+ link-name = "Speakers";
+
+ dai-tdm-idle-mode-0 = "zero";
+ dai-tdm-idle-mode-3 = "zero";
+ dai-tdm-slot-tx-idle-mask-0 = <0xf0f0f0>;
+ dai-tdm-slot-tx-idle-mask-3 = <0x0f0f0f>;
+
+ codec {
+ sound-dai = <&speaker_left_woof1>,
+ <&speaker_left_tweet>,
+ <&speaker_left_woof2>,
+ <&speaker_right_woof1>,
+ <&speaker_right_tweet>,
+ <&speaker_right_woof2>;
+ };
+
+ cpu {
+ sound-dai = <&mca 0>, <&mca 1>;
+ };
+ };
+ };
--
2.56.0
next prev parent reply other threads:[~2026-11-03 7:40 UTC|newest]
Thread overview: 31+ 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-03 7:39 ` [PATCH v4 02/22] ASoC: dt-bindings: cs42l42: " James Calligeros
2026-11-03 7:51 ` sashiko-bot
2026-11-03 7:39 ` [PATCH v4 03/22] ASoC: dt-bindings: tdm-slot: Allow indexed TDM idle properties James Calligeros
2026-11-03 7:39 ` James Calligeros [this message]
2026-11-03 7:58 ` [PATCH v4 04/22] ASoC: dt-bindings: Add binding for Apple Silicon Mac audio 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-4-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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox