From nobody Wed Apr 1 22:35:43 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 ACA9232D45B for ; Wed, 1 Apr 2026 06:35:36 +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=1775025338; cv=none; b=XPaOVgVo+EnoBAZ2rGfQf8hmyhzkX5VrvWaZRng5rLWFHQ1ZXlBK7Mq0nhFOELEDqZPa38QyoiQ+DLYqjP98glfdXctLMA1pPJdOBjHfk1hG6ITxU4X/WBvvuCefq84RmF+yU/y8SOHslrL/NfHTeSNQ49u3vLYZNIZ9EZXU81Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775025338; c=relaxed/simple; bh=h+6iokKQZz+tTzp0NWNeSPU4XGXWquRPqhH9qv/wUAA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IAWnNwlNheLsxZBDi/mL+dr08If9E/SAMUCUd1wmsTz8R3xIz8RJy64WthGCJM1VG5gUBFQBWd7viAyeSKTFzAUZ6lrdxKEoUxg0jkQMAr7O1RrNOAGeLPJfyM/K4mp2HaYlyxMKN+DmSf02UKBxeUiY/18uNwBtZohKmIhR1lk= 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=lnz5zc24; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=EFvHG/C1; 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="lnz5zc24"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="EFvHG/C1" 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 6316HZlr639212 for ; Wed, 1 Apr 2026 06:35: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= vOXdhdDzApb0jzhJUtIq/M2ueYVWSIdj/ihpXQxGFuU=; b=lnz5zc2428jcxJJ+ 1bMYF9WArX+XrYuWWJW4oGa+Joq+wVxtGsQsgPftncBROcsFvVyIrzLopE/uZpFr iLuXb52Km+dCJvb7/OjQ8v+L9lOiGwteVcWv6tRvQxglpLetCj1FPcZTAO22wnic 0Qm2NdvuFWtrnuXcaxgq99fIQasxStsB58Km7jKVBwIzsyVpVtI8WWAa1O04e9wN NLu18Yvfei2hRHr1Yv7QAtA1AafhZjp/dsqqzxxKJo3Oim/uQDpwUI8rS2ViE9TP uaYOamfkXMtagcwlwLoipLAodCMb3A8gBTYSIworGssOe/mpiAC46OeUl1FHHF2y FYyCYg== Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d8g2auqrh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 06:35:36 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2c5b48baf75so6548740eec.0 for ; Tue, 31 Mar 2026 23:35:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775025335; x=1775630135; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=vOXdhdDzApb0jzhJUtIq/M2ueYVWSIdj/ihpXQxGFuU=; b=EFvHG/C1kmOGDPi/Pom6uBeGVSLYXLxslRaQq330TXbDHha8ZeyewalO+72EFPzpAg rH73Sa6xSdmCfGbGEGp0qU+RcPXe7OnTD1H9MoNksRW5vRDYHF7fYVj7RXMAVYCSxyjb UCld3gP1vVeWKbsPlmsNhobG8KoPRTxl6HW0EafF3pfGB1kBzCAxrpu1Rkka7+tR3/e3 RxzGL7r6T3syvAB905jveyPiD0dVHK90IpZzCnc91pIZW80mzfMVoGf3MMf9pprqA+Vj Ukh7BpbEYkRBDY8rOGjEJCuLFp1r399XsOZXu7RfIH1pGmjxUtP2xWrLCiPHDh7QprF+ q9ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775025335; x=1775630135; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=vOXdhdDzApb0jzhJUtIq/M2ueYVWSIdj/ihpXQxGFuU=; b=b9V5QsrqatkuBH1Qc0kXkoFMKARFYf6gcPvaoYx7IKqcXAwD6bKMOJARyGUQ2orEcI bKS95RUBEt8vwQnYd6TQychK+btlQneSl1ZLPuiBlxXAechMpD3nXUlG6hyS6BIYDTQc rIXfh8JJ5uiBmXpKzKmsXwEpbKntPTB9jTOVmAcfPlQ83suYV80JckYl6bsocVlZOekU tK3NXjDCE3Ks1imH5gT2xyEZfkwh1hyLGGs1XO3ApaBy8bGAc2YCsB851TFmXfSrjkgk dYVK08W66Yh94zEDv9j3+sBU2s+SAeMMm3VrVQoiUz9lcQ2F+1x9oO4uqq+9aQhE955U z6vA== X-Forwarded-Encrypted: i=1; AJvYcCVhXWt4mZk+9JSe7QwJuHGoA/C51wEWiAEbyCuMWW2IxXvN/GNDG63ND1z3y6b3Q4DRFMjGfjtFP4/1nv8=@vger.kernel.org X-Gm-Message-State: AOJu0YzzCBEZ8zJVdlJpIoQ9BsYM6DzmlQzvVJwlYEjVCl3uj+xaOGcv bRAsM/DudvIw/Fc8DfT1xsAq/fLIDt5q/etIzcizAVkoqe4HA+/Ng0Y19fQhnSOoG40PIAT2DRL DSTNmbDk7mQJ9zqppHVU9B/8BD2BZvaC8RLoD+z+B7Nn3wS1vGQFn8fXdGC+4i+pdWBE= X-Gm-Gg: ATEYQzyu8eRJMt7XjMi5l1e5qQl/hJeqUAl1Px3c1SU11ZnnWj/E1IOmVZROmpNc8dT TWjQ/KrquBW3K1TnvCJ7Tv50eyJCj3vVX7CsYDeDNvOb1pfrnQqGrJdHkgapX6NLVUYrBOJpJYh NpRpOZ8qgsiOQc4d8Yd0m2uCRoNceyPwxUZcVORaCbSYSpUjbpCckRXSD9W8HafjcZou7N0SwD6 +UDmi87YzJ9kKREm4en3LCLemG6enhjVDPKg3XRkIQILEjGI2vIGa9ACKob9fnpuDcaQHyICW61 WZiOiEoog4NZ2ejUofhHCJ15yIWbtHmhFT5a8wdpOqQ9jCm0oelZjNBW9kX9vRk/pPOSD6wyZab Q15lYstfqr7efgN5vBsyzVekvdZpvE+7hL6Nhx3dUCA+96x5Yw+fG3XAU5zF7AqcITiS8 X-Received: by 2002:a05:7022:62b:b0:119:e56b:958a with SMTP id a92af1059eb24-12be64b5885mr1209373c88.15.1775025335256; Tue, 31 Mar 2026 23:35:35 -0700 (PDT) X-Received: by 2002:a05:7022:62b:b0:119:e56b:958a with SMTP id a92af1059eb24-12be64b5885mr1209364c88.15.1775025334599; Tue, 31 Mar 2026 23:35:34 -0700 (PDT) Received: from hu-qianyu-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12ab97f6994sm12027550c88.8.2026.03.31.23.35.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Mar 2026 23:35:34 -0700 (PDT) From: Qiang Yu Date: Tue, 31 Mar 2026 23:35:26 -0700 Subject: [PATCH RFC 1/4] dt-bindings: clock: qcom,sm8550-tcsr: Add QREF regulator supplies for glymur 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: <20260331-qref_vote-v1-1-3fd7fbf87864@oss.qualcomm.com> References: <20260331-qref_vote-v1-0-3fd7fbf87864@oss.qualcomm.com> In-Reply-To: <20260331-qref_vote-v1-0-3fd7fbf87864@oss.qualcomm.com> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Taniya Das , Konrad Dybcio , johan@kernel.org Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Qiang Yu X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1775025332; l=1973; i=qiang.yu@oss.qualcomm.com; s=20250513; h=from:subject:message-id; bh=h+6iokKQZz+tTzp0NWNeSPU4XGXWquRPqhH9qv/wUAA=; b=zjvlvfPidMtfsw03SJZXQdGArrrjZcjtFSfDCKrURTOSU4zza+ExjIASSv/GM728Zn/d7x0Ud u10cftkc8EtAcLzZHtMoEC1avGIVTJi3GcJ5AHCUSp8lJzJmXVUi/AN X-Developer-Key: i=qiang.yu@oss.qualcomm.com; a=ed25519; pk=Rr94t+fykoieF1ngg/bXxEfr5KoQxeXPtYxM8fBQTAI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDA1NiBTYWx0ZWRfXwelIl7kAnIsJ 9U6q3Eu7BWlKB8X8up6ZbaR1H70VuVa/7mhOhb4l8puYiWMGoH0v+0oh3VLCh+ufO86cfAgfp4Q sX56sJcOKoEdo16mWJVTSm3G72LE9BoDr3MmedHOXqsn4xWWvODvRCJqo2yESEfoyAZbcDay4hG ZNnZt5lK1jvVXMr+1/znFaF6h1SNK8WPybb9VFtpWeV05j475kKxoCUnwgrqPzI8sd7SX+Jhopc wn5UN1ez4JfBL0PwT+dHNepKH16rf27Is8MlluO1LoFIUgoVDLzOiyAo5a1kWW3cPWxtSt9S68n EsMvuix0e0Gw9iuXuN0Y1aD9FTFvHXQRGk9FxuVr06HnmCexGIPWsWAu8FOrlBOerTZ30auHJ86 ToscW1gTWrB8DAeiGmx8PUE48JuPEHzz6b3hKSZBT3Jm/25r6e3fkqKJLK3BjJ26EGJjLz+TrVa WpprqpJH848xNU1xrrA== X-Authority-Analysis: v=2.4 cv=G4ER0tk5 c=1 sm=1 tr=0 ts=69ccbcb8 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=q-kqYbIK7F94m4hkTHoA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-GUID: RnPWGTkPMrGSPxYvKV3pPNqNvAhsvRYq X-Proofpoint-ORIG-GUID: RnPWGTkPMrGSPxYvKV3pPNqNvAhsvRYq X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-01_02,2026-03-31_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 adultscore=0 impostorscore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010056 The glymur TCSR PCIe clkref clocks require regulator supplies for the QREF block and its refgen reference voltage generator. Add the optional supply properties restricted to qcom,glymur-tcsr via an allOf/if/then conditional schema. Switch from additionalProperties to unevaluatedProperties so that properties defined inside the if/then block are correctly recognised as evaluated and not rejected by the schema validator. Signed-off-by: Qiang Yu --- .../bindings/clock/qcom,sm8550-tcsr.yaml | 26 ++++++++++++++++++= +++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/clock/qcom,sm8550-tcsr.yaml = b/Documentation/devicetree/bindings/clock/qcom,sm8550-tcsr.yaml index ae9aef0e54e8b8b85bc70e6096d524447091f39e..88db650e69ef2388a5bfb6783a5= 7c1d48c0e780f 100644 --- a/Documentation/devicetree/bindings/clock/qcom,sm8550-tcsr.yaml +++ b/Documentation/devicetree/bindings/clock/qcom,sm8550-tcsr.yaml @@ -49,11 +49,35 @@ properties: '#reset-cells': const: 1 =20 +allOf: + - if: + properties: + compatible: + contains: + const: qcom,glymur-tcsr + then: + properties: + vdda-refgen-0p9-supply: true + vdda-refgen-1p2-supply: true + vdda-qrefrx0-0p9-supply: true + vdda-qrefrx1-0p9-supply: true + vdda-qrefrx2-0p9-supply: true + vdda-qrefrx4-0p9-supply: true + vdda-qrefrx5-0p9-supply: true + vdda-qreftx0-0p9-supply: true + vdda-qreftx0-1p2-supply: true + vdda-qreftx1-0p9-supply: true + vdda-qrefrpt0-0p9-supply: true + vdda-qrefrpt1-0p9-supply: true + vdda-qrefrpt2-0p9-supply: true + vdda-qrefrpt3-0p9-supply: true + vdda-qrefrpt4-0p9-supply: true + required: - compatible - clocks =20 -additionalProperties: false +unevaluatedProperties: false =20 examples: - | --=20 2.34.1 From nobody Wed Apr 1 22:35:43 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 13685334C1F for ; Wed, 1 Apr 2026 06:35: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=1775025339; cv=none; b=ipQ2AWu/efLdkoIdFY0vfM5J54c2459JdTU+hlRg10Qaia8E+gId5Ctpm2Uqe2AyPEOozxVpprNy/ztFPn1soEa+60LZcEwUHeZcaXfxDGxzQDSR2+3bFL9UswC6hrBtGfaQv+1f+sxjYvwC8SvbZe/OxObZAHH04FhlU3e0bIc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775025339; c=relaxed/simple; bh=LVke/3uSY/meafnv+KY5H8ReXOtHnfGoZ1kiQEEwTxY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=s4IsWXOi/3nZunpAi2gXysWFi4AHTCShd7tWJcZomW5uTSRELdBlkvLQODmTvVvL+YgN7hgnMAPQsMPbnVP91X0PoLUyrYTzF7HEOdyLORsss7cUTy0B7O0/0K7WE7wRNfFiHnElJN5Blw5UH9iN4/rENuNkiqG96LKYF9U8NUQ= 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=njUmQt5O; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=YheXJCn3; 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="njUmQt5O"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="YheXJCn3" 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 6316HZls639212 for ; Wed, 1 Apr 2026 06:35:37 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= +cxOM6L9rZEs5b6lY8QSOuBdOV8ZlCvf3Ji7AEGKfoI=; b=njUmQt5O+qpmuiK7 Fsv4XesloYNk9eUPFbA5LkzDdSXMbY3gJdPXg4vPcDzBGWiNUD2a6O2BtwzV+mMa kq6AL7Male0TbWZaDuvB8lC8yrFMAV3eDTIq+ifMorSyI8KG2yquRdklXjw3H4VM QOcKK+Ta6l9vLBS3OGvzeelVlziSc12QO+C67DP6mdpOeEsawz56FehtCCq6f5ey Nz/p7WB/eCpa3sM5P12EgpBVzN8M0lrEbT6roow6RcswKtm8H4oFu0g5n4t1UHW1 cBJS8AXwyuDAczyNtbdYEsAc4htuPcFy7rxN0VnuLqYalrjYny8V9CJxDNM4Gx1X n98Bbw== Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d8g2auqrm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 06:35:37 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2c0ba59a830so8263514eec.0 for ; Tue, 31 Mar 2026 23:35:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775025337; x=1775630137; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=+cxOM6L9rZEs5b6lY8QSOuBdOV8ZlCvf3Ji7AEGKfoI=; b=YheXJCn3UzP/z/LOyOfc5uUXMvPpl6DqkRiHEeQibAOpf2wtb3hJWUATsUUtrV4NzA u9Ncz6RcHx14fF52s02znFqJomE+kG37FNjkigZG22mjRY6cfSEiDD0BS3f4Pd2Atw7e SM6AQA5HgG0WI5UEutfzH0/qlhq0K0jTd7QwQ8Js83dXb4aCSYdqloMWITNgoFFukVNC uZXRSt4H3/lTNDn2AwFBX2/q4soKm+uxgNBgajEqU4mdd13FgDy5+NVms6DWDghzEMMi 5Li2+48DmnFzeo6UqHsmzvyMzx8Tz4DW958zvfs+49ayhEx1GeRdlGM22yJHzNLLZfk3 QNxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775025337; x=1775630137; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=+cxOM6L9rZEs5b6lY8QSOuBdOV8ZlCvf3Ji7AEGKfoI=; b=ftMwWwoqMb0TOdIPr3Y/9vya9UDsMphcdfWBJVejhHETlWD9jzQilUIBGcRJZzBcKH n8YRSvQHRd/0U16+g9ont6zDRU+nTFCUkMdKVafs9ZX47cVKDw3kQaCFLHnAu0YLFh3D G3Ba3vjBZOQE8i5X2Q0C0f79N/O/u22w1uAwdbcYHD7FNtLsiduWXG0JoTV1Ht+7FeLL Nlad2blvMyIXXX4Gp2HIwx6kLzD3V+qkTKf5U21FsG7FY0lOFr5ddVm6lPhbkV2vk08w S6TRyiIz+w6xDqtor+nhPwAhUUp+Lfs+Vxm2MjYvRbPv80QlDpNxDQeIlUDctYiQL/g6 9Ecw== X-Forwarded-Encrypted: i=1; AJvYcCUKkErTgabpKk4ohFwfHj3mtJmpuFFjrmi/fNtnpAnco2UyY3LOdPeVUWOaPpwuLwJetHLfWz33csPMFcg=@vger.kernel.org X-Gm-Message-State: AOJu0YwrczAMVkUKRW4O5cnqZ8GfmWLaOlZ4vLt0B4QZwar8UiuF8NlG cX+uqQOY+ogOnpO5T5LgGkgjgNYR9P2VD52BDTQGim9jcxGtdCQ441MCX0pqgTECXk/ke5pYFMR p2S714zqfJGOS03Qzk2Z9L7LlERwH9BZyFxbsYjGyIGJMx8OBJyGw4Z64pJAlU5oz2Ig= X-Gm-Gg: ATEYQzxs33UPFCDatHMx2vQwkaaqm1EYCaczFHCYEW2v2cJbmtP0dYO80BgYh1aq9rd 4yvj1X2yh5tHTSjx5yPCaMLCKzNga4iM2+AXFu3+zkzNiKGca/qmwhyr9ZCuIZTvOvcz50z2v6u oVyYPyyhEew8EpQdK/Sb3VI29CkOXzIyNI/p17bER6dE20LNHFYzsaCW60yS1dTKDcJIT8ODMyF SNldWNF+6KhjYaUrV0FW2DL33NqQBtSP+SUhDlaXeSVVI771ZpD1wmLLWkvAf5vpWO+1LFhwfWX daGyH7jxXUiTgkcQAFSVzEbB26VM40yPFACTNWfc970ylR0rfo/BzdjY0gnzNJKwrPAQFItUOmm Wh7NIj5V2tQGKkT99uOZIxn0chdQewv20u0RH0g6WAljn4aTcVcU8tdmDNVNdqCdoC2NX X-Received: by 2002:a05:7022:eacd:b0:128:d967:4678 with SMTP id a92af1059eb24-12be64b0cc3mr1389358c88.23.1775025336481; Tue, 31 Mar 2026 23:35:36 -0700 (PDT) X-Received: by 2002:a05:7022:eacd:b0:128:d967:4678 with SMTP id a92af1059eb24-12be64b0cc3mr1389343c88.23.1775025335687; Tue, 31 Mar 2026 23:35:35 -0700 (PDT) Received: from hu-qianyu-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12ab97f6994sm12027550c88.8.2026.03.31.23.35.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Mar 2026 23:35:35 -0700 (PDT) From: Qiang Yu Date: Tue, 31 Mar 2026 23:35:27 -0700 Subject: [PATCH RFC 2/4] clk: qcom: Add generic clkref_en 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: <20260331-qref_vote-v1-2-3fd7fbf87864@oss.qualcomm.com> References: <20260331-qref_vote-v1-0-3fd7fbf87864@oss.qualcomm.com> In-Reply-To: <20260331-qref_vote-v1-0-3fd7fbf87864@oss.qualcomm.com> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Taniya Das , Konrad Dybcio , johan@kernel.org Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Qiang Yu X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1775025332; l=9128; i=qiang.yu@oss.qualcomm.com; s=20250513; h=from:subject:message-id; bh=LVke/3uSY/meafnv+KY5H8ReXOtHnfGoZ1kiQEEwTxY=; b=ZMQkYONijHlGWjbgJ1SHvJA6ZoPBdttIDCfk5Se3CxVupNEwawERJyC20q6XjKO1LmWgQe9iA rpo23x3JB4IDMZ6HHj4Pu8FadSAYeQ5Hu35I+nvFLxHD6JnSzvt1ZvU X-Developer-Key: i=qiang.yu@oss.qualcomm.com; a=ed25519; pk=Rr94t+fykoieF1ngg/bXxEfr5KoQxeXPtYxM8fBQTAI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDA1NiBTYWx0ZWRfX/WQyCCzJoxyB +71ms+gcbnQTT9eL25f4TOBMRYDllQjFWERyD/EhMuj1Dsi+cHfhwZLAsmQarMFXxJddIEJAtBB RuYkA+sm3rOTvMZScftNjSA3utHpZVbkr2TirHaZgJvey6SVH7aw6G9u9cEQWLWsnklXIVcQSaL U3kg3hBuRNvzqDEHHk3TTQ4AiMd5z4MwTnNdhyOU9w7loic2dWlU91bKu8Xw30rabWpZ57fU/P0 LB9+c3neeF8YQIduzXvaaUV6NUyRUFtSyDNySe4suyW/72ik5ozLIsm9wf2W/ovPAmvdaVWSlL4 oI5goolNPEp/9l4hWNJGtG8rrIENJE1WNIRjRw2wX2PdGA2fg5CxRSS2AJGu6tG5dHK+TaD7Idp YUoa53alkpqKt5lpNspY9XVGlXTHqZiH7peJ8oPmnswMVoHB7fKCz0iUgyX7tgw3X1mQl1ZGoW8 NvXKvv3Y8A7KasnRHww== X-Authority-Analysis: v=2.4 cv=G4ER0tk5 c=1 sm=1 tr=0 ts=69ccbcb9 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=r4lB9QUgC6LPr1KdvdsA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-GUID: wbC7aYlOJ3Lh3zMOJRA-XNIvc0zElHTq X-Proofpoint-ORIG-GUID: wbC7aYlOJ3Lh3zMOJRA-XNIvc0zElHTq X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-01_02,2026-03-31_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 adultscore=0 impostorscore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010056 Before XO refclk is distributed to PCIe/USB/eDP PHYs, it passes through a QREF block. QREF is powered by dedicated LDO rails, and the clkref_en register controls whether refclk is gated through to the PHY side. These clkref controls are different from typical GCC branch clocks: - only a single enable bit is present, without branch-style config bits - regulators must be voted before enable and unvoted after disable Model this as a dedicated clk_ref clock type with custom clk_ops instead of reusing struct clk_branch semantics. Also provide a common registration/probe API so the same clkref model can be reused regardless of where clkref_en registers are placed, e.g. TCSR on glymur and TLMM on SM8750. Signed-off-by: Qiang Yu --- drivers/clk/qcom/Makefile | 1 + drivers/clk/qcom/clk-ref.c | 202 +++++++++++++++++++++++++++++++++++++++++= ++++ include/linux/clk/qcom.h | 69 ++++++++++++++++ 3 files changed, 272 insertions(+) diff --git a/drivers/clk/qcom/Makefile b/drivers/clk/qcom/Makefile index b818fd5af8bfb85a51ee90fdc3baa93af30dc39a..c5effc18efd80dd6c25a5398d72= 3cec0f66fe0e6 100644 --- a/drivers/clk/qcom/Makefile +++ b/drivers/clk/qcom/Makefile @@ -8,6 +8,7 @@ clk-qcom-y +=3D clk-pll.o clk-qcom-y +=3D clk-rcg.o clk-qcom-y +=3D clk-rcg2.o clk-qcom-y +=3D clk-branch.o +clk-qcom-y +=3D clk-ref.o clk-qcom-y +=3D clk-regmap-divider.o clk-qcom-y +=3D clk-regmap-mux.o clk-qcom-y +=3D clk-regmap-mux-div.o diff --git a/drivers/clk/qcom/clk-ref.c b/drivers/clk/qcom/clk-ref.c new file mode 100644 index 0000000000000000000000000000000000000000..ea2ed03460f28c6dae089e19cc0= 7a5697b9f3d35 --- /dev/null +++ b/drivers/clk/qcom/clk-ref.c @@ -0,0 +1,202 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2026, Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define QCOM_CLK_REF_EN_MASK BIT(0) + +struct qcom_clk_ref_provider { + struct qcom_clk_ref *refs; + size_t num_refs; +}; + +static inline struct qcom_clk_ref *to_qcom_clk_ref(struct clk_hw *hw) +{ + return container_of(hw, struct qcom_clk_ref, hw); +} + +static const struct clk_parent_data qcom_clk_ref_parent_data =3D { + .index =3D 0, +}; + +static int qcom_clk_ref_prepare(struct clk_hw *hw) +{ + struct qcom_clk_ref *rclk =3D to_qcom_clk_ref(hw); + int ret; + + if (!rclk->desc.num_regulators) + return 0; + + ret =3D regulator_bulk_enable(rclk->desc.num_regulators, rclk->regulators= ); + if (ret) + pr_err("Failed to enable regulators for %s: %d\n", + clk_hw_get_name(hw), ret); + + return ret; +} + +static void qcom_clk_ref_unprepare(struct clk_hw *hw) +{ + struct qcom_clk_ref *rclk =3D to_qcom_clk_ref(hw); + + if (rclk->desc.num_regulators) + regulator_bulk_disable(rclk->desc.num_regulators, rclk->regulators); +} + +static int qcom_clk_ref_enable(struct clk_hw *hw) +{ + struct qcom_clk_ref *rclk =3D to_qcom_clk_ref(hw); + int ret; + + ret =3D regmap_update_bits(rclk->regmap, rclk->desc.offset, QCOM_CLK_REF_= EN_MASK, + QCOM_CLK_REF_EN_MASK); + if (ret) + return ret; + + udelay(10); + + return 0; +} + +static void qcom_clk_ref_disable(struct clk_hw *hw) +{ + struct qcom_clk_ref *rclk =3D to_qcom_clk_ref(hw); + + regmap_update_bits(rclk->regmap, rclk->desc.offset, QCOM_CLK_REF_EN_MASK,= 0); + udelay(10); +} + +static int qcom_clk_ref_is_enabled(struct clk_hw *hw) +{ + struct qcom_clk_ref *rclk =3D to_qcom_clk_ref(hw); + u32 val; + int ret; + + ret =3D regmap_read(rclk->regmap, rclk->desc.offset, &val); + if (ret) + return ret; + + return !!(val & QCOM_CLK_REF_EN_MASK); +} + +static const struct clk_ops qcom_clk_ref_ops =3D { + .prepare =3D qcom_clk_ref_prepare, + .unprepare =3D qcom_clk_ref_unprepare, + .enable =3D qcom_clk_ref_enable, + .disable =3D qcom_clk_ref_disable, + .is_enabled =3D qcom_clk_ref_is_enabled, +}; + +static int qcom_clk_ref_register(struct device *dev, struct regmap *regmap, + struct qcom_clk_ref *clk_refs, + const struct qcom_clk_ref_desc *descs, + size_t num_clk_refs) +{ + const struct qcom_clk_ref_desc *desc; + struct qcom_clk_ref *clk_ref; + size_t clk_idx; + unsigned int i; + int ret; + + for (clk_idx =3D 0; clk_idx < num_clk_refs; clk_idx++) { + clk_ref =3D &clk_refs[clk_idx]; + desc =3D &descs[clk_idx]; + + if (!desc->name) + return -EINVAL; + + clk_ref->regmap =3D regmap; + clk_ref->desc =3D *desc; + + if (clk_ref->desc.num_regulators) { + clk_ref->regulators =3D devm_kcalloc(dev, clk_ref->desc.num_regulators, + sizeof(*clk_ref->regulators), + GFP_KERNEL); + if (!clk_ref->regulators) + return -ENOMEM; + + for (i =3D 0; i < clk_ref->desc.num_regulators; i++) + clk_ref->regulators[i].supply =3D + clk_ref->desc.regulator_names[i]; + + ret =3D devm_regulator_bulk_get(dev, clk_ref->desc.num_regulators, + clk_ref->regulators); + if (ret) + return dev_err_probe(dev, ret, + "Failed to get regulators for %s\n", + clk_ref->desc.name); + } + + clk_ref->init_data.name =3D clk_ref->desc.name; + clk_ref->init_data.parent_data =3D &qcom_clk_ref_parent_data; + clk_ref->init_data.num_parents =3D 1; + clk_ref->init_data.ops =3D &qcom_clk_ref_ops; + clk_ref->hw.init =3D &clk_ref->init_data; + + ret =3D devm_clk_hw_register(dev, &clk_ref->hw); + if (ret) + return ret; + } + + return 0; +} + +static struct clk_hw *qcom_clk_ref_provider_get(struct of_phandle_args *cl= kspec, void *data) +{ + struct qcom_clk_ref_provider *provider =3D data; + unsigned int idx =3D clkspec->args[0]; + + if (idx >=3D provider->num_refs) + return ERR_PTR(-EINVAL); + + return &provider->refs[idx].hw; +} + +int qcom_clk_ref_probe(struct platform_device *pdev, + const struct regmap_config *config, + const struct qcom_clk_ref_desc *descs, + size_t num_clk_refs) +{ + struct qcom_clk_ref_provider *provider; + struct device *dev =3D &pdev->dev; + struct regmap *regmap; + void __iomem *base; + int ret; + + base =3D devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(base)) + return PTR_ERR(base); + + regmap =3D devm_regmap_init_mmio(dev, base, config); + if (IS_ERR(regmap)) + return PTR_ERR(regmap); + + provider =3D devm_kzalloc(dev, sizeof(*provider), GFP_KERNEL); + if (!provider) + return -ENOMEM; + + provider->refs =3D devm_kcalloc(dev, num_clk_refs, sizeof(*provider->refs= ), + GFP_KERNEL); + if (!provider->refs) + return -ENOMEM; + + provider->num_refs =3D num_clk_refs; + + ret =3D qcom_clk_ref_register(dev, regmap, provider->refs, descs, + provider->num_refs); + if (ret) + return ret; + + return devm_of_clk_add_hw_provider(dev, qcom_clk_ref_provider_get, provid= er); +} +EXPORT_SYMBOL_GPL(qcom_clk_ref_probe); diff --git a/include/linux/clk/qcom.h b/include/linux/clk/qcom.h new file mode 100644 index 0000000000000000000000000000000000000000..1066ef46ac21e9db1f3440faf81= ba52afdf1faf2 --- /dev/null +++ b/include/linux/clk/qcom.h @@ -0,0 +1,69 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2026, Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +#ifndef __LINUX_CLK_QCOM_H +#define __LINUX_CLK_QCOM_H + +#include +#include +#include +#include +#include + +struct device; +struct platform_device; +struct regulator_bulk_data; + +/** + * struct qcom_clk_ref_desc - description of a simple XO reference gate + * @name: clock name + * @offset: register offset + * @regulator_names: optional per-clock regulator names + * @num_regulators: number of entries in @regulator_names + */ +struct qcom_clk_ref_desc { + const char *name; + u32 offset; + const char * const *regulator_names; + unsigned int num_regulators; +}; + +/** + * struct qcom_clk_ref - runtime state for a qcom reference gate + * @hw: clock hardware handle + * @init_data: clock init data + * @regmap: register map backing the gate register + * @desc: clock descriptor copied at registration + * @regulators: optional regulator handles + */ +struct qcom_clk_ref { + struct clk_hw hw; + struct clk_init_data init_data; + struct regmap *regmap; + struct qcom_clk_ref_desc desc; + struct regulator_bulk_data *regulators; +}; + +#if IS_ENABLED(CONFIG_COMMON_CLK_QCOM) + +int qcom_clk_ref_probe(struct platform_device *pdev, + const struct regmap_config *config, + const struct qcom_clk_ref_desc *descs, + size_t num_clk_refs); + +#else + +static inline int +qcom_clk_ref_probe(struct platform_device *pdev, + const struct regmap_config *config, + const struct qcom_clk_ref_desc *descs, + size_t num_clk_refs) +{ + return -EOPNOTSUPP; +} + +#endif + +#endif --=20 2.34.1 From nobody Wed Apr 1 22:35:43 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 B5E6B337BB0 for ; Wed, 1 Apr 2026 06:35:38 +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=1775025340; cv=none; b=drMZ7Ehp85X8jUbl74GMVbZcOUgMwUiHmQBiep68Sk3RJRbQR5TVxfHRc+Q5sd54oTQyXjhPELKehDgpPIEQib/9IPXu8u9bVJEpNljDueqsJcMUPH8EmauzD0cPibTcZsMzxCSkaZ6NfsxpX2qifgerpkG79aWsHCIjIoB9wPg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775025340; c=relaxed/simple; bh=O/xzz3OyQHlZaY8PTjkJNEJgipL9OgU4S64AIcv/hgs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KcxjIGuwnTHjnGSSLYnO6fAEJzSvwST1q7YkkCwnbapMjmQ17LM8oGi5RbFLfjExhmC7v7gqrD7xd++mWKdRqSn+kLnznO9QlxIcElXwFYo1hwEAANfsoLsv96MDPz0EeYjuuiXJp0MVuh5Yjtey+jGSbTVJyQ3Do5d+I6GHvHY= 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=anrDKIsM; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=V/5uemv+; 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="anrDKIsM"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="V/5uemv+" 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 6316CPpv639236 for ; Wed, 1 Apr 2026 06:35: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= 3OkA6pQW3yk0X7dRpa6C7L1ZcGiFUnl8OuBCkto5yVU=; b=anrDKIsMUn3lc8gT hbkls5enrHxqpXutqJ9ShGi5CTl7UGm9/1nodg6PabVSfZAbr/tJyvS2iX0pCJvH T/0VK71u2jvvqrOqT1EQfmZsrSd0yal0Yw1V1a4ais3yCJ4Ali9SGYSEn0LFcCwS cNlxrTYOMcYmO6RV2HhXnF5qBAffpuLq6+GObHFEHEVysTdoMoMMwbBko69T84r8 b2w+GpA8h6QsJ5G/JeWBaUPYfITpOve61t61sz0HsAJYdbHxpwIOkl+ZBI8hVzcV nOlI9fiIOEvDbg48PGTJOCdkFGG8pinjYnOJ0nsNFvnEJNiR79KF2qSDUsasbx7W aa0TeQ== Received: from mail-dl1-f70.google.com (mail-dl1-f70.google.com [74.125.82.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d8g2auqru-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 06:35:38 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-128edc72e5bso3479634c88.1 for ; Tue, 31 Mar 2026 23:35:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775025337; x=1775630137; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=3OkA6pQW3yk0X7dRpa6C7L1ZcGiFUnl8OuBCkto5yVU=; b=V/5uemv+yHsl9pmyvPmhW3MER95W6oxEEMcFvaFhocHXuYrfWSwgCGnjRkqkM8Se3W GoGrUnEpX+aCei3xdaxv8F+AayQ5JY3u/L8n7QJtubzEkcnpGLZJMT7cQpzk0I480tzh Besy8Weh0NDW2Z8vkoZMe60voS0LPJFIR072ydwR9BGRaus3h8+Zve9Fi7470XxMgKcq zuhRckfITvogN38hYgaGmYn+nd9MwqtcYZci+IgxvSzEeBWKAyUfQSC81tcTzyfjUTv1 sawhuxAegStKlH3Z0QvRYyA7OQFjDNyBVqBwYeftgdSyUEW7QfrbgX5FjTcJP7W2TuWV riCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775025337; x=1775630137; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=3OkA6pQW3yk0X7dRpa6C7L1ZcGiFUnl8OuBCkto5yVU=; b=F35aHyqfQS1WjqbeO5O1L6dyxlsvC33+p03Oxaj/er4ALshu1UnDE3YG20IF5rHfYJ 23spxog5dAV4Q+kJlBtP0ORm0vAVpCFakEqCwTB6XfnK3qf1EBXYCpA/b6B0p+gQmqkr ThNeZJ0bwZRs9oF9VUzFDp8fZG3SHE2+QmQiGu4Ct8un+xSDzKXbNRbV2CJ3WLh9ue0+ 6i20LwS4RZrxO0bk7kQ52ER3tZscB1TdjVhhh6cKU/mfiKpT4j4jado/sfVHWBkXN/4j Goxk/v7szl/QtO5Ie43YUemud6nZsOFrwxN6+wgHCEaJ/AnhqJdTkf1C811o31+w0fth 41Kg== X-Forwarded-Encrypted: i=1; AJvYcCWG3OV9BAroHpao41IZMeMhLYvtOIcN2nTTfC/CnnSEc5Tv9o12KuPraYYr4ojKAJM4icPCCnuArGsoCwk=@vger.kernel.org X-Gm-Message-State: AOJu0YxnwM5241WeEpl1X2shGGYetuTkjYSPIUZxzwQePpRbc1vaY7KJ wtGmLZqwZTG8nRsO4mjLVCW5VzNQYR6k4+cV1Hb8deU6lp98OwKL6I16EvVo9AwkLt+y+4QuepB FpWbe1YFniD14tX0KtyE+AqAUuAc+wdqtjAPjgRpowgbV/jhkxDy+dTYRvo5/3wH38ls= X-Gm-Gg: ATEYQzwmN2w5V7PgXP6Ht6h9kkqs2qSK0MZ+pdQFz60QHCehUVXkD8dQVRz6jPnM0DW YUeG61CBfZuvIkthB50TCu8y+YOIyChlhp7LtXhwaq/OzPlDgYipRxkr8vfoVv2ZVC7MQodV0HL +/VVV1aO4tixu+9rh9UAvZwnLo+xDK7QBSGgx3lF9gwS+Q14z+C3Dr6+2pztxkkLdC+Thk+onTp 9GmM3LH8OKHLaGzKS8XLtvFVo5PeKiQTdSXjr5AeozzcKc5jPXi/AFmH9wcc0fnv0VCQ59co0Ka hgmokGRMkj7vQvDGXHimc54t1+dZnfYJ4UEIdRroBdyySmRS2BAX4vIS9wYdsm6hLOJyHY4jfbY TwYjBeJ3YaU3gD+BSUKX0AzBpkhX+j2JVPo9KBQxG66QGWGpt8rCQEDALABTDb5fvIpxm X-Received: by 2002:a05:7022:322:b0:11b:ec5f:1c37 with SMTP id a92af1059eb24-12be64db00dmr1457454c88.18.1775025337296; Tue, 31 Mar 2026 23:35:37 -0700 (PDT) X-Received: by 2002:a05:7022:322:b0:11b:ec5f:1c37 with SMTP id a92af1059eb24-12be64db00dmr1457416c88.18.1775025336690; Tue, 31 Mar 2026 23:35:36 -0700 (PDT) Received: from hu-qianyu-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12ab97f6994sm12027550c88.8.2026.03.31.23.35.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Mar 2026 23:35:36 -0700 (PDT) From: Qiang Yu Date: Tue, 31 Mar 2026 23:35:28 -0700 Subject: [PATCH RFC 3/4] clk: qcom: tcsrcc-glymur: Migrate tcsr_pcie_N_clkref_en to clk_ref common helper 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: <20260331-qref_vote-v1-3-3fd7fbf87864@oss.qualcomm.com> References: <20260331-qref_vote-v1-0-3fd7fbf87864@oss.qualcomm.com> In-Reply-To: <20260331-qref_vote-v1-0-3fd7fbf87864@oss.qualcomm.com> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Taniya Das , Konrad Dybcio , johan@kernel.org Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Qiang Yu X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1775025332; l=11277; i=qiang.yu@oss.qualcomm.com; s=20250513; h=from:subject:message-id; bh=O/xzz3OyQHlZaY8PTjkJNEJgipL9OgU4S64AIcv/hgs=; b=qKO8FGxIRHZ/FW3wLzJyCUevJz5XtDyvZRBba7eoPWacGyFUxVLZQZfDvGf3+KRRT9ccY3OKS 6g4Vw2jjMDGAhHXEwGlzRW58FLQA8dgH5OE8GBJ8iNWdDvxNALN9d7R X-Developer-Key: i=qiang.yu@oss.qualcomm.com; a=ed25519; pk=Rr94t+fykoieF1ngg/bXxEfr5KoQxeXPtYxM8fBQTAI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDA1NiBTYWx0ZWRfX91L6CZz2nT/u Xf4gj0XthS3EstqUbLTaFzBrqyJGz2dv2m+ZmHMqmUToMJCx3BM8Ku+jIIwLrse/1Xxm4uJkmt5 9lxByi9XWJ7er97R2mli2dzVzT4IzxTLH/PoPon3DqmKl5eyCdS+/HPkwV5Hzos52bGOtmcW5uR Fvg+6DAF7Fyiv2Sma7X5z3HXIbi1mqF8vjPIA1KUoJx1TWiro1hxkPgVNSycx0ZeXMDYcbgw6e1 K916qBwQX1R1vfaQFtrSDt43rhWw0qUEs/0PcufIFVFSk9onAkth65iBgQF9O+tiM8CSdxz9UUs QeqdOYDfcQ/WZVDf49Y1efku5tHkiU6Yz7IkmNUqJYRbnYRriYMQsr2md9TeQWmxNPSSEC92acu Emj8LIkc42k57Y4tGajNVSAjPnQ7WZn9ftQnMLMv4JWbn+TfL6Vgfqh6ET552glQzGv9+VzIwjD Yhis11LLZvtWM3saSyA== X-Authority-Analysis: v=2.4 cv=G4ER0tk5 c=1 sm=1 tr=0 ts=69ccbcba cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=t2MV0Cpg_TU8-8Jkrg8A:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 X-Proofpoint-GUID: bl6C3OAGMwgxMVRcpHBn0PQD-aDsCpQr X-Proofpoint-ORIG-GUID: bl6C3OAGMwgxMVRcpHBn0PQD-aDsCpQr X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-01_02,2026-03-31_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 adultscore=0 impostorscore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010056 Replace local clk_branch-based clkref definitions with descriptor-based registration via qcom_clk_ref_probe(). This keeps the glymur driver focused on clock metadata and reuses common runtime logic for regulator handling, enable/disable sequencing, and OF provider wiring. Signed-off-by: Qiang Yu --- drivers/clk/qcom/tcsrcc-glymur.c | 340 +++++++++++------------------------= ---- 1 file changed, 93 insertions(+), 247 deletions(-) diff --git a/drivers/clk/qcom/tcsrcc-glymur.c b/drivers/clk/qcom/tcsrcc-gly= mur.c index 9c0edebcdbb12816d1be5249e4f04bcaf02048aa..585f87b23af2d92daef1787b2f3= 8911681c0d8ee 100644 --- a/drivers/clk/qcom/tcsrcc-glymur.c +++ b/drivers/clk/qcom/tcsrcc-glymur.c @@ -4,265 +4,115 @@ */ =20 #include +#include #include #include +#include #include #include =20 #include =20 -#include "clk-alpha-pll.h" -#include "clk-branch.h" -#include "clk-pll.h" -#include "clk-rcg.h" -#include "clk-regmap.h" -#include "clk-regmap-divider.h" -#include "clk-regmap-mux.h" -#include "common.h" -#include "gdsc.h" -#include "reset.h" - -enum { - DT_BI_TCXO_PAD, -}; - -static struct clk_branch tcsr_edp_clkref_en =3D { - .halt_reg =3D 0x60, - .halt_check =3D BRANCH_HALT_DELAY, - .clkr =3D { - .enable_reg =3D 0x60, - .enable_mask =3D BIT(0), - .hw.init =3D &(const struct clk_init_data) { - .name =3D "tcsr_edp_clkref_en", - .parent_data =3D &(const struct clk_parent_data){ - .index =3D DT_BI_TCXO_PAD, - }, - .num_parents =3D 1, - .ops =3D &clk_branch2_ops, - }, +static const char * const tcsr_pcie_1_regulators[] =3D { + "vdda-refgen-0p9", + "vdda-refgen-1p2", + "vdda-qrefrx5-0p9", + "vdda-qreftx0-0p9", + "vdda-qreftx0-1p2", +}; + +static const char * const tcsr_pcie_2_regulators[] =3D { + "vdda-refgen-0p9", + "vdda-refgen-1p2", + "vdda-qreftx1-0p9", + "vdda-qrefrpt0-0p9", + "vdda-qrefrpt1-0p9", + "vdda-qrefrpt2-0p9", + "vdda-qrefrx2-0p9", +}; + +static const char * const tcsr_pcie_3_regulators[] =3D { + "vdda-refgen-0p9", + "vdda-refgen-1p2", + "vdda-qreftx1-0p9", + "vdda-qrefrpt0-0p9", + "vdda-qrefrpt1-0p9", + "vdda-qrefrx1-0p9", +}; + +static const char * const tcsr_pcie_4_regulators[] =3D { + "vdda-refgen-0p9", + "vdda-refgen-1p2", + "vdda-qreftx1-0p9", + "vdda-qrefrpt0-0p9", + "vdda-qrefrpt1-0p9", + "vdda-qrefrpt2-0p9", + "vdda-qrefrx2-0p9", +}; + +static const struct qcom_clk_ref_desc tcsr_cc_glymur_clk_descs[] =3D { + [TCSR_EDP_CLKREF_EN] =3D { + .name =3D "tcsr_edp_clkref_en", + .offset =3D 0x60, }, -}; - -static struct clk_branch tcsr_pcie_1_clkref_en =3D { - .halt_reg =3D 0x48, - .halt_check =3D BRANCH_HALT_DELAY, - .clkr =3D { - .enable_reg =3D 0x48, - .enable_mask =3D BIT(0), - .hw.init =3D &(const struct clk_init_data) { - .name =3D "tcsr_pcie_1_clkref_en", - .parent_data =3D &(const struct clk_parent_data){ - .index =3D DT_BI_TCXO_PAD, - }, - .num_parents =3D 1, - .ops =3D &clk_branch2_ops, - }, + [TCSR_PCIE_1_CLKREF_EN] =3D { + .name =3D "tcsr_pcie_1_clkref_en", + .offset =3D 0x48, + .regulator_names =3D tcsr_pcie_1_regulators, + .num_regulators =3D ARRAY_SIZE(tcsr_pcie_1_regulators), }, -}; - -static struct clk_branch tcsr_pcie_2_clkref_en =3D { - .halt_reg =3D 0x4c, - .halt_check =3D BRANCH_HALT_DELAY, - .clkr =3D { - .enable_reg =3D 0x4c, - .enable_mask =3D BIT(0), - .hw.init =3D &(const struct clk_init_data) { - .name =3D "tcsr_pcie_2_clkref_en", - .parent_data =3D &(const struct clk_parent_data){ - .index =3D DT_BI_TCXO_PAD, - }, - .num_parents =3D 1, - .ops =3D &clk_branch2_ops, - }, + [TCSR_PCIE_2_CLKREF_EN] =3D { + .name =3D "tcsr_pcie_2_clkref_en", + .offset =3D 0x4c, + .regulator_names =3D tcsr_pcie_2_regulators, + .num_regulators =3D ARRAY_SIZE(tcsr_pcie_2_regulators), }, -}; - -static struct clk_branch tcsr_pcie_3_clkref_en =3D { - .halt_reg =3D 0x54, - .halt_check =3D BRANCH_HALT_DELAY, - .clkr =3D { - .enable_reg =3D 0x54, - .enable_mask =3D BIT(0), - .hw.init =3D &(const struct clk_init_data) { - .name =3D "tcsr_pcie_3_clkref_en", - .parent_data =3D &(const struct clk_parent_data){ - .index =3D DT_BI_TCXO_PAD, - }, - .num_parents =3D 1, - .ops =3D &clk_branch2_ops, - }, + [TCSR_PCIE_3_CLKREF_EN] =3D { + .name =3D "tcsr_pcie_3_clkref_en", + .offset =3D 0x54, + .regulator_names =3D tcsr_pcie_3_regulators, + .num_regulators =3D ARRAY_SIZE(tcsr_pcie_3_regulators), }, -}; - -static struct clk_branch tcsr_pcie_4_clkref_en =3D { - .halt_reg =3D 0x58, - .halt_check =3D BRANCH_HALT_DELAY, - .clkr =3D { - .enable_reg =3D 0x58, - .enable_mask =3D BIT(0), - .hw.init =3D &(const struct clk_init_data) { - .name =3D "tcsr_pcie_4_clkref_en", - .parent_data =3D &(const struct clk_parent_data){ - .index =3D DT_BI_TCXO_PAD, - }, - .num_parents =3D 1, - .ops =3D &clk_branch2_ops, - }, + [TCSR_PCIE_4_CLKREF_EN] =3D { + .name =3D "tcsr_pcie_4_clkref_en", + .offset =3D 0x58, + .regulator_names =3D tcsr_pcie_4_regulators, + .num_regulators =3D ARRAY_SIZE(tcsr_pcie_4_regulators), }, -}; - -static struct clk_branch tcsr_usb2_1_clkref_en =3D { - .halt_reg =3D 0x6c, - .halt_check =3D BRANCH_HALT_DELAY, - .clkr =3D { - .enable_reg =3D 0x6c, - .enable_mask =3D BIT(0), - .hw.init =3D &(const struct clk_init_data) { - .name =3D "tcsr_usb2_1_clkref_en", - .parent_data =3D &(const struct clk_parent_data){ - .index =3D DT_BI_TCXO_PAD, - }, - .num_parents =3D 1, - .ops =3D &clk_branch2_ops, - }, + [TCSR_USB2_1_CLKREF_EN] =3D { + .name =3D "tcsr_usb2_1_clkref_en", + .offset =3D 0x6c, }, -}; - -static struct clk_branch tcsr_usb2_2_clkref_en =3D { - .halt_reg =3D 0x70, - .halt_check =3D BRANCH_HALT_DELAY, - .clkr =3D { - .enable_reg =3D 0x70, - .enable_mask =3D BIT(0), - .hw.init =3D &(const struct clk_init_data) { - .name =3D "tcsr_usb2_2_clkref_en", - .parent_data =3D &(const struct clk_parent_data){ - .index =3D DT_BI_TCXO_PAD, - }, - .num_parents =3D 1, - .ops =3D &clk_branch2_ops, - }, + [TCSR_USB2_2_CLKREF_EN] =3D { + .name =3D "tcsr_usb2_2_clkref_en", + .offset =3D 0x70, }, -}; - -static struct clk_branch tcsr_usb2_3_clkref_en =3D { - .halt_reg =3D 0x74, - .halt_check =3D BRANCH_HALT_DELAY, - .clkr =3D { - .enable_reg =3D 0x74, - .enable_mask =3D BIT(0), - .hw.init =3D &(const struct clk_init_data) { - .name =3D "tcsr_usb2_3_clkref_en", - .parent_data =3D &(const struct clk_parent_data){ - .index =3D DT_BI_TCXO_PAD, - }, - .num_parents =3D 1, - .ops =3D &clk_branch2_ops, - }, + [TCSR_USB2_3_CLKREF_EN] =3D { + .name =3D "tcsr_usb2_3_clkref_en", + .offset =3D 0x74, }, -}; - -static struct clk_branch tcsr_usb2_4_clkref_en =3D { - .halt_reg =3D 0x88, - .halt_check =3D BRANCH_HALT_DELAY, - .clkr =3D { - .enable_reg =3D 0x88, - .enable_mask =3D BIT(0), - .hw.init =3D &(const struct clk_init_data) { - .name =3D "tcsr_usb2_4_clkref_en", - .parent_data =3D &(const struct clk_parent_data){ - .index =3D DT_BI_TCXO_PAD, - }, - .num_parents =3D 1, - .ops =3D &clk_branch2_ops, - }, + [TCSR_USB2_4_CLKREF_EN] =3D { + .name =3D "tcsr_usb2_4_clkref_en", + .offset =3D 0x88, }, -}; - -static struct clk_branch tcsr_usb3_0_clkref_en =3D { - .halt_reg =3D 0x64, - .halt_check =3D BRANCH_HALT_DELAY, - .clkr =3D { - .enable_reg =3D 0x64, - .enable_mask =3D BIT(0), - .hw.init =3D &(const struct clk_init_data) { - .name =3D "tcsr_usb3_0_clkref_en", - .parent_data =3D &(const struct clk_parent_data){ - .index =3D DT_BI_TCXO_PAD, - }, - .num_parents =3D 1, - .ops =3D &clk_branch2_ops, - }, + [TCSR_USB3_0_CLKREF_EN] =3D { + .name =3D "tcsr_usb3_0_clkref_en", + .offset =3D 0x64, }, -}; - -static struct clk_branch tcsr_usb3_1_clkref_en =3D { - .halt_reg =3D 0x68, - .halt_check =3D BRANCH_HALT_DELAY, - .clkr =3D { - .enable_reg =3D 0x68, - .enable_mask =3D BIT(0), - .hw.init =3D &(const struct clk_init_data) { - .name =3D "tcsr_usb3_1_clkref_en", - .parent_data =3D &(const struct clk_parent_data){ - .index =3D DT_BI_TCXO_PAD, - }, - .num_parents =3D 1, - .ops =3D &clk_branch2_ops, - }, + [TCSR_USB3_1_CLKREF_EN] =3D { + .name =3D "tcsr_usb3_1_clkref_en", + .offset =3D 0x68, }, -}; - -static struct clk_branch tcsr_usb4_1_clkref_en =3D { - .halt_reg =3D 0x44, - .halt_check =3D BRANCH_HALT_DELAY, - .clkr =3D { - .enable_reg =3D 0x44, - .enable_mask =3D BIT(0), - .hw.init =3D &(const struct clk_init_data) { - .name =3D "tcsr_usb4_1_clkref_en", - .parent_data =3D &(const struct clk_parent_data){ - .index =3D DT_BI_TCXO_PAD, - }, - .num_parents =3D 1, - .ops =3D &clk_branch2_ops, - }, + [TCSR_USB4_1_CLKREF_EN] =3D { + .name =3D "tcsr_usb4_1_clkref_en", + .offset =3D 0x44, }, -}; - -static struct clk_branch tcsr_usb4_2_clkref_en =3D { - .halt_reg =3D 0x5c, - .halt_check =3D BRANCH_HALT_DELAY, - .clkr =3D { - .enable_reg =3D 0x5c, - .enable_mask =3D BIT(0), - .hw.init =3D &(const struct clk_init_data) { - .name =3D "tcsr_usb4_2_clkref_en", - .parent_data =3D &(const struct clk_parent_data){ - .index =3D DT_BI_TCXO_PAD, - }, - .num_parents =3D 1, - .ops =3D &clk_branch2_ops, - }, + [TCSR_USB4_2_CLKREF_EN] =3D { + .name =3D "tcsr_usb4_2_clkref_en", + .offset =3D 0x5c, }, }; =20 -static struct clk_regmap *tcsr_cc_glymur_clocks[] =3D { - [TCSR_EDP_CLKREF_EN] =3D &tcsr_edp_clkref_en.clkr, - [TCSR_PCIE_1_CLKREF_EN] =3D &tcsr_pcie_1_clkref_en.clkr, - [TCSR_PCIE_2_CLKREF_EN] =3D &tcsr_pcie_2_clkref_en.clkr, - [TCSR_PCIE_3_CLKREF_EN] =3D &tcsr_pcie_3_clkref_en.clkr, - [TCSR_PCIE_4_CLKREF_EN] =3D &tcsr_pcie_4_clkref_en.clkr, - [TCSR_USB2_1_CLKREF_EN] =3D &tcsr_usb2_1_clkref_en.clkr, - [TCSR_USB2_2_CLKREF_EN] =3D &tcsr_usb2_2_clkref_en.clkr, - [TCSR_USB2_3_CLKREF_EN] =3D &tcsr_usb2_3_clkref_en.clkr, - [TCSR_USB2_4_CLKREF_EN] =3D &tcsr_usb2_4_clkref_en.clkr, - [TCSR_USB3_0_CLKREF_EN] =3D &tcsr_usb3_0_clkref_en.clkr, - [TCSR_USB3_1_CLKREF_EN] =3D &tcsr_usb3_1_clkref_en.clkr, - [TCSR_USB4_1_CLKREF_EN] =3D &tcsr_usb4_1_clkref_en.clkr, - [TCSR_USB4_2_CLKREF_EN] =3D &tcsr_usb4_2_clkref_en.clkr, -}; - static const struct regmap_config tcsr_cc_glymur_regmap_config =3D { .reg_bits =3D 32, .reg_stride =3D 4, @@ -271,11 +121,12 @@ static const struct regmap_config tcsr_cc_glymur_regm= ap_config =3D { .fast_io =3D true, }; =20 -static const struct qcom_cc_desc tcsr_cc_glymur_desc =3D { - .config =3D &tcsr_cc_glymur_regmap_config, - .clks =3D tcsr_cc_glymur_clocks, - .num_clks =3D ARRAY_SIZE(tcsr_cc_glymur_clocks), -}; +static int tcsr_cc_glymur_probe(struct platform_device *pdev) +{ + return qcom_clk_ref_probe(pdev, &tcsr_cc_glymur_regmap_config, + tcsr_cc_glymur_clk_descs, + ARRAY_SIZE(tcsr_cc_glymur_clk_descs)); +} =20 static const struct of_device_id tcsr_cc_glymur_match_table[] =3D { { .compatible =3D "qcom,glymur-tcsr" }, @@ -283,11 +134,6 @@ static const struct of_device_id tcsr_cc_glymur_match_= table[] =3D { }; MODULE_DEVICE_TABLE(of, tcsr_cc_glymur_match_table); =20 -static int tcsr_cc_glymur_probe(struct platform_device *pdev) -{ - return qcom_cc_probe(pdev, &tcsr_cc_glymur_desc); -} - static struct platform_driver tcsr_cc_glymur_driver =3D { .probe =3D tcsr_cc_glymur_probe, .driver =3D { --=20 2.34.1 From nobody Wed Apr 1 22:35:43 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 E9C3D314A65 for ; Wed, 1 Apr 2026 06:35:39 +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=1775025341; cv=none; b=cwxHJ4Fa/cHHTLl5y4liZrpiah7iM44I2VXwchDDEY5BEmIrMgBxJNMydBgopSgQtGTb37BhmkruIXwnB6rdK8Ue4ATvRXUG4EnhuGTSRQOSvmZqc6nYHt3tEC1dAr8e5F8jKFPsYdF1vs0WMBhM7Xqtvc5t5JOSJRxOW+QEyJw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775025341; c=relaxed/simple; bh=HykJptyeG70W7OChA49EYIHxPs0wMAgUlbTPHQWlYFw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jBbS+ncwJlV1nAPCxmXDXJkXSKmZKSWIcMHlT1Wslry9oL7+RDQcB11Uv0zyAeTmzvNAGovkhTjFMRG3rULNyeKPo34Od3a+gXpJL/12ePu1dlFc3ATgi6L7O5YAoZeweG/TFwWZDNYCXN1bJCgmD74rblk9XkRKK6G1OGKTGNc= 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=Wr4vXiVW; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=bDaSDRWp; 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="Wr4vXiVW"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="bDaSDRWp" 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 6316V83E1831888 for ; Wed, 1 Apr 2026 06:35:39 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= v1QYgNgDJ3F6MS31DQqDY7XXr7r7iT7d6sWyEB6cfUQ=; b=Wr4vXiVWsW8f3rgk IC2ZVni7/VIOigl8cL8jupphGG5a3MXGVxjbFOckAdf84WhhwhsGGkHjZIxbUcjL aQaEEq4A22VR5oDQa9H5p2/hvhsZwWEtJpTZOfBVofDsStOY4NBCeaAHuMF/mZ1H V4fB5u0p7JkYPgi3Bur27CO4KoTMBjlH8sm+qM2Y4EXhuedKI/hho3bnl2t5MI1z ZwGYLLSY6iY5FzOSuWwmH58DhW3s7s6SnDNf7qZ7t2DaHAT8lbV4iZ8OaB5YT2qa /wcNqSAK+9X0Rr9tSDMq0IetC8BvcJMfL27J6IPfWvYYeWqqtpxxq+EWb97ldgA7 WU9zHw== Received: from mail-dl1-f72.google.com (mail-dl1-f72.google.com [74.125.82.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d8equcacm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 06:35:38 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-12737f276a2so7631631c88.1 for ; Tue, 31 Mar 2026 23:35:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775025338; x=1775630138; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=v1QYgNgDJ3F6MS31DQqDY7XXr7r7iT7d6sWyEB6cfUQ=; b=bDaSDRWpx/LRFb9Lqc+mdS4F5yODvCB0vONnaKZas/IGNWuf3gEpfnn/B4nVBCF+qo zF+4md+obJuCmDIos1+1XgOz63pEiZ2zkYQXn40gkPxBA2qZ1b5p/h7NWKXu0wlJ9SG8 DgfjrKDnL8LcocBfHW++XRKwlXqpd6PH4R3pRsqc2MvTvHYaO9+6yBegrX2z15SBzjgi glYhMx7v6KGoE2uymhQlAfNG3oM5gNQ6VkxrF35VUQJaFQkURY+bijyl4yh2s42P/5dS kNUTrbDzhzw3BI66x+clMX2+cvR/VU03owpCCiwWP4FQZTtRjmwn/QcBxxG4oJBOLFCl efAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775025338; x=1775630138; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=v1QYgNgDJ3F6MS31DQqDY7XXr7r7iT7d6sWyEB6cfUQ=; b=SR0lDHMhn5T6VLBc1Uu7o91cLt/DibFCcJDwH2wZ6GdIQgYsM8bn+wwZZklcspsPw2 SVPbsNb2tQZnX7gqelPN9/aTTSzPwrXqnZbAXsHf4kqMIF1pgxkHKHK2gJ30Uu8P/G2u 5WSQnmsTE7Nt6xeh6xLg6hnNp4yXDVQq5L3z38he8Xb2E9Dxuo0v0pJvvh0xa+cdPbkv XNB64Xzx3ig9/PCaVzgRxRqr0WI7nW04ahsCe6bi4CsfN8qsHiXmLy83bNCfxbF6dCdZ SDwjQwP138hOneCS/94Q0s09/+6x38fTY/YkKRum9TEwIQhJXAKnK1Dv68q5iT5EL6sT dLig== X-Forwarded-Encrypted: i=1; AJvYcCXJ6pfIN9w5ajraOx0dxNHGr9Wq8yXgBY1xIdpkRQU83wj/QXULX0tKkw50K59V4CqwDUxB8yNb+syL9Ys=@vger.kernel.org X-Gm-Message-State: AOJu0YzblpP/Im+yBhQOcwxFpwMd5ssCW5VGVVbLfm/17lAq86X+9jRr Tl+Lcxqq0d0m1WSaws9WDhMKFDXHqL01S7sWUbmACSFRKp8/Onmmh+JvEPsAkqzMOMfEii+aVGX GUaEoFXUe8v5GxU+g3BFGPhSScp/L/55HtTjqKhqt+57MwRJDvl5HrdvUmDrAq7a3utk= X-Gm-Gg: ATEYQzzcG4at9G+jh01AQ3d/xGilKIJTfIsTJmQhuGrqAEAmpdjzETnwJ5pJ/NZWu3i yWeeRbnDA5NKx3kwyK3ePkepXYZIGTVqsinEnEg8IC0DWi4l9khwfo/nr2zI9JNsTP37Z7KOVnS +P3kRXVj1yIT7c+XSvd06NWAQsPOv4z9ogwmDdV+YT3Pl8xBIXofRNmG8TBlpDf5SZawOm8H9P0 zu69Wk3Ht2KgDRzivCxkOkZZLVQKS0QucrJAD5VhTrJAQ+lISWDY8wVTllPRVE4QjXTunDcjMTQ MpeqF/aj5Xr0vTdTPAjc14Tc/TgY4h9LTMqljoaGfB/r+qXp+toyp3XVOHCYSCqScR55AUy5dxd aoxXsd/4+LLc+/KNRzYoB8yH812Jh39dv9X0BWI1M0obw3285yX3WEBAmdIBpIvqf3p7H X-Received: by 2002:a05:7022:2387:b0:128:d4be:7418 with SMTP id a92af1059eb24-12be65a27b9mr1237994c88.35.1775025338212; Tue, 31 Mar 2026 23:35:38 -0700 (PDT) X-Received: by 2002:a05:7022:2387:b0:128:d4be:7418 with SMTP id a92af1059eb24-12be65a27b9mr1237978c88.35.1775025337549; Tue, 31 Mar 2026 23:35:37 -0700 (PDT) Received: from hu-qianyu-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12ab97f6994sm12027550c88.8.2026.03.31.23.35.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Mar 2026 23:35:37 -0700 (PDT) From: Qiang Yu Date: Tue, 31 Mar 2026 23:35:29 -0700 Subject: [PATCH RFC 4/4] arm64: dts: qcom: glymur: Add QREF regulator supplies to TCSR 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: <20260331-qref_vote-v1-4-3fd7fbf87864@oss.qualcomm.com> References: <20260331-qref_vote-v1-0-3fd7fbf87864@oss.qualcomm.com> In-Reply-To: <20260331-qref_vote-v1-0-3fd7fbf87864@oss.qualcomm.com> To: Bjorn Andersson , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Taniya Das , Konrad Dybcio , johan@kernel.org Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Qiang Yu X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1775025332; l=1732; i=qiang.yu@oss.qualcomm.com; s=20250513; h=from:subject:message-id; bh=HykJptyeG70W7OChA49EYIHxPs0wMAgUlbTPHQWlYFw=; b=0SX9Xe7reS6OSBWr2q3Gmgf6avxaV0jkkGa1FvQa4GBhvKr6tFnkgE6sk+GAMJCTnHGKVygEt xJGoX00cKHtB02MK0Pa2mGPWEuj6mAckxKSii02vihdA2tQXK8cZY+K X-Developer-Key: i=qiang.yu@oss.qualcomm.com; a=ed25519; pk=Rr94t+fykoieF1ngg/bXxEfr5KoQxeXPtYxM8fBQTAI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDA1NiBTYWx0ZWRfX3oqMAoU0ddyk SagdKHWYBl2ahOGZBa605VZ9nDekOchylv24cAf9Ew3YjJVJ0MWWRQ+wYsFNW/aMbX3BP8pJmSs OsJAWlEXHpYwnlSStoH7A6vRJ7qtMDu9RlxPw1cFmRQrXcnQko5laIMhnYkfJ8zy6+oApAwwGmN XeKEQRecDyfonK2Ln+IMqzVdvExB9qA2OCjSxxfEoSd3vN1drLhxXXLhWIHe8fu9LCs01QsKIei XIbTFXkOJ/R9/RpPSoJNZG0eIpxvPhMEjvvjPkP6RXxYp88PEhXHItk+6yImdQbgpVlB75ngQTK e3F4mzskH8prgWS+gVHl7oAwudECk9DqkJC4X00sFUnmcDL/l5TsTNqYZNW+mEK4bl5T/N9vY2c ZQBF5NOn0x0hxa2ZBY3ArWlJ1EdG/XGd99sS4xHEi3/vvsvIuUys6BYh7Z8hWr0BnVG8WzngcT+ AGiVfYzdN9ZaBuNje9A== X-Proofpoint-GUID: zHmSJxBGIHVXVB-Wf38nZq6V4IbdGQ8C X-Proofpoint-ORIG-GUID: zHmSJxBGIHVXVB-Wf38nZq6V4IbdGQ8C X-Authority-Analysis: v=2.4 cv=YMOSCBGx c=1 sm=1 tr=0 ts=69ccbcba cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=Gcy0W0cHAWauOcWtTx0A:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-01_02,2026-03-31_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 spamscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 bulkscore=0 phishscore=0 malwarescore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010056 The TCSR clkref clocks gate the QREF block which provides reference clocks to the PCIe PHYs. Wire up the LDO supplies required by the QREF and refgen blocks on the CRD board: - vdda-refgen_0p9/1p2: LDOs for the refgen block that generates the reference voltage for QREF - vdda-qrefrx/tx/rpt: LDOs for the QREF receiver, transmitter and repeater circuits Signed-off-by: Qiang Yu --- arch/arm64/boot/dts/qcom/glymur-crd.dts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/glymur-crd.dts b/arch/arm64/boot/dts/= qcom/glymur-crd.dts index 51ea23a49b9e66f14d08dcff777789d16647fd17..3ca181d082ebbbc4d4778abc853= c39deaa2a76e6 100644 --- a/arch/arm64/boot/dts/qcom/glymur-crd.dts +++ b/arch/arm64/boot/dts/qcom/glymur-crd.dts @@ -342,6 +342,25 @@ &usb_1 { status =3D "okay"; }; =20 +&tcsr { + vdda-refgen-0p9-supply =3D <&vreg_l1f_e1_0p82>; + vdda-refgen-1p2-supply =3D <&vreg_l4f_e1_1p08>; + + vdda-qrefrx5-0p9-supply =3D <&vreg_l3f_e0_0p72>; + vdda-qreftx0-0p9-supply =3D <&vreg_l3f_e0_0p72>; + vdda-qreftx0-1p2-supply =3D <&vreg_l4h_e0_1p2>; + vdda-qrefrpt0-0p9-supply =3D <&vreg_l2f_e1_0p83>; + vdda-qrefrpt1-0p9-supply =3D <&vreg_l2f_e1_0p83>; + vdda-qrefrpt2-0p9-supply =3D <&vreg_l2f_e1_0p83>; + vdda-qrefrpt3-0p9-supply =3D <&vreg_l2h_e0_0p72>; + vdda-qrefrpt4-0p9-supply =3D <&vreg_l2h_e0_0p72>; + vdda-qrefrx0-0p9-supply =3D <&vreg_l2f_e1_0p83>; + vdda-qrefrx1-0p9-supply =3D <&vreg_l2f_e1_0p83>; + vdda-qrefrx2-0p9-supply =3D <&vreg_l2f_e1_0p83>; + vdda-qrefrx4-0p9-supply =3D <&vreg_l2h_e0_0p72>; + vdda-qreftx1-0p9-supply =3D <&vreg_l1f_e1_0p82>; +}; + &usb_1_dwc3_hs { remote-endpoint =3D <&pmic_glink_hs_in1>; }; --=20 2.34.1