Many thanks Pierre for reviewing the patches,
On 19/03/2021 16:09, Pierre-Louis Bossart wrote:
On 3/19/21 4:29 AM, Srinivas Kandagatla wrote:
This patchset adds support for Qualcomm WCD938X codec.
Qualcomm WCD9380/WCD9385 Codec is a standalone Hi-Fi audio codec IC
connected over SoundWire. This device has two SoundWire devices, RX and
TX respectively supporting 4 x ADCs, ClassH, Ear, Aux PA, 2xHPH,
7 x TX diff inputs, 8 DMICs and MBHC.
Even though this device has two SoundWire devices, only tx device has
access to main codec Control/Status Registers!
That part is a new concept we haven't seen so far with SoundWire
support, and I added a number of comments in the patches.
It would really help if you could add more explanations on how
regmap/pm_runtime/gpios/regulators/interrupts are supposed to work with
such a functional split. Thanks!
codec regmap for Control and status registers are only possible via TX
Soundwire device as per h.w wiring.
In the existing code we take care of this in common code (wcd938x.c)
shared between TX and RX devices.
pm runtime is also handled in the common code, Ex. resume on rx dev will
make sure that tx dev is resumed first, and suspend on rx is nop.
I have tested basic pm runtime auto-suspend cases with this.
same with reset gpios/regulators and regulators.
SDW Interrupts are also via tx device.
This patchset along with other SoundWire patches on the list
have been tested on SM8250 MTP device.
Am planning to send support for MBHC once this driver gets accepted!
Thanks,
srini
Many thanks for reviewing v2.
Changes since v2:
- fixed dt_binding_check error
Srinivas Kandagatla (7):
ASoC: dt-bindings: wcd938x: add bindings for wcd938x
ASoC: codecs: wcd-clsh: add new version support
ASoC: codecs: wcd938x: add basic driver
ASoC: codecs: wcd938x: add basic controls
ASoC: codecs: wcd938x: add playback dapm widgets
ASoC: codecs: wcd938x: add capture dapm widgets
ASoC: codecs: wcd938x: add audio routing
.../bindings/sound/qcom,wcd938x.yaml | 165 +
sound/soc/codecs/Kconfig | 9 +
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/wcd-clsh-v2.c | 350 +-
sound/soc/codecs/wcd-clsh-v2.h | 16 +
sound/soc/codecs/wcd938x-sdw.c | 291 ++
sound/soc/codecs/wcd938x.c | 3623 +++++++++++++++++
sound/soc/codecs/wcd938x.h | 676 +++
8 files changed, 5122 insertions(+), 10 deletions(-)
create mode 100644
Documentation/devicetree/bindings/sound/qcom,wcd938x.yaml
create mode 100644 sound/soc/codecs/wcd938x-sdw.c
create mode 100644 sound/soc/codecs/wcd938x.c
create mode 100644 sound/soc/codecs/wcd938x.h