From nobody Tue Feb 10 01:31:24 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 06C952F745D for ; Tue, 30 Dec 2025 23:36:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767137781; cv=none; b=VAQeaTs2bG31tZg1h/tBQSraBMZR/DKn0dSwqe/E40U+omTwW87h2HShsAK9D5F5JQs1Lb+g/Br15qnF3I6L4/0EdGnhR3MJYOLScucik4GyqWSHEScznQe1VIt4HY4rEwnfwb2Fb66WOXV6m4Ohx9qzVMrbPF+7fqY+7IVcmA8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767137781; c=relaxed/simple; bh=AG1LuEu35/QXARVDmQljJ6/X6wU6zxwBmWxtwK9pVwc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=otmHcHkAFY+j7qu95L8bSAq9gByUCBM9NSzaua8iYEX0KlcFeYNYRTwfbMZoRiLdCPCpMEEU1z0pv/nlNU5fuv4PU0Fj6pCO+Kg7H1k2FFQ0mRLavpnRjMa82Ijl6McNAN6ZZPE6ASEwLD83h+tLZjeO99wcoAdqzSuWQDbznt0= 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=e6K48ciD; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=bQwC64C7; arc=none smtp.client-ip=205.220.180.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="e6K48ciD"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="bQwC64C7" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BUKxLsQ1702342 for ; Tue, 30 Dec 2025 23:36:11 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= 5zzqm3vWt+G5X81VnTc/HMamR4mFoNc+f/SQq1irb68=; b=e6K48ciDEEdSVIk1 V5URzU4EmIaNi+mTWu3/CM0TJ0FSs7gV/tn2Ua5J/MGr7ubda0KYd9jbWLZ3LhUC DIxsGwxjtbpxf6qnSRvRYW7tQyimoHG8nQCTMUc5BrFE4unSNsDFH3653SGPqhBD a1K4811xoS2DlJjyO0LU84S9Vc64qKW+jEgvjTd4iBIFFxa8B/E0IRFodDtMbYjE FY1xmPZ3xulWcRUYhzTP1wW4fT90lELBoqTgN/1+z2a9UolIvHL2300hJafBHFX3 2Oau6tWOr7pkxmdKB4JpBOk/qlokuVLOQ+Y7zFVZTxvUXnEePHYi7nla/anAwKTq j0N1Xw== Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bcf5ys6e7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 30 Dec 2025 23:36:11 +0000 (GMT) Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-88a2d8b7ea5so128021876d6.0 for ; Tue, 30 Dec 2025 15:36:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767137770; x=1767742570; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=5zzqm3vWt+G5X81VnTc/HMamR4mFoNc+f/SQq1irb68=; b=bQwC64C7KlAPJwBDNAjBspxhrQVNDNHo6y2rDpNhhMe5yqYzf5yk7sGxtptygna/CX zF8S7/Vv8YEtPeCYEySz0om+jKrkoYfTd3a/oG6YONMblC1DL8VPet1HDiH8N4sSpcgi BzYNd1diHcBAaK+mXdpIDjSor+zBh8PSQscIj0flBKVzgbzGXlP9LZSWZEmOY3SMbUjQ 1jV+UhSeMu5rP23/tkTGBJkb8KbAX+4CtFveCkXIG3CyDaIPX3op+v4OrxxbaLKA4kRr tvmdRPkQXelkz7tryQqImM9gyvrvslhjoE/hoigb7l1qn8elw7vW3/rIGwAvZUdmQ++K GyGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767137770; x=1767742570; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=5zzqm3vWt+G5X81VnTc/HMamR4mFoNc+f/SQq1irb68=; b=fFCxeBondxLmt5RtteUOJoQMOLDgZI5DOoJJ71lWRQRMQGstL3UWhRd8CguOWJh0nJ /K1nXdx4zHSd1x54eD1wnKJcl8eBTboeAIWkOx3+she3UoHWfOj3jQf3MkKIy9fS87pt jJ3D5em4H3JtHI408ePXXhZGYbLbhZeUDH915zeIp37NhYe9FSog7clgAhDUeG7xPkaY 7GH3tdHSkt8nalTBCBoV/xFXRYhKykyvRXH3JdXFSKjqVCyt54aAiKhW7bcdI65crYHQ xaBRv6WWfMd26dS+C+rrWNVwEnxaFqo7C7zpasO6IVvOPvdUP8lfrwN2bkcN//OR//66 wuiQ== X-Forwarded-Encrypted: i=1; AJvYcCWYV5dsO98O4VxOiiruGtgGBU4RO1pSb5erg/3PmD3XVpef6R9EsAw5D9uwZTiTRWLo7HZg9IyJtqEgnv4=@vger.kernel.org X-Gm-Message-State: AOJu0YwmnTgz8RwwSt3aZcXK5HTVOdgtXKFnV8JmO+Zyz9DTHpiKXxsI gy6o0revO+od4a7kVcORldL9c8PE+MqUp9tW5M0Yz/O97TETJpP4MHE0NiySqaNu8AbdEwN9oJB rCjVBG2Gssa6uUvIcWBD1VEnSKHwasLmZmJp3LlWPfPUznUyvQt1W6AjoSwcRDkC/u3Uxf+oGrY Y= X-Gm-Gg: AY/fxX6XSksCkoH/dKd8BypMzJrnF8vXXAtdUH1yU41puQVl33hfoFKOFvxLwhhLCgk x0ji0GCNoszlBhszci6hP3K7JcvyyFugtYGX0swScHHlBywA609TnWfyKW+U0LiV3NC0uaUhVvQ EvutnW+gGNLpgFBkL8TTbpC9D2v2+9eJfrnub8w/aUho5Wr4ON32o0n7hzzOdOchXO94EokdZ3V ycgJrJyrD5OOUolA1K2sP0cS8UQYdRBwyy9Tv+U3O7NPNMZxo0DlT4AYu9HIwuwYO/XxFj+Z5MN Fgg+JGuu1sW5WxISsfcX1WpM7uydToWgPDg/LeiS0A/CBv0sa8xBVEgus3xPveOD4Pd/LZ3LZJV YkFkvZCHfeRiD0FHzuJdO+5OKH/a0zjPsZem/08TSxk88PHqtgr5WvQJ69CSIbWqJ9ouJj1OPtb Tr5lusJF74Vx2M83279Fn42tQ= X-Received: by 2002:a05:6214:23cb:b0:880:4c15:599b with SMTP id 6a1803df08f44-88d81667282mr560504766d6.14.1767137770066; Tue, 30 Dec 2025 15:36:10 -0800 (PST) X-Google-Smtp-Source: AGHT+IFdWALg7FWe8HnFIGfMzmshFveG7DXhOdt7rpEnzHy14H+14CgajaaMGSxFNnYetgNtZv2I/A== X-Received: by 2002:a05:6214:23cb:b0:880:4c15:599b with SMTP id 6a1803df08f44-88d81667282mr560504496d6.14.1767137769569; Tue, 30 Dec 2025 15:36:09 -0800 (PST) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-59a18620337sm10349574e87.86.2025.12.30.15.36.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Dec 2025 15:36:08 -0800 (PST) From: Dmitry Baryshkov Date: Wed, 31 Dec 2025 01:35:52 +0200 Subject: [PATCH 02/14] Bluetooth: qca: enable pwrseq support for WCN39xx devices Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251231-wcn3990-pwrctl-v1-2-1ff4d6028ad5@oss.qualcomm.com> References: <20251231-wcn3990-pwrctl-v1-0-1ff4d6028ad5@oss.qualcomm.com> In-Reply-To: <20251231-wcn3990-pwrctl-v1-0-1ff4d6028ad5@oss.qualcomm.com> To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Jeff Johnson , Bjorn Andersson , Konrad Dybcio , Manivannan Sadhasivam , Vinod Koul , Balakrishna Godavarthi , Matthias Kaehlcke Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-bluetooth@vger.kernel.org, linux-wireless@vger.kernel.org, ath10k@lists.infradead.org, linux-pm@vger.kernel.org, Krzysztof Kozlowski X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2002; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=AG1LuEu35/QXARVDmQljJ6/X6wU6zxwBmWxtwK9pVwc=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBpVGHjmoSFavXQi3JlRn+Z2QMO9Tk/0rtLaWUNv pHS4GewQyOJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaVRh4wAKCRCLPIo+Aiko 1S++B/9RyP7SAXCM/MZIkkTS9QxNyh/wJ1yzA3IFsGEWaw0uinf2VvjekVO4joaHHPKkGhTVXDd 8BOqELjg7HLDo5E1037L+ZFMPTHeJeTqMUid/ELoPcdLZzqFsN0icUg6ALx/Biexleanj6SfQLQ VI0jBlNA5Y0PD8nXFxMvT2d6TxwiDTXbl/iCXW3yVBSjbA4Dk/M2d3/seAshcy0Ci6TBPs99q2K NO0sLSXgMLMIJGTcl4+XgowZ7CpnomXgFJstjr695of/roCI/KEg0DV2hQ2eITfnhRuKG8x+zwd lKpcwSLnv4Ji+P4FuzzfBz0AVoluNcbIwH2ysn4q3yNZdf8r X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjMwMDIxMSBTYWx0ZWRfX2S5e5CTC21SL 36IKbVvYimuXD3GH0FlqW+C3VhmOMlkUOCa9tdyEnAVxtzbuasrZs89tigE/f6sxwZdn2OGOAQm 6IBt6z6P4PKPkZjuYl8PqzBgUPGXC6IxEj30Apbn/CsbIFEo+urN8jpuMZhJx+53eDV+YoMSdWy /rzfrh9XA7HrXTqzYWxZ9TQ7sCSEbm08VmxF2syQAP9dNd+TvfJ22Gu8SXK0FSbK4Va7slaPBQZ HUXWR7aZWHYqLsUQdUmx8ZBFl5OnZAUlgTl1/2bx6J8KmhMXlApQ/XG3JFSpHTZvwHcZJbOU8rM EV2HvrBhHEGGYbNfVABQ1YGFdh0rA/NlHtk+4hakcDs6dfDYjolaMy4wxtWayKQPt/Nuc80TyDa 2VjUCUcOi70pqc3LaWuXiTEc37HYsYi+P5Qcde4EyAhGTYDG+MB4e70If82meQpvH8ZVK3LTe/P dr6dircN2gyqGYFPYAA== X-Proofpoint-ORIG-GUID: aBfhXC0sOYdIJ1Cftb_Yspt827-w3OOY X-Authority-Analysis: v=2.4 cv=KvNAGGWN c=1 sm=1 tr=0 ts=695461eb cx=c_pps a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=7G4NRjGX0UlV4bIyNksA:9 a=QEXdDO2ut3YA:10 a=pJ04lnu7RYOZP9TFuWaZ:22 X-Proofpoint-GUID: aBfhXC0sOYdIJ1Cftb_Yspt827-w3OOY X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-30_04,2025-12-30_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 adultscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 clxscore=1015 lowpriorityscore=0 spamscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2512300211 The WCN39xx family of WiFi/BT chips incorporates a simple PMU, spreading voltages over internal rails. Implement support for using powersequencer for this family of QCA devices in addition to using regulators. Signed-off-by: Dmitry Baryshkov Reviewed-by: Bartosz Golaszewski --- drivers/bluetooth/hci_qca.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c index b54350317a43..d1402a344063 100644 --- a/drivers/bluetooth/hci_qca.c +++ b/drivers/bluetooth/hci_qca.c @@ -2230,6 +2230,18 @@ static void qca_power_shutdown(struct hci_uart *hu) qcadev =3D serdev_device_get_drvdata(hu->serdev); power =3D qcadev->bt_power; =20 + switch (soc_type) { + case QCA_WCN3988: + case QCA_WCN3990: + case QCA_WCN3991: + case QCA_WCN3998: + host_set_baudrate(hu, 2400); + qca_send_power_pulse(hu, false); + break; + default: + break; + } + if (power && power->pwrseq) { pwrseq_power_off(power->pwrseq); set_bit(QCA_BT_OFF, &qca->flags); @@ -2241,8 +2253,6 @@ static void qca_power_shutdown(struct hci_uart *hu) case QCA_WCN3990: case QCA_WCN3991: case QCA_WCN3998: - host_set_baudrate(hu, 2400); - qca_send_power_pulse(hu, false); qca_regulator_disable(qcadev); break; =20 @@ -2414,6 +2424,11 @@ static int qca_serdev_probe(struct serdev_device *se= rdev) } =20 switch (qcadev->btsoc_type) { + case QCA_WCN3950: + case QCA_WCN3988: + case QCA_WCN3990: + case QCA_WCN3991: + case QCA_WCN3998: case QCA_WCN6855: case QCA_WCN7850: case QCA_WCN6750: @@ -2438,12 +2453,7 @@ static int qca_serdev_probe(struct serdev_device *se= rdev) else break; } - fallthrough; - case QCA_WCN3950: - case QCA_WCN3988: - case QCA_WCN3990: - case QCA_WCN3991: - case QCA_WCN3998: + qcadev->bt_power->dev =3D &serdev->dev; err =3D qca_init_regulators(qcadev->bt_power, data->vregs, data->num_vregs); --=20 2.47.3