From: Linus Walleij <linusw@kernel.org>
To: 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>, Lee Jones <lee@kernel.org>,
Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>
Cc: linux-sound@vger.kernel.org, devicetree@vger.kernel.org,
mfd@lists.linux.dev, Linus Walleij <linusw@kernel.org>
Subject: [PATCH v3] mfd: dt-bindings: ab8500: Describe codec graph and microphone wiring
Date: Wed, 23 Sep 2026 19:46:55 +0200 [thread overview]
Message-ID: <20260923-ux500-simple-sound-v3-1-56a771c3ea28@kernel.org> (raw)
The AB8500 and AB8505 codec block exposes two digital audio
interfaces. Define the codec as a one-cell sound DAI provider and allow
it to expose both interfaces as audio graph ports.
The codec binding conversion also omitted the analog microphone type
and bias-routing properties supported by the driver and documented by
the old text binding. Restore them so boards can describe the codec
wiring without schema warnings.
Assisted-by: LLM
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Linus Walleij <linusw@kernel.org>
---
The Ux500 HREF500 and HREF520 audio support still relies on a
MOP500-specific machine driver and ad-hoc text bindings.
Convert the MSP binding to DT schema and make the MSP and AB8500 codec
nodes proper sound DAI providers with audio graph ports. Document the
sparse TDM slot masks already parsed from audio graph endpoints.
Describe the fixed DSP_A or DSP_B format, codec clock-provider role,
TDM frame and active slots through endpoint graphs. Add two-link
audio-graph-card2 cards for HREF500, HREF520 and the seven supported
Samsung U8500 phones.
Keep the codec-provided bit and frame clocks running continuously on the
HREF and Samsung links. This matches the legacy machine driver for HREF
and the product kernels for Samsung, and was verified on Skomer.
Remove the MOP500 machine driver after moving its fixed clock and link
policy into the device trees.
This intentionally breaks the device tree ABI with older Ux500 HREF
device trees. The old binding and driver have been broken for years and
need a clean restart.
The series has been tested on HREF500, HREF520 and Samsung phones.
MERGING STRATEGY:
- Get DT bindings ACKed
- Lee merges the MFD binding patch
- Mark merges the ASoC bits including the MOP500 binding removal
- I merge the top commits with DTS changes and defconfig
---
Changes in v3:
- Drop applied patches
- Only one patch remains, for Lee.
- Link to v2: https://lore.kernel.org/r/20260918-ux500-simple-sound-v2-0-88d29416e3c3@kernel.org
Changes in v2:
- Keep the HREF and Samsung codec clocks running continuously.
- Rework the HREF and Samsung cards around audio-graph-card2.
- Describe the DAI links through provider endpoint graphs.
- Document sparse TDM slot masks on audio graph endpoints.
- Link to v1: https://lore.kernel.org/r/20260911-ux500-simple-sound-v1-0-6771ac714e82@kernel.org
---
Lee: just merge this separately when reviewed for DT and you think
it looks good.
NB: Rob's ACK lifted from the earlier titled version:
https://lore.kernel.org/linux-devicetree/178976107058.1655739.6392532217175224491.robh@kernel.org/
---
.../devicetree/bindings/mfd/stericsson,ab8500.yaml | 28 ++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/Documentation/devicetree/bindings/mfd/stericsson,ab8500.yaml b/Documentation/devicetree/bindings/mfd/stericsson,ab8500.yaml
index 0fdfbfdfe88a..873e08266a2b 100644
--- a/Documentation/devicetree/bindings/mfd/stericsson,ab8500.yaml
+++ b/Documentation/devicetree/bindings/mfd/stericsson,ab8500.yaml
@@ -312,6 +312,33 @@ properties:
items:
- const: audioclk
+ '#sound-dai-cells':
+ description: Selects one of the two digital audio interfaces
+ const: 1
+
+ ports:
+ $ref: /schemas/sound/audio-graph-port.yaml#/definitions/ports
+
+ stericsson,amic1-type-single-ended:
+ description: Configure analog microphone 1 as single-ended
+ type: boolean
+
+ stericsson,amic2-type-single-ended:
+ description: Configure analog microphone 2 as single-ended
+ type: boolean
+
+ stericsson,amic1a-bias-vamic2:
+ description: Supply analog microphone 1A from VAMIC2 instead of VAMIC1
+ type: boolean
+
+ stericsson,amic1b-bias-vamic2:
+ description: Supply analog microphone 1B from VAMIC2 instead of VAMIC1
+ type: boolean
+
+ stericsson,amic2-bias-vamic1:
+ description: Supply analog microphone 2 from VAMIC1 instead of VAMIC2
+ type: boolean
+
stericsson,earpeice-cmv:
description: Earpiece voltage
$ref: /schemas/types.yaml#/definitions/uint32
@@ -319,6 +346,7 @@ properties:
required:
- compatible
+ - '#sound-dai-cells'
additionalProperties: false
---
base-commit: 3d57e8f5073d85b08e9fd3044211c3645e552734
change-id: 20260903-ux500-simple-sound-d077d5486a72
Best regards,
--
Linus Walleij <linusw@kernel.org>
next reply other threads:[~2026-09-23 17:47 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-23 17:46 Linus Walleij [this message]
2026-09-23 17:52 ` [PATCH v3] mfd: dt-bindings: ab8500: Describe codec graph and microphone wiring sashiko-bot
2026-09-24 14:03 ` (subset) " Lee Jones
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=20260923-ux500-simple-sound-v3-1-56a771c3ea28@kernel.org \
--to=linusw@kernel.org \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lee@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-sound@vger.kernel.org \
--cc=mfd@lists.linux.dev \
--cc=perex@perex.cz \
--cc=robh@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