Re: [PATCH] ASoC: core: Support INPUT and OUTPUT DAPM widgets in DT
From: Ivaylo Dimitrov
Date: Wed Aug 05 2026 - 13:19:47 EST
On 5.08.26 г. 19:40 ч., Mark Brown wrote:
On Wed, Aug 05, 2026 at 05:56:25PM +0300, Ivaylo Dimitrov wrote:
Allow the DT audio graph parser to instantiate INPUT and OUTPUT DAPM
widgets.
This extends the set of DAPM widgets that can be described in DT and
allows modelling external audio endpoints as part of the DAPM graph.
This is useful for more complex topologies, such as codec-to-codec links
or multi-DAI audio paths, where routing through external endpoints needs
to be expressed using standard DAPM routes.
What specific cases do you have where one of the more specific endpoint
types isn't suitable?
The use case is a codec-to-codec DAI connection, where the remote endpoint is another digital audio interface (for example a modem or Bluetooth codec), rather than a physical microphone, speaker or line-level interface.
I have an out-of-tree audio-graph-card2 based machine description for Motorola OMAP4 devices using the CPCAP codec together with an external modem codec. Without modelling the remote endpoint as a DAPM INPUT/OUTPUT widget, the DAPM graph is incomplete and one side of the codec-to-codec link does not become active as expected, so runtime PM does not resume one of the devices in the link during a call.
With this change, voice calls using the audio-graph-card2 based machine description work correctly, as the codec-to-codec DAPM path is properly represented.
The topology I'm referring to is here:
https://git.maemo.org/leste-upstream-forks/droid4-linux/src/branch/leste/maemo-6.18.y/arch/arm/boot/dts/ti/omap/motorola-mapphone-handset.dtsi#L65
The hardware schematic diagram is here:
https://lkml.org/lkml/2018/3/27/1225
I used INPUT/OUTPUT because they appear to be the generic DAPM endpoint widgets for this type of digital connection. If there is a more appropriate existing widget type for modelling such a remote DAI endpoint, I'd be happy to use that instead.
Thanks,
Ivo