Re: [PATCH 3/3] ASoC: codecs: wcd9378: add TX/capture codec driver
From: Srinivas Kandagatla
Date: Mon Jul 13 2026 - 03:34:59 EST
On 7/7/26 12:42 PM, Pierre-Louis Bossart wrote:
>> + *
>> + * Qualcomm WCD9378 audio codec driver.
>> + *
>> + * The WCD9378 pairs a WCD937x-compatible analog core with SDCA-style
> SDCA-style or SDCA-compliant?
This codec is SDCA compliant and used on X2 Elite Windows laptops.
This Codec can be configured in two modes, Mobile and Compute, and this
configuration is fused out.
The codec IP is the same in both modes; what changes is how the
host-side SoundWire master setup.
The codec itself has two modes of working.
1. mobile mode
in this mode the codec is enumerated as two slaves(tx and rx) on two
different soundwire masters (tx and rx), like any other wcd codecs.
2. compute mode
In this mode, where the codec is enumerated as single slave on primary
soundwire master. Two Soundwire controllers(primary and dependent i.e tx
and rx) are aggregated and they act as one logical SoundWire bus with
four data lanes. The primary alone runs the SCP control channel,
enumerates the slave, drives the bus clock, the secondary follows. The
secondary drives some of the data lanes. There is a hardware sync
between these two. This is a new configuration on Qualcomm Soundwire
controllers called multi-master.
>From Codec pov, its exactly same IP, I have now SDCA drivers working for
both playback and capture, so Am hoping that we could use the same SDCA
driver for both of these modes. I still have to give it a try on a
mobile platform to verify this.
Am hoping to send a version of this driver sometime this week.
--srini
>
>> + * function blocks (SmartMIC0/1/2, SmartJACK, SmartAMP) whose built-in
>> + * sequencers perform the analog power-up/down autonomously: capture is
>> + * started by programming the ADC usage mode (ITxx_USAGE), requesting
>> + * power state 0 on the function's PDE, and letting the sequencer ramp
>> + * the micbias selected through SMx_MB_SEL.
>> + *
>> + * TX/capture paths only for now; RX (earpiece/headphone), MBHC and the
>> + * SmartAMP function are not implemented.
>> + */