Devicetree
 help / color / mirror / Atom feed
* [PATCH v3] mfd: dt-bindings: ab8500: Describe codec graph and microphone wiring
@ 2026-09-23 17:46 Linus Walleij
  2026-09-23 17:52 ` sashiko-bot
  2026-09-24 14:03 ` (subset) " Lee Jones
  0 siblings, 2 replies; 3+ messages in thread
From: Linus Walleij @ 2026-09-23 17:46 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Lee Jones, Jaroslav Kysela, Takashi Iwai
  Cc: linux-sound, devicetree, mfd, Linus Walleij

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>


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v3] mfd: dt-bindings: ab8500: Describe codec graph and microphone wiring
  2026-09-23 17:46 [PATCH v3] mfd: dt-bindings: ab8500: Describe codec graph and microphone wiring Linus Walleij
@ 2026-09-23 17:52 ` sashiko-bot
  2026-09-24 14:03 ` (subset) " Lee Jones
  1 sibling, 0 replies; 3+ messages in thread
From: sashiko-bot @ 2026-09-23 17:52 UTC (permalink / raw)
  To: Linus Walleij; +Cc: lee, conor+dt, robh, mfd, devicetree

> 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>

Sashiko has reviewed this patch and found no issues. It looks great!

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260923-ux500-simple-sound-v3-1-56a771c3ea28@kernel.org?part=1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: (subset) [PATCH v3] mfd: dt-bindings: ab8500: Describe codec graph and microphone wiring
  2026-09-23 17:46 [PATCH v3] mfd: dt-bindings: ab8500: Describe codec graph and microphone wiring Linus Walleij
  2026-09-23 17:52 ` sashiko-bot
@ 2026-09-24 14:03 ` Lee Jones
  1 sibling, 0 replies; 3+ messages in thread
From: Lee Jones @ 2026-09-24 14:03 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Lee Jones, Jaroslav Kysela, Takashi Iwai,
	Linus Walleij
  Cc: linux-sound, devicetree, mfd

On Wed, 23 Sep 2026 19:46:55 +0200, Linus Walleij wrote:
> 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.
> 
> [...]

Applied, thanks!

[1/1] mfd: dt-bindings: ab8500: Describe codec graph and microphone wiring
      commit: 43be6abd6775820fdac3729962f7e7b841104fda

--
Lee Jones [李琼斯]


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-09-24 14:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-23 17:46 [PATCH v3] mfd: dt-bindings: ab8500: Describe codec graph and microphone wiring Linus Walleij
2026-09-23 17:52 ` sashiko-bot
2026-09-24 14:03 ` (subset) " Lee Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox