Message ID | 20230609115058.9059-5-quic_jkona@quicinc.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp895731vqr; Fri, 9 Jun 2023 05:07:42 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4NBebNg0WhPSK2kMNcXjaGoMl82Jd3s9oPkX00Uu0Ot22/UVGsfcgqXnFfczJnRUFr4TXC X-Received: by 2002:a05:6358:cb25:b0:129:94e6:cb46 with SMTP id gr37-20020a056358cb2500b0012994e6cb46mr1060084rwb.17.1686312461920; Fri, 09 Jun 2023 05:07:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686312461; cv=none; d=google.com; s=arc-20160816; b=dx2ZKTWvpP2pTPN8GJIZsxtRDlPlzspf2zQyqZf9OOU52M0rI6CI2Y52UIFPpijdD3 kt2SjJ/tJH/xBv455Po3iEeH0Wo3+B6JXasw61HLyfNLiFbr/d1wE+COeDr3MMSAOk+g clM8tlhW6mD7rFbt6cQNodfNBrdh04gyfojWy5COOZpytODbnl0HfZxEXetyq5t4HV3c tFlCjUDLtx3fdbG+qPiascFuwBmJa3h8fHQxhWAcKX+Lmf8CgrzUQ4jX2UBnj+zHLVLt kDEAnVJZFbfSBRA2/wY6hUJazBgWmaX7IlA45CXIuOv4k0HKW5D03zFv61W0p6GDTd5G q4zg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=IECLb9zryZkXqyOg1JHXaZ4TqcSXmpbvKhYFbmx8ikg=; b=jiK5zHGLreLfx052iF+AZiF9/jEo59B5Zk2WuLBCMlS3B6OBSONtJFvS9irbUlpMIv mgndJpvMcJzZGNzfukg9bWJWCa6cs1jfnZIXQxe2NNEoKH9vIAT7CopGfHZG5thI/WAC HpqSSlcHX5JFy5r62A8oVYYORpPtp+7mn7INzePpyAIrNySDPozMf+N8xS1GFpSlsTz4 fMq25DbobM1jVtytwgGXEku0xcr0UquE2QC9NYsX2dDhNzFvpmTC2HKmWEhxHbmJxo35 uGlAL1Pi4RtVQ392ZS+2OiqvGwHQ3rMfkf/XUxCjxGF2xklCM7WPcHG1MJekBjotriSm Fjsg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=XWiqJqGy; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q83-20020a632a56000000b0052c5d8db0ddsi18701pgq.790.2023.06.09.05.07.26; Fri, 09 Jun 2023 05:07:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=XWiqJqGy; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239960AbjFILww (ORCPT <rfc822;liningstudo@gmail.com> + 99 others); Fri, 9 Jun 2023 07:52:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239688AbjFILwW (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Fri, 9 Jun 2023 07:52:22 -0400 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5BDA9358E; Fri, 9 Jun 2023 04:51:50 -0700 (PDT) Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 359BEdIo005928; Fri, 9 Jun 2023 11:51:46 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=qcppdkim1; bh=IECLb9zryZkXqyOg1JHXaZ4TqcSXmpbvKhYFbmx8ikg=; b=XWiqJqGy5U5/wCj8PfLXKUJ+Rh/ct8zVw0xuNgNfeHFqyAe2l8JYhj+PupftLT5CYoRX Q4NlnNM9rglysEm6XM9KW9YsgNWEhDMYDPGycW57GUoaFpbxcewczihS4BwslQpce/Gx hAW+Vp1r7cnvUVOjczjG/SnJ9JI5EM9LGAQv/7graFs8YBV8bvb6SIwdYKVvSDDE5HrJ dJHxuS13QPorH9Kkn5Jm1ZeGVK63Ldr5+X9jOucc59W6zkSEecIi6iBG96f9CiIEDZlN RKOSYCcNWZptprlQqRqS6MmeCgRfSivYZZcR6JmnoPVMQIYdhM+18SnDPiPkyXrPcu/Q pw== Received: from nalasppmta01.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3r3nwesd3m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 09 Jun 2023 11:51:45 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 359Bpi11000630 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 9 Jun 2023 11:51:44 GMT Received: from hu-jkona-hyd.qualcomm.com (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Fri, 9 Jun 2023 04:51:39 -0700 From: Jagadeesh Kona <quic_jkona@quicinc.com> To: Andy Gross <agross@kernel.org>, Konrad Dybcio <konrad.dybcio@linaro.org>, Michael Turquette <mturquette@baylibre.com>, Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org> CC: Bjorn Andersson <andersson@kernel.org>, Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>, <linux-arm-msm@vger.kernel.org>, <linux-clk@vger.kernel.org>, <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>, Taniya Das <quic_tdas@quicinc.com>, "Jagadeesh Kona" <quic_jkona@quicinc.com>, Satya Priya Kakitapalli <quic_skakitap@quicinc.com>, Imran Shaik <quic_imrashai@quicinc.com>, "Ajit Pandey" <quic_ajipan@quicinc.com> Subject: [PATCH V4 4/4] arm64: dts: qcom: sm8550: Add camera clock controller Date: Fri, 9 Jun 2023 17:20:58 +0530 Message-ID: <20230609115058.9059-5-quic_jkona@quicinc.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230609115058.9059-1-quic_jkona@quicinc.com> References: <20230609115058.9059-1-quic_jkona@quicinc.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: jsBby-q7fErqsDWRAXRFGgxa9QIO27ln X-Proofpoint-ORIG-GUID: jsBby-q7fErqsDWRAXRFGgxa9QIO27ln X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-09_08,2023-06-09_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 spamscore=0 adultscore=0 mlxscore=0 lowpriorityscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306090100 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768226776050357495?= X-GMAIL-MSGID: =?utf-8?q?1768226776050357495?= |
Series |
Add camera clock controller support for SM8550
|
|
Commit Message
Jagadeesh Kona
June 9, 2023, 11:50 a.m. UTC
Add device node for camera clock controller on Qualcomm SM8550 platform. Signed-off-by: Taniya Das <quic_tdas@quicinc.com> Signed-off-by: Jagadeesh Kona <quic_jkona@quicinc.com> --- Changes since V3: - No changes Changes since V2: - No changes Changes since V1: - Padded non-zero address part to 8 hex digits arch/arm64/boot/dts/qcom/sm8550.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
Comments
On 9.06.2023 13:50, Jagadeesh Kona wrote: > Add device node for camera clock controller on Qualcomm > SM8550 platform. > > Signed-off-by: Taniya Das <quic_tdas@quicinc.com> > Signed-off-by: Jagadeesh Kona <quic_jkona@quicinc.com> > --- > Changes since V3: > - No changes > Changes since V2: > - No changes > Changes since V1: > - Padded non-zero address part to 8 hex digits > > arch/arm64/boot/dts/qcom/sm8550.dtsi | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi > index 75cd374943eb..4d2d610fc66a 100644 > --- a/arch/arm64/boot/dts/qcom/sm8550.dtsi > +++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi > @@ -5,6 +5,7 @@ > > #include <dt-bindings/clock/qcom,rpmh.h> > #include <dt-bindings/clock/qcom,sm8450-videocc.h> > +#include <dt-bindings/clock/qcom,sm8550-camcc.h> > #include <dt-bindings/clock/qcom,sm8550-gcc.h> > #include <dt-bindings/clock/qcom,sm8550-gpucc.h> > #include <dt-bindings/clock/qcom,sm8550-tcsr.h> > @@ -2419,6 +2420,20 @@ videocc: clock-controller@aaf0000 { > #power-domain-cells = <1>; > }; > > + camcc: clock-controller@ade0000 { > + compatible = "qcom,sm8550-camcc"; > + reg = <0 0x0ade0000 0 0x20000>; > + clocks = <&gcc GCC_CAMERA_AHB_CLK>, > + <&bi_tcxo_div2>, > + <&bi_tcxo_ao_div2>, > + <&sleep_clk>; > + power-domains = <&rpmhpd SM8550_MMCX>; I see that both MMCX ("mmcx.lvl") and MXC ("mxc.lvl") (and MX, FWIW) are consumed on msm-5.15, with the latter one powering camcc PLLs.. How are they related? Is that resolved internally or does it need manual intervention? Konrad > + required-opps = <&rpmhpd_opp_low_svs>; > + #clock-cells = <1>; > + #reset-cells = <1>; > + #power-domain-cells = <1>; > + }; > + > mdss: display-subsystem@ae00000 { > compatible = "qcom,sm8550-mdss"; > reg = <0 0x0ae00000 0 0x1000>;
On 6/9/2023 6:22 PM, Konrad Dybcio wrote: > > > On 9.06.2023 13:50, Jagadeesh Kona wrote: >> Add device node for camera clock controller on Qualcomm >> SM8550 platform. >> >> Signed-off-by: Taniya Das <quic_tdas@quicinc.com> >> Signed-off-by: Jagadeesh Kona <quic_jkona@quicinc.com> >> --- >> Changes since V3: >> - No changes >> Changes since V2: >> - No changes >> Changes since V1: >> - Padded non-zero address part to 8 hex digits >> >> arch/arm64/boot/dts/qcom/sm8550.dtsi | 15 +++++++++++++++ >> 1 file changed, 15 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi >> index 75cd374943eb..4d2d610fc66a 100644 >> --- a/arch/arm64/boot/dts/qcom/sm8550.dtsi >> +++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi >> @@ -5,6 +5,7 @@ >> >> #include <dt-bindings/clock/qcom,rpmh.h> >> #include <dt-bindings/clock/qcom,sm8450-videocc.h> >> +#include <dt-bindings/clock/qcom,sm8550-camcc.h> >> #include <dt-bindings/clock/qcom,sm8550-gcc.h> >> #include <dt-bindings/clock/qcom,sm8550-gpucc.h> >> #include <dt-bindings/clock/qcom,sm8550-tcsr.h> >> @@ -2419,6 +2420,20 @@ videocc: clock-controller@aaf0000 { >> #power-domain-cells = <1>; >> }; >> >> + camcc: clock-controller@ade0000 { >> + compatible = "qcom,sm8550-camcc"; >> + reg = <0 0x0ade0000 0 0x20000>; >> + clocks = <&gcc GCC_CAMERA_AHB_CLK>, >> + <&bi_tcxo_div2>, >> + <&bi_tcxo_ao_div2>, >> + <&sleep_clk>; >> + power-domains = <&rpmhpd SM8550_MMCX>; > I see that both MMCX ("mmcx.lvl") and MXC ("mxc.lvl") (and MX, FWIW) > are consumed on msm-5.15, with the latter one powering camcc PLLs.. > > How are they related? Is that resolved internally or does it need > manual intervention? > > Konrad These are just different voltage rails, camcc clocks are powered by MMCX rail and camcc pll's are powered by MXC rail. Consumer drivers need to take care of voting on these rails properly based on the frequency of clocks requested. Thanks, Jagadeesh >> + required-opps = <&rpmhpd_opp_low_svs>; >> + #clock-cells = <1>; >> + #reset-cells = <1>; >> + #power-domain-cells = <1>; >> + }; >> + >> mdss: display-subsystem@ae00000 { >> compatible = "qcom,sm8550-mdss"; >> reg = <0 0x0ae00000 0 0x1000>;
On Wed, 14 Jun 2023 at 14:56, Jagadeesh Kona <quic_jkona@quicinc.com> wrote: > > > > On 6/9/2023 6:22 PM, Konrad Dybcio wrote: > > > > > > On 9.06.2023 13:50, Jagadeesh Kona wrote: > >> Add device node for camera clock controller on Qualcomm > >> SM8550 platform. > >> > >> Signed-off-by: Taniya Das <quic_tdas@quicinc.com> > >> Signed-off-by: Jagadeesh Kona <quic_jkona@quicinc.com> > >> --- > >> Changes since V3: > >> - No changes > >> Changes since V2: > >> - No changes > >> Changes since V1: > >> - Padded non-zero address part to 8 hex digits > >> > >> arch/arm64/boot/dts/qcom/sm8550.dtsi | 15 +++++++++++++++ > >> 1 file changed, 15 insertions(+) > >> > >> diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi > >> index 75cd374943eb..4d2d610fc66a 100644 > >> --- a/arch/arm64/boot/dts/qcom/sm8550.dtsi > >> +++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi > >> @@ -5,6 +5,7 @@ > >> > >> #include <dt-bindings/clock/qcom,rpmh.h> > >> #include <dt-bindings/clock/qcom,sm8450-videocc.h> > >> +#include <dt-bindings/clock/qcom,sm8550-camcc.h> > >> #include <dt-bindings/clock/qcom,sm8550-gcc.h> > >> #include <dt-bindings/clock/qcom,sm8550-gpucc.h> > >> #include <dt-bindings/clock/qcom,sm8550-tcsr.h> > >> @@ -2419,6 +2420,20 @@ videocc: clock-controller@aaf0000 { > >> #power-domain-cells = <1>; > >> }; > >> > >> + camcc: clock-controller@ade0000 { > >> + compatible = "qcom,sm8550-camcc"; > >> + reg = <0 0x0ade0000 0 0x20000>; > >> + clocks = <&gcc GCC_CAMERA_AHB_CLK>, > >> + <&bi_tcxo_div2>, > >> + <&bi_tcxo_ao_div2>, > >> + <&sleep_clk>; > >> + power-domains = <&rpmhpd SM8550_MMCX>; > > I see that both MMCX ("mmcx.lvl") and MXC ("mxc.lvl") (and MX, FWIW) > > are consumed on msm-5.15, with the latter one powering camcc PLLs.. > > > > How are they related? Is that resolved internally or does it need > > manual intervention? > > > > Konrad > > These are just different voltage rails, camcc clocks are powered by MMCX > rail and camcc pll's are powered by MXC rail. Consumer drivers need to > take care of voting on these rails properly based on the frequency of > clocks requested. Which rail powers registers of the camcc? Which rail is required to read PLL registers? > > Thanks, > Jagadeesh > > >> + required-opps = <&rpmhpd_opp_low_svs>; > >> + #clock-cells = <1>; > >> + #reset-cells = <1>; > >> + #power-domain-cells = <1>; > >> + }; > >> + > >> mdss: display-subsystem@ae00000 { > >> compatible = "qcom,sm8550-mdss"; > >> reg = <0 0x0ae00000 0 0x1000>;
On 6/14/2023 5:45 PM, Dmitry Baryshkov wrote: > On Wed, 14 Jun 2023 at 14:56, Jagadeesh Kona <quic_jkona@quicinc.com> wrote: >> >> >> >> On 6/9/2023 6:22 PM, Konrad Dybcio wrote: >>> >>> >>> On 9.06.2023 13:50, Jagadeesh Kona wrote: >>>> Add device node for camera clock controller on Qualcomm >>>> SM8550 platform. >>>> >>>> Signed-off-by: Taniya Das <quic_tdas@quicinc.com> >>>> Signed-off-by: Jagadeesh Kona <quic_jkona@quicinc.com> >>>> --- >>>> Changes since V3: >>>> - No changes >>>> Changes since V2: >>>> - No changes >>>> Changes since V1: >>>> - Padded non-zero address part to 8 hex digits >>>> >>>> arch/arm64/boot/dts/qcom/sm8550.dtsi | 15 +++++++++++++++ >>>> 1 file changed, 15 insertions(+) >>>> >>>> diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi >>>> index 75cd374943eb..4d2d610fc66a 100644 >>>> --- a/arch/arm64/boot/dts/qcom/sm8550.dtsi >>>> +++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi >>>> @@ -5,6 +5,7 @@ >>>> >>>> #include <dt-bindings/clock/qcom,rpmh.h> >>>> #include <dt-bindings/clock/qcom,sm8450-videocc.h> >>>> +#include <dt-bindings/clock/qcom,sm8550-camcc.h> >>>> #include <dt-bindings/clock/qcom,sm8550-gcc.h> >>>> #include <dt-bindings/clock/qcom,sm8550-gpucc.h> >>>> #include <dt-bindings/clock/qcom,sm8550-tcsr.h> >>>> @@ -2419,6 +2420,20 @@ videocc: clock-controller@aaf0000 { >>>> #power-domain-cells = <1>; >>>> }; >>>> >>>> + camcc: clock-controller@ade0000 { >>>> + compatible = "qcom,sm8550-camcc"; >>>> + reg = <0 0x0ade0000 0 0x20000>; >>>> + clocks = <&gcc GCC_CAMERA_AHB_CLK>, >>>> + <&bi_tcxo_div2>, >>>> + <&bi_tcxo_ao_div2>, >>>> + <&sleep_clk>; >>>> + power-domains = <&rpmhpd SM8550_MMCX>; >>> I see that both MMCX ("mmcx.lvl") and MXC ("mxc.lvl") (and MX, FWIW) >>> are consumed on msm-5.15, with the latter one powering camcc PLLs.. >>> >>> How are they related? Is that resolved internally or does it need >>> manual intervention? >>> >>> Konrad >> >> These are just different voltage rails, camcc clocks are powered by MMCX >> rail and camcc pll's are powered by MXC rail. Consumer drivers need to >> take care of voting on these rails properly based on the frequency of >> clocks requested. > > Which rail powers registers of the camcc? Which rail is required to > read PLL registers? > MMCX rail is required to access camcc registers, both MMCX and MXC are required to read PLL registers. MXC rail should be left ON from bootloaders during bootup and hence does not require explicit voting. Thanks, Jagadeesh >> >> Thanks, >> Jagadeesh >> >>>> + required-opps = <&rpmhpd_opp_low_svs>; >>>> + #clock-cells = <1>; >>>> + #reset-cells = <1>; >>>> + #power-domain-cells = <1>; >>>> + }; >>>> + >>>> mdss: display-subsystem@ae00000 { >>>> compatible = "qcom,sm8550-mdss"; >>>> reg = <0 0x0ae00000 0 0x1000>; > > >
On 23.06.2023 18:45, Jagadeesh Kona wrote: > > > On 6/14/2023 5:45 PM, Dmitry Baryshkov wrote: >> On Wed, 14 Jun 2023 at 14:56, Jagadeesh Kona <quic_jkona@quicinc.com> wrote: >>> >>> >>> >>> On 6/9/2023 6:22 PM, Konrad Dybcio wrote: >>>> >>>> >>>> On 9.06.2023 13:50, Jagadeesh Kona wrote: >>>>> Add device node for camera clock controller on Qualcomm >>>>> SM8550 platform. >>>>> >>>>> Signed-off-by: Taniya Das <quic_tdas@quicinc.com> >>>>> Signed-off-by: Jagadeesh Kona <quic_jkona@quicinc.com> >>>>> --- >>>>> Changes since V3: >>>>> - No changes >>>>> Changes since V2: >>>>> - No changes >>>>> Changes since V1: >>>>> - Padded non-zero address part to 8 hex digits >>>>> >>>>> arch/arm64/boot/dts/qcom/sm8550.dtsi | 15 +++++++++++++++ >>>>> 1 file changed, 15 insertions(+) >>>>> >>>>> diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi >>>>> index 75cd374943eb..4d2d610fc66a 100644 >>>>> --- a/arch/arm64/boot/dts/qcom/sm8550.dtsi >>>>> +++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi >>>>> @@ -5,6 +5,7 @@ >>>>> >>>>> #include <dt-bindings/clock/qcom,rpmh.h> >>>>> #include <dt-bindings/clock/qcom,sm8450-videocc.h> >>>>> +#include <dt-bindings/clock/qcom,sm8550-camcc.h> >>>>> #include <dt-bindings/clock/qcom,sm8550-gcc.h> >>>>> #include <dt-bindings/clock/qcom,sm8550-gpucc.h> >>>>> #include <dt-bindings/clock/qcom,sm8550-tcsr.h> >>>>> @@ -2419,6 +2420,20 @@ videocc: clock-controller@aaf0000 { >>>>> #power-domain-cells = <1>; >>>>> }; >>>>> >>>>> + camcc: clock-controller@ade0000 { >>>>> + compatible = "qcom,sm8550-camcc"; >>>>> + reg = <0 0x0ade0000 0 0x20000>; >>>>> + clocks = <&gcc GCC_CAMERA_AHB_CLK>, >>>>> + <&bi_tcxo_div2>, >>>>> + <&bi_tcxo_ao_div2>, >>>>> + <&sleep_clk>; >>>>> + power-domains = <&rpmhpd SM8550_MMCX>; >>>> I see that both MMCX ("mmcx.lvl") and MXC ("mxc.lvl") (and MX, FWIW) >>>> are consumed on msm-5.15, with the latter one powering camcc PLLs.. >>>> >>>> How are they related? Is that resolved internally or does it need >>>> manual intervention? >>>> >>>> Konrad >>> >>> These are just different voltage rails, camcc clocks are powered by MMCX >>> rail and camcc pll's are powered by MXC rail. Consumer drivers need to >>> take care of voting on these rails properly based on the frequency of >>> clocks requested. >> >> Which rail powers registers of the camcc? Which rail is required to >> read PLL registers? >> > MMCX rail is required to access camcc registers, both MMCX and MXC are required to read PLL registers. MXC rail should be left ON from bootloaders during bootup and hence does not require explicit voting. That's a bad approach. We have a sync_state callback in rpmhpd that kills unused-from-linux-POV power rails, so Linux should be made aware of any and all requirements there. Konrad > > Thanks, > Jagadeesh > >>> >>> Thanks, >>> Jagadeesh >>> >>>>> + required-opps = <&rpmhpd_opp_low_svs>; >>>>> + #clock-cells = <1>; >>>>> + #reset-cells = <1>; >>>>> + #power-domain-cells = <1>; >>>>> + }; >>>>> + >>>>> mdss: display-subsystem@ae00000 { >>>>> compatible = "qcom,sm8550-mdss"; >>>>> reg = <0 0x0ae00000 0 0x1000>; >> >> >>
diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi index 75cd374943eb..4d2d610fc66a 100644 --- a/arch/arm64/boot/dts/qcom/sm8550.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi @@ -5,6 +5,7 @@ #include <dt-bindings/clock/qcom,rpmh.h> #include <dt-bindings/clock/qcom,sm8450-videocc.h> +#include <dt-bindings/clock/qcom,sm8550-camcc.h> #include <dt-bindings/clock/qcom,sm8550-gcc.h> #include <dt-bindings/clock/qcom,sm8550-gpucc.h> #include <dt-bindings/clock/qcom,sm8550-tcsr.h> @@ -2419,6 +2420,20 @@ videocc: clock-controller@aaf0000 { #power-domain-cells = <1>; }; + camcc: clock-controller@ade0000 { + compatible = "qcom,sm8550-camcc"; + reg = <0 0x0ade0000 0 0x20000>; + clocks = <&gcc GCC_CAMERA_AHB_CLK>, + <&bi_tcxo_div2>, + <&bi_tcxo_ao_div2>, + <&sleep_clk>; + power-domains = <&rpmhpd SM8550_MMCX>; + required-opps = <&rpmhpd_opp_low_svs>; + #clock-cells = <1>; + #reset-cells = <1>; + #power-domain-cells = <1>; + }; + mdss: display-subsystem@ae00000 { compatible = "qcom,sm8550-mdss"; reg = <0 0x0ae00000 0 0x1000>;