From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 01F0F442B21; Wed, 23 Sep 2026 11:35:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790163362; cv=none; b=Rus/5nImPIwDkka6ZJ7+KpGxzQ3aY4a6SGGvbMra26D6Y697SP9FUiY2vc7pzzk8AsStTCk7fDQeRVk3Vyh2UXu0dv9ydhkUq19tfY4nlEhAQXNXdDw9GSKSCPYClL6CZa6TTzBdpY9uH5pcyA4cEwaH0vhhQqyyzmpOJW3xBi4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790163362; c=relaxed/simple; bh=XQP2T1nHQoGZbB2qaQSrJqPp4ebZ4GdcjQQKoj3V04Y=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=Ik8Xqc8nZyUWmNIB56lVLEw3wEnQ05P1IvAakBxUu1zk0yHJI5kltc95nkxRl6V2hGnnvyuFXvgFeyl/k9m45OBxG3D8x55aOJ3xrZux+M6BQLx8fMz6CBfbRXgPCgGIrJI+Ks20oEh48UxvnTluAbt6DgIRpjEOovne+IyfaSE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jpOtDXFN; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jpOtDXFN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 48F751F000FF; Wed, 23 Sep 2026 11:35:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1790163342; bh=HWPmCJVdQ8/Io06Lqs84cx0oI6m8O1OgDfmt/Vbbcoo=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=jpOtDXFNSeiiCWZZABz4Ju4Bb6iHITZbiOuKKGf2noe0o3c1+Z/zLiRVnyVyHCSrM jORXJN97VJEh/lx5+7qAXBRt96rtPSoKm6WKGOPcmLkllqAWSyIBYcJPeY0hzP/P2o arV9DfNgPc3wgVhWvERpgIlu9nK6ItFDIgG+TLNaXX53hTLz0oamXRKeuMt2zg73y/ rpk4dnQsRSMSRhSWTetnXZzSfs0B9v99V3uoylQYadMBDC9gGQP639EDRvHYIZ8122 mtGhYWzLXknD0gVWHyRPV38gTRp3FyrYEQHqUxzQ/2fCn8HIb3kWUVaFRw4xsY1Czd Zkv/+ptynn8Tg== Message-ID: Date: Wed, 23 Sep 2026 13:35:30 +0200 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 01/28] dt-bindings: sound: Add Apple Macs sound peripherals To: James Calligeros , =?UTF-8?Q?Martin_Povi=C5=A1er?= , Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sven Peter , Janne Grunau , Neal Gompa , David Rhodes , Richard Fitzgerald , Jaroslav Kysela , Takashi Iwai , Ulf Hansson , Amit Kucheria , "Rafael J. Wysocki" , Lars-Peter Clausen , Vinod Koul , Matthias Brugger , AngeloGioacchino Del Regno , Shenghao Ding , Kevin Lu , Baojun Xu , Sen Wang , James Schulman Cc: asahi@lists.linux.dev, linux-sound@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, patches@opensource.cirrus.com, Takashi Iwai , linux-mediatek@lists.infradead.org References: <20260920-macaudio-v1-0-741cc20a74e5@gmail.com> <20260920-macaudio-v1-1-741cc20a74e5@gmail.com> From: Krzysztof Kozlowski Content-Language: en-US Autocrypt: addr=krzk@kernel.org; keydata= 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 In-Reply-To: <20260920-macaudio-v1-1-741cc20a74e5@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 20/09/2026 06:53, James Calligeros wrote: > index 000000000000..bd844c9928c9 > --- /dev/null > +++ b/Documentation/devicetree/bindings/sound/apple,macaudio.yaml > @@ -0,0 +1,235 @@ > +# 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: > + This binding represents the overall machine-level integration of sound Please rephrase to describe not what binding describes (circular) but just say what this device is. > + peripherals on Apple Silicon Macs, starting with the M1 series. > + > +maintainers: > + - James Calligeros > + > +properties: > + compatible: > + oneOf: > + - description: First-of-their-kind machines > + 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,j473-macaudio > + - apple,j456-macaudio > + - apple,j457-macaudio > + - const: apple,macaudio As pointed out by Sven, please use specific compatible as fallback. Descriptions will be also redundant in such case, since the fllback will tell what is compatible with what. > + - description: Machines compatible with J293 > + items: > + - enum: > + - apple,j493-macaudio > + - const: apple,j293-macaudio > + - const: apple,macaudio > + - description: Machines compatible with J314 > + items: > + - enum: > + - apple,j414-macaudio > + - apple,j504-macaudio > + - apple,j514-macaudio > + - const: apple,j314-macaudio > + - const: apple,macaudio > + - description: Machines compatible with J316 > + items: > + - enum: > + - apple,j416-macaudio > + - apple,j516-macaudio > + - const: apple,j316-macaudio > + - const: apple,macaudio > + - description: Machines compatible with J375 > + items: > + - enum: > + - apple,j475-macaudio > + - apple,j575-macaudio > + - const: apple,j375-macaudio > + - const: apple,macaudio > + - description: Machines compatible with J413 > + items: > + - enum: > + - apple,j613-macaudio > + - const: apple,j413-macaudio > + - const: apple,macaudio > + - description: Machines compatible with J415 > + items: > + - enum: > + - apple,j615-macaudio > + - const: apple,j415-macaudio > + - const: apple,macaudio > + - description: Machines compatible with J473 > + items: > + - enum: > + - apple,j474-macaudio > + - const: apple,j473-macaudio > + - const: apple,macaudio > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > + model: > + description: > + Model name for presentation to users > + $ref: /schemas/types.yaml#/definitions/string > + > +patternProperties: > + "^dai-link(@[0-9a-f]+)?$": > + description: | > + Node for each sound peripheral such as the speaker array, headphones jack, > + or microphone. > + type: object > + $ref: tdm-slot.yaml# > + > + additionalProperties: false > + > + properties: > + reg: > + maxItems: 1 > + > + link-name: > + description: | > + Name for the peripheral, expecting 'Speaker' or 'Speakers' if this is > + the speaker array. If there is actual expectation, please encode it as schema, e.g. enum: [ Speaker, Speakers ] You can also drop | from description. > + $ref: /schemas/types.yaml#/definitions/string > + > + cpu: > + type: object > + > + properties: > + sound-dai: > + description: | > + DAI list with CPU-side I2S ports involved in this peripheral. > + minItems: 1 > + maxItems: 2 > + > + required: > + - sound-dai > + > + codec: > + type: object > + > + 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 > + > + patternProperties: > + "^dai-tdm-idle-mode-[0-9]$": > + $ref: tdm-slot.yaml#/properties/dai-tdm-idle-mode > + > + "^dai-tdm-slot-tx-idle-mask-[0-9]$": > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: Idle slot mask. A bit being set to 1 indicates > + that the corresponding TDM slot is inactive/idle. > + > + required: > + - reg > + - cpu > + - codec > + > +required: > + - compatible > + - model > + > +additionalProperties: false > + > +examples: > + - | > + mca: mca@9b600000 { > + compatible = "apple,t6000-mca", "apple,mca"; > + reg = <0x9b600000 0x10000>, > + <0x9b500000 0x20000>; > + > + clocks = <&nco 0>, <&nco 1>, <&nco 2>, <&nco 3>; > + power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>, > + <&ps_mca2>, <&ps_mca3>; > + dmas = <&admac 0>, <&admac 1>, <&admac 2>, <&admac 3>, > + <&admac 4>, <&admac 5>, <&admac 6>, <&admac 7>, > + <&admac 8>, <&admac 9>, <&admac 10>, <&admac 11>, > + <&admac 12>, <&admac 13>, <&admac 14>, <&admac 15>; > + dma-names = "tx0a", "rx0a", "tx0b", "rx0b", > + "tx1a", "rx1a", "tx1b", "rx1b", > + "tx2a", "rx2a", "tx2b", "rx2b", > + "tx3a", "rx3a", "tx3b", "rx3b"; > + > + #sound-dai-cells = <1>; > + }; > + Other nodes rarely need to be in the example. It's not even referenced (although that also does not matter). Please drop. > + sound { > + compatible = "apple,j416-macaudio", "apple,j316-macaudio", "apple,macaudio"; > + model = "MacBook Pro J416"; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + dai-link@0 { > + reg = <0>; > + 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>; > + > + cpu { > + sound-dai = <&mca 0>, <&mca 1>; > + }; > + > + codec { > + sound-dai = <&speaker_left_woof1>, > + <&speaker_left_tweet>, > + <&speaker_left_woof2>, > + <&speaker_right_woof1>, > + <&speaker_right_tweet>, > + <&speaker_right_woof2>; > + }; > + }; > + > + dai-link@1 { > + reg = <1>; > + link-name = "Headphones Jack"; > + > + cpu { > + sound-dai = <&mca 2>; > + }; > + codec { > + sound-dai = <&jack_codec>; > + }; > + }; > + }; > Best regards, Krzysztof