From nobody Tue Feb 10 01:16:18 2026 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 3802D314A95 for ; Mon, 19 Jan 2026 17:08:04 +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=1768842485; cv=none; b=h4mW+3FXC/+THPB3x+sRH2RL9mXyDK6o1irB+8CASc6ZjLhrgUkOkUB+Kcp5eNn+9bzhzq5CB28EZYjT3rMuDeniEEbV0N/WDLAuy7jdRM+6XH4K4ngSOtvNDMvURL70UoMsuIYfeE1utPrlSN/OyMZ8imt73zpHQ7EvsIezoKg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768842485; c=relaxed/simple; bh=8ro0A6tVVAR8N1a3EJt6gZeL+nfKC2FamuLo+mTTcgM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nmGwF1Xgi5UXNM7IrTtTWVhkhIDLtta2hhoA1hi7Qn7Cdgt2R+4kVza/xavTyYmmxbAk9hHHjQL0toXA9Pv/yXxU3KUcnNdbfIGE7DPVeeemje0ZBJBYDSkOfMkgGCU76ajzmOYBfRsmhhDgu41+wDTI0kOhERVHQsYCOgiSgqU= 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=Phequo9S; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=VDd80JvC; 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="Phequo9S"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="VDd80JvC" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60JBDKm41440810 for ; Mon, 19 Jan 2026 17:08:03 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= SuVJjvlCTXRFYAFx0rLVTZXUOY4TgeWGafNaZ/GaNBM=; b=Phequo9SA/a/PCp6 NlJTaZczZwRqq5IeMCtKydM+r4rs+si1FNopaHWIet3RsQT+eS/jbWhJJh4fyxQO vQXM0Hw4lqk1857DMIpaXnUu7ev9iFLv/J5BqPXm3ENvNSCnP509TEa/l89uiQP4 z5LO2Db6QVmS+wvwIG0Q1efI2idKPV3YdotGlQ3o+skN5/LP+9pp9t5i9vfA3pvE 9Fi9E2QDq0GPHSjbtgrpE3BPCE4hqTjlJTQilOjHxdfwJHUYv1ALyfhY6FVP0C1X IeuoGR6RPRPKAkDHRAgrv+8ozc3DifumhNmTn+Fckove1eazGIRhNp3V7ceZYNqp uE+Eqg== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bskj3h0x6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 19 Jan 2026 17:08:03 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-8c6a7fb4421so726959485a.3 for ; Mon, 19 Jan 2026 09:08:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1768842482; x=1769447282; 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=SuVJjvlCTXRFYAFx0rLVTZXUOY4TgeWGafNaZ/GaNBM=; b=VDd80JvClWjQzDLy4AbsWcvp1PRqqbyPkZUywD2G2cSeMADC7i3QkuiWDGDO7Xofp/ kD6f21HbGqRNmxjBixrorR2Eqgo0/v3KDsTuLuxElGaGofA8OjNF4Fbm8KJZAnIeL/Qg okqg7YAprQR96jCn1EiyWHcjO3h1KYAiIZjKHeoDkkx6LjszFWhgQ032TZNypUKlw/z4 bqT81gKtdYFOX1h3LSRssliU81F66ZOQb7nTmwtAL3+yf+rcy0cuuVV9Ko8P4UWfIPcK 3oW7AHvjxSh5aWAZHiQgkzTF8hJ+HIUwsCAPdc1DvpEoi6Ml4YwS2WsvDCgN/MQlpCP8 hdvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768842482; x=1769447282; 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=SuVJjvlCTXRFYAFx0rLVTZXUOY4TgeWGafNaZ/GaNBM=; b=xC7EuZpiexy1iIOxOHILT8BzoGmBp7vYQb2+gbyWtJc8ewqqTerJMpYLVxFTI5FqEk CxZcRURMAfclIKLv4fTYLk+SqcCo3EAgL38l19tA4kDgr5ojnnin5n8sCv19nc3A2pjD M1KsW2qMzzpp6/3uXvW08gMo7b0OkCeTptIJxSRnOIfT9lXIpiML2+M7ibuh22//DrpN POx/v7e++yvruu+eKD72DvaNh4b9NN8fSF50MX6BQuTHZonKYIvDQYOQk9fMirDAFcUR uPKsEPixiduiXZ7/tiyiyyGxQEGnE/eTDrYiOOhs+7ZS9PhRNYe2Y/80nX0iZWpdV5vZ u+LQ== X-Forwarded-Encrypted: i=1; AJvYcCV4PZQ80PhvIq3H1BesaHO0w1VcmCbZcXzsWNtG5/1Ujb+tJkR7dTA0LVu1EIRJpQB1cn8wV8hDjKGLEro=@vger.kernel.org X-Gm-Message-State: AOJu0YxQmmyfWaZ1P9YbdxEy/q694QBvVCGCvuLCchvFe+cSiHhFI+Wf o0vyaioskgVlA+pJRgfbSyNEaCadK5J/hhFL7CHs+0bbEY2Sa66hQNmH+5uTwf1rHzR/+1Fwya7 jqwn4pk8tjmJZUK+JLvRss+lI9ZAssEdSFNHqPWKlpQBiBYvE2EeR8CLBFXynhUuLdYg= X-Gm-Gg: AY/fxX6XF5mX3rbmaHGj5qI28+YC3zq8vKGKEq27R0O9QlMqM6UfkeT35yvvUs21Qnt kcTRCdR1Irz2CkZFO2l83QQv64VIye8m/od2Q7kCDtIGX0Fdys6XKTRpsxpe9M7Fkdb982Eicv1 mJ2zP2GNEoNj0XKqFI8fFZMeT055oDMJU85B7o+HPl8BeNixzZx7EhnCRK85EIWAEWGE6iXHQHb c5n7cYQRF0orPWbMvbAYzR0weBU0dezaCFsfTESVAjQdVTzily7M1jriBgy4uJBTHFYVcUf0lch LbO7nPn02hjHsKq6VzkgVw2z+XKWrHtKgvwt0gTm4ebjV7L0a5TXBVCGRJM9FmR7mfAIWounS74 67Y7iTkJG7mX0JVVsGTiXYfDqLjXFHyRrC9Bc+dAx/lmW1EN1d4aW1zRhP6v/gvC08bRcCPhbNH uzdU+bLeJdE8z14MWUoYqeDSU= X-Received: by 2002:a05:620a:31a0:b0:8b2:e6b1:a9a6 with SMTP id af79cd13be357-8c6a66c833dmr1553064785a.17.1768842482476; Mon, 19 Jan 2026 09:08:02 -0800 (PST) X-Received: by 2002:a05:620a:31a0:b0:8b2:e6b1:a9a6 with SMTP id af79cd13be357-8c6a66c833dmr1553058985a.17.1768842481942; Mon, 19 Jan 2026 09:08:01 -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 38308e7fff4ca-38384e790a9sm32661211fa.26.2026.01.19.09.08.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Jan 2026 09:08:01 -0800 (PST) From: Dmitry Baryshkov Date: Mon, 19 Jan 2026 19:07:55 +0200 Subject: [PATCH v3 1/8] 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: <20260119-wcn3990-pwrctl-v3-1-948df19f5ec2@oss.qualcomm.com> References: <20260119-wcn3990-pwrctl-v3-0-948df19f5ec2@oss.qualcomm.com> In-Reply-To: <20260119-wcn3990-pwrctl-v3-0-948df19f5ec2@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 , Bartosz Golaszewski X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2075; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=8ro0A6tVVAR8N1a3EJt6gZeL+nfKC2FamuLo+mTTcgM=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBpbmTtJkjq8QRehFWdJgm9SxyOHvINLBQgHL/BO cfn6uEaosiJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaW5k7QAKCRCLPIo+Aiko 1dYSB/4mAIVY1Uxgf8lpFuKOsE8xM/V+Rh7rNNYEBCcBFyqY7YknsndW1uZpnqvilai7bnfI/Op nIxt8kq+/NYZJbRHnSlbUFkqCBgOfzIxabuLUwlljRP28UvhPnIcKmvYzcHsx0/1O7vql3olS48 Rx6E+Te7MXS+JhR1nrjfchlvXIxv3ZBIJR7zHMHfh47GMNJ7qSKkKmWM27Jr2glV9rskj/gYjLC F/mOIczZumwoeoKoWIXqv85nKT2P6BzJCeT83mPZsp53Fgpp61D6nn07ZRvR/mv+o1FpbSRVqtc 6ErJ+ElIWpYIknQPzscQ5kNNhH4dp2bX58K59Ooi0UUUoofS X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=ds7Wylg4 c=1 sm=1 tr=0 ts=696e64f3 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=WNkeAZsnUospxCs8hJ4A:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE5MDE0MyBTYWx0ZWRfXwpuaEiWO+vdz UqWsILKhTSQoBZRafb2nGRhHtNH2DjquLfTiCNXbXXf62KlwwwuirW/4NYan+hLx0rcipHri+3S WGyQBMRY1EazkyR8wepKgg4ogLPSu5qff/nwvZ7yntdhl6sV5vckcTnmoBldhCoqsu9AvyaEiT9 gw6YWkXbp/+ysxea1C8kdsue09ObZrpbGbwxruci9yrUhU7SC8FD9LZwSLJGwJl2tdKmPx0vnZ1 btTzjw4lLfrTx0R6kd50I0o/iUJIapLdp7sJogGA/1hui8aGyV19s0+EzV1u4lmtBHQ22ZVPcwO lE9H8T9bDt7kSGYryjZcakA0a127rHahrPyhbE2dvdHAyrJhq7BQFlDSVpd0goMJ3/WImgbFl7n uKZstgiu3nCgiyA07CDcUdX7l1GgU6kMWniQGhzZpXjYKJybDDNcgSjXWtYTdCyuzbudr2HuVeI GjrFlOgUOgok8kWZoCg== X-Proofpoint-ORIG-GUID: K93y6zzlUooi1-HBiop6KuRR_GD2zUaJ X-Proofpoint-GUID: K93y6zzlUooi1-HBiop6KuRR_GD2zUaJ 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=2026-01-19_04,2026-01-19_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 phishscore=0 priorityscore=1501 spamscore=0 clxscore=1015 adultscore=0 malwarescore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2601190143 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. Reviewed-by: Bartosz Golaszewski Signed-off-by: Dmitry Baryshkov --- 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