From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7DE7042A177 for ; Wed, 29 Jul 2026 12:36:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785328576; cv=none; b=tMZDJyaMm/isxcosJAQqN09OqleTtneLGgJlSvVJNRHpRLfRjN4Zv8mvs49qvTuMqDLdEe5RU9DsVsUij72+XvxmeIS/UPci0PMctVR0CSkQI9pnplK7JFBQNOv4dUEFMc7JLh26PkQMvhsUUerp1cl3tExmV/JPjRwJsRGm3zo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785328576; c=relaxed/simple; bh=b+iNsDFEHoCrdY3q7/dXhBGQBGrcI1IKuOBRzn7zAds=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=bhqQv7FEzwRJG/0ZIHS+Rn3yOQp4WTbpHSptspgU0tYH5drVr9mCrGkOu7wjskblxN4Ozc67jw/g5WjLS69pFoNGw6DeTgWd/zBcgODaRmmLCDpgrkaR9uywQq7mdONGOIYhgWrPLTt6DD3BPadFI8U7DxaPUy0EMHV5ChjZFz0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=LugtbWXW; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=DLOw6gEr; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="LugtbWXW"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="DLOw6gEr" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66TCJrJA1977097 for ; Wed, 29 Jul 2026 12:36:06 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= /y1ew/AaO4a3TiUoZQMqr3KatEChOpw6KP2tFHQUBBM=; b=LugtbWXWveq7yjdD e0MFujqOckmzpkStmmE3+Rw13C7v3VWBzdN5bkNQY5cH1I7pon74vnJTkxwz82cg 9wbcJA6wkRoH5OKfX0MPzHQyDcBB42VXoFBF/1Zk9wu+mFabiFARInRY+Y7YTBd3 W62vV7pfwrlMxE06Q9dbSBW81JxW6AO4+FaYR1SyGlPjRV8YC9SJJG3UE9jlRw8X rcB3V1SN3gRPmXvFPus1dd7wt1HhDiBEivE2Pt4o2F4TDGkuXswBfyTvudTIBkMT OVVguOuP29t8TRrkDlUXsu/PjWjZ3Tr4W221Tue7Bb1zPq87sIkH3WYpivOnXtGQ 1HP21Q== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fqhe9824e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 29 Jul 2026 12:36:05 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-51bfe3fa93bso9713051cf.2 for ; Wed, 29 Jul 2026 05:36:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1785328565; x=1785933365; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to :content-type; bh=/y1ew/AaO4a3TiUoZQMqr3KatEChOpw6KP2tFHQUBBM=; b=DLOw6gErmb7qnBWp7OJ3GW+TIPdmHeZ3Z0l45KPFjliIcYWnWtiZqPGtRc9oq1F84Q a1ySHoPjCWhrsK30nymNy2/dABdZQw66VMIJ8BfG2OSFAZ+pV2VNF16z5dMM2MR9zaDc sH38ht3K/4GJR7cw7hfW1j6TwjrMV69ILMEpt3P0C6NMmtQF27COiRHsN+kw1t8ZTv4X r3WDkztdqhKrm3xnfXSqVxnSQUKMCAA0wq862a9kze6AjMlu8G5OsaRiQwv1T5CeQU8l 690WywJeC9SknaZYvchMGtkO/JDA/5G9kroxorT8btjl510jqNDp/gt4Fp2T0xsMOT7A N6Bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785328565; x=1785933365; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=/y1ew/AaO4a3TiUoZQMqr3KatEChOpw6KP2tFHQUBBM=; b=GE2HkJsFc9gJnb2ZdEkl1WPA5W8p/e0/iWEAgESwOi0PMEnCrLmoyrXkFDxqRx5Xd8 GXANQqe5dVdnIbX49rICOlqXxNRVhTGoIGY8dCKsZfraddXCQCcO9hO9cQ1lR6rwiQwX qhUcPcBToPEuac/lh7Y7gInsimGhS3hqVUmHgUeJhkIhjOmTdcNcQzDEahbkGRNz/cVE J4cKR8Oe2NK4JaigEjbGUjuHkl6/iAmctwXR7UI4UH46mATCXTzqpyVZ9T+2Vqw8eLtu uo/RXcJydqMXuNMH2CrnZLt7kL7VpM6M897xlC5TXhjnjW7PAqcx/us9xeOhKqs2lNHA iJDw== X-Forwarded-Encrypted: i=1; AHgh+RrDpiUPOZgbogJLHCUd3zQsUdxzlyJmmHM7c93iqz+XkKlSJuVh8l74nlUiZwzX0bmWMaij1TU/S5j9BJ4=@vger.kernel.org X-Gm-Message-State: AOJu0YzRcl1LAhq8+UG+Qp75HGoIA/NxgR02QRKPWnNgSeyiY9jv+Ao/ 1ODE1yg00TK7NhxsXAdTqxIKe5iPkNk28mDmx50oBhyhmOP6MrRKOR28EsSm+yaKbgaFQBBO4sB xbZxRTti+Idx+13zWl5aDwDieMf5z6FEjg9hxAFGNpR5ZYhE6BWoXVhoVLOXXAoNn1ZM= X-Gm-Gg: AR+sD11I0LwZXgKwCPLE0hu+2ayHE+treJhN9ESmgxv0GPL/cL29TwGA2iqtY9Y/Ipq s6Omvck9AvmsdkD7ZoHYRdX2y+oVqevDnefC9cC6bd+ge0G8/fZ6PjMY8qxX/rPzZiB5freUA3P W9ryZdsqR/gLjBShcZSf6wkDrevijzqyKAZaRwdf+QlhpGKfY+8ZSW+DsIY7AHTCwApEm79nn9Z gmMxZOYake1skZdhCZrtVcR8eYDwRj24P4hs80/khZPFBHx71fZR1AZlUsZOBHFiJ5KSwN1hNa9 LMTZ3Vj2BIrmPvKglFOy9pahpy43RcKHXt4TlCLj4ROkXVIKZ6yj4pXf0zh2ncMa2NUKv618v5j AoDOx87Sl6loMPoeV/jDJ9OgF1X0= X-Received: by 2002:a05:622a:4d91:b0:51c:164b:b240 with SMTP id d75a77b69052e-529d6faf287mr57170241cf.4.1785328564555; Wed, 29 Jul 2026 05:36:04 -0700 (PDT) X-Received: by 2002:a05:622a:4d91:b0:51c:164b:b240 with SMTP id d75a77b69052e-529d6faf287mr57169831cf.4.1785328563999; Wed, 29 Jul 2026 05:36:03 -0700 (PDT) Received: from [192.168.68.112] ([5.133.47.210]) by smtp.googlemail.com with ESMTPSA id 4fb4d7f45d1cf-6a050be9a91sm839143a12.13.2026.07.29.05.36.02 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 29 Jul 2026 05:36:03 -0700 (PDT) Message-ID: <0cb5a2dd-c49e-47e3-8cc5-ab2ffd397a32@oss.qualcomm.com> Date: Wed, 29 Jul 2026 13:36:02 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH 7/8] dt-bindings: sound: qcom: add Tambora WCD9378 SDCA codec To: Krzysztof Kozlowski , Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Maciej Strozek , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Srinivas Kandagatla Cc: Bard Liao , Pierre-Louis Bossart , Richard Fitzgerald , Jorijn van der Graaf , linux-sound@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, patches@opensource.cirrus.com, linux-kernel@vger.kernel.org References: <20260722234221.884765-1-srinivas.kandagatla@oss.qualcomm.com> <20260722234221.884765-8-srinivas.kandagatla@oss.qualcomm.com> <219d44e2-28ed-4c54-bd00-66e687a0ba48@kernel.org> <3c484a68-5db8-464f-992a-6c7584841a10@kernel.org> Content-Language: en-US From: Srinivas Kandagatla In-Reply-To: <3c484a68-5db8-464f-992a-6c7584841a10@kernel.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI5MDEwNCBTYWx0ZWRfX3c7K/qj2xnJ8 VIvUljisV6/n3bC7XbV9Jt6p8HoReDz8NhdRSkeLHqfJLVF8DtH3X1+he+4skpXygRt5NvrzVDo WCAvX86CFURlubaR4cGXp2mdWIrvdMY07YXCxES0lsuMeFSdpz+gBaxoCUccQR7zoaXJ9qNO+Rg RNJvnBtpnHMa085+chgKoBJtWneNPw5omxaAtHN1SVc4eYECCQVDBjpzuyHhvprh38fL6oeFHOv F6r8R0PrAnwk6LjfHuge4585wLE0ssyYePF++kLWGh6YZkXI5zEzT30SNcRcW3czD3kpteA2Ujn iiaOub5AIrb10/4Sz/CXq7ZjjWiDe535waJHRPLt4UrdQymhY/8IDS7dZksOYX/AHPmu72YULG3 wxX+XhxniZRe3jW9N3MV9bTlRe7vutcmL2sVuzEQn5+b/8f2jWYqoA1IokvNh03FerVdfdNGUtA yAiZqKtqxl/j5cUdiqA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI5MDEwNCBTYWx0ZWRfX7uYCFOG1wr+5 I34/jWVGecgvhjczOfoyhQL01CgJwLgCKjbYRr6GecvwYJpPXON98uQgFjtMoK36NouyhjgYwf8 3Cn5+yNtRCc/TE1B44e8Pt6RAKEgj/A= X-Proofpoint-ORIG-GUID: d084D6DVMQQnLLnleIbr8K8UgtPDtfI3 X-Proofpoint-GUID: d084D6DVMQQnLLnleIbr8K8UgtPDtfI3 X-Authority-Analysis: v=2.4 cv=EsriaycA c=1 sm=1 tr=0 ts=6a69f3b5 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=gEfo2CItAAAA:8 a=EUspDBNiAAAA:8 a=GYSh3LzNAAAA:8 a=ueJt-ghu4yImuhG8B5YA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 a=sptkURWiP4Gy88Gu7hUp:22 a=lWcdFasyL5yHfcDTNXXo:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-29_04,2026-07-28_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 bulkscore=0 malwarescore=0 adultscore=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 impostorscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607290104 On 7/29/26 1:30 PM, Krzysztof Kozlowski wrote: > On 29/07/2026 14:17, Srinivas Kandagatla wrote: >> On 7/29/26 12:40 PM, Krzysztof Kozlowski wrote: >>> On 23/07/2026 01:42, Srinivas Kandagatla wrote: >>>> Describe the WCD9378 SDCA peripheral node (compatible sdw20217011000) >>>> driven by the wcd9378-sdca codec driver for headphone playback, headset >>>> mic capture and jack detection via the SimpleJack SDCA function type. >>>> >>>> WCD9378 codec can be wired up in 2 different modes. >>>> "mobile mode" on phone/tablet SoCs is enumerated as tx and rx device, >>>> each of which has dedicated control and data lines. >>>> "compute mode" on compute platforms such as Glymur is enumerated as >>>> single standard MIPI SDCA class device. >>>> >>>> Both modes share same Device ID, compatible; qcom,compute-mode selects >>>> which driver path is taken. Supplies, reset GPIO and mic-bias voltages >>>> live on the SoundWire slave node in compute mode and are forbidden in >>>> mobile mode (owned by the top-level codec parent there). >>>> >>>> Assisted-by: Claude:claude-opus-4-7 >>>> Signed-off-by: Srinivas Kandagatla >>>> --- >>>> .../bindings/sound/qcom,wcd9378-sdw.yaml | 200 ++++++++++++++++++ >>>> 1 file changed, 200 insertions(+) >>>> create mode 100644 Documentation/devicetree/bindings/sound/qcom,wcd9378-sdw.yaml >>>> >>>> diff --git a/Documentation/devicetree/bindings/sound/qcom,wcd9378-sdw.yaml b/Documentation/devicetree/bindings/sound/qcom,wcd9378-sdw.yaml >>>> new file mode 100644 >>>> index 000000000000..2ed4ad92958e >>>> --- /dev/null >>>> +++ b/Documentation/devicetree/bindings/sound/qcom,wcd9378-sdw.yaml >>>> @@ -0,0 +1,200 @@ >>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >>>> +%YAML 1.2 >>>> +--- >>>> +$id: http://devicetree.org/schemas/sound/qcom,wcd9378-sdw.yaml# >>>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>>> + >>>> +title: Qualcomm SoundWire Slave devices on WCD9378 >>>> + >>>> +maintainers: >>>> + - Jorijn van der Graaf >>>> + - Srinivas Kandagatla >>>> + >>>> +description: | >>>> + The Qualcomm WCD9378 codec presents its SoundWire slave devices with >>>> + class ID sdw20217011000 in both operating modes: >>>> + >>>> + * mobile mode -- two slave instances sit on separate SoundWire >>>> + masters carrying data only. A separate top-level codec node >>>> + owns the codec's supplies, mic-bias voltages and reset GPIO. >>>> + >>>> + * SDCA / compute mode -- one aggregated slave sits on a multi-lane >>>> + master and carries both control and data. There is no separate >>>> + top-level codec node, so the SoundWire slave node itself owns >>>> + supplies, reset GPIO and mic-bias voltage configuration. It is >>>> + marked with qcom,compute-mode. >>>> + >>>> + Codec drivers that match sdw20217011000 use qcom,compute-mode to >>>> + decide which mode to serve; the presence or absence of this property >>>> + also gates whether the supply and mic-bias properties on this node >>>> + are required or forbidden. >>>> + >>>> +properties: >>>> + compatible: >>>> + const: sdw20217011000 >>>> + >>>> + reg: >>>> + maxItems: 1 >>>> + >>>> + qcom,compute-mode: >>>> + description: | >>>> + Marks this SoundWire slave as the single aggregated slave that >>>> + implements the codec in SDCA / compute mode. Only present when >>>> + the codec has no separate top-level codec parent; in that case >>>> + this slave node also owns the codec's supplies, reset GPIO and >>>> + mic-bias voltage configuration. Absent in mobile mode. >>> >>> I doubt there is really "compute" or "mobile" mode, so you just wrote to >>> match use case, but that does not match hardware. >>> >> This is hardware fuse setting, its not just usecase based but it changes >> complete wcd9378 hardware topology, in mobile mode we have 2 soundwire >> devices representing tx and rx side of wcd9378 however in compute mode >> it only has one soundwire device dealing with both tx and rx. compute >> mode is sdca class compliant device. >> >> >>> I think there should be no separate top-level codec parent in the first >>> place, thus this property is not needed. You always list here all resources. >> There is no top level aggregated device when the codec is fused in >> compute mode. > > There should not be a top-level in either case. This was always Linux > driver limitation. That is not true, its clearly a hardware topology thing. Codec has two devices tx and rx, Only one of the device (tx) has access to CSR registers of the codec, so rx and tx are pretty much a single aggregate codec device which is why we have top-level representation of the aggregate device. --srini > > Best regards, > Krzysztof