From nobody Sun Jul 26 01:05:52 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 6D45D3FC5AB for ; Fri, 10 Jul 2026 09:57:35 +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=1783677457; cv=none; b=Lhog4wuwdnc5JG+Yu59HPm+aY6wpABEuPF7X469RL9o7VmvqglA5TXmAxHqHu6UHEOiW0Tm0h64Qz+2ZJL+i8yJjsmApTHK0zoqNjFZyucIesIS6S5HUj1lhlXhLT36wM5bpnjc6Sw1r1ov8Rk0gfceZBNfUBOZCqtVFvq6D2ZY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783677457; c=relaxed/simple; bh=KEpaGYLJg/HFUQ4VCnAAAa4/K+FU5Ww1paHM4mUD9UU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=F+9Nb6GyD/lrriZy4+Od3dGSAxB7jpJTKxdAziT8d28GDNElmchR38aIvh+ZkZjSbx5hlaaI6hU6+RKrD82dc7Qn2BMRsv807tMVbNAY8sY+bonQsPezHmal2+1AoeY6J61Jc77vSucXv4sngEcdHDHF1cKjUYuYvSP4fi0t4gM= 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=imSWQRTa; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=PyUzAL8E; 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="imSWQRTa"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="PyUzAL8E" 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 66A7e0DZ188753 for ; Fri, 10 Jul 2026 09:57:34 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= 9xHOUNHGElRK8fUN+Vx3VXwXih6zrlUor3vLrF9tWE0=; b=imSWQRTawQRpzQNc mwknADJeEsLPlR3YFJePXgE+g2CgMtH6PhCsxzYu6wd7US5Nx69vYJpoMoZIt7uZ ydQPQQXaH/36mm5o6bTGsw8RUMelB+QtP0+646R8Ysv/anT/JPfsEa0737vDafR/ syB4JF2ODhttzmyxQ3Di+cAOryTXkiWl9jzHpF5QjWvMjYq8d18bipucQBiO4QXq 0/z8fwx0WM/zO2yfbM64iDJba7CvX7wwnV1nt2CO7N6/4YaKABMuRBFTcfCWv6GR 3v2NzycAq7TJgQrJlyycdYS46QCtw9/euhWSr4U6z2bMuYovgX8AoTDMyNXYr6LY lNmHiw== 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 4faeesuvrs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 10 Jul 2026 09:57:34 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-51c01ff996dso6776751cf.2 for ; Fri, 10 Jul 2026 02:57:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783677454; x=1784282254; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=9xHOUNHGElRK8fUN+Vx3VXwXih6zrlUor3vLrF9tWE0=; b=PyUzAL8EIpQpen8yYLJsDoF02JJal50kHQNDPB2OcRPVu05MZE7R9bztwGQBeONOxc csbL2jAtLCSZInY1AxxdxfPDBd3SOQxp+qFtG2SU9oz5xPK7Yv+aehkvGTdbdbF919ka FEjRcHkNe6tnLvxP2XGKf7x0bz8+haiHUyTOsjJ/UsW46ByTS5OMf69J6SeRric8AziM rO0MO1Yspkxgdx7M6qEIUKyJJxcoKGA+7ifO8HSWmdNxE1H6ZhPmHL3NlNLUIqo1koxD 6KNqEE/wdiRhGE9QD7yI0UzLiCQiQlmrYN0bTKO2p9xkkGgSop81JWwbMSqTzfFjrexC dp+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783677454; x=1784282254; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=9xHOUNHGElRK8fUN+Vx3VXwXih6zrlUor3vLrF9tWE0=; b=QcwhhBLMsfCAVzWX8v2AHtww8oo43ec+qXhikUtip3YSoljChsxwaktP9Hu4kXyANB AP94HRjKCm9WbMrL1HnH/pfiTRiT+KnJEzpg6XZ/aCPAQoI92dMlAv2tK1P942V5TVwb vwdeBH+qO+EUZJsnIzJO5/xD1AzIQOElcroiXbQ+JfWlfNNgcGzDeGUCSkIRmszy7dQc 882Q7ejTdqqIwRCkyRY11MuKZP5HLdB0BPBDjrgLAWIf6D26lyEycRsveuonFZcVWKzv sRV8ZwFrjEjOhZESkS8npW4pkf2WX9ENUWl0VpVe+hCrc8jRTg7HweabjM3uEUDc1LM2 jseQ== X-Forwarded-Encrypted: i=1; AHgh+RrITxGJMIFH9nhTgC0wFteXuAqnTv0DbNGAdcHo5Xnwx/E+/4kkqQ4JGOW3bH3F1Fs2mzwnlfZ50O31Dww=@vger.kernel.org X-Gm-Message-State: AOJu0YysY9lHNvppYapTkMjL1mObLbvYDr8t6a0n7oUDOLlPx+rYqYeY EXCCCwSI67UvsqgAg+WlsfYFdbmXC6NFzazFOPqorTXbZj3yOAzQS7ViKbIUF3fm85RxjhvepTE k5pUzGrzO7Afr74lBQU+px/x3uR064253J6WwP1xYviY6Rlq6ZjA9PJoZEt5EO8yt9XY= X-Gm-Gg: AfdE7cnHYdMJWy9z2agPyzS8w7M5KkSG6ze9f5tV7VrnCON8WfO+uCbWszc0xUfWo2E Syw0CpVHgkEOX0Z2Da8MddCgKGLDbUr4m6zbKN41VM+L0DsA+OMkQOrMebMoTzyl2lQfPBl6tiA Zyp8sL6U1Clw57ojvJkYgVVQuExlxr3ugLQLMq+uA3DVfWc7nEbvxIuEuoAjoFLcnirgktDPTM3 DkztTdANfEXKpPjprwJQ4tUxztGklgmwiwMAxOcV2f/AszvCkUQlmrrKTp1+3ZBWQMQU7cLEhUp +Qq/Duqd0+eNRVJO4pC2rGRdcVoXepwU0Y6vhoyMQuCU6ngr8C1OiV1iExZzZdgob3ljjfi79cY seD0sRPdqD+A9Zk0ovb1i6hlOuUEnjY1g+Be3zhGzeN5AfSZHIvmTdcfk2O/INGXNOgz6fKn2FZ 00vS3HUdGctCSJDxV7ovhawWJP+Vt5OUwrHcu93DofXRJ7ELFw4tb9G1lFOctsIjtNrwqrMPMO5 xX/8Q438cjaDY+mYUVT X-Received: by 2002:a05:622a:114e:b0:517:6435:c4ce with SMTP id d75a77b69052e-51c8b3e2e3dmr114665121cf.49.1783677453738; Fri, 10 Jul 2026 02:57:33 -0700 (PDT) X-Received: by 2002:a05:622a:114e:b0:517:6435:c4ce with SMTP id d75a77b69052e-51c8b3e2e3dmr114664921cf.49.1783677453240; Fri, 10 Jul 2026 02:57:33 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com (82-64-236-198.subs.proxad.net. [82.64.236.198]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15dfda815dsm265357966b.36.2026.07.10.02.57.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jul 2026 02:57:32 -0700 (PDT) From: Loic Poulain Date: Fri, 10 Jul 2026 11:57:27 +0200 Subject: [PATCH v3 01/11] Bluetooth: hci_qca: Add M.2 Bluetooth device support using pwrseq 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: <20260710-monza-wireless-v3-1-46253587af64@oss.qualcomm.com> References: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> In-Reply-To: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> To: Manivannan Sadhasivam , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-bluetooth@vger.kernel.org, devicetree@vger.kernel.org, Manivannan Sadhasivam , Loic Poulain , Bartosz Golaszewski , Dmitry Baryshkov , Wei Deng X-Mailer: b4 0.14.2 X-Proofpoint-GUID: MML69lJkWMuTjRw3Rb3MDzyOfe4UJf87 X-Authority-Analysis: v=2.4 cv=bbpbluPB c=1 sm=1 tr=0 ts=6a50c20e cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=MDeckJw97qnk8wCBExTehA==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=14bN-6-z4zEjTU3E0XQA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfX8W9suOgsx7Uz xdMVx0G5uG0iEHTCrbmexkR0jmsSlBhE1auM7/29VLuUVEbmiBdKOusmUMq7rxN8NkFtRUgG/am c2JVj5ewyc3bjqj+pVNqEkanQRDfMB4= X-Proofpoint-ORIG-GUID: MML69lJkWMuTjRw3Rb3MDzyOfe4UJf87 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfX5BjECzX7Q+XP 1ngqbizY4Vh3lH9mlSk8MYL5P9/SiMny9Rqx76nuqy0sXfulPPx5K3FBCr5p5w4j8GtbWNBfAuu qswqc93RJPhFojl6QnfI3/2yLQ2pG4L4eEm4fQ3u/DG+B5ietIj7MARIiaqbIXlQ/Q9VDqR9ShT ttOKgqjLFE1wLBTvajf2vyfkjgZ2krZRqfFdxS9B3FDw+BbzMMFK5IABp9hWHeBSZWcbykIOOuU 926ag4tXJB97K2S05TBIfWavRp5jjA01xQpX54vo5nubgkXeheqMDxIlxnpbG4vdkCK2eTIE93E mZ2pDyQ0bp2/5zT74OXY4YneSYiCgeCVlLkBinkal/GvhTkmkM4YnQ/DwZ54ypKhdPM8eBb+16S 2wm2l8VsuQdqNd8DQjZ0Rhd1bxkQiW/pBG1RmUcbHVA9f/yGTXUU8rfySNl22OR/8ftQbh52MSh 1r1Lv7yWqbmNeBJ1XxQ== 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-10_02,2026-07-09_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 suspectscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100097 From: Manivannan Sadhasivam Power supply to the M.2 Bluetooth device attached to the host using M.2 connector is controlled using the 'uart' pwrseq device. So add support for getting the pwrseq device if the OF graph link is present. Once obtained, the existing pwrseq APIs can be used to control the power supplies of the M.2 card. Reviewed-by: Bartosz Golaszewski Reviewed-by: Dmitry Baryshkov Signed-off-by: Manivannan Sadhasivam Tested-by: Wei Deng --- drivers/bluetooth/hci_qca.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c index 2444471956197bae62a1c4c3a776c5591780ec02..135c79e696aefe2b37ee7a7a668= 715360a1e2d75 100644 --- a/drivers/bluetooth/hci_qca.c +++ b/drivers/bluetooth/hci_qca.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -2445,6 +2446,18 @@ static int qca_serdev_probe(struct serdev_device *se= rdev) case QCA_WCN6750: case QCA_WCN6855: case QCA_WCN7850: + /* + * OF graph link is only present for BT devices attached through + * the M.2 Key E connector. + */ + if (of_graph_is_present(dev_of_node(&serdev->ctrl->dev))) { + qcadev->bt_power->pwrseq =3D devm_pwrseq_get(&serdev->ctrl->dev, + "uart"); + if (IS_ERR(qcadev->bt_power->pwrseq)) + return PTR_ERR(qcadev->bt_power->pwrseq); + break; + } + if (!device_property_present(&serdev->dev, "enable-gpios")) { /* * Backward compatibility with old DT sources. If the --=20 2.34.1 From nobody Sun Jul 26 01:05:52 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 850A43FBB6F for ; Fri, 10 Jul 2026 09:57:37 +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=1783677467; cv=none; b=j8er7mgJnwOoHU8QNw1baXS/Den168F3OGwrPYvlPY5cE3uvfJdwfUuTsV1ua73HW9dUSlmAsV44K6tBofTtWepWhxGjjFLw+y/27pzEeqBhlhp3zuFnw+c6lSkFZXu7boAmd2bQri4V8K0cR/IBF5kzj+jr7z6AM8dZXERZrxQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783677467; c=relaxed/simple; bh=SDP/HXgz4amfEH/BI3vkK16jvRVsmUt0sdawVFBJlw8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VTH06GpIF192QDXtoBNWVfnqQAzX/6rjc6dw+bgxCZGBhkwCKLUMnX4fr0t0ynMFRiVfjWqeKzCIazYi8c1TfpkkYOtsmfV/OZkiM4R1Z8x1I5bpBQ8XUhNTnnIFtMOk2hmpk1LtMTUwjPtUZn+j5w/e0oMyJo/nrIlV/aqyNtk= 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=bMEl7vZO; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=AyPfjdb8; 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="bMEl7vZO"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="AyPfjdb8" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66A7dWCU056458 for ; Fri, 10 Jul 2026 09:57:36 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= iPJCmDf+q7ppTTlm3G73k4uw7uFCawMqMX2beUHHwpo=; b=bMEl7vZOTf4dDadp EzlAQnUxEqs+ldnAmqhMDH0+LSqEFMW9vdihBed3ExQzkon4MXvnfTGGPIs3Jos7 eWtw2JCrYsKPXX5g/E1/4+zJp16/bdUJ9cD9nf9YTz1kwIhe6+6vqu7t4SPZWCtv F2pgZkZeHIrsUXJixKP70U7Rr5iY3LK1MaVXjb/KZq37oiu3CV6tdE4DhRznd+PR YwtkfXTqGpdyBz6/8feSqDJxMU8Td8Cd10LNsKx8cM9vjOUxJgkytYnPvB9D4C1J FuJ2n3Ck73w1qmWzovubuUv+npI/LRHUpwxiYXOWAUXdR2LzS8r5Pb4JZgl21jGg riBE/Q== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fajwtafpd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 10 Jul 2026 09:57:36 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-51c0d6a2f4cso7087711cf.3 for ; Fri, 10 Jul 2026 02:57:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783677456; x=1784282256; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=iPJCmDf+q7ppTTlm3G73k4uw7uFCawMqMX2beUHHwpo=; b=AyPfjdb8gJ4oonHJoGgQD37xzqVfXkXKKE6nAUc+U17wn02SnfC+mUe1ffzx3SsuUj PL29jAQIQoDgLQSPOeLUOUMribhORls1HeaZo1SVfUICCHvngr0wDjqiKCMBV3MFde6C CdhU5cI44h9pFC8m5DUwZgI12+54u4xNjZfrJArk+len157zoEzEMe5L5ROXBE4WjXAB yk2L2MypgPf8mIPzFodzJzZmfIG33fpRDl23lL7MSN3kbxvzVfqCY0dgeQvCXMoNSstu 96aAlsA7zKPNYc1Z+VCaGYkwz+v36RvATALCayDGXI2wKVJV8JmgH0cGtERX36XSZ4Md GjuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783677456; x=1784282256; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=iPJCmDf+q7ppTTlm3G73k4uw7uFCawMqMX2beUHHwpo=; b=CfwTPW7+PfKMs1yHeUEAM2dwNMoomkPOGMb584yrGvpt0mfCkrJ3oOysQgRCAZrf5g dGvi/xHkTfs7uXf4izWeo6G9F8L+O4E2SIbN+/6ERGEFihc16UVPNvfM94ZugBgp4psk UVZFYwxevodCzdRYO7Q/N5EdWQ3tIQZI+arkwLX0F08hjQ0yeSpu++pNRQQiPkaM8CQV gmZYa2NyQGUFmU/n6OUHCfOLBeilOdbdOTLB2tzZ/WJZg0hbrO6dKqYGg0J9WIGondsj KFFmDEyOfGni8jkL5HAGPokGqLByHjwMWwdja3wsYflveUwZSuXFJ4doJixlijAci3jJ PfhQ== X-Forwarded-Encrypted: i=1; AHgh+RpAN8MCEpzuwRKvzJn6rOLdd3sgu5bw8tX/hXo41FAqGNqSZeitKsWf9sVPWnCBi+EBaF4hAczH7MZkIvc=@vger.kernel.org X-Gm-Message-State: AOJu0YyNkA4OnfjKBqcuUzBnyrIyE2LUjxALhNV+vEQe2stEZ+Au1ie+ B3oAsM2XjqTh79fpp26FNA13jk2Ora3ITGhz6VSBC9826Dvoj5HWkFDeE0FZSXyDgg5jLSfXrdj efdt/h6264XXL3eBGQXfhRi9ZqrdzwToucXyQAARLldxIXVtHnjtzRkLOadyLV3W4+XY= X-Gm-Gg: AfdE7cmgRhpui8Ztcl87KZ9gHoJ0I5FgG8O5OadHileM0jnPzACuSfFP8qNbfrIPfla vzlbNK0wPzR4dC0mfm7asfhkUHJ8PTy2nWBopbi+iZ9pMsqL/hgKVD376DS432b26qao3/EnY1Y RNUQn/3jHbrWATX4PpDhdyf23niL/UF8dkfC5+sL3YpufLylAlE2GP/wzdUB4llyw1wLQg3vp9X yLzt1om0V2thQZPt1r4icUQNOiwTWevxjv2ifieMU5w8J3srDnxf7Hg2zz1dyLgfGGBSvgKaBZy TATZayxMFU6oWds3kpAALxnDD5W5G1YZOShgB/0RuX1EQ2s1C1th87VNKIMnPx806hp2oajUItn /n50Hz6qV4AfxWZadSy1KGxjjqJlsF9vlMKDkZcCzZM1pmyVF86UVzQL7Fo9DNMrw8U7XgVcrP9 B2hg3JqxZOY6YwMh+mTEpt8AkDLL/ytwufG20CNVDXVDh3r8eW7hwSOnqYIIhczSaZLnzLTE3Uv UvPI2TNCzNQtUtOAmQb X-Received: by 2002:a05:622a:4189:b0:51c:10e8:ac7 with SMTP id d75a77b69052e-51c8b45652bmr114762381cf.37.1783677455749; Fri, 10 Jul 2026 02:57:35 -0700 (PDT) X-Received: by 2002:a05:622a:4189:b0:51c:10e8:ac7 with SMTP id d75a77b69052e-51c8b45652bmr114762241cf.37.1783677455256; Fri, 10 Jul 2026 02:57:35 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com (82-64-236-198.subs.proxad.net. [82.64.236.198]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15dfda815dsm265357966b.36.2026.07.10.02.57.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jul 2026 02:57:34 -0700 (PDT) From: Loic Poulain Date: Fri, 10 Jul 2026 11:57:28 +0200 Subject: [PATCH v3 02/11] Bluetooth: hci_qca: Rename 'power_ctrl_enabled' to 'bt_en_available' 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: <20260710-monza-wireless-v3-2-46253587af64@oss.qualcomm.com> References: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> In-Reply-To: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> To: Manivannan Sadhasivam , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-bluetooth@vger.kernel.org, devicetree@vger.kernel.org, Manivannan Sadhasivam , Loic Poulain , Dmitry Baryshkov , Bartosz Golaszewski , Wei Deng X-Mailer: b4 0.14.2 X-Authority-Analysis: v=2.4 cv=XOYAjwhE c=1 sm=1 tr=0 ts=6a50c210 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=MDeckJw97qnk8wCBExTehA==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=wYtw_XDhO1ghKZOGarAA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-GUID: 6PB7bVi_2I3TK1LSKp_ttnHZhzCsUy1- X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfX9HYcOB4uW0u0 W47BJSieAZO3Y9fm1NO6Hj2smo8VSrX7IqhnobSaOPQVVBnVH2QyHCMLBI+/Bi2lHau9EUw+CBK OY5wWnhuJQfh/hPBB8sdof/UpwB+kyE= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfX+ywbRFzAjgiX /a6cuR4HzijrJvf0Zh2eFaF044VJRi7/GQVL3mKIRz4TJa2LStYg6n5pP9KmACMC8I2rvyvsL9z YAJAjFYQoOgkVsi3ZtydP7/y+WMgZ+gL0C0DKFA0nEEDTk0uTYRGaqpPZILvxSzZKOFa5V775rT yWVivkdYhdEeMbdhh8NCeKMezpe3nEF0GQHIJ/nUkWiveE4ZnAVu7NLGX+DvR0BrXUbEl4U5kni ir2dOKvqF7Jj7oBlsvTmbUs5I1Igz7/+Al1sWGsbImo/PERK7GhOu2EPkbx6EbcrY8XcGMiv0Ai M552TSTRiAVIm6fyH0Hb2E9wUj/fBig5SoBv5Pjh6EuBj8vuUiOvzbXuCiXTzgt8QhuZ5TqDd07 aFn99lXZJugYKwrFmvrRXQi+NkJK+tofpmB1VSrIoveKNXm4Tm8yFGLNLy9hIH2ADi9jnuhzosP gIX5gQ9MxBajxw+FP8w== X-Proofpoint-ORIG-GUID: 6PB7bVi_2I3TK1LSKp_ttnHZhzCsUy1- 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-10_02,2026-07-09_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 malwarescore=0 suspectscore=0 adultscore=0 bulkscore=0 spamscore=0 priorityscore=1501 clxscore=1015 phishscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100097 From: Manivannan Sadhasivam 'power_ctrl_enabled' flag is used to indicate the availability of the BT_EN GPIO in devicetree. But the naming causes confusion with the new pwrctrl framework. So rename it to 'bt_en_available' to make it clear and explicit. Reviewed-by: Dmitry Baryshkov Signed-off-by: Manivannan Sadhasivam Reviewed-by: Bartosz Golaszewski Tested-by: Wei Deng --- drivers/bluetooth/hci_qca.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c index 135c79e696aefe2b37ee7a7a668715360a1e2d75..17f436484e1e74d1dd690ada221= 34315abb767c4 100644 --- a/drivers/bluetooth/hci_qca.c +++ b/drivers/bluetooth/hci_qca.c @@ -2393,7 +2393,7 @@ static int qca_serdev_probe(struct serdev_device *ser= dev) struct hci_dev *hdev; const struct qca_device_data *data; int err; - bool power_ctrl_enabled =3D true; + bool bt_en_available =3D true; =20 qcadev =3D devm_kzalloc(&serdev->dev, sizeof(*qcadev), GFP_KERNEL); if (!qcadev) @@ -2501,7 +2501,7 @@ static int qca_serdev_probe(struct serdev_device *ser= dev) (data->soc_type =3D=3D QCA_WCN6750 || data->soc_type =3D=3D QCA_WCN6855 || data->soc_type =3D=3D QCA_WCN7850)) - power_ctrl_enabled =3D false; + bt_en_available =3D false; =20 qcadev->sw_ctrl =3D devm_gpiod_get_optional(&serdev->dev, "swctrl", GPIOD_IN); @@ -2539,7 +2539,7 @@ static int qca_serdev_probe(struct serdev_device *ser= dev) } =20 if (!qcadev->bt_en) - power_ctrl_enabled =3D false; + bt_en_available =3D false; =20 qcadev->susclk =3D devm_clk_get_optional_enabled_with_rate( &serdev->dev, NULL, SUSCLK_RATE_32KHZ); @@ -2557,7 +2557,7 @@ static int qca_serdev_probe(struct serdev_device *ser= dev) =20 hdev =3D qcadev->serdev_hu.hdev; =20 - if (power_ctrl_enabled) { + if (bt_en_available) { hci_set_quirk(hdev, HCI_QUIRK_NON_PERSISTENT_SETUP); hdev->shutdown =3D qca_hci_shutdown; } --=20 2.34.1 From nobody Sun Jul 26 01:05:52 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 C43513FC5A2 for ; Fri, 10 Jul 2026 09:57:39 +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=1783677468; cv=none; b=K4BCPPYQ2ktHqHDnEwD/vF7Kg3NHY8Jjb8wC4gtKMvdpvGaf3W/HIJ1Q+pPuBUlzirgJ8HvlPK+J6tGqegdLbe0OpPXUJnc83z003TajGNZoMYznvbrBjGJmyEiIEHD/Oy+GekuPYT1MQXEjKiqW/vRwVY9MzVkA5SyGo6dIKXU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783677468; c=relaxed/simple; bh=HIfcVmMHkZYIs7rqqG+zSzsIPysCUE8pCb2J0Z5fZPQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=It2J1RIkg0wN741c/BYgih15Nm09MGSehQCCbFe8WQ5hrSS1KyaU+epjkH3MHiAQPI0ki0PDOp63fZl8T0Ot7VDP1sQPqcS9TEOzc8Yf2HVFyzWJY5j0kDV7FctmyjY1zNgMYcAkwtTfoeuu1jejXt5vQlpwoD/Aon9d11YphzE= 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=PWK+AAdh; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WLruW8xL; 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="PWK+AAdh"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WLruW8xL" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66A7eJVh141558 for ; Fri, 10 Jul 2026 09:57:38 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= d1jQM4rScAUCNNkiH/SDd2OxhVyLL17zgo+FryLS9+k=; b=PWK+AAdhRO8WNsJl +58Ui5SCYYwGCsWUPZdeolK9sAAbT3CvK7SxyzbiK/tekjFjMRfwopNJRhdRWwCa NDsddLf+Cy2/RuRrK7hV3xPLBRziwyPrjwUTFiK3fjcKyI6swElWlO7XYczabsY1 13v1s5z+/j3BUMJfO4anJxXHHGIlm2/wFpog128+3q2C7DRIqPzVOYqu8EkhNjWR ugjDK1fvuD+E+RsmHekPuxWcq5PUHmiROSRnYrJ1E7s1Kjsliss2nB6O6JiIzGhI AdRurlocsE5EKcFEpZTp8MlKgN87rsGy4yz5sbNGyk41XV+9zxvZ7eKCaQ2k2zQk 42eSFw== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4faf5munpq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 10 Jul 2026 09:57:38 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-51a8b0a08d2so6227501cf.0 for ; Fri, 10 Jul 2026 02:57:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783677458; x=1784282258; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=d1jQM4rScAUCNNkiH/SDd2OxhVyLL17zgo+FryLS9+k=; b=WLruW8xL9VnHnzOKLzqlURMz32ulNtYH3v+ITS5asgAqGw3pbskq3LrMT74Okw6o7j ItgmxpmX79r9PLY3BpoorCqNNyqCjLJ4a3uAchSz1Xb60ymst2YbSzMX/c2Bopn05kfP cAl6IqppDMBmEwoQU480ep3N8VzRNut013s65pg/Wt3uj2Q3cmydP9yQNWCk6/oVy615 SLMN4B3Tu/YUSlQqZNt1UHMSzC7IDrj7bSM7bV2OXXhRJF/0HgxiLQ9BdOf7ZnhYZD2W C5QQDAj8Zujj8jyJ1xaHFOlVnrOYT/VcSlP87ztwON8d6EISXYvj6PGlh+e7lkNC+eHI 0Oig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783677458; x=1784282258; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=d1jQM4rScAUCNNkiH/SDd2OxhVyLL17zgo+FryLS9+k=; b=pk4XKuiX5L7xseIgLtLPa1DK3rEEXvgh/lUGbGkKdC/CJ8g94/05dEwuRWuzAFrC4x efgnD3Nmiaxb7hU3ZAC+bOdDdCisKjmImP9QIvNraCc/3yRUfeMsglF1+jbSaavTSOjs nYgqp46d/2ZDSyXIh4zE/gbXR69erEQ1jIwI+21hTYhfLxy9P7kX02HZ/eODOu0RcSCM VcqH56hpp5k2E4V1kiS0ISAoZWbXuzHLrMfvXfwVdGgE2CAY9byKCywcohtFrGHhEVYe XdcJpRdpEEABx22HAG3HUsCFB2OO1w/MUdvNQHf+D9tYYMo26yVAeYPQ0AOd8ohSqcpP cT0A== X-Forwarded-Encrypted: i=1; AHgh+RrBzKh6I+HKQouAAQ7sjDOBgC/5nLKUoXJBup/FesVTMYb8jB9mDNfrx9kkoXC/PIoK3ImgxGhsyjxpZTY=@vger.kernel.org X-Gm-Message-State: AOJu0Yx7yFmAYUaY+WQZU2i7jQU9/GCve8p3M0r3sF+DRODd0mQs0aFb 5pbWgyNqsa6mEggiTyKeQ9yr70d7HYPxKT/ADDg83Fu1SJWhvRnkAs5NC5G1voiOxP7+hIrlFLK sv9/52qoYmpY7m0QI80RGzHj8w6p+1vJn9a4ltozltXDkRTW/dcoy4gMnXjeuj+kWW9s= X-Gm-Gg: AfdE7ckPvFLbOKhsln+EOkKx9tSiOiUPjuO96JpnWJgAqomAuEjxxrsTtWxCPcTGw+c Bti1pZ5uCPkr6Zd2q+wKfFUVOLvAvGgGzLQUjVQEkTtqIkc0kotXHJj4urEENpE24FqG09lJsvO 7fcd+397rXYJskOPUPS4Ny6Ejym0B2BWS8u9QJxhDWeY+tTdDCMOCyS9tmLFqmJdbILrdYB1rh4 vaxkzIWBMwYqY+gk2srUxp33F0RwBLcyj2FzTkHY0mI5vQZo6cZ8bHNbQuCQVY9gzPBUJ7Ej7CP 3iWdvIkmF5SAQDwWh7SgK+yP8pOKWDLe/Ayy8JtRgK4VFnWtjlO00Swd+gdENbsHTESn02JqaXr RkgSxZ8f5acnVskvcEKgHvzYAMGw5hZahE2Id470KqjwVpytpjGCe7nhsVwqTy8I4U/u3KKFLF2 D/9joLXbg9dZY+him3CrrwUKkHduWqRyL/3tt7h7lC5yef5ybjSz+XIbtJ1rVMknQEDvvAeChjG buhDVuFMiSn7HvwqRbx X-Received: by 2002:ac8:57cc:0:b0:51c:7b13:62ff with SMTP id d75a77b69052e-51c8b43ca0dmr115561511cf.85.1783677457599; Fri, 10 Jul 2026 02:57:37 -0700 (PDT) X-Received: by 2002:ac8:57cc:0:b0:51c:7b13:62ff with SMTP id d75a77b69052e-51c8b43ca0dmr115561211cf.85.1783677457141; Fri, 10 Jul 2026 02:57:37 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com (82-64-236-198.subs.proxad.net. [82.64.236.198]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15dfda815dsm265357966b.36.2026.07.10.02.57.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jul 2026 02:57:36 -0700 (PDT) From: Loic Poulain Date: Fri, 10 Jul 2026 11:57:29 +0200 Subject: [PATCH v3 03/11] power: sequencing: Add pwrseq_power_is_controllable() API 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: <20260710-monza-wireless-v3-3-46253587af64@oss.qualcomm.com> References: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> In-Reply-To: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> To: Manivannan Sadhasivam , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-bluetooth@vger.kernel.org, devicetree@vger.kernel.org, Manivannan Sadhasivam , Loic Poulain X-Mailer: b4 0.14.2 X-Proofpoint-ORIG-GUID: tqf4Gko42WA29vJhUsZJ7degiYngLj36 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfX60K8dyekSEmi AIPPUU3x/47lJ3OBW0eZwN9nRf25Ppo09oZKYCle7pgGZDhs+/+1LJSpZ4CqyggQVhfLb4eufj0 BqlLPj47nlI7RURvvRKWAeFkHYV2fPY= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfXz9OqOBJwVULU FJqPQFVUUW2bBb+aVUBkk6BMpdMVP0okC7LaAWtshUObNgltJZt+EffjeZTvrosYsOmZFLFhl1N Ng7LlE9ugfZJUN5AHAD2cC42TPmTVwxbL1xdbQr5h5Z6o9U/KKAkCb87j01tUS/4ZNA6lpV+WU8 b/ojmIRirDLxiB0HOKAv8MjXrEOeqcB+fKYpaJLarfEYh2/L1dZdyIhPVW3hctmGe16yc7Bfn/c exrZoWhZ/yw6qW34tX4EbjrkCg3l8V0OrLzggv98ULOY6CqHVr5n/npNx5enyAwlWZzFbVsVPaQ 3EYZ9NSgqK/Z0v3oAX216NyOpt7FHnmxcHgibO7huo9I1fldSCNhYGeN9EkcPV+24FFfKkKoVUj xE83xhlGp/7OjAszsKXDQ9LVTgmAGfPKlP9hBhg3etLPQcO49W9dxt6FsqlPU7Yt2ZHeHsuQzbl xtZEOUqeZ1kLNlpFN3g== X-Proofpoint-GUID: tqf4Gko42WA29vJhUsZJ7degiYngLj36 X-Authority-Analysis: v=2.4 cv=N+QZ0W9B c=1 sm=1 tr=0 ts=6a50c212 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=MDeckJw97qnk8wCBExTehA==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=k8ejnUnrBbYq8YfVMWQA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG: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-10_02,2026-07-09_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 priorityscore=1501 phishscore=0 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100097 On some boards a power sequencing target has no host-controllable enable for its function, for instance when the enable line is not wired up to a GPIO and is hardwired to an always-on level. The pcie-m2 "uart" target is one such example: when the M.2 connector does not route the W_DISABLE2# signal to a host GPIO, its enable/disable are no-ops and the host cannot gate the Bluetooth function at all or exclusively. Add a generic pwrseq_power_is_controllable() helper. It reports whether the target's final unit provides a host-controllable dedicated power actuator. The unit can implement a new optional per-unit is_controllable() callback, reporting whether that actuator is effective on this instance (for example depending on GPIO presence). If the unit does not provide the callback, it is assumed to be controllable. Note this only describes the target's own enable actuator. It does not imply that a power-off reaches an electrical OFF state as a target may have multiple consumers. Also, this does not restrict consumers from calling pwrseq_power_off() either, which remains valid to drop a vote on shared unit resources/dependencies. Signed-off-by: Loic Poulain --- drivers/power/sequencing/core.c | 39 +++++++++++++++++++++++++++++++++++++= ++ include/linux/pwrseq/consumer.h | 7 +++++++ include/linux/pwrseq/provider.h | 9 +++++++++ 3 files changed, 55 insertions(+) diff --git a/drivers/power/sequencing/core.c b/drivers/power/sequencing/cor= e.c index 02f42da915985339d3de507fc36dd158b0035a99..35df55312a71e9dfd3f24a8199b= 539746466af36 100644 --- a/drivers/power/sequencing/core.c +++ b/drivers/power/sequencing/core.c @@ -72,6 +72,8 @@ static DECLARE_RWSEM(pwrseq_sem); * this unit. * @disable: Callback running the part of the power-off sequence provided * by this unit. + * @is_controllable: Optional callback reporting whether this unit's + * enable/disable actually control power. * @enable_count: Current number of users that enabled this unit. May be t= he * consumer of the power sequencer or other units that depe= nd * on this one. @@ -83,6 +85,7 @@ struct pwrseq_unit { struct list_head deps; pwrseq_power_state_func enable; pwrseq_power_state_func disable; + pwrseq_is_controllable_func is_controllable; unsigned int enable_count; }; =20 @@ -104,6 +107,7 @@ static struct pwrseq_unit *pwrseq_unit_new(const struct= pwrseq_unit_data *data) INIT_LIST_HEAD(&unit->deps); unit->enable =3D data->enable; unit->disable =3D data->disable; + unit->is_controllable =3D data->is_controllable; =20 return unit; } @@ -991,6 +995,41 @@ struct device *pwrseq_to_device(struct pwrseq_desc *de= sc) } EXPORT_SYMBOL_GPL(pwrseq_to_device); =20 +/** + * pwrseq_power_is_controllable() - Check whether the target provides a + * host-controllable power actuator. + * @desc: Descriptor referencing the power sequencer. + * + * Some power sequencing targets provide no host-controllable enable for t= heir + * function on a given board, for instance when the enable line is not wir= ed up + * and is instead hardwired to an always-on level. For such targets a call= to + * pwrseq_power_off() is still allowed, so that the consumer can drop its = vote + * on the (possibly shared) resources, but the host cannot gate the functi= on + * on its own. + * + * Returns: + * True if the target provides a host-controllable power actuator, false + * otherwise. Also returns false if @desc is NULL. + */ +bool pwrseq_power_is_controllable(struct pwrseq_desc *desc) +{ + struct pwrseq_unit *unit; + + if (!desc) + return false; + + unit =3D desc->target->unit; + + if (!unit->enable && !unit->disable) + return false; + + if (!unit->is_controllable) + return true; + + return unit->is_controllable(desc->pwrseq); +} +EXPORT_SYMBOL_GPL(pwrseq_power_is_controllable); + #if IS_ENABLED(CONFIG_DEBUG_FS) =20 struct pwrseq_debugfs_count_ctx { diff --git a/include/linux/pwrseq/consumer.h b/include/linux/pwrseq/consume= r.h index 3c907c9e1885dc2958043a9a733fbe20bdf95f6e..ea2b87a521bceb7fb51e79c3b03= fdb50f38bf94f 100644 --- a/include/linux/pwrseq/consumer.h +++ b/include/linux/pwrseq/consumer.h @@ -25,6 +25,8 @@ int pwrseq_power_off(struct pwrseq_desc *desc); =20 struct device *pwrseq_to_device(struct pwrseq_desc *desc); =20 +bool pwrseq_power_is_controllable(struct pwrseq_desc *desc); + #else /* CONFIG_POWER_SEQUENCING */ =20 static inline struct pwrseq_desc * __must_check @@ -58,6 +60,11 @@ static inline struct device *pwrseq_to_device(struct pwr= seq_desc *desc) return NULL; } =20 +static inline bool pwrseq_power_is_controllable(struct pwrseq_desc *desc) +{ + return false; +} + #endif /* CONFIG_POWER_SEQUENCING */ =20 #endif /* __POWER_SEQUENCING_CONSUMER_H__ */ diff --git a/include/linux/pwrseq/provider.h b/include/linux/pwrseq/provide= r.h index 33b3d2c2e39decafac6c6fca9254ad4329d90e94..42c7a37355869ecd0ae8e59b3a8= c8716c7ff9ce8 100644 --- a/include/linux/pwrseq/provider.h +++ b/include/linux/pwrseq/provider.h @@ -6,12 +6,15 @@ #ifndef __POWER_SEQUENCING_PROVIDER_H__ #define __POWER_SEQUENCING_PROVIDER_H__ =20 +#include + struct device; struct module; struct pwrseq_device; =20 typedef int (*pwrseq_power_state_func)(struct pwrseq_device *); typedef int (*pwrseq_match_func)(struct pwrseq_device *, struct device *); +typedef bool (*pwrseq_is_controllable_func)(struct pwrseq_device *); =20 #define PWRSEQ_NO_MATCH 0 #define PWRSEQ_MATCH_OK 1 @@ -26,12 +29,18 @@ typedef int (*pwrseq_match_func)(struct pwrseq_device *= , struct device *); * this unit. * @disable: Callback running the part of the power-off sequence provided * by this unit. + * @is_controllable: Optional callback returning whether this unit's + * enable/disable callbacks actually control power on th= is + * instance (for example when the controlling GPIO is wi= red + * up). If not provided, the unit's power is assumed to = be + * always controllable. */ struct pwrseq_unit_data { const char *name; const struct pwrseq_unit_data **deps; pwrseq_power_state_func enable; pwrseq_power_state_func disable; + pwrseq_is_controllable_func is_controllable; }; =20 /** --=20 2.34.1 From nobody Sun Jul 26 01:05:52 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 D4D2A3FC5B9 for ; Fri, 10 Jul 2026 09:57:40 +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=1783677467; cv=none; b=ZKjz6uo73PkPL/9IqVMUGvwiIyGWg+4/wIHMlw+/0bhsADk3ZtHZavTaM2GsSEt5fQ7vwP1apTmSqd16Vg+8QVql/ROAI1kBC4y73IBpiGL6/PQIx85uqqKXmk9ucrR5sai9a6U2d0+QEXQAqSZLKJczp08IdNCQeE4hXPVFor4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783677467; c=relaxed/simple; bh=2FBpwvvQE75I5khIUailuHtmF+KaL1qEU+l8PSLJfdc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AGXY5Jrzot59rCuVMLv7MLMfuDcd1Dn9/pVZMi/hLvQLRpcdSdTAu4hO4IQNz5b/zTM9HIyeb4IKOOIruwf77Cdyr/JV2Yq3uLed8qVyl/s8I9EpQD0OBUtZhTzfG90L/LOHXwUXpy89VOBKdzLHXRGJfgqJx6HodYE/xbqz+FU= 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=JH4UsoJa; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Z61Sha5x; 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="JH4UsoJa"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Z61Sha5x" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66A7dW1h056464 for ; Fri, 10 Jul 2026 09:57:40 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= hRa1V0rI3XaAjqfNbDQPKrOYUHx+ncbEbofR/K207A0=; b=JH4UsoJaIxL9Qnjt EDqt7UIvTRB5R1k6fgCRhtToC1oYoDSqCv+GjTm5MEd7ej2Z5jDAmIUWkIj+6+qU lim9C3adByloFraelPCK2neFe5Gmr4HaFA41CM7W7WqFEXO8pnDMnr8fiB1pGIcX w3ONI6cP9njcHc2Uln7Y63nl8B2DaBvD/MctKrnfv0g1jvQQEET8EM1+LjEdIA4P vW53GtNes2rbLtve+HR/v+R/Vuu5Vt/AlC3OMVewk+Fto1X02rQI/e3h+lALOn6x MScoikM+O2ChKkNm42YUYoN4AgHw878FRtMMv8rdwQXBlYrXmvkiAyPoX8xQxI2N m0ZR6A== 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 4fajwtafpr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 10 Jul 2026 09:57:40 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-51c110a3b6aso10113911cf.1 for ; Fri, 10 Jul 2026 02:57:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783677459; x=1784282259; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=hRa1V0rI3XaAjqfNbDQPKrOYUHx+ncbEbofR/K207A0=; b=Z61Sha5xuv+KyJpfvYsi0L8SRPDwV2+t0cuzTNY9K4eH5rnUyaz6Gr4A66yeM547id MK8d38lbM/frxnF2NnWTiUnYarhgaxdQTmGW9rgLOSpf34PYAm+hjiBHayfdDBIvSEi5 KoX+KEJt0y7WGzTP5+aRNLrZUI3ixlM0KX4U1+0qOtG8iny4GZV+LkUExXKlpmElOYYh 0g6PjYmzMBtZb4kHaGVeH3UaABBgM7IE4jix8OKzjuDOBiOoVSGDBZwxgZ0o5UEWiPZB oVUj0/CCAAjysBTY0KIA0EbbJhZ15w9tPqoyRFbOfSDBCCxUqhbQuOr+VeCyT2Dw7dDh CtOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783677459; x=1784282259; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=hRa1V0rI3XaAjqfNbDQPKrOYUHx+ncbEbofR/K207A0=; b=FHW24W/JCiCIcqcDdZDTh+Ctettqi81PtKpy4aDaALw/Tz9deakzOI8EfXVTOLfZt9 XTc3r/cZ7V1nicBbBwSFM7qPeixDBWHXl9OmO0obAc+fq4Wt9IzSfdp0Qil++KxYDcUr qo6/qm0CXdPAYKDhik21x3Xl6m51+GPiNUbZQNYTsvzk5mGZ5rlFXmkd9Er3r812FIVn /Jkpz+agKl341zzKv7Mq9xmhuHMYnIAR9ijWqPBkPNJ7NBqrcyIpDm3S1sG+oXNR+tPQ Vy4rvP1G33JTjCRtIUU8Rgs5NRlJqqSupQJZH9O6SntDsaSMWnx3SyWABJjCQ7eLKCZb pqsg== X-Forwarded-Encrypted: i=1; AHgh+RpmGNcM0J2H0Sl/zOFLEzC0BgPE3bAe68ztr3eVYmMNYWqokL+c3hkvm0MGLfx1wB8JWuCBxdAzeALOa9Y=@vger.kernel.org X-Gm-Message-State: AOJu0YzIi1QsApB2Ctxiu24BiAhN/XgMTYr89ITkhPp0D9D+POIYrL0w WHgNTpSS5vArJ1iiQD9MAkPE3aBJ8cNLWR4Dw2DUkYI2kfzWM77ewLsdgaaO4K2zM/9QXE0MXdE E1aSalKB8+G2mp1JovNTNNdKwHMf7XSGxUTBTIvMs7leHpykPK+0BOIoo2diyAYcjcpw= X-Gm-Gg: AfdE7cn91iGyTvjEyKkRJ4r9CBfaw/EPzl1Rl19+IWLBrc5XT/ATPeSYHLttAlnwhve 97UKi8EBEuHrXAoPtLdFsQmOmL8qOFr65spPelu9HebtTBUWjyv6sibVql0JjTOZHVRVSB3xOGZ qDML6gLKfthNcE7skXvNU2/guSXYRQA1fs9NE0hS84n4KWq4w6IbcYSyt+BilYQCSGvUUMjnEKa rystzEhMdJjQEZChE5AQRgPOfm2OaPeWcGbHx4ksp6g5pjMkUbBE9Zgalj0sPrwFzUtBmexVj6Q b4+Nozy0MhsC4RtHvws0pb5+If+ZkP7Npvrp1MAMudcvlV7dl+QGIdvuz1xFdk1RaL/ZzJlYoLD RUpSoQO9+KCS76bF9hRxxo7kaesF7wJB3j3Vr7uLscHrPhGBScE9+18w6FZH3B3AmE4lXJ895ay x05JRTlYEKDbIOt5c1faCPPZLzuwPZOM//OJuprHNrazX+ZVC1RIbJa7ULw/Gl8TccJY2OIWtCb oj9o9ZfMDrTcYYhN7jd X-Received: by 2002:a05:622a:55:b0:51a:88f8:bef2 with SMTP id d75a77b69052e-51c8b3daeb9mr118302781cf.28.1783677459272; Fri, 10 Jul 2026 02:57:39 -0700 (PDT) X-Received: by 2002:a05:622a:55:b0:51a:88f8:bef2 with SMTP id d75a77b69052e-51c8b3daeb9mr118302571cf.28.1783677458821; Fri, 10 Jul 2026 02:57:38 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com (82-64-236-198.subs.proxad.net. [82.64.236.198]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15dfda815dsm265357966b.36.2026.07.10.02.57.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jul 2026 02:57:38 -0700 (PDT) From: Loic Poulain Date: Fri, 10 Jul 2026 11:57:30 +0200 Subject: [PATCH v3 04/11] power: sequencing: pcie-m2: Report power controllability 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: <20260710-monza-wireless-v3-4-46253587af64@oss.qualcomm.com> References: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> In-Reply-To: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> To: Manivannan Sadhasivam , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-bluetooth@vger.kernel.org, devicetree@vger.kernel.org, Manivannan Sadhasivam , Loic Poulain X-Mailer: b4 0.14.2 X-Authority-Analysis: v=2.4 cv=XOYAjwhE c=1 sm=1 tr=0 ts=6a50c214 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=MDeckJw97qnk8wCBExTehA==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=ZbPLKLkBM29APCUVJXgA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: Vl6VjnM5tleFn7TITzjHuh1sDItQNmlB X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDA5OCBTYWx0ZWRfX0GbRpasuEbbe ulrmExteyKpc0492AqNhXEpdiOQo1xlHPNoSpM1vKqbaaGvS25e3R/WiMy+BURYIneNv2/aUth5 cUKb6buNwpO9JNPH5itH0gur1naSDpk= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDA5OCBTYWx0ZWRfX+JVPsen5F0+o 1s0oNWiRKNE7z5VE6K8Z+CUq7qtH4YV+qvO4vFIIlNXvWyQv44CdSEAQswnVTYPaSSu8OCoEI3z HzZtSXFPVs0QDxd8sARyvP17LBEndBYNg/TwLIqg2pIs+xwXiElw0j5qhu5EGuEgGuaK5wlxXNB IaZsEu8G1+CQOz52/E1KC6jSRyix6tIdwkXkL1evZ2cKelR6mP75+wJ4ZOlABWwZI9GRCNcTgwp 40tccKZPqu/W38z4ptL3btQuNzPXRsFqUxuEOYSnx8Xepaga0ALto+eqH1Nca16SKBYGgej5/Kq tu+fXrZSFaAL9gqZT/t6OtkO2Tf80RV9PsJ3Y36TNUHeQMfhfygrQDblMlh07hr3ZR9rExGlEex 6NhMO/XhXSgwkbWwNh1HKSyhKhZHNMtu3Ms/vtSgC6AMHYLuBkKq5AtRbk4zQtj9ZXNZT4bmmuf ZKG145e2hd4i8BWKiPw== X-Proofpoint-ORIG-GUID: Vl6VjnM5tleFn7TITzjHuh1sDItQNmlB 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-10_02,2026-07-09_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 malwarescore=0 suspectscore=0 adultscore=0 bulkscore=0 spamscore=0 priorityscore=1501 clxscore=1015 phishscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100098 The M.2 Key E connector gates its functions through the W_DISABLE1# (PCIe/WiFi) and W_DISABLE2# (Bluetooth) signals. When a signal is not routed to a host GPIO, the corresponding enable/disable callbacks are no-ops, so the host cannot gate that function's power on its own. Implement the per-unit .is_controllable() callback on the "uart-enable" and "pcie-enable" units so that consumers can query this per instance (based on the runtime presence of the W_DISABLE2#/W_DISABLE1# GPIOs) via pwrseq_power_is_controllable(). Signed-off-by: Loic Poulain --- drivers/power/sequencing/pwrseq-pcie-m2.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/power/sequencing/pwrseq-pcie-m2.c b/drivers/power/sequ= encing/pwrseq-pcie-m2.c index e3ba9169144dabbf0c553c0a4302c3b511fcaaa1..4bcd5078609da1be966ab30c73c= ffae5e578934f 100644 --- a/drivers/power/sequencing/pwrseq-pcie-m2.c +++ b/drivers/power/sequencing/pwrseq-pcie-m2.c @@ -84,11 +84,24 @@ static int pwrseq_pci_m2_e_uart_disable(struct pwrseq_d= evice *pwrseq) return gpiod_set_value_cansleep(ctx->w_disable2_gpio, 1); } =20 +static bool pwrseq_pci_m2_e_uart_is_controllable(struct pwrseq_device *pwr= seq) +{ + struct pwrseq_pcie_m2_ctx *ctx =3D pwrseq_device_get_drvdata(pwrseq); + + /* + * The UART enable is driven through the W_DISABLE2# line. When it is not + * wired up on this connector the enable/disable callbacks are no-ops, so + * the host cannot gate the Bluetooth function on its own. + */ + return !!ctx->w_disable2_gpio; +} + static const struct pwrseq_unit_data pwrseq_pcie_m2_e_uart_unit_data =3D { .name =3D "uart-enable", .deps =3D pwrseq_pcie_m2_unit_deps, .enable =3D pwrseq_pci_m2_e_uart_enable, .disable =3D pwrseq_pci_m2_e_uart_disable, + .is_controllable =3D pwrseq_pci_m2_e_uart_is_controllable, }; =20 static int pwrseq_pci_m2_e_pcie_enable(struct pwrseq_device *pwrseq) @@ -105,11 +118,24 @@ static int pwrseq_pci_m2_e_pcie_disable(struct pwrseq= _device *pwrseq) return gpiod_set_value_cansleep(ctx->w_disable1_gpio, 1); } =20 +static bool pwrseq_pci_m2_e_pcie_is_controllable(struct pwrseq_device *pwr= seq) +{ + struct pwrseq_pcie_m2_ctx *ctx =3D pwrseq_device_get_drvdata(pwrseq); + + /* + * The PCIe/WiFi enable is driven through the W_DISABLE1# line. When it + * is not wired up on this connector the enable/disable callbacks are + * no-ops, so the host cannot gate the PCIe/WiFi function on its own. + */ + return !!ctx->w_disable1_gpio; +} + static const struct pwrseq_unit_data pwrseq_pcie_m2_e_pcie_unit_data =3D { .name =3D "pcie-enable", .deps =3D pwrseq_pcie_m2_unit_deps, .enable =3D pwrseq_pci_m2_e_pcie_enable, .disable =3D pwrseq_pci_m2_e_pcie_disable, + .is_controllable =3D pwrseq_pci_m2_e_pcie_is_controllable, }; =20 static const struct pwrseq_unit_data pwrseq_pcie_m2_m_pcie_unit_data =3D { --=20 2.34.1 From nobody Sun Jul 26 01:05:52 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 C73A83FC5B2 for ; Fri, 10 Jul 2026 09:57:42 +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=1783677468; cv=none; b=XqUxHA8dCjtBIPVGDkmzeC/YP7lljd9kquRp7iuD2fv11mRyofQMHB85uWqcSBLKC6nmBgqm/gM8yyp59rIx9unKuqul6jwuWeVXa2JDi61ygkgm81h/HmNzL7J5TxqcFjDF1RZUQmI4B4N1jjZuNpXiz61t1LVcBtTrVd5404Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783677468; c=relaxed/simple; bh=7I0RHdk3qWyJVFH388ZwLbLetJ7qn/3xCwzAVbmebN4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EHdKEErCpVqZdHcnAYAwIMhqkqpJhw02/hbR96z7cJqMvLzNcYWE9mQ0shobtu6JNiX3nVaQgkrTEZ6V5TYPpdatOXnz5XOCPvaRuIrMCNm7BtHXVi54bT8CD4pTewY8uY3qB2CY56dqexK5gfpvL3xVwYQ1ti2ZKfrwtbBYeU8= 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=GMR9edp4; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=N5lsTuVF; 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="GMR9edp4"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="N5lsTuVF" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66A7dVIi235286 for ; Fri, 10 Jul 2026 09:57:42 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= GW8pkbZvfYORJjmA07dNF76DD9uMqzlV8iaeANQ36+M=; b=GMR9edp4MEDRJZ3d eefnwfkR+g07cZAGReOZ0R2RW5AXUSz3E0WrR7XQ/vsYDCkQWqrYaX5k25zDHyvA UP8QuxYnWrp15YFPdGb1JaK1fJK30PX2gHZIsFAPByTMSLbFLi7Qk6vWfshIuSgg VCsLeDYBYFjRvXe6aSyyzN3O28sJTpshEOOXrHOvPQ/6avygar1zLHeScandaO4N 9sl+zVyEzmWe6lgGp16+A/mT5iysCDAm/YWqdaPIfWjaSEzcubYt55MzAhRmW1Mk nhyDg9ZtzMI6sM2lluobJROKOeoDbsZq6i8g8o5l9b65dgluh2EPCx52jsGQKb0m duQ9BA== Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4faeg3kwrj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 10 Jul 2026 09:57:42 +0000 (GMT) Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-8f1e4e0eac1so11001696d6.1 for ; Fri, 10 Jul 2026 02:57:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783677461; x=1784282261; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=GW8pkbZvfYORJjmA07dNF76DD9uMqzlV8iaeANQ36+M=; b=N5lsTuVF5QT24cUfIAsvdKWTqTWkmoWTsWqbu5LPXSzzfTNBRSzcKCI6FA0d2J3kr0 6sB2yg9d14TzGufEwAKyR5cKggRMm6lY4Rbk7dGXjdyDuNnz0/djGs1o1YKLPNwnAZd7 9mDLrhpfA4z0RxVVqVj6bih2EXcKDHkUgtbjJuvCtgd9FwQie4hipyqywuOGUl2kG75S HrFJaz6SEgFlAmYnnqZTbRX5osR5HCuvdIlAb43JzoiFbNsHheOLjCXMzfL47NXxQH3D krm0eHVw0douH2qWm1R5hkmuwKv6g801OXeAapCNB+ps96L7vEzBWkCYIcBqz1YderH5 x6fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783677461; x=1784282261; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=GW8pkbZvfYORJjmA07dNF76DD9uMqzlV8iaeANQ36+M=; b=gyZAOEqtOwIET4QrWEdzYl7zLysg7uwFqqa/Gs1j32evTRPXwkGt45hUCmUaI0kQxG rcUq5BXt10XHMmApOSp8apYgrsEB5+5MEpWmhP7rdVfCqQ/Ie0IndQApt4S2gcEIvjMN X3t/hDZwvLwfmuJRGhl36ZE8YuLCaR+Rh+xO9eyfimZ3iyUu+Wt/9C9qQ12sDQaR7PR0 m0Orp+Dif+0/HZByFukOx82NEa0c5kekog3gZZoge8nql2wMQL7gaFCPss3BKrYQD43o 6igxQdAEIm1Int2H4KJELRvSNSDPQsdKDowShHj4J8LT1a2cs+Tj5B3Rkz9rXCIcj//4 Qgew== X-Forwarded-Encrypted: i=1; AHgh+RrHjfanhNmyzKwCPPcgdelJh7d8oLJC3oSpBP4ldrR8IZ/lN08WqkchmCGhZt+S8nAxSTqdxTbbG9n2F5E=@vger.kernel.org X-Gm-Message-State: AOJu0YxEIbozOgCZ+txUcWO+eUQro/6B8+02FQ+Swq6SBORiJg8cAKRe Wmd8oa67gEuyimPVjU3xF4CCYM4wB7lBZMDLf13noIZ/6DA0C9I0vkSn9bUwT0/QHBJVMhXDw/w ae/vAi/DFzpvNKnbipZWr2csb3hSF3n2AxuOnPajY1s8JNqVgofYcjYiRZCv2lOA1FrA= X-Gm-Gg: AfdE7ck0nk+SZnEmqykHQFULVeBRj5xYk2UuCmRJDioy4Qs12TblpaCreXqApKVITMT egaNt8vZybozKs6kjCyW6dh4mNMd6M22kaDSYxX77FLl/KH3Qcz99RHGbeGWEjXiCs9iDJfJdQu HbSP/nIhT/DyewjtOfLWvg5tfGo1f+iF1uVYLRwMLYR8PoaJkF12aijOhIt2rG2wUkzaykliQfl D2TC/I7pHZkBhj+UondXc4U4wHYbk81vPPEjK3UJJ73h2r7BSkmKAQ2y8bdXGpdgIObixtTGZFA RJGG9j0Mc51Y1eehCPwwQEfixlhQo001UfOAO0GNR/pQbALCACBx0aWRuWETtex313eTl1k4X+C ZfXKE0jhJLOLbN7ukKt927aq/E3c821TiSvZUOU0kA45D87n96KsbHzcA0dyImK33bSM0K+eY+I sbXoLJ3PuimtvALSRBEaEYIuLBB+L+4eQsGx/7nD6MM+/RGtl86L0Or3dJD0+xM0wI5lRZ9OI12 cJq47NqCyDf8O8MnrdS X-Received: by 2002:ac8:5956:0:b0:51c:7b12:5fe9 with SMTP id d75a77b69052e-51c8b42893amr134253311cf.85.1783677460970; Fri, 10 Jul 2026 02:57:40 -0700 (PDT) X-Received: by 2002:ac8:5956:0:b0:51c:7b12:5fe9 with SMTP id d75a77b69052e-51c8b42893amr134253051cf.85.1783677460461; Fri, 10 Jul 2026 02:57:40 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com (82-64-236-198.subs.proxad.net. [82.64.236.198]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15dfda815dsm265357966b.36.2026.07.10.02.57.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jul 2026 02:57:39 -0700 (PDT) From: Loic Poulain Date: Fri, 10 Jul 2026 11:57:31 +0200 Subject: [PATCH v3 05/11] power: sequencing: qcom-wcn: Report power controllability 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: <20260710-monza-wireless-v3-5-46253587af64@oss.qualcomm.com> References: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> In-Reply-To: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> To: Manivannan Sadhasivam , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-bluetooth@vger.kernel.org, devicetree@vger.kernel.org, Manivannan Sadhasivam , Loic Poulain X-Mailer: b4 0.14.2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfX7f+Fj4pI0rPI Ig8gZyPqEAJkQZd4nbhyno01JP60UmBcP0zSYESyrhACuxc7qNKIVFdGws5atN1WDwRRaNleH9q XpPCycKmVJDpXTaPW+Z0k37LzvfqUn8iezz1HqInM1tN7KBBA/RNUtvPCniOSlBtFo4rOghZG0W JjzVaS7OuhGli/gFMGzBdQ6FK9Ec3Cys3Vu5+eshjkfqtcGSQ9awn+lowFAw+3Jmjt2NpCjPg/M txW/iapET0Bwp/uZKuUYJ3YGh+h5UJ8aHT5TgpuyWA87YqAXjp/tZkVbT+e8C+FJRr2P+u9KDt+ pFz2Xcb3D93KB/x+vBrg2F/P87dN+z0e4fx8DcrTeuki3xdHdzkMXVo6Ta//bVXOoq+QzAijlBt QcEc9UiMHsxoe+oH70OQHecjcbgzT+eqluqW8MjLJx4hEpAbhXFiDm4V5uttRMOXmd3dYzz71rr 8l/5Gw4hyISfNiHzuiQ== X-Authority-Analysis: v=2.4 cv=ZcMt8MVA c=1 sm=1 tr=0 ts=6a50c216 cx=c_pps a=wEM5vcRIz55oU/E2lInRtA==:117 a=MDeckJw97qnk8wCBExTehA==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=QWuo0IUDA92h_ITipQ8A:9 a=QEXdDO2ut3YA:10 a=OIgjcC2v60KrkQgK7BGD:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfX25O2SKEjs9f7 bHZDmsBRlSBwYgF9EAMfABpNrec1LGFW5I2G4DrfprTGZz5SovWvtyPLm1uv2CeFSIp1gSUV1/V RZZqIXyEsiP/olOEDZvBaT5KOSIBqto= X-Proofpoint-GUID: f9o72-ZKGco6WO_GemjSyImbc20-q_4- X-Proofpoint-ORIG-GUID: f9o72-ZKGco6WO_GemjSyImbc20-q_4- 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-10_02,2026-07-09_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 bulkscore=0 suspectscore=0 priorityscore=1501 impostorscore=0 phishscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100097 The "bluetooth" and "wlan" targets drive the BT_EN and WLAN_EN GPIOs to gate the respective functions. These GPIOs are optional, on some boards they are hardwired to an always-on pull-up and not routed to a host GPIO. In that case the corresponding enable/disable callbacks are no-ops, so the host cannot gate that function's power on its own. Implement the per-unit .is_controllable() callback on the bluetooth-enable and wlan-enable units so that consumers can query this via the pwrseq API. Signed-off-by: Loic Poulain --- drivers/power/sequencing/pwrseq-qcom-wcn.c | 30 ++++++++++++++++++++++++++= ++++ 1 file changed, 30 insertions(+) diff --git a/drivers/power/sequencing/pwrseq-qcom-wcn.c b/drivers/power/seq= uencing/pwrseq-qcom-wcn.c index b55b4317e21b626e050e022648147770ca7f386e..d5c9b734b0538e209734e15980f= f2877ef5a614d 100644 --- a/drivers/power/sequencing/pwrseq-qcom-wcn.c +++ b/drivers/power/sequencing/pwrseq-qcom-wcn.c @@ -184,11 +184,25 @@ static int pwrseq_qcom_wcn_bt_disable(struct pwrseq_d= evice *pwrseq) return 0; } =20 +static bool pwrseq_qcom_wcn_bt_is_controllable(struct pwrseq_device *pwrse= q) +{ + struct pwrseq_qcom_wcn_ctx *ctx =3D pwrseq_device_get_drvdata(pwrseq); + + /* + * The Bluetooth enable is driven through the BT_EN GPIO. When it is not + * wired up (e.g. hardwired to an always-on pull-up), the enable/disable + * callbacks are no-ops, so the host cannot gate the Bluetooth function + * on its own. + */ + return !!ctx->bt_gpio; +} + static const struct pwrseq_unit_data pwrseq_qcom_wcn_bt_unit_data =3D { .name =3D "bluetooth-enable", .deps =3D pwrseq_qcom_wcn_unit_deps, .enable =3D pwrseq_qcom_wcn_bt_enable, .disable =3D pwrseq_qcom_wcn_bt_disable, + .is_controllable =3D pwrseq_qcom_wcn_bt_is_controllable, }; =20 static const struct pwrseq_unit_data pwrseq_qcom_wcn6855_bt_unit_data =3D { @@ -196,6 +210,7 @@ static const struct pwrseq_unit_data pwrseq_qcom_wcn685= 5_bt_unit_data =3D { .deps =3D pwrseq_qcom_wcn6855_unit_deps, .enable =3D pwrseq_qcom_wcn_bt_enable, .disable =3D pwrseq_qcom_wcn_bt_disable, + .is_controllable =3D pwrseq_qcom_wcn_bt_is_controllable, }; =20 static int pwrseq_qcom_wcn_wlan_enable(struct pwrseq_device *pwrseq) @@ -218,11 +233,25 @@ static int pwrseq_qcom_wcn_wlan_disable(struct pwrseq= _device *pwrseq) return 0; } =20 +static bool pwrseq_qcom_wcn_wlan_is_controllable(struct pwrseq_device *pwr= seq) +{ + struct pwrseq_qcom_wcn_ctx *ctx =3D pwrseq_device_get_drvdata(pwrseq); + + /* + * The WLAN enable is driven through the WLAN_EN GPIO. When it is not + * wired up (e.g. hardwired to an always-on pull-up), the enable/disable + * callbacks are no-ops, so the host cannot gate the WLAN function on + * its own. + */ + return !!ctx->wlan_gpio; +} + static const struct pwrseq_unit_data pwrseq_qcom_wcn_wlan_unit_data =3D { .name =3D "wlan-enable", .deps =3D pwrseq_qcom_wcn_unit_deps, .enable =3D pwrseq_qcom_wcn_wlan_enable, .disable =3D pwrseq_qcom_wcn_wlan_disable, + .is_controllable =3D pwrseq_qcom_wcn_wlan_is_controllable, }; =20 static const struct pwrseq_unit_data pwrseq_qcom_wcn6855_wlan_unit_data = =3D { @@ -230,6 +259,7 @@ static const struct pwrseq_unit_data pwrseq_qcom_wcn685= 5_wlan_unit_data =3D { .deps =3D pwrseq_qcom_wcn6855_unit_deps, .enable =3D pwrseq_qcom_wcn_wlan_enable, .disable =3D pwrseq_qcom_wcn_wlan_disable, + .is_controllable =3D pwrseq_qcom_wcn_wlan_is_controllable, }; =20 static int pwrseq_qcom_wcn_pwup_delay(struct pwrseq_device *pwrseq) --=20 2.34.1 From nobody Sun Jul 26 01:05:52 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 822D53FE36D for ; Fri, 10 Jul 2026 09:57:44 +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=1783677470; cv=none; b=uAPj5FLH3k8soE5ff6ZY/gbnNIgl06CllRfn/9TChkJJP9FBnMUWhPJbuBhZPhKCX4W5yK6OiNBu28XwOYbi7KruwA+N0N/ZWHHy12IVfACO0o4yrs6TMXMt/1eExqyfe7TlPf/6ugOcG8mHxNeam8myOkyOFloSd+iKe8++9Bc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783677470; c=relaxed/simple; bh=drfMTyafP5O0WHcutG+g8kfep1FgBIKDYHEt5UAf2t0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pbmVb2nsUjSw2wVMqzNLc2/IhnWXisUCg+fXsml4SRqXs+fWdR/K7pzAJF3hr0Sm1fc0JYiD45sEe0ZD+CxvL9wu/i5EGH9aKHIXivqR5yGH8VySysD+5iUBbyX0Zn4oRklszzdFY9dOakKajMThowTtNLDI1LPMMhEAgX4BQh0= 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=KUYNNWBB; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=V+PbbVCi; 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="KUYNNWBB"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="V+PbbVCi" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66A7dqis000903 for ; Fri, 10 Jul 2026 09:57:43 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= Uq3021KNWN1PDY5vGnxhuGlTpLYyxahRYp1yr2wnYV8=; b=KUYNNWBBIu1EkpFH sc98aZnmd3FGwpsVb3JlSf8DLXQXYQrd631LN26YnCa2tS9qFqzIglrGQ49aZXec +ePnCODA1M9s1OAy/Yevh9PrNTjXVzKKsgqt5jsNo2WN+5XVAOhjjOOzwd7Giid1 i+JyBrX6FkO5Ny5CyDPVWXDJ1U6m98+DPAy3jnSm9pZzRmpmfIQ4p+OcLV4eZu1G +kr0F6r2I5tvcdHANh+7PLbS8o87koqOYUXL0whjbT71XIZD7502ueJcVDkAKwTL HreYLWKSAD7eWN8vanlwCRFjQtf40F6kAqCoVLK0b1Y28ekbx7uY6YDo3vs1nARn J/0QuA== 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 4faf24uqdk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 10 Jul 2026 09:57:43 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-51c2af04aeeso11799391cf.0 for ; Fri, 10 Jul 2026 02:57:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783677463; x=1784282263; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Uq3021KNWN1PDY5vGnxhuGlTpLYyxahRYp1yr2wnYV8=; b=V+PbbVCilWBSNFW45+Wvucm0WozUVfvAebh523qBewdhauoh0JFqCyFZEMZAxEx/RK G3Pw6HF5q9NZBKDduCoMPGlr8RDhu7VhsPUf1hXIpw2iAdkMhdaNM1TT1Kk5D39WQ4VR 58ei8eRLhmJDyFBFRtPdAIciVSOGT4VCM0KoQwM4N7h67nlxqByvG523Qfz+geCjfH71 L64FN9XqSo5hWTYPrpjmf7S8wn4/J6sFgWtszdOkB4S+592kRpE4ZG1Ina6ljRY+A/PU S/o/LtZchV9GrZwLdzLNevT9Vf1r5yaTJWyHwZXL3W5r3zOkDte10rkgnK3vYSinl0Q6 +p7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783677463; x=1784282263; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Uq3021KNWN1PDY5vGnxhuGlTpLYyxahRYp1yr2wnYV8=; b=IIgpOqtEhtpuE70GqRXgZNiSVfGgmkFzHTjmokCyqixkuZSe3N0/U0QqD7orEnYBhj g2BXkmkGqWHfBJB6CqW6oQx8ViGKtxoT6F5y7xCkSBRSS8evucD8uG9S0oQsI3w0UEpz 781mETjVRf2kKuQ4QK1n3q4I/VCzfX4S/AtgMmlQT9wQzMow/+OFZR7ZCwe23eqgnmyF oj5+ggTkngvn0Wnsc1rEqGieeBgObff7nb88zKQYjj5qhDrwmED6phpCF1JstmoEaFqE bPwoG/QBcbd8tgwlkkV7ckuHBcKZYDgvSiDKaz3cb3uTWLXERclaivwK1+48PGe/AbR3 Qypg== X-Forwarded-Encrypted: i=1; AHgh+Rq7+lPyqFv2ZhIViiNnvqYFq27QJfRbQWkhn5GXXTpWQx7UtzynmOyRQme9gXVGqFN7sr5xjm1aLSREJZU=@vger.kernel.org X-Gm-Message-State: AOJu0YwuqlvqIK1QnqvNgKn/8+V/yLO0F0NZxHRYm71oL81hSU7wHUmx 2+mvvbP2v8u6oQuhcLn4xhxo7OUheD9Z7kI/YH90hrpulPXSQ/2b3jZIHh3Xha8wOS07OIjHioO j/T2kJ2IZ5prt8tDUAXlchRWcvC5GasnsQf/OS2zfD1ekyiOn+lE6ZoqPICLBmEUJ9ho= X-Gm-Gg: AfdE7cn1gncPt2MCCB540bo3A5Tbs0glI/qcgf0d0oGpFi6+7j2QjQY89tEAMCYmD9+ SLSQy5nyDuMKpCu0dXY1cz7XikMb1uYGTdOh4dl/Yro/nWgUQ4rnMMjFN9i9z6LWUQl6B6VC5+H bzCFV+mdUJ+OrFgfE7Ub9GTonm3czwy6NTl2lhtTFWSAHAj8W5frodjuB/qagw8Trx3rw2EJ1fn TNTClEmFEvptJi3ZPXUaBSB2Jr/EKUQZ2dSx9nWvKAtly9jqTHmNL+sGmrpVDRUJsltTEJUuXwk cwfeIg+vQstfkLkC0WE0ZeQ6fNe56TQCNsTIvEUGJkjZttEYWmHEpR150w1cy47ilhIfDm+mLyt k7jqVdF8TsTzHKlv0zXQOvSN+VJMK8i/nGHnUiT2ScENClZAaU5Qfr/gl0qnVfMbuDyJ1iMbFWl ykSIAO0DGpUiFPKbbODLAlmu6NkRNxdQI+Q5fJfpHshdFm8J/Z+0tONCNZBFHVa6IWEW3spzNe8 sHZU6AA+GGqzkZKp9Yg X-Received: by 2002:a05:622a:1192:b0:516:5019:d27f with SMTP id d75a77b69052e-51caa0b5790mr27855991cf.18.1783677462751; Fri, 10 Jul 2026 02:57:42 -0700 (PDT) X-Received: by 2002:a05:622a:1192:b0:516:5019:d27f with SMTP id d75a77b69052e-51caa0b5790mr27855781cf.18.1783677462351; Fri, 10 Jul 2026 02:57:42 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com (82-64-236-198.subs.proxad.net. [82.64.236.198]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15dfda815dsm265357966b.36.2026.07.10.02.57.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jul 2026 02:57:41 -0700 (PDT) From: Loic Poulain Date: Fri, 10 Jul 2026 11:57:32 +0200 Subject: [PATCH v3 06/11] Bluetooth: hci_qca: Set 'bt_en_available' based on pwrseq power controllability 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: <20260710-monza-wireless-v3-6-46253587af64@oss.qualcomm.com> References: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> In-Reply-To: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> To: Manivannan Sadhasivam , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-bluetooth@vger.kernel.org, devicetree@vger.kernel.org, Manivannan Sadhasivam , Loic Poulain X-Mailer: b4 0.14.2 X-Proofpoint-GUID: c2O3ZJUHmsodWY185r8Zuo_L87YOp-2h X-Proofpoint-ORIG-GUID: c2O3ZJUHmsodWY185r8Zuo_L87YOp-2h X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfX+U4/jtY9HbYk llUFMRDA4icLcXhp6XcX7bJ2YUFbgnVmCV903gx3avx9xBJC+xOL0AlB48KNs6d+dYdMoei/gVG Q462ytzXYO1ncQGL8dYllQ7MlJvDsb4= X-Authority-Analysis: v=2.4 cv=daKwG3Xe c=1 sm=1 tr=0 ts=6a50c217 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=MDeckJw97qnk8wCBExTehA==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=kStU6zbECEpzgAoP-VAA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfXwNDa/Q8yTGJ8 u5URZ6+lEmHrhs6AlDQilU7zPjSINIKmX8QlalrHgv40OGTu/VW4k0FSUBJ0qCIdcJzTqa9dNUX GSkPzTWgVPTCdOCjK31AASVpPPe8dDtYWTwz2PQ0J7wdC2BY/EZlWGa0i51Eub8OszDJwRYW+9x qp+qvCN9BwVvxY9TdzTvZZJQzjBDD5y3YR7PuJIdzhUDFr2GAoUhTm7IDCjtZINmphfrJOpNsna fCXvClQHzvX89YMfZpde628sBicev7dtBsb4dKL1dIdnHbg2HhmGr4iO/dJdoRbg++43ODONIK7 F9Y2plzXyWvV60p7YXoe7iuE2FWqmY5EwIDkQrH/FSrKciy1L3+AiKU8gbrkPZgR1/5HTanYcpO F4wNL7cXGWEiZbWmz8GL5q+6eTid0x4PznUGD/tSptxKcR8djijeNJXBnOgsoDmdkOXKSd5rV80 ghroPFP7yeMalBtSKmg== 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-10_02,2026-07-09_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 adultscore=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100097 A Bluetooth device only needs the non-persistent setup if the host can gate its power, so that it is actually reset on the next power-on. When the power is controlled by a power sequencer, whether the host can gate it depends on the hardware wiring, e.g. the presence of the BT_EN or W_DISABLE2# line. Query the generic pwrseq_power_is_controllable() helper whenever the BT power comes from a sequencer, regardless of which provider it is (M2, WCN, ...). If the power is not controllable, clear 'bt_en_available' so that HCI_QUIRK_NON_PERSISTENT_SETUP is not set. This is based on Manivannan's original patch that keyed the decision off the W_DISABLE2# device tree property, it now uses the generic pwrseq helper and handles the always-on case. Signed-off-by: Loic Poulain --- drivers/bluetooth/hci_qca.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c index 17f436484e1e74d1dd690ada22134315abb767c4..4a1ef316e715f4f1f0c8f7deafa= 971887af040f3 100644 --- a/drivers/bluetooth/hci_qca.c +++ b/drivers/bluetooth/hci_qca.c @@ -2549,6 +2549,17 @@ static int qca_serdev_probe(struct serdev_device *se= rdev) } } =09 + if (qcadev->bt_power->pwrseq) { + bt_en_available =3D pwrseq_power_is_controllable(qcadev->bt_power->pwrse= q); + if (!bt_en_available) { + /* The host cannot gate the BT power individually. + * Treat it as always-on and drop the pwrseq handle. + */ + pwrseq_power_on(qcadev->bt_power->pwrseq); + qcadev->bt_power->pwrseq =3D NULL; + } + } + err =3D hci_uart_register_device(&qcadev->serdev_hu, &qca_proto); if (err) { BT_ERR("serdev registration failed"); --=20 2.34.1 From nobody Sun Jul 26 01:05:52 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 879AF3FE65D for ; Fri, 10 Jul 2026 09:57:46 +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=1783677472; cv=none; b=mlhu9hZrRVhEvLsZ2LzKotXLiUrO+8LLdqjzaFuj0MfbX83+LlJqN6H1x8tphS10znvqi6UGbFHe8yibz/lQXvZ8CDbwiSyfRyxEzpeZng8WMBB32HDiC8Dw3yAz0c47jKTrj2jD9MLIEayUsXTehSl5kF6q1BYL0O4WxbeKL4k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783677472; c=relaxed/simple; bh=jak2vbWmlDxX6sjIkSns6YH/+A3MhzHcWj1aIP5tIEE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Gf6pQ7Qj8U3qSxzDCk2qrXLeGDA1kH5SPHfZfYYglgS8DY2t1tpiTKwFIWSgiOVDZ2URX/EoF+HArI6eFx/PHVFHYMDXGofCgAps+AHJ0QwJBjYQUnBz4Fg3JlKLqQF9iI19bZMHXeR27RFXt5iZpMIhXuzAkX/k0+CNALIMKMA= 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=D/D2jK7s; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=d0JIck98; 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="D/D2jK7s"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="d0JIck98" 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 66A7ddPS172577 for ; Fri, 10 Jul 2026 09:57:46 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= TPH+i5HvLekvhup2XBK3JToyvmBF7nw7B0CLErOBc1A=; b=D/D2jK7sp374QMHJ H2e42JSrk1/dO8Kfs+sqpSiyuE3CiQBaj9HLTeuj2LttAFge70bxeCQOpYlR/NTQ Lt8s96POUO/SQbTPmlTWJ8fq4yh3QkXhOYhhlLDpUKk0va4O7+1qhyPsnDQ/DMIN R77zdpCZvcD0ZVi9KdVVzPOK4431qfpGJ2vQK5WK9ShSdb4VJ4TIU6epjhvee8DX XA/tKuU/WJutt6ZopHZ7czglmITuroV1RXPu09Fkh73AkVguKRDh/QT6QJkgv5yu O4nY14i6IgpiIh7V7+fRG698CAEFfA/gqoTNJtpbBGx8t9MPPX2VIuIz5lNxedLt xBNeLg== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fanwe9xae-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 10 Jul 2026 09:57:45 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c0d6a2f4cso7088651cf.3 for ; Fri, 10 Jul 2026 02:57:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783677465; x=1784282265; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=TPH+i5HvLekvhup2XBK3JToyvmBF7nw7B0CLErOBc1A=; b=d0JIck982Xf+61T8uTc5kOHM7MzsAJKes5RtNLuM+u7TD2lwQxpN6JQ4hWjLP/ZN18 /f4i8iMGO1hK0y2M+eX9TSE87H3OTT/rXwYGpHJdR3sFTOoGrxKv3kZMRT7TLzm9Co0x QxUa8haEt8gINU6ZGNhK9PwvI2jUO6e/nBLo9rY+tstb7/bf4ntRmJC4hVb9po+JaLvK rhXp5YI89FOByMyRO3lEtdBXYUb0sGlHxD8vIheg9j3+gcAHCapo6EZpyaLpxXKZDOM5 L+ZWLBXq5h26qBzGKHR7lmkynMpkilwXxFMQkA6cUF8jqAonVTuwI7hjIIpWMOgxVI9Y dshQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783677465; x=1784282265; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=TPH+i5HvLekvhup2XBK3JToyvmBF7nw7B0CLErOBc1A=; b=Dx7+TCfu0n7/7g49Ar3Hq/MRZukCCLkHsiL+sL1xBjUWEjsw4AOobREmAaFjXpPImc EHiO53UAjoTTuhV+xfV02QNAtlVkFTDdVKn46oAFLcNuu+rVbZC4XvxRn/uu+uR8NdDc JQJSzcckXSPxCI75xH9Vr3XcMw0pOEaLyYymDK5O6dL0yh18YSXsI4tsJY2wsCG0d/mW VqwgGSq42Jb8db4A+7JDmp9x1Bfx7fxlKr+v16ZGomWnOWxKnR1meutSPy9ZC1IaYfmH pfAHBVH251Wp4YmtHjVxAN1flA2Ls+VnrrFe0gsgbkfc++eoaKuRKloOK7qpH+N03AGu qNeA== X-Forwarded-Encrypted: i=1; AHgh+RoWIi+HOauh889VjL+0HEXFvUiXc8C4E74vBuCego5XIJh5Meb1LREW5/QBFUTVI6IrwPIFsCUDNzVLvNg=@vger.kernel.org X-Gm-Message-State: AOJu0YybQkEqJQnytid01MYmq2QgGRF4jXzRQXSkLogvQkyi+Aru/2TE tX6XoxVMUqi8G2HlblQFgmSxq/+Irwq3F9HvJp+DoWEBx9r87EsRKL3/9GF6y0gmQ2ZbeUAwdFk +9I+sT4/R4HCHoIS1HDut5XOwWr1HPf4iSKZha5FGd7HhLofWxn6iZPDwxrNBD3ynQt0= X-Gm-Gg: AfdE7cmSCsqGUN5zAYo/IQUwnomRD+DiQuHEsSEfRJOdRVnJTJXENp0HaIJR7iBiqCu FhAOSHRdtDP2azFxwWbsc4wD7+otKC6rOMFpuqmFwq+h9U1XCcC3QuIXlytPPjqwBI6YMRnbsx3 Of706O+LmfO8ttf12wSaBOv+8iAXZWpEId7COpKywZFhoXnYrE5FVacxkdZqqI3DecHt72iu7B7 7tbQIdw7t9a0W2CPPZqa7Cn2P5PzmvC2bFY1+Wo9slS6h1ZSCKtwOS7pC0I7cUTeq/W4Jx5flFp lj6YK2FmVr6XB/YJyHcuXzc/3cQT777NHMnWlvQcP+3nxhniFNuFwBNgiSX6ty4mbcQutbEFx4C KPXuOK6PFK75GdeWfkFBEZPsDMTpipG+r+2UuO671AamBRWIjPQUk7Ezm8XhbLT6z9Dhg5/o5SW B5U/JhjtmAC1E7kvobwzw1T84LJ5qKUa+WE3g7Qd+a/IkQcp+OXzf7k82Dzebs+fPXrjsWlLGvS pVAa9tqAR+lZr/3Rs+5 X-Received: by 2002:a05:622a:588:b0:51c:7b12:5ffe with SMTP id d75a77b69052e-51c8b5767ecmr113377871cf.74.1783677464642; Fri, 10 Jul 2026 02:57:44 -0700 (PDT) X-Received: by 2002:a05:622a:588:b0:51c:7b12:5ffe with SMTP id d75a77b69052e-51c8b5767ecmr113377591cf.74.1783677464091; Fri, 10 Jul 2026 02:57:44 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com (82-64-236-198.subs.proxad.net. [82.64.236.198]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15dfda815dsm265357966b.36.2026.07.10.02.57.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jul 2026 02:57:43 -0700 (PDT) From: Loic Poulain Date: Fri, 10 Jul 2026 11:57:33 +0200 Subject: [PATCH v3 07/11] Bluetooth: hci_qca: Embed bt_power in struct qca_serdev 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: <20260710-monza-wireless-v3-7-46253587af64@oss.qualcomm.com> References: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> In-Reply-To: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> To: Manivannan Sadhasivam , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-bluetooth@vger.kernel.org, devicetree@vger.kernel.org, Manivannan Sadhasivam , Loic Poulain X-Mailer: b4 0.14.2 X-Authority-Analysis: v=2.4 cv=LbIMLDfi c=1 sm=1 tr=0 ts=6a50c219 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=MDeckJw97qnk8wCBExTehA==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=Z5-lucBUan0SmjtTDS4A:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfX6qUCNrKghZFi ZXQ6jubDfdh6acZo8qhrC2/7AhcX3ytmIt38YJkp8M6MlgokWnHvEytbx5TLYK9kchtpGpUfsaB AdCoDw6Nr9F6FX9rYk0ABGfBUumgXq8Wcm9wrl3bVkcrcWiw+e0saHzjacIFF8FmbnBSUzYlIrX FjFrPOT3EVWNJQ9oXfwP1nU1Z8AS/KCKAqJcfij/F0XmfQvyHliFwmaLJvCkJ8PP5fmYte+P+OR 3rv/lkLGNazuiqRSRxagDB6xGwsrBNz1grIWkUs1GCIKr7u9zVm41xIDmXh7r4JaCJ+89yBFZk9 RoH76Usgdx0ojYpB6DO6SIPbJC35g+PtnH3Pr9gndcsEDrOCqqDJTANn98NNzjNFRylSRf0nr66 gKb82H2WO1M2r7WO11zYMf3qCSltvfaKoXU+y2jgYST56pTBX+bktOOg3GvPRnf0/aWVnfaTnqX PvQcB1FsD19Uh2MCUwg== X-Proofpoint-ORIG-GUID: uVRTgaemD9gerjc1O-h0MaAtO4ySJgEe X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfXzZm5TB6BSNRb gmTxPfzb6C0d+jLUNWSg93b8VjKfDegv8HcVe9r/j7YF4vfI21WWJZvwpOEWanNhDax0imYrhnw PrVnQLOo8Wnqi3vbYsDOIv45z5hC7ww= X-Proofpoint-GUID: uVRTgaemD9gerjc1O-h0MaAtO4ySJgEe 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-10_02,2026-07-09_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 phishscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100097 'bt_power' is allocated dynamically only for a subset of SOC types, using a switch on the SOC type that mirrors the one that follows it. This is about to become pointless as the power sequencer path (used by M.2 modules) is independent of the SOC type and needs 'bt_power' populated for any type. Embed 'struct qca_power' directly in 'struct qca_serdev' instead of allocating it separately. This drops the extra allocation and its dedicated SOC-type switch, and removes the need for NULL checks on the pointer. No functional change intended. Signed-off-by: Loic Poulain --- drivers/bluetooth/hci_qca.c | 72 ++++++++++++++++-------------------------= ---- 1 file changed, 26 insertions(+), 46 deletions(-) diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c index 4a1ef316e715f4f1f0c8f7deafa971887af040f3..24dc5bf6d192be7e1d500df6bdf= 36e6184f9eaf7 100644 --- a/drivers/bluetooth/hci_qca.c +++ b/drivers/bluetooth/hci_qca.c @@ -226,7 +226,7 @@ struct qca_serdev { struct gpio_desc *sw_ctrl; struct clk *susclk; enum qca_btsoc_type btsoc_type; - struct qca_power *bt_power; + struct qca_power bt_power; u32 init_speed; u32 oper_speed; bool bdaddr_property_broken; @@ -1776,7 +1776,7 @@ static int qca_regulator_init(struct hci_uart *hu) */ qcadev =3D serdev_device_get_drvdata(hu->serdev); =20 - if (!qcadev->bt_power->vregs_on) { + if (!qcadev->bt_power.vregs_on) { serdev_device_close(hu->serdev); ret =3D qca_regulator_enable(qcadev); if (ret) @@ -2242,7 +2242,7 @@ static void qca_power_off(struct hci_uart *hu) return; =20 qcadev =3D serdev_device_get_drvdata(hu->serdev); - power =3D qcadev->bt_power; + power =3D &qcadev->bt_power; =20 switch (soc_type) { case QCA_WCN3988: @@ -2256,7 +2256,7 @@ static void qca_power_off(struct hci_uart *hu) break; } =20 - if (power && power->pwrseq) { + if (power->pwrseq) { pwrseq_power_off(power->pwrseq); set_bit(QCA_BT_OFF, &qca->flags); return; @@ -2313,7 +2313,7 @@ static int qca_hci_shutdown(struct hci_dev *hdev) =20 static int qca_regulator_enable(struct qca_serdev *qcadev) { - struct qca_power *power =3D qcadev->bt_power; + struct qca_power *power =3D &qcadev->bt_power; int ret; =20 if (power->pwrseq) @@ -2345,7 +2345,7 @@ static void qca_regulator_disable(struct qca_serdev *= qcadev) if (!qcadev) return; =20 - power =3D qcadev->bt_power; + power =3D &qcadev->bt_power; =20 /* Already disabled? */ if (!power->vregs_on) @@ -2417,26 +2417,6 @@ static int qca_serdev_probe(struct serdev_device *se= rdev) else qcadev->btsoc_type =3D QCA_ROME; =20 - switch (qcadev->btsoc_type) { - case QCA_QCA6390: - case QCA_WCN3950: - case QCA_WCN3988: - case QCA_WCN3990: - case QCA_WCN3991: - case QCA_WCN3998: - case QCA_WCN6750: - case QCA_WCN6855: - case QCA_WCN7850: - qcadev->bt_power =3D devm_kzalloc(&serdev->dev, - sizeof(struct qca_power), - GFP_KERNEL); - if (!qcadev->bt_power) - return -ENOMEM; - break; - default: - break; - } - switch (qcadev->btsoc_type) { case QCA_WCN3950: case QCA_WCN3988: @@ -2451,10 +2431,10 @@ static int qca_serdev_probe(struct serdev_device *s= erdev) * the M.2 Key E connector. */ if (of_graph_is_present(dev_of_node(&serdev->ctrl->dev))) { - qcadev->bt_power->pwrseq =3D devm_pwrseq_get(&serdev->ctrl->dev, - "uart"); - if (IS_ERR(qcadev->bt_power->pwrseq)) - return PTR_ERR(qcadev->bt_power->pwrseq); + qcadev->bt_power.pwrseq =3D devm_pwrseq_get(&serdev->ctrl->dev, + "uart"); + if (IS_ERR(qcadev->bt_power.pwrseq)) + return PTR_ERR(qcadev->bt_power.pwrseq); break; } =20 @@ -2465,8 +2445,8 @@ static int qca_serdev_probe(struct serdev_device *ser= dev) * let's use the power sequencer. Otherwise, let's * drive everything ourselves. */ - qcadev->bt_power->pwrseq =3D devm_pwrseq_get(&serdev->dev, - "bluetooth"); + qcadev->bt_power.pwrseq =3D devm_pwrseq_get(&serdev->dev, + "bluetooth"); =20 /* * Some modules have BT_EN enabled via a hardware pull-up, @@ -2474,21 +2454,21 @@ static int qca_serdev_probe(struct serdev_device *s= erdev) * through the power sequence. In such cases, fall through * to follow the legacy flow. */ - if (IS_ERR(qcadev->bt_power->pwrseq)) - qcadev->bt_power->pwrseq =3D NULL; + if (IS_ERR(qcadev->bt_power.pwrseq)) + qcadev->bt_power.pwrseq =3D NULL; else break; } =20 - qcadev->bt_power->dev =3D &serdev->dev; - err =3D qca_init_regulators(qcadev->bt_power, data->vregs, + qcadev->bt_power.dev =3D &serdev->dev; + err =3D qca_init_regulators(&qcadev->bt_power, data->vregs, data->num_vregs); if (err) { BT_ERR("Failed to init regulators:%d", err); return err; } =20 - qcadev->bt_power->vregs_on =3D false; + qcadev->bt_power.vregs_on =3D false; =20 qcadev->bt_en =3D devm_gpiod_get_optional(&serdev->dev, "enable", GPIOD_OUT_LOW); @@ -2522,10 +2502,10 @@ static int qca_serdev_probe(struct serdev_device *s= erdev) =20 case QCA_QCA6390: if (dev_of_node(&serdev->dev)) { - qcadev->bt_power->pwrseq =3D devm_pwrseq_get(&serdev->dev, - "bluetooth"); - if (IS_ERR(qcadev->bt_power->pwrseq)) - return PTR_ERR(qcadev->bt_power->pwrseq); + qcadev->bt_power.pwrseq =3D devm_pwrseq_get(&serdev->dev, + "bluetooth"); + if (IS_ERR(qcadev->bt_power.pwrseq)) + return PTR_ERR(qcadev->bt_power.pwrseq); break; } fallthrough; @@ -2549,14 +2529,14 @@ static int qca_serdev_probe(struct serdev_device *s= erdev) } } =09 - if (qcadev->bt_power->pwrseq) { - bt_en_available =3D pwrseq_power_is_controllable(qcadev->bt_power->pwrse= q); + if (qcadev->bt_power.pwrseq) { + bt_en_available =3D pwrseq_power_is_controllable(qcadev->bt_power.pwrseq= ); if (!bt_en_available) { /* The host cannot gate the BT power individually. * Treat it as always-on and drop the pwrseq handle. */ - pwrseq_power_on(qcadev->bt_power->pwrseq); - qcadev->bt_power->pwrseq =3D NULL; + pwrseq_power_on(qcadev->bt_power.pwrseq); + qcadev->bt_power.pwrseq =3D NULL; } } =20 @@ -2594,7 +2574,7 @@ static int qca_serdev_probe(struct serdev_device *ser= dev) static void qca_serdev_remove(struct serdev_device *serdev) { struct qca_serdev *qcadev =3D serdev_device_get_drvdata(serdev); - struct qca_power *power =3D qcadev->bt_power; + struct qca_power *power =3D &qcadev->bt_power; =20 switch (qcadev->btsoc_type) { case QCA_WCN3988: --=20 2.34.1 From nobody Sun Jul 26 01:05:52 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 62001400E0A for ; Fri, 10 Jul 2026 09:57:49 +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=1783677473; cv=none; b=HUmVwRcoqGh4JUt123/98TXpKk4Hdfh+hX/a4/UYYMwmB2J4geQWO0nFBfM87v6+H0sXZY5fOAQDSvY3VbaHxdantfgBmlX/rOGRM391y127cNGh6YZrLj5C4JtCwGt7ik60ckrjDtCXXX2Wfxcaz8botrqldI0gfu+loPbPT3A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783677473; c=relaxed/simple; bh=3pbAc12Jj3zIRz8oWGZPCYd6KNJWtOhdSqNPzVF1EiE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DRuQNVqdDsBgkNBU7h3ba6djXKwNlh+A0vAUum0jQ1x0LSBy+DvVhWE/AF13IN5uCnxxEOweIYMWh8XKXF4xz+plUBMQiNhTMYbOeR/4oyyj8rBZFnLYma3vS5AFk+AICzcDa8ND9sDy761vjsln0FDz2LM+ZNdYWguFHQBhGY4= 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=Pg88vCAz; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=A/5cUMev; 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="Pg88vCAz"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="A/5cUMev" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66A7eI2R141535 for ; Fri, 10 Jul 2026 09:57:47 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= n7NkL9sW/e578DxWIXV/0BLe24fAF1y1jIyxSoVkA6c=; b=Pg88vCAzPx8z+khj GxO7gSx9tGdtK6F29YnF2D1jkJygeRL/iIsIzLLBUvhYINZrs41F4kun2GPF+qyn 4zE/9vUBLssjPdV1sY7jCNf0Y/xOuwXC6lEZHi+LnuNExDBb41GCAUyWWX83ZtIC dvzwfz7B7LSW/kXpFTmSH0OwAnwW7iYemmVy5+gbWzWOy0Nw/V8rhHshg7IIRdnm 1kpa6+BjIkBu+9YaePq5+xeqmtkteXAzLw7vw/zx04Hv5XU+xhGzSNpYJtpKtG/w HcIMPenZLSg4CCPzHuECGJlBCvbIp7RLlz1ZW9HdcPmzYvgLW9QKKLVkBVXt/07g 9KxdYQ== 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 4faf5munqd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 10 Jul 2026 09:57:46 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-51c21c01cf3so13990011cf.2 for ; Fri, 10 Jul 2026 02:57:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783677466; x=1784282266; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=n7NkL9sW/e578DxWIXV/0BLe24fAF1y1jIyxSoVkA6c=; b=A/5cUMevjc2JZp06iCboiLZzNvcgT69m0pTsN3poes1nzooGTe73MN/tnZMAXTjYas JG8H7t/K40/AYLnQoTmOj3KGXnCWZIEwpZ6KPCSF6Dk0f0viS+Co8JUlHa2AP8YLEbdK l61Yh4gfNmYoyyPAmvyWIwqs7P4CXnhAs2382c8NLS27UdInTKLu1QENJWU68BAliUPK a2aJ5Z2KYlYYHZ9mSk0mMx6o5fRjiFyXstSkIhmcreNZ1SzcV3p+uwZKRfz90T18NYBq pD1Px4l650Yc/rcOFdLaf/xrt/R+xWydd9oKLTBBo0aruAfU0OCaLDBJyMqBOsmAapcS JSVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783677466; x=1784282266; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=n7NkL9sW/e578DxWIXV/0BLe24fAF1y1jIyxSoVkA6c=; b=Q9sYobvMsbMXk+jqcgi9yJUMTB/C1ysty6HXXTJwns+1XxB2Z/TuiUxVDsPXV/jlW/ QCenMd8gq3HlCiJGhiB9ADYnVdZQAIkQtCcMjrAcYLDbVKOS8Tsit0H0OUaSWCmG4Ko7 gW+LGVKd9Ff/DpkFFBtIC3NWhz8Vsdg7HZ96qhDGBO3T+4OKWKPXEmPc0IO51frXdNxk ov2jrRAQrIjk9Tthfw8dK+GFEcFusgSqawUXintJG+IMPGo0OZ/KMq2XTV26ZBK0Kzlr xP+nBgQCG4mK2vovY19rhdkzBlEsIW240xn5Rj09dC0YPfK9fnBALbrT2W1Z4arJm96V 6+5Q== X-Forwarded-Encrypted: i=1; AHgh+RrUL9njRU1tXBR0woY0eswqLn+XuxgXO1OD/QXYVgjq/5PyyCE3SfmvpDA2A6Bh07dZqPH48TDHt+sBcqM=@vger.kernel.org X-Gm-Message-State: AOJu0Yyc+hvGI7E3tsnT4EQXWJ/u83JQ7Y0HGHjIdS5f16CxtxXjD5gu xPH6TDhNoJurMT79VKHqgRTBSvod0N2tp3XVp+YGxFf6vosfR7BIxh7vogOUmUumDqWy+h87DIk z0Tee8vSafB1CXDmUunuxAA+UOBbEBgMsoLsk0pfUMv2LcTQPrn4A2qgHolvcaZ9eyW0= X-Gm-Gg: AfdE7ckwGvSnQPFM3JP8rrjZdO2Pr014ci2IV0NLF+UN9XIYTKuii42Z64GZOtivWvO dpDfXnUCi903WDOlSh83o4NfwrdIdOSOhWhE2TTHhLzmQh+xjCRPfeRo6gy/Ja7p/7TU2cWYE8F +xivSN8b5mDafMe9Q9atkMkTf+2WBZlTwu09feX4P4XoKK+SgA+9xg2B/PLC0D9hdzCTvK+5x8P FlQRoyVOG8ij+n9aAfCu0W+d3F9l9YKbbDH7mrcd7bwhwmggS1CMuQWnGuo2Qihx2H8XlCrZTlB 0GyuaTHawiAYgTl0UbGPJRueCAjyOiE1ArNMMqnT4K4IVYFEHIr4Ivv5SHfmzwjhsQPbtJ1HVRp ob/2sQ9IkkJUIFTNSqkuMFdX26ygSuvn/VeQ294Zvr0lf4bBzNzkj4qKN7R42PBS+0TGnQ7fAqD wunvQ6jmnr1qbb9EJy7cEOUJaqaRLBLql5YANzAnuZFDXFdy5+S6PC7/3md1VrJ1Rr64ueJd+75 jbuEmB7beAcxTKkyz/9 X-Received: by 2002:ac8:5fcd:0:b0:51c:1568:3a53 with SMTP id d75a77b69052e-51c8b39902fmr117003061cf.16.1783677466352; Fri, 10 Jul 2026 02:57:46 -0700 (PDT) X-Received: by 2002:ac8:5fcd:0:b0:51c:1568:3a53 with SMTP id d75a77b69052e-51c8b39902fmr117002821cf.16.1783677465981; Fri, 10 Jul 2026 02:57:45 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com (82-64-236-198.subs.proxad.net. [82.64.236.198]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15dfda815dsm265357966b.36.2026.07.10.02.57.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jul 2026 02:57:45 -0700 (PDT) From: Loic Poulain Date: Fri, 10 Jul 2026 11:57:34 +0200 Subject: [PATCH v3 08/11] Bluetooth: hci_qca: Support QCA2066 on M.2 connector via pwrseq 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: <20260710-monza-wireless-v3-8-46253587af64@oss.qualcomm.com> References: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> In-Reply-To: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> To: Manivannan Sadhasivam , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-bluetooth@vger.kernel.org, devicetree@vger.kernel.org, Manivannan Sadhasivam , Loic Poulain X-Mailer: b4 0.14.2 X-Proofpoint-ORIG-GUID: vRXn70WhZhuMvHhrTcLkOKUcSnQ6niHI X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfXyOmCmtHCAxsP kwyo8Mu8R5mXGaFs7v+MUh1VasC5GswwOjEN/7P6/Q8RBKn8Mh+s2SG6I0yhWQ65x51XWP8B4S+ 7Re1vJbW1Z3vVnsVN3eueNoW5RA1JfI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfX3vm+BrwEVeLH OM40HzKeiEZqgvXfkmpJTGd2ts5ps96w6J3vBSjweFoHJqiWoQRZlI9ifeWwfojT5NBeC42vkP9 BR7NpVSTvAHflt5f6g2UoxbHWiDXIx6jL3+TYoDsdYpzCu/SkWBy2Hq0LgDqNft8ZK4Gfm9l6+C jxygmuBDCmaBNWh9Eyz1ZY9DnAZoATIvNIm68vaeA4o1+qxbK2ZJMmIe7kn5aH9j5P1H+dJeYNP b+9OGsyoSoC1LSeOigL9PNYCNwml09NVZWLE6ouEf7NZi/0ov8y1VDQjq1WFucYqnJY/WPie3ZV Qdq+YEZjQ9Bkd2o7wapRiv0DN8Hnx3ytRMEHKExeuA+9jEQy5Y3jFZK9pt1Cpot+lQ0ohsIKQrx vHXbEzfHfmvbIrmeO6jtmHMfw7SUhEQe86fWtnswQyeUEBtZUy35SDeqQ6ScNmT1Xo/lLHJEDiI ghQE/r7NjoJzN/4ZbAw== X-Proofpoint-GUID: vRXn70WhZhuMvHhrTcLkOKUcSnQ6niHI X-Authority-Analysis: v=2.4 cv=N+QZ0W9B c=1 sm=1 tr=0 ts=6a50c21a cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=MDeckJw97qnk8wCBExTehA==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=CW3gqymaXyTMcD2nhgsA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6: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-10_02,2026-07-09_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 priorityscore=1501 phishscore=0 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100097 For QCA2066 (and other QCA chips) on M.2 connectors, the UART enable is controlled by the W_DISABLE2# signal managed by the pcie-m2 power sequencer rather than a dedicated BT enable GPIO. When the serdev controller has an OF graph (indicating it is connected to an M.2 connector), acquire the 'uart' pwrseq target from the connector's power sequencer and use it to control BT power instead of the bt-enable GPIO. This is factored out into qca_serdev_get_m2_pwrseq(). Reviewed-by: Manivannan Sadhasivam Signed-off-by: Loic Poulain --- drivers/bluetooth/hci_qca.c | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c index 24dc5bf6d192be7e1d500df6bdf36e6184f9eaf7..f6529d359ffbd97f8a3c4c05936= 80ab200215b36 100644 --- a/drivers/bluetooth/hci_qca.c +++ b/drivers/bluetooth/hci_qca.c @@ -1872,6 +1872,9 @@ static int qca_power_on(struct hci_dev *hdev) /* Controller needs time to bootup. */ msleep(150); } + + if (qcadev->bt_power.pwrseq) + pwrseq_power_on(qcadev->bt_power.pwrseq); } =20 clear_bit(QCA_BT_OFF, &qca->flags); @@ -2387,6 +2390,20 @@ static int qca_init_regulators(struct qca_power *qca, return 0; } =20 +static int qca_serdev_get_m2_pwrseq(struct qca_serdev *qcadev) +{ + struct serdev_device *serdev =3D qcadev->serdev_hu.serdev; + + if (!of_graph_is_present(dev_of_node(&serdev->ctrl->dev))) + return 0; + + qcadev->bt_power.pwrseq =3D devm_pwrseq_get(&serdev->ctrl->dev, "uart"); + if (IS_ERR(qcadev->bt_power.pwrseq)) + return PTR_ERR(qcadev->bt_power.pwrseq); + + return 0; +} + static int qca_serdev_probe(struct serdev_device *serdev) { struct qca_serdev *qcadev; @@ -2417,6 +2434,10 @@ static int qca_serdev_probe(struct serdev_device *se= rdev) else qcadev->btsoc_type =3D QCA_ROME; =20 + err =3D qca_serdev_get_m2_pwrseq(qcadev); + if (err) + return err; + switch (qcadev->btsoc_type) { case QCA_WCN3950: case QCA_WCN3988: @@ -2426,17 +2447,9 @@ static int qca_serdev_probe(struct serdev_device *se= rdev) case QCA_WCN6750: case QCA_WCN6855: case QCA_WCN7850: - /* - * OF graph link is only present for BT devices attached through - * the M.2 Key E connector. - */ - if (of_graph_is_present(dev_of_node(&serdev->ctrl->dev))) { - qcadev->bt_power.pwrseq =3D devm_pwrseq_get(&serdev->ctrl->dev, - "uart"); - if (IS_ERR(qcadev->bt_power.pwrseq)) - return PTR_ERR(qcadev->bt_power.pwrseq); + /* M.2 connector modules are powered by the pwrseq acquired above. */ + if (qcadev->bt_power.pwrseq) break; - } =20 if (!device_property_present(&serdev->dev, "enable-gpios")) { /* @@ -2528,7 +2541,7 @@ static int qca_serdev_probe(struct serdev_device *ser= dev) return PTR_ERR(qcadev->susclk); } } -=09 + if (qcadev->bt_power.pwrseq) { bt_en_available =3D pwrseq_power_is_controllable(qcadev->bt_power.pwrseq= ); if (!bt_en_available) { --=20 2.34.1 From nobody Sun Jul 26 01:05:52 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 4062C403EA0 for ; Fri, 10 Jul 2026 09:57:51 +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=1783677474; cv=none; b=fS4pbHzup/0QMbSAkct7/bVL3a9z+1PD5KDcs8b9wE1TSmwxUl7xp3DcgYhPkDs9U1xgDOqcLm8MRj/HwZTDewbnSOSOxKgpq6Zc5shHWGTsYnWtqaNFS2L+x2MLo8LAYoBARzTAeiGjBw2U2Czp6LKywiAz674hi0VFT1C5gwQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783677474; c=relaxed/simple; bh=GEXkKTQcMMDP/edNVqpiosVSMOlJ5AlopPURs9YheQU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Vp8Bu3w+YkN7IKiv1qXAp0dZSqtYQr3UGYbJA1gEaduUfnoPMraIgdCL8HxkEujzIOJfn9Io6NACO1+bmZ1ewVxRRqq/MPW3060Qo6Zz9cQu2HmVydX/cRnOGrddv45T0TfmWgyWRyWovnGAT81ZOR8uFT99aOLTGx36c3YJNWI= 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=QTfkrBSC; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=a3EHxBYK; 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="QTfkrBSC"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="a3EHxBYK" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66A9TTKE291968 for ; Fri, 10 Jul 2026 09:57:49 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= PGp6Gz4cU4q54LW0ORFzAwYhub1+CHS+HnXdjrR+z3o=; b=QTfkrBSCtwQYBIgA 9/BP+CdDEcojUzMSbjD6hDcxDj8iBVqDkA/tXoLBhE5W51fgAlZmwbyXbWKUWvBL kzc1IECbrgNOXxhmMKGBQhMMz1ZMsdNX0wchJ1cbCfzFBskfe7JwuFYh4PGX0Ax8 JejxBKj49wmapeykb4tvy/J4a8fT5DiRfxZTOergejvB7gc9TLk264PGv04zUUjq lK9pV0nXrZUkm0DUswJvddkTB94HlwmZtg1Zuk3p59SBj2OM5kW6tN0yJDpoP88f VLs4nyBA1zWz+iwb4+OFt0psbr9GyrAKA2ke5xPWpiixmTKG05dyi4MY0NYFDZv7 wX7c+w== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fax5dg3kv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 10 Jul 2026 09:57:48 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-51c21c01cf3so13990191cf.2 for ; Fri, 10 Jul 2026 02:57:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783677468; x=1784282268; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=PGp6Gz4cU4q54LW0ORFzAwYhub1+CHS+HnXdjrR+z3o=; b=a3EHxBYKq7aRCD2vIozgBsn+Jp2M3HaBecMXWmXWuHjFcsGAACLwNNh5Ogypyk9qe1 CBrs20BUrV0LXTBjhgNDAKtvuk7WRJCD4CfEHfCeo2AkCrEwwW3cS9KMuyp9ShYY3rKT 1zU/S0FHCmoQJHx7TlBrrc7Hmd7KgExVFyrYrj2dr/d4u4zrw+B79StqQpRtPnW4hOgx gfZu67f6pA8kYbRFLzVErOzKVwO3OQFa0DvQc01GLvvvWTeFNqRhAabA+iEhXcZWhbbi nXcIfeSSYB1GoIelL+LxBA+ZG8itzQsZtDchZSfb2yRFGPm1iw6GkycUOOWW1MiljkYN DSRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783677468; x=1784282268; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=PGp6Gz4cU4q54LW0ORFzAwYhub1+CHS+HnXdjrR+z3o=; b=RLSWB4yJkp7IwG79HbHFTbOPICAJTKHvfT5hKHIelWdLAbsQH7+H69XV762JbZbpN2 2fGP09E6lu2i0u3I7pH7ftf5wQUjhDgZc3HgIGHf4ML211B1UOzD+ck1hitsgbRUWE3/ 5a6sRQI7ekwLpC/Q2iOSCtNF0J0fC9dAa31U7UPSmls5y1AQRRlDuXQJePot/TL4oYMB cSwyJMyy6gL5ERw9VXzu7knf6RwHXeI0kSubSOP51Tw/nEq/Oy1qO1QfP3gY+7559mSR jYCFk4+jUuRg595JOt8RJY2GXRL38aZ2VzjSWEI0hUJWvl2ghyEVDU7t/8StkTOqMmWA Yq+A== X-Forwarded-Encrypted: i=1; AHgh+Rr+SyGWxuV0zC34afw5HRYb/wdfSTHMV1Q9pTykdG2StOGZWuh9e4zoZW7NzqEyur5Xx+UOM85I51ubBSM=@vger.kernel.org X-Gm-Message-State: AOJu0YxwY/Mr6/IlXRCx/zJqlSgUUp3Czi4G129frbkZGMAFOWn3qj9F XljS/EEfCwrlg3/5L7ISOXvV89tSYuVSF/aT0gDt7jUH5xXbJRp00iYsUI/8YTzg4n/SUfX+Jn5 C+KF4RMEpUdmg3crQIEQwb6pgouekWrPyPeDzeUolbwdsbIqYvNXalHe++TXt6HRnZAs= X-Gm-Gg: AfdE7ck/8q5zty+SELvTVSjJdXriJbzzurWGrpvtGvNRuOPmdY0X2SiKRsZ72ZbCII8 mIs/2eHCwiTuDw6z1raWzih+U+wzZkyJJK21z3qtxkriAxz5uI5Q1AE2YJYeVx1xws3q49No+m9 DtQ0h78sKf3kkYnWL/LvZqoS5zt31ccUsKLFZjcPuDNVZP+5dOh92b4uJVDwYbLUcrV+66CkZq3 8fZEQzg3Ym4Ud+GPfnMR432wrczaUH8aN0XflBKW4Qkwz5Z8axStALS1VbvmAedlvgKLhAq+eiy yAU15VZG9m1RBg84Be2y7QQ3kxm+tQTBfkTyOi2gzyhbfnvQXTNqEWLQu1dpnnbDsKRQIhDTbQz RrrmRm4GEItUsiUzLGoPJxUgj44f5V+K34Yv0/Od8lDTIaSavoWTB/JRUrLBgf19RHDg3n43qQF CvPIAXD5uV5mC9RGrBq9Nm8+GBYR/2Dhw93n7Bz9zEFg8pCS9CqDDVKjM+BSP6mclZtI7FckwM+ yDoA9jyqU1caQG3+12a X-Received: by 2002:a05:622a:5809:b0:51c:7b12:120c with SMTP id d75a77b69052e-51c8b4bc4a3mr138323571cf.74.1783677467973; Fri, 10 Jul 2026 02:57:47 -0700 (PDT) X-Received: by 2002:a05:622a:5809:b0:51c:7b12:120c with SMTP id d75a77b69052e-51c8b4bc4a3mr138323431cf.74.1783677467625; Fri, 10 Jul 2026 02:57:47 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com (82-64-236-198.subs.proxad.net. [82.64.236.198]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15dfda815dsm265357966b.36.2026.07.10.02.57.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jul 2026 02:57:46 -0700 (PDT) From: Loic Poulain Date: Fri, 10 Jul 2026 11:57:35 +0200 Subject: [PATCH v3 09/11] dt-bindings: connector: pcie-m2-e: Add vendor LGA connector compatible 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: <20260710-monza-wireless-v3-9-46253587af64@oss.qualcomm.com> References: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> In-Reply-To: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> To: Manivannan Sadhasivam , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-bluetooth@vger.kernel.org, devicetree@vger.kernel.org, Manivannan Sadhasivam , Loic Poulain , Krzysztof Kozlowski X-Mailer: b4 0.14.2 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfX/Enfye6awRV7 B2KLlTFPs+QRyG/BppQNSepW6+hBnUUrgLQoc+vpOxIWuNT/OM3hRlkVPbsZ6IhIG89t/AiL/Hj eMsN80QKOq98ouuDxKAAWA35CzftjWQ= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfX9Wt3CBbHTCDa DT9p3cjGm5HsPiVQB7G2xZCxdsgYdtVNq1Rmo+aAmKOQ0XPMXLtoowdi2FiamELu3gOPotT4zm2 FK6BwDAhU0qgD2ySB1YBryCZGj3fxjGmF0MN4Gd4JTp7V1bhjrUKwjSBdj0YDP0aeiur/ceaVnm S5SX2+5x0MhGM3aKvw2lcfT8GUEXU3Jxf0bMz959amUBLGbwh9ixxuy7eVn3godd9Oa0YoARsuX uLiuzal7i0WiHBW8UXoh6+fCKKryQbiO1wSLB8xd+mF2qMwwrB9OIPzmtqabQx+hBRD7u1s0Jil zbnExbRCkz48z/aMW5Q2kt01RgQM/oGvK+6/KMTkXIgelYHX/Hk9xt+39pyZq6f+VpRV5RMfYQU J1mz3y7oJxssrwKZFls2/TF/Ku5tvcfm7dWLbL5MK1GkcB70Yp1Pyl51moUGAT3l51rkaIMLNIs Th/Tq4d5uMNCTAjAk6Q== X-Proofpoint-GUID: iwxskSfxfAvtMLB_PXBUsAgBQVV8YXe4 X-Proofpoint-ORIG-GUID: iwxskSfxfAvtMLB_PXBUsAgBQVV8YXe4 X-Authority-Analysis: v=2.4 cv=M/x97Sws c=1 sm=1 tr=0 ts=6a50c21c cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=MDeckJw97qnk8wCBExTehA==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=M8sXMW5dAYDte-7YvdsA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG: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-10_02,2026-07-09_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 bulkscore=0 malwarescore=0 suspectscore=0 phishscore=0 spamscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100097 Some modules (e.g. the Qualcomm QCA2066/QCNFA765) expose the same M.2 Key E interface signals but are physically soldered as an LGA package rather than plugged into a real M.2 Key E connector socket. Such designs are not actual M.2 Key E connectors, so describe them with a dedicated vendor-specific compatible while keeping "pcie-m2-e-connector" as a fallback for the shared signal semantics. Add "qcom,pcie-m2-1418-lga-connector" for the M.2 LGA 1418 module. Reviewed-by: Krzysztof Kozlowski Reviewed-by: Manivannan Sadhasivam Signed-off-by: Loic Poulain --- .../devicetree/bindings/connector/pcie-m2-e-connector.yaml | 7 +++= +++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/connector/pcie-m2-e-connecto= r.yaml b/Documentation/devicetree/bindings/connector/pcie-m2-e-connector.ya= ml index f7859aa9b63469cb43919c0b5719c18694c5364d..0282c6ee9272446064a99ec6314= a5ceb1721e0c4 100644 --- a/Documentation/devicetree/bindings/connector/pcie-m2-e-connector.yaml +++ b/Documentation/devicetree/bindings/connector/pcie-m2-e-connector.yaml @@ -17,7 +17,12 @@ description: =20 properties: compatible: - const: pcie-m2-e-connector + oneOf: + - const: pcie-m2-e-connector + - items: + - enum: + - qcom,pcie-m2-1418-lga-connector + - const: pcie-m2-e-connector =20 vpcie3v3-supply: description: A phandle to the regulator for 3.3v supply. --=20 2.34.1 From nobody Sun Jul 26 01:05:52 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 EA2D0404BF4 for ; Fri, 10 Jul 2026 09:57:52 +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=1783677477; cv=none; b=LMSElytgdB+bcNE2tFaM/a38tU0NyZtrvlMwqL1xKmQu4bpIU89YZPxrV3w8fuEga9fxATbszDO5iSJxTUISW/e+OEmFKV9pHMfPCBnkc0fcNuQVLbmfsFZcQamEg1Z3kPwxVVUGJkta5q9Ic8tevHdOLZdMWBWk8rFfR/RJs5M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783677477; c=relaxed/simple; bh=8JpUJth9XTvH2/KUENAtj9vpf8EiqqScCzN/6TvG46E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DVH4u/PK9vwmAAekNqs6c5dnyrVRc8JR2KPnWxxVlUBF7yMTeFLSTxGzNjz/Dqk1fqa9279XU6TvXtpDCwQyD3YjAtohiH39BS1Zt3jy+ViGEp2HrESWPLenRZ4L0xmzBpWKI+wuuPZ+3dm7C0sDGpRzPkl4fqfXOb9zIBzwO3U= 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=drQdye0z; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WbJgLcS7; 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="drQdye0z"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WbJgLcS7" 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 66A7e3Bd188989 for ; Fri, 10 Jul 2026 09:57:50 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= L/+fhSSKhqNyPBIhKtJ3rdCectIRZdOdeDVvpYe5lcc=; b=drQdye0zyYR6/ADK eR60QZa7r+h5eWK8gLYEiTp+Om71n1v+Pq0B1n+psFTOnW336SERmkLoUkmukSqM stLkpzbs70Kv1wJ8ENJDyvS4IroFhm5204VewBqk1VH+roQwVH6pqsKTx1MTIJlk UYZHQVxH7BG8/6b9dOm/dMnRCkkNKs1O66lUiexHBuVodg6AIpKWxRGf8LKMGd76 gUTKQFOQNmoVz/qiQbw1WolkOJUllEW9VWGeR3gXzPqMn2T9Df7hGWw63Se1URA6 ecXpjcSqU4SN/QUe6gZqfsu3EU8aie32TihzR29lTYYTpg7JU9mHHV+x4X+EGr2Y l8APDA== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4faeesuvtb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 10 Jul 2026 09:57:50 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-51c0199faafso6741431cf.3 for ; Fri, 10 Jul 2026 02:57:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783677470; x=1784282270; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=L/+fhSSKhqNyPBIhKtJ3rdCectIRZdOdeDVvpYe5lcc=; b=WbJgLcS7eW+jP/21gcjR/0ZsyFQ1z+4OSqaUq34tt6yiT656lQcFE1ZSaxDfk+0WUW BVTGS0kxpVDzStHCMuOu7+LxxmfORyDGsaAd8OuPN1W515eNQR5i/PDGBLqkuZblvNFj ZG0tVlgPXFTttJ4KNcTiv/k/e/sM8S+1xfI+wq8OeRyfZL5vAf8Ek5/Iq53P0FSxAbNL m+IIFr47svXKFGR29iPtqIADjNJM7j5syHXAWXn7qXqP3TGoFXoVWVmus11P+31J6c/Z bWbbf+AXXpKo6pC/BTewxzmUc5yrD/AvDFBZybw9GCr7j3Iwo7uACf4/G/F0TlHjXDZT i1jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783677470; x=1784282270; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=L/+fhSSKhqNyPBIhKtJ3rdCectIRZdOdeDVvpYe5lcc=; b=WuTGe9wletfl7+AKZ52Ov85F5rDiiGLnasm5dqo4NdDhKEAIK0tmdfBmfUvHIH8Z+5 1FI9vBTbUDpZnkR6jLHaiFfzwAkdmFUM8RUYBZb/JLDBIluQ9QsmXp8quQG9dz2iLVTo gjpa92vPwvBtFCQJFfjx6ov8gUPUrSk1mQoy6cHvpfYdNHrKz7RGGtbuz7ahO4Hnj3qW SIGujX/a+1perrUqjEIQKB7LRF8H+NnATn3dhQ8PJcMpUx1LRgcl7BKpnq69U1ZUsXv9 hlmfidzJYOTbZLLfdxPkDPg38+M2K/LRmomLCOsB632xvsKyvs4uahUMC90wE/WP1gC3 WMNw== X-Forwarded-Encrypted: i=1; AHgh+RqFUAkFL/30fQcAz7aOGa8tb3zBeYH41xjrD1Zqj7dficrIl0yloVdQDBP1SjBfrQYQz+odhV4R40P3Jzg=@vger.kernel.org X-Gm-Message-State: AOJu0YxIIZ6DaEIogRZLJF2opH/bWLbIFxLB2JpJLm4UJuCjq3qpTc1x WRhdCnK7/12ubx+sN/TILSuAhf4jh/7zNueHKD8e/2BgycAO7UsOWKB58iUFv39TPpb/ydtf83q r7bItsFSMr/uRXX3Edcp53IOxRvx+EWZQU3AbqumY0AAzYdCmbGnlVLDTwlFPF0vYdOA= X-Gm-Gg: AfdE7cmjSB0WdSuqZw2kBRbPzHVIYuxdXlFMCs+vbP1hP+5/svbYsTR2s18p/CuXB3p mrl1CtVTPxZ4gxFM/XUuQbQSsdbIo+c4heFDAs2UaW9lnq0XjbKiWED9uAVfUT3HDjNoaHNUqfx 2TcsVf8HcOMNBJNNIyK5V6GoLaL6wq9XEeoIXAm9R2v+VEQrkxP4DJBTr95wbyE3X1vtx2YPR0s sxEYgT08xFxctVSIXNmta7dQfJY6yxBFdzDydjhtG9V0UVWOYcDa/ZNvgsq0CbiAKlMDPzDcZui h0Dq0k5E7VIrYwEuNANgtqQQ4B1iU9iWnIt12MuW+Uns+gfzNkjl6gRYeomcoif8JNkWsqJFCeE NLsdFcyDiFUpjcik5qfwKOo4TNVpllL00pxqkuAODnWJWDPtPlMOxH0xTz5tuJyj1U22NRm42e4 JFmR1vmVZbpjILdpY+MJPXHilQgoj0nE6RcVuOR4brbzPZEELb57p/IRCkj1ugdOQYu8CtZDlHe xjj8MhAT6/mMPT4ghOo X-Received: by 2002:ac8:5a84:0:b0:51c:1967:5091 with SMTP id d75a77b69052e-51c8b3b4c44mr119708661cf.41.1783677470053; Fri, 10 Jul 2026 02:57:50 -0700 (PDT) X-Received: by 2002:ac8:5a84:0:b0:51c:1967:5091 with SMTP id d75a77b69052e-51c8b3b4c44mr119708391cf.41.1783677469579; Fri, 10 Jul 2026 02:57:49 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com (82-64-236-198.subs.proxad.net. [82.64.236.198]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15dfda815dsm265357966b.36.2026.07.10.02.57.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jul 2026 02:57:48 -0700 (PDT) From: Loic Poulain Date: Fri, 10 Jul 2026 11:57:36 +0200 Subject: [PATCH v3 10/11] power: sequencing: pcie-m2: Add QCA2066 (QCNFA765) BT serdev ID 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: <20260710-monza-wireless-v3-10-46253587af64@oss.qualcomm.com> References: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> In-Reply-To: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> To: Manivannan Sadhasivam , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-bluetooth@vger.kernel.org, devicetree@vger.kernel.org, Manivannan Sadhasivam , Loic Poulain , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Proofpoint-GUID: 3i4ZwAvOtXm6tbPnJFAs83_6o5e-vJzY X-Authority-Analysis: v=2.4 cv=bbpbluPB c=1 sm=1 tr=0 ts=6a50c21e cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=MDeckJw97qnk8wCBExTehA==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=hhiJJhbhXc7jC-Wm4KYA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfX+oNr1GDKMPcV UE4sWQkTsASZjLERDFTQiJlNdrL/uNo+8nZW8Vxv2+T/uonLfqZILbOnbz1q7E/8HAStzl2/11B kkiF7TWqSornzBWdREvJeRDDlGMuv4Y= X-Proofpoint-ORIG-GUID: 3i4ZwAvOtXm6tbPnJFAs83_6o5e-vJzY X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfX6fOINxuHLA/Y TH+MKHOSeoZdnOzh1bDP7DB6j7Jbo+KKrrB4HjNUE3wugZ6OtaJNHTZF0XM1NhrVswdvWXu+rKp ZEHZCUvGe9suqLMgxlqElm22hRw7SKS5JP1QKu/MlsLXjyY0he7eFt0SiHKIMY3qP12eRHJSRyx uPden3JlaeJtod0ZGy/cLHf81qf9JK3CxsTZgoE+PMp+e4OBnEA/zfobcsguBDhPuiGhSXtRXFl uDk0XKpa45/bZoKuRDnd+0Qz+nbQLV4uyjjOXFoq1tsbTuJDRyBzqDRRXiBxhnn0izwYkA4vlrL Y+Ou4mGeYUIyNBy1yTMFizekTXX6p6X38BjfAOWTbosaCynfPO7E/cRwBBJ5pg6ufIFczPB4iyi p4TQj8qBHDIxyJlE2kRqqI8CY5Lt9L92oLUhd4tdRuJ+l8hrxpkyAE4W5LLQbszgNd+kYNQfl+0 KessEe9p/NiqeI7uyFQ== 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-10_02,2026-07-09_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 suspectscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100097 Add PCI IDs for Qualcomm QCA2066/QCNFA765 to the M.2 serdev ID table, mapping it to the qcom,qca2066-bt compatible string. The Subsystem Vendor ID (SVID) 0x0108 distinguishes the QCA2066 from the WCN6855. This allows the pwrseq-pcie-m2 driver to automatically create the Bluetooth serdev device when a QCA2066-based M.2 card is enumerated. Reviewed-by: Manivannan Sadhasivam Reviewed-by: Dmitry Baryshkov Signed-off-by: Loic Poulain --- drivers/power/sequencing/pwrseq-pcie-m2.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/power/sequencing/pwrseq-pcie-m2.c b/drivers/power/sequ= encing/pwrseq-pcie-m2.c index 4bcd5078609da1be966ab30c73cffae5e578934f..5004e70ebbfc370823098ff6df7= b79336c1e6063 100644 --- a/drivers/power/sequencing/pwrseq-pcie-m2.c +++ b/drivers/power/sequencing/pwrseq-pcie-m2.c @@ -216,6 +216,8 @@ static const struct pci_device_id pwrseq_m2_pci_ids[] = =3D { .driver_data =3D (kernel_ulong_t)"nxp,88w8987-bt" }, { PCI_DEVICE(PCI_VENDOR_ID_PHILIPS, 0x3003), .driver_data =3D (kernel_ulong_t)"nxp,88w8987-bt" }, + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x1103, PCI_VENDOR_ID_QCOM, 0x0108), + .driver_data =3D (kernel_ulong_t)"qcom,qca2066-bt" }, { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x1103), .driver_data =3D (kernel_ulong_t)"qcom,wcn6855-bt" }, { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x1107), --=20 2.34.1 From nobody Sun Jul 26 01:05:52 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 20AEB3FE363 for ; Fri, 10 Jul 2026 09:57:54 +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=1783677478; cv=none; b=MlBkq9BXtAl7cRkTOTf4693OVffeUriGTT9pcMUOOlNpAygERavhCW3zygUAiJewkUXoLr/MCQZOhwFDcBJFc5rgG8FB9KgxNZpeR7YXTd6c1Clh6r/qwaAv64xNZF6sxwoFMU/+IiLqDJMvoF1EfkBDXeVKRjENVbmBDlI9kEk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783677478; c=relaxed/simple; bh=6pXYbq0cnSv0KPQPpczNz5p2DBipwsIgwwH6Bmrx3y8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KVdvrTyAmnzNj5YaoqPUnK0dIVt1pBKv3Xwjn/RZ/bQzREM1c5n9NVrEz6liQKpAVurSe6eRthZhsPbVrdWJsR+Dyz9qdUYp0IzjpsvvslN3FF+9beHtldISq+VyJGDr8R1gw1O+DIizD8am4vII9tI6PO40UjgcNkFSyYUW35E= 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=ozl487vZ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WA0rlals; 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="ozl487vZ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WA0rlals" 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 66A7dLNa172311 for ; Fri, 10 Jul 2026 09:57:53 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= 7Vyq56zyV3kK/hWlhQpFe9/5myCJg+mLyuzZJXrDJPQ=; b=ozl487vZanGltMn+ QpHgalX8RBnW6jugZr+4QR1ocqaSsPjHS55sxqaiRDh/3Z5mdW+Kr1N003XRGNwY tZnj7UUur6r3c0NZxInCQiJAJMc4dTnbz9Wgc0/wLSidN1kwA53A5hkAiXQ6N66y 6EtyJ6C72Ww9kQPEv3C71mwt8C+YZDoH+693GWikPE0Dlw0BaZmrnc9THC794Jiu uNEYTtip+GZphKsdktaSSa/T2pxeBy0zxZjVrUrqh6hsjuPz6IxHRj8dNSCE2bqM Z8DljmkommMI518uUh6ryj06cMuopd0ZVvdSf/T1ZC2mTS55ifRtaIbQyNtot61Q U4hEzw== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fanwe9xbc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 10 Jul 2026 09:57:52 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c0d6a2f4cso7089401cf.3 for ; Fri, 10 Jul 2026 02:57:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783677472; x=1784282272; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=7Vyq56zyV3kK/hWlhQpFe9/5myCJg+mLyuzZJXrDJPQ=; b=WA0rlalsrE78wUgu9Y70T8dGyKZblV4tF8kxsU8TgTNA7dhymQRmkFHqgJ/R4iOp8B lbpvB2/V9KhjQeKj9B8G+rxUTZwysMoUfUdu21YJBJqBpTINCuOKLJ+nvpBJt5soJsGN iRYl9dvRXQ8xLXNQNePqtiG8gXSBW7FbECk8Xeoh+n+O1VkPFuTPqkR6cC9bL9DWJtgm F5RCZr0M8Bc/8iirsrk+Xq8ZGrCEt37VAXNy8ACHCpmPxDb2yaQ575rcS1mAoX4R2sY8 wBceAijLIub1QJiNvCQtNyuxULQC1oQNFtbV3I2yV9XMymXR7DwTHPdiMcJ7wC/tjXu6 BIPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783677472; x=1784282272; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=7Vyq56zyV3kK/hWlhQpFe9/5myCJg+mLyuzZJXrDJPQ=; b=lkqGiQV/CRdLSnRFCpkBxCXV+25nNvsG58STCwzjGhRP9zC7hlD1tHiOyt6dnJgcmq NEpb3EU10k/YSjFUnA6IyS1CjtBcaUhSZkpudJc4xbawtZCbTCfi3pi6kYeNVOdDutuE dgGtJxVnmnKDmoMvC/Df5iRtu2b05dIrZcYGiAKrZD/8rmyZMiUiClTdDOkIuz8pTxHZ cbgw7auW5i4uXSW2N5WfoXFRhmhSPB4/YX9wL04nyPTg+7z6giQ78QD5r2QGTcOvGegp mndPKmqDvwT7LEEuHDJ6uTP5m4tkHvuR7TGdeHsusMH7e/pau/CHZrOSTzyymAhDfmLz Lckw== X-Forwarded-Encrypted: i=1; AHgh+RpYw5qC6CbLzzTXXRG+YE1fNqV7aUrSR2JzNZ1qFWGfct8N2eEiTyHx90YW9TFhgUp8uzawkByrChFmkn4=@vger.kernel.org X-Gm-Message-State: AOJu0YzOWdADcFaHjoUy0gKSLHwmESquljgT9iOrXsIiQ13HTodLndNN VF6PDQNMJp/fWNZc76RJ3QuexQIxN6zHP5vlP8WB8AWfbsPI2Od5GRekFt324CjdOzgIyIFlb7E 9XAt9sL59Ljsb548sgDsXp6I2OrOe5Q7bfIfbWsNpHyC7xnVrNh5KSD1cAl2mFx6ANeClrVTPlG Hohw== X-Gm-Gg: AfdE7ckmezYgrh1u8gmOWfSeB3mwidukzXWfAv6DIdDwuBkXkYX3/O1Yw3kkP4jvCIc JNEHGD1MBJuuR8pgzn/DHhbFdiKAKBFYL5udXbcQQdaBmDM/RWQnfOckCHzFO4Ys/SYdoqVdXcM W2duwqORsL15h/e35nZPyqQhnWSVHRNRr1e0wUgqqINTm5wpbEn+a0mxzX59Azeg/yb/xI8r5Ob kw3WHgdsxw2CCL3t5WYn+omxFq38hUzGb/i53RyXL94hlxM4YdcoEhO0VGmzc3BcGn5b0rizVJx e+QUHOJJvKFUslwNjwcGVaCfV8nPL6ojVuCQblLVBNSAleBanpzhiNggayzPz8lwzY/lDRwQZ7V dwBRPNhkgT12JvGzX9cJz2CRTW/YIrZtZvJwqHL5YJxjSlueCQpObznhhqKZxGqTHOGzNO7pBtl AwORHOiKU4ludQg3g8bdzF9WUe3acgijtESwuYDytAzDC3j42Uj4PMlxzV6CHx6oOsL52Vx8hwa VTUmvQRxXFZWLfUIrpJ X-Received: by 2002:a05:622a:1195:b0:51b:f40b:2fb3 with SMTP id d75a77b69052e-51c8b3ffca3mr110162101cf.9.1783677471878; Fri, 10 Jul 2026 02:57:51 -0700 (PDT) X-Received: by 2002:a05:622a:1195:b0:51b:f40b:2fb3 with SMTP id d75a77b69052e-51c8b3ffca3mr110161911cf.9.1783677471489; Fri, 10 Jul 2026 02:57:51 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com (82-64-236-198.subs.proxad.net. [82.64.236.198]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15dfda815dsm265357966b.36.2026.07.10.02.57.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jul 2026 02:57:50 -0700 (PDT) From: Loic Poulain Date: Fri, 10 Jul 2026 11:57:37 +0200 Subject: [PATCH v3 11/11] arm64: dts: qcom: monaco-arduino-monza: Add QCA2066 M.2 WiFi/BT support 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: <20260710-monza-wireless-v3-11-46253587af64@oss.qualcomm.com> References: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> In-Reply-To: <20260710-monza-wireless-v3-0-46253587af64@oss.qualcomm.com> To: Manivannan Sadhasivam , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-bluetooth@vger.kernel.org, devicetree@vger.kernel.org, Manivannan Sadhasivam , Loic Poulain , Konrad Dybcio , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Authority-Analysis: v=2.4 cv=LbIMLDfi c=1 sm=1 tr=0 ts=6a50c221 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=MDeckJw97qnk8wCBExTehA==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=EzCDy3pf2FPqfMyO2-oA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfX7Spkml+vVjAQ hiZpxJ70avPGvKQq5fHXLLqZjh/9lV4QJIc1FRBe2Ha/lhwHHkoMSyq23Gt3SgoFNhEjMNE+8S9 VHP8I3UqQIppkoDxRm4et9B2CjJFLb6jVB9rzCadZr4wLMTI0Ax0rYT0FW610cJz8uG2pltLgZc 1nkyMeI296ywb90ougpRc/mMdapbGkwiENYFouhQJ0kJ5PIZoT1vTzTpzYcJAt7g3TZA7tvgKJH NnJvusvF/ZgApfkXYOUWYMx74naU2fJKBPasdS0GqNhHVyKAhyuIfGnHrd6LPD1fkgciQSDy9cs +AsfE0zImI/3MRdAkaUKmhdL7FnowfM053wIr8C3z9laLAXvyjd8rGgY4OvHlPWUiPPSSOH8xn9 eeNAaSV/wR61fcN+BYLfw9NWxbcbhRazpZuGtG89rZ1Btfq65q7UquFk3d92oO9LBB9sYF0TtXR vANOMryzq+AGhIfuTSA== X-Proofpoint-ORIG-GUID: RzgjTfaFM9Oik0or7DzJor0alJwEn1DZ X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDA5NyBTYWx0ZWRfXwZOVYa44UG8W 0js0td763W7399xTsZMFvK6T8dBFt7Lua/cgvHJPHRfPCThcfs3fy3LC9g3xJq3G5hodgGJDna0 OIzFmMJPUjbsak/Z/bvB2v9UxQ2tqTE= X-Proofpoint-GUID: RzgjTfaFM9Oik0or7DzJor0alJwEn1DZ 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-10_02,2026-07-09_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 phishscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100097 Add support for the QCA2066 (QCNFA765) WiFi/Bluetooth module on the Arduino VENTUNO Q board. The module is interfaced via LGA and is compatible with the M.2 Key E. Add wireless-lga-connector node using pcie-m2-e-connector binding, connecting PCIe port 0 to the WiFi interface and UART10 port 3 to the Bluetooth interface. Add pcie@1,0 downstream port node with pciclass,0604 compatible so the pci-pwrctrl driver can acquire the power sequencer and enable the M.2 slot before PCIe enumeration. Add nfa725b_default_state pinctrl for the W_DISABLE1/2 GPIOs (gpio56/gpio55) used by the power sequencer. Reviewed-by: Konrad Dybcio Reviewed-by: Dmitry Baryshkov Signed-off-by: Loic Poulain Reviewed-by: Manivannan Sadhasivam --- arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts | 64 +++++++++++++++++++= ++-- 1 file changed, 60 insertions(+), 4 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts b/arch/arm64= /boot/dts/qcom/monaco-arduino-monza.dts index f67a554adf956696aeac2348e478dbd0b74f0e62..e3d3d68932efff494f3c7ab96d7= 5869be24c4a94 100644 --- a/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts +++ b/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts @@ -155,6 +155,40 @@ vreg_nvme: regulator-3p3-m2 { enable-active-high; startup-delay-us =3D <20000>; }; + + wireless-lga-connector { + compatible =3D "qcom,pcie-m2-1418-lga-connector", + "pcie-m2-e-connector"; + vpcie3v3-supply =3D <&vdc_3v3>; + vpcie1v8-supply =3D <&vdc_1v8>; + w-disable1-gpios =3D <&tlmm 56 GPIO_ACTIVE_LOW>; + w-disable2-gpios =3D <&tlmm 55 GPIO_ACTIVE_LOW>; + pinctrl-0 =3D <&nfa725b_default_state>; + pinctrl-names =3D "default"; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + /* WiFi/PCIe */ + port@0 { + reg =3D <0>; + + lga_pcie_ep: endpoint { + remote-endpoint =3D <&pcie_bridge_ep>; + }; + }; + + /* Bluetooth/UART */ + port@3 { + reg =3D <3>; + + lga_uart_ep: endpoint { + remote-endpoint =3D <&uart10_ep>; + }; + }; + }; + }; }; =20 &cci1 { @@ -409,6 +443,22 @@ pci@0,0 { ranges; reg =3D <0x010000 0x00 0x00 0x00 0x00>; =20 + pcie@1,0 { + #address-cells =3D <3>; + #size-cells =3D <2>; + device_type =3D "pci"; + compatible =3D "pciclass,0604"; + bus-range =3D <0x00 0xff>; + ranges; + reg =3D <0x020800 0x00 0x00 0x00 0x00>; + + port { + pcie_bridge_ep: endpoint { + remote-endpoint =3D <&lga_pcie_ep>; + }; + }; + }; + pci@2,0 { #address-cells =3D <3>; #size-cells =3D <2>; @@ -501,6 +551,12 @@ max98091_default: max98091-default-state { bias-pull-up; }; =20 + nfa725b_default_state: nfa725b-default-state { + pins =3D "gpio55", "gpio56"; + function =3D "gpio"; + bias-disable; + }; + pcie1_default_state: pcie1-default-state { wake-pins { pins =3D "gpio21"; @@ -544,10 +600,10 @@ &uart7 { &uart10 { status =3D "okay"; =20 - bluetooth: bluetooth { - compatible =3D "qcom,qca2066-bt"; - enable-gpios =3D <&tlmm 55 GPIO_ACTIVE_HIGH>; - clocks =3D <&sleep_clk>; + port { + uart10_ep: endpoint { + remote-endpoint =3D <&lga_uart_ep>; + }; }; }; =20 --=20 2.34.1