Re: [PATCH 0/3] ASoC: codecs: add the Qualcomm WCD9378 audio codec

From: Jorijn van der Graaf

Date: Thu Jul 16 2026 - 13:05:14 EST


On Thu, 16 Jul 2026 10:13:21 +0200, Luca Weiss wrote:
> Many thanks for all your work on the Fairphone (Gen. 6)!
>
> If possible, can you share also dts patches with me, so I can try out
> your patches, and provide at least Tested-by?

Thanks! Everything is now public on my Forgejo:

https://forgejo.catcrafts.net/Catcrafts/milos-linux

The default branch, combined-stable, is what I run on the phone minus
experiments: the pure v7.1.2-milos tag plus carries for NFC (reader
mode; card emulation is still open), speakers, microphone and the
magnetometer -- the DTS changes plus mirrors of the driver series, so
one branch has everything needed. Topic branches (nfc, audio, mic,
sensors) exist too, and every DTS change is its own commit.

What the driver carries mirror, status-wise:
- mic: this series (v1), plus "soundwire: qcom: add SCP address paging
support", which Vinod applied to soundwire.git next for 7.3
(commit 999f80904763).
- speaker: "ASoC: qcom: sc8280xp: support Senary MI2S" (v2 on the
list), "ASoC: codecs: aw88261: only check PLL and clock state at
power-up" (applied to sound.git for-7.3, commit 06b6f1245567) plus a
backport of the aw88261 format-negotiation work that is already in
mainline but not in the 7.1.2 base, and the q6apm-lpass-dais
graph-at-prepare RFC that is still under discussion.
- NFC: the s3fwrn5 S3NRN4V series (v2) on netdev; binding has Conor's
ack, driver still waiting.
- magnetometer: "iio: magnetometer: add support for QST QMC6308" (v1
on linux-iio); a v2 with review rework is pending, so binding and
DTS node may still change.

The board DTS itself I still intend to send to linux-arm-msm properly
once the bindings land, as per the cover letter.

> Also for audio, UCM and AudioReach topology if it differs from
> https://github.com/z3ntu/audioreach-topology/commits/fp6/ or what
> you've used to test the changes.

It differs, yes:

https://forgejo.catcrafts.net/Catcrafts/audioreach-topology (branch fp6)

That branch is your two WIP commits with one commit on top, so a plain
diff shows the delta. The functional changes:

- The backend is named SEN_MI2S_RX: the tplg backend name has to match
the DAI name the kernel exposes, which is "SEN_MI2S_RX" in
q6dsp-lpass-ports.c.
- Playback goes through a device subgraph that inserts an MFC between
the logger and the I2S endpoint: the frontend stream is S16 while
the AW88261 boost converter needs 32-bit slots (3.072 MHz BCLK), so
the DSP has to convert on the way out.
- There is a capture path now (MultiMedia2 -> TX_CODEC_DMA_TX_3) for
the WCD9378 mics -- that is the part needed to test this series.

One gotcha: the CMake entry emits
qcom/milos/MILOS-Fairphone-Gen6-tplg.bin, but the kernel requests
qcom/<driver_name>/<card_name>-tplg.bin, i.e.
"qcom/milos/Fairphone (Gen. 6)-tplg.bin", so the file has to be
installed under that name.

The UCM is here, speaker + handset mic (AMIC1) so far:

https://forgejo.catcrafts.net/Catcrafts/alsa-ucm-conf (branch fp6)

laid out upstream-style (ucm2/Qualcomm/milos/Fairphone-Gen6/ plus the
conf.d/milos symlink).

> So for NFC, speaker, microphone and magnetometer would be great.

All four are in combined-stable. One more thing the speakers need: the
amps' ACF firmware, loaded as
qcom/milos/fairphone/fp6/aw88261_acf.bin. I pulled it out of an FP6
vendor image (vendor/firmware/aw882xx_acf.bin, 4328 bytes; the
mainline aw88395 ACF parser reads it as-is). I have deliberately not
put it in the public repos since I don't know its redistribution
status -- something you are in a better position to answer than
anyone: could Fairphone clear this file for redistribution, so it can
eventually go to linux-firmware with a proper WHENCE entry? Happy to
send it your way off-list in the meantime, though you likely have
easier access to it than I do.

Since Srinivas mentioned on the 3/3 thread that he plans to post his
SDCA driver for this codec, the mic carry in the branch is simply this
series' v1; I'll keep the branches refreshed as the series evolve.

Regards,
Jorijn