From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A55113CB8FD for ; Thu, 16 Jul 2026 08:13:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.54 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784189605; cv=none; b=EzecVzmC88QYaNYHNnym6MMOdr4zgD31EBKr/eoBW95GJt3Qy5iE+GTbwbN61FxMSJHRV59FD7Cyi4z1I83QUWtKaxVHJdembp8r3GeiYWefiLopJhgOf/4A5mEjQ+WlXiG67MmG9u7za0N5gYiNdXfs8GXQNMmJmq0DXl5XrA4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784189605; c=relaxed/simple; bh=BHGXzZt1d8W8ecIZ1QwyHNFQkiYMz+073p25eXAQcz8=; h=Content-Type:Date:Message-Id:To:Cc:Subject:From:Mime-Version: References:In-Reply-To; b=hB7Ke1mIqEoBvFBNKRhdB/y4jcs/qzSYKG6vnJnR6q/uhVxSeerbEzWchI4gth3fxCokjV/z5PQXnXBxAXffGcNV8+CKzybozHD62TmN763nFLQTnJW+2YltDhK6qVy5MfCBY+ZEBZ5qmyUa2Y5N8/vd5+tKSt4+VXWvXjBZReM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=fairphone.com; spf=pass smtp.mailfrom=fairphone.com; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b=GiCIbKKf; arc=none smtp.client-ip=209.85.218.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=fairphone.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fairphone.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b="GiCIbKKf" Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-c15b33f7b23so928675166b.3 for ; Thu, 16 Jul 2026 01:13:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fairphone.com; s=fair; t=1784189602; x=1784794402; darn=vger.kernel.org; h=in-reply-to:references:content-transfer-encoding:mime-version:from :subject:cc:to:message-id:date:content-type:from:to:cc:subject:date :message-id:reply-to:content-type; bh=AeCiWXObqZMn+CXaMwaIUj0LKi01F1mPNxBE7Xp9sFM=; b=GiCIbKKfH1g/0PW3SwLqwBJftZrRKlH/J+yXbaV5gbzNkIHdJK+Fpx/Ty0keVU5IJy W4lgrg6qw9wv08GZoCakp/pRhvfKVdyWjyrYClrx6UAo9QhPwdAlgSN95sPWv1bhF1Qb lmKalNUi4vJY20bGREFx44Wgkj3UDu4fW562LvAzS15TDSBH0Bw4Uq+Gme0iBnyi6lVo yaMe8bexFwHJD3xR5bnnQ4uX3IICh/TeVDDo5IM7tx6GTnA8CrwPRSUldeJlxMHMwd3X tcJZg93Ueq5JQ3UFms48G3sKp7m1QX66ZwE6ATo8UbBcHiKYGhp2AzLILeDSaYDQFHbl dsIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784189602; x=1784794402; h=in-reply-to:references:content-transfer-encoding:mime-version:from :subject:cc:to:message-id:date:content-type:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=AeCiWXObqZMn+CXaMwaIUj0LKi01F1mPNxBE7Xp9sFM=; b=PaQ4UYdzgbMw2tQiLv5QbfetJf/dOKo+f/WJ5ffbmtoC5rP4Pvd4mSNxyEsusknXjf KaHM3zZuvHNw5Anb2fFZFfkO2wQFFqgwwtn25V75M81kQdWqEKrSTbSa1lic7KxRBAoK Ldw89PhsHQjqMQQiaA3pPOyn8vUAoJRVg6Rlm+7eI4JNfKup1d8Ikcbj2n+YzRvBdBPZ JyGDoh6DqKeUjUhgV1wmh0jMetq0ipGtKMI5Kp+qHNuU6WQZRUWM83tJGJ4N2MGLIRwF k9+HK4x3HqI/VCtutOl7+pGaR0CQ0YDskLjmD3vVqqxvUCKZKDhdd/Up7wde7GHDivux LrjA== X-Forwarded-Encrypted: i=1; AHgh+RrP2gGkGFUIIYotNlkTjkajWaT05hYsFHmfdA859dn+6YEMTZEbw0c3zMcxK2Yl6nrw2NvHgoGCc+pKQEM=@vger.kernel.org X-Gm-Message-State: AOJu0Ywiij/NexxZouLikJuM7/WaIzcogDD/+2OURp7b9NCniK5+RaSG +tdJKpcPjkfmX/3AzmlZr08W5dMjQPmRBc/Tg2mTxXrgwEJ/tKdT+Y8ruu1rKVABle8= X-Gm-Gg: AfdE7cn5H16qXXygDAMKe+rbaxq8VnU+KdXcHZmP3KKA11qnnfE3g5aXpwNcYW/2Yc+ 5K0iUY/TdmS86XNCPqBWg9bGrirvfFLDB8/8cWVH1UzTVMS/xe0PyMlzt+sOolMDomx7eihuuk/ ywqYFh3Wwf2etOMmzPCO+nWm5Qg0RsLmsU9AKFYsxnK7SerlKvqif/658dDXAHie+eNOFZC1F2N bRXGHBnsc4U7Nln9AX3AMYFIaIRk+fv4JiGN+R+Mez72lCTj9Hg9FQ+txKAGJ14E0tUNZM1eK1S FYcfWI1Lem6S1LUvbg5n4D+IUjM2847DYJVxgM1LpPfOm2bctk1pPLA+OoMp3K8IBSaxKiG1glK Psu25OYj9peFgZq+vXkJj/eXEdk8vJ98YrgvaryToY6zwOrFUxWocLpTz7TorKvX9L3zBk1OPT3 ITYdI/lZJ1XVGxqAJft7Nqn2EakyJ5DRKahuLSFpyhya8H6IE= X-Received: by 2002:a17:906:ef0c:b0:c12:9b93:61fd with SMTP id a640c23a62f3a-c167921baa3mr388583566b.6.1784189601892; Thu, 16 Jul 2026 01:13:21 -0700 (PDT) Received: from localhost (144-178-202-142.static.ef-service.nl. [144.178.202.142]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c1687166b94sm156110066b.17.2026.07.16.01.13.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 16 Jul 2026 01:13:21 -0700 (PDT) Content-Type: text/plain; charset=UTF-8 Date: Thu, 16 Jul 2026 10:13:21 +0200 Message-Id: To: "Jorijn van der Graaf" , "Mark Brown" Cc: "Srinivas Kandagatla" , "Liam Girdwood" , "Rob Herring" , "Krzysztof Kozlowski" , "Luca Weiss" , "Conor Dooley" , "Jaroslav Kysela" , "Takashi Iwai" , "Mohammad Rafi Shaik" , , , , Subject: Re: [PATCH 0/3] ASoC: codecs: add the Qualcomm WCD9378 audio codec From: "Luca Weiss" Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Mailer: aerc 0.21.0-0-g5549850facc2 References: <20260706192229.144137-1-jorijnvdgraaf@catcrafts.net> In-Reply-To: <20260706192229.144137-1-jorijnvdgraaf@catcrafts.net> Hi Jorijn, On Mon Jul 6, 2026 at 9:22 PM CEST, Jorijn van der Graaf wrote: > This series adds bindings and a codec driver for the Qualcomm WCD9378, > found on SM7635 boards such as the Fairphone 6. The chip pairs a > WCD937x-compatible analog core with SDCA-style function blocks whose > built-in sequencers handle the analog power-up/down; all control > registers, analog core included, sit in a 32-bit paged SDCA control > address space behind the TX SoundWire slave. > > The driver implements the TX/capture paths (three ADCs fed from four > analog microphone inputs, three mic bias supplies) and is modeled on > wcd937x, reusing the wcd-common helpers. RX/playback, MBHC and the > SmartAMP function are follow-up work. Register sequences come from the > GPL downstream wcd9378 driver in Qualcomm's audio-kernel-ar tree; the > chip has no public datasheet. > > One dependency outside this series: the paged register map needs the > Qualcomm SoundWire controller to implement SCP address paging, posted > separately to the soundwire tree as > "soundwire: qcom: add SCP address paging support". Without it the > codec enumerates but every paged register access silently reads zero. > There is no compile-time dependency, so the two can go through their > respective trees in any order; capture just needs both to land. > > Patch 1 moves the qcom,micbias4-microvolt requirement out of > qcom,wcd93xx-common.yaml into the codecs that have four mic bias > supplies, so the three-bias WCD9378 binding in patch 2 can reference > the common schema. Patch 3 is the driver itself. > > Tested on the Fairphone 6 (SM7635): handset mic capture through the > LPASS TX macro at 48 kHz across reboots, including UCM-driven use by > PipeWire in a Plasma Mobile session. The board DTS follows once these > bindings are accepted. 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? 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. So for NFC, speaker, microphone and magnetometer would be great. A git branch with your changes also works of course if you have that pushed somewhere. Regards Luca > > Jorijn van der Graaf (3): > ASoC: dt-bindings: qcom,wcd93xx-common: don't require micbias4 > ASoC: dt-bindings: add the Qualcomm WCD9378 audio codec > ASoC: codecs: wcd9378: add TX/capture codec driver > > .../bindings/sound/qcom,wcd9378-codec.yaml | 76 + > .../bindings/sound/qcom,wcd9378-sdw.yaml | 122 ++ > .../bindings/sound/qcom,wcd937x.yaml | 1 + > .../bindings/sound/qcom,wcd938x.yaml | 1 + > .../bindings/sound/qcom,wcd939x.yaml | 1 + > .../bindings/sound/qcom,wcd93xx-common.yaml | 1 - > sound/soc/codecs/Kconfig | 19 + > sound/soc/codecs/Makefile | 7 + > sound/soc/codecs/wcd9378-sdw.c | 495 ++++++ > sound/soc/codecs/wcd9378.c | 1382 +++++++++++++++++ > sound/soc/codecs/wcd9378.h | 246 +++ > 11 files changed, 2350 insertions(+), 1 deletion(-) > create mode 100644 Documentation/devicetree/bindings/sound/qcom,wcd9378-= codec.yaml > create mode 100644 Documentation/devicetree/bindings/sound/qcom,wcd9378-= sdw.yaml > create mode 100644 sound/soc/codecs/wcd9378-sdw.c > create mode 100644 sound/soc/codecs/wcd9378.c > create mode 100644 sound/soc/codecs/wcd9378.h