Devicetree
 help / color / mirror / Atom feed
* [PATCH v2 0/4] qcom: videocc: Fix sleep clock on Glymur/SM8750/Nord
@ 2026-10-08  8:10 Shawn Guo
  2026-10-08  8:10 ` [PATCH v2 1/4] dt-bindings: clock: qcom,sm8450-videocc: Fix clock inputs for Glymur Shawn Guo
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Shawn Guo @ 2026-10-08  8:10 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Abel Vesa, Stephen Boyd, Brian Masney, Jerome Brunet, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Taniya Das,
	Jagadeesh Kona, Bryan O'Donoghue, Bartosz Golaszewski,
	linux-arm-msm, linux-clk, devicetree, linux-kernel, Shawn Guo

The video clock controller on Glymur, SM8750 and Nord has three clock
inputs: the board XO, the always-on board XO that feeds its PLL
reference, and the 32 kHz chip sleep clock that sources its sleep clock
generator. It has no AHB clock input; the AHB clock the controller uses
for itself is generated inside the block from the XO input.

qcom,sm8450-videocc.yaml describes two inputs for every compatible it
covers, a board XO and a video AHB clock from GCC. For these three SoCs
that leaves the sleep clock input undescribable, and describes as the
second input a clock that is not routed into the controller.

Patch 1 describes the three inputs for the Glymur, Nord and SM8750
compatibles and keeps the two-input description for the rest. Patches
2-4 bring the Glymur, SM8750 and Nord videocc nodes in line with it.
None of the DTS changes is a functional change.

Tested on Nord: video_cc_sleep_clk_src no longer shows up in
clk_orphan_summary and is parented to the board sleep clock at 32 kHz,
and videocc keeps working with the GCC video AHB clock dropped.

Changes in v2:
- Rewrite the binding and DTS commit messages in terms of the hardware
  clock inputs rather than driver behaviour
- Drop the Fixes tags
- Rebase on next-20261006 and add patch 4 to fix the Nord videocc node
- Link to v1: https://lore.kernel.org/all/20260924161152.1162301-1-shengchao.guo@oss.qualcomm.com/

Shawn Guo (4):
  dt-bindings: clock: qcom,sm8450-videocc: Fix clock inputs for Glymur
  arm64: dts: qcom: glymur: Add videocc sleep clock
  arm64: dts: qcom: sm8750: Fix videocc clock inputs
  arm64: dts: qcom: nord: Fix videocc clock inputs

 .../bindings/clock/qcom,sm8450-videocc.yaml   | 26 ++++++++++++++++---
 arch/arm64/boot/dts/qcom/glymur.dtsi          |  3 ++-
 arch/arm64/boot/dts/qcom/nord-embedded.dtsi   |  3 ++-
 arch/arm64/boot/dts/qcom/sm8750.dtsi          |  3 ++-
 4 files changed, 29 insertions(+), 6 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 1/4] dt-bindings: clock: qcom,sm8450-videocc: Fix clock inputs for Glymur
  2026-10-08  8:10 [PATCH v2 0/4] qcom: videocc: Fix sleep clock on Glymur/SM8750/Nord Shawn Guo
@ 2026-10-08  8:10 ` Shawn Guo
  2026-10-08 19:45   ` Rob Herring (Arm)
  2026-10-08  8:10 ` [PATCH v2 2/4] arm64: dts: qcom: glymur: Add videocc sleep clock Shawn Guo
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 7+ messages in thread
From: Shawn Guo @ 2026-10-08  8:10 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Abel Vesa, Stephen Boyd, Brian Masney, Jerome Brunet, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Taniya Das,
	Jagadeesh Kona, Bryan O'Donoghue, Bartosz Golaszewski,
	linux-arm-msm, linux-clk, devicetree, linux-kernel, Shawn Guo

The schema describes exactly two clock inputs for every compatible it
covers, a board XO and a video AHB clock from GCC. That does not match
the video clock controller found on Glymur, Nord and SM8750.

Per the hardware documentation, the controller on these SoCs has three
clock inputs: the board XO, the always-on board XO that feeds its PLL
reference, and the 32 kHz chip sleep clock that sources its sleep clock
generator. It has no AHB clock input. The AHB clock the controller uses
for itself is generated inside the block from the XO input.

Because the schema stops at two items, the sleep clock input cannot be
described in device tree at all, and the second item is described as a
clock that is not routed into the controller.

Describe three inputs for the Glymur, Nord and SM8750 compatibles and
keep the existing two-input description for the remaining compatibles.

Assisted-by: LLM
Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
---
 .../bindings/clock/qcom,sm8450-videocc.yaml   | 26 ++++++++++++++++---
 1 file changed, 23 insertions(+), 3 deletions(-)

diff --git a/Documentation/devicetree/bindings/clock/qcom,sm8450-videocc.yaml b/Documentation/devicetree/bindings/clock/qcom,sm8450-videocc.yaml
index e985a450451d..9bd746afbc11 100644
--- a/Documentation/devicetree/bindings/clock/qcom,sm8450-videocc.yaml
+++ b/Documentation/devicetree/bindings/clock/qcom,sm8450-videocc.yaml
@@ -42,9 +42,8 @@ properties:
       - qcom,x1p42100-videocc
 
   clocks:
-    items:
-      - description: Board XO source
-      - description: Video AHB clock from GCC
+    minItems: 2
+    maxItems: 3
 
   power-domains:
     description:
@@ -79,6 +78,27 @@ allOf:
     then:
       required:
         - required-opps
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,glymur-videocc
+              - qcom,nord-videocc
+              - qcom,sm8750-videocc
+    then:
+      properties:
+        clocks:
+          items:
+            - description: Board XO source
+            - description: Board always-on XO source
+            - description: Sleep clock source
+    else:
+      properties:
+        clocks:
+          items:
+            - description: Board XO source
+            - description: Video AHB clock from GCC
 
 unevaluatedProperties: false
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 2/4] arm64: dts: qcom: glymur: Add videocc sleep clock
  2026-10-08  8:10 [PATCH v2 0/4] qcom: videocc: Fix sleep clock on Glymur/SM8750/Nord Shawn Guo
  2026-10-08  8:10 ` [PATCH v2 1/4] dt-bindings: clock: qcom,sm8450-videocc: Fix clock inputs for Glymur Shawn Guo
@ 2026-10-08  8:10 ` Shawn Guo
  2026-10-09 17:57   ` Abel Vesa
  2026-10-08  8:10 ` [PATCH v2 3/4] arm64: dts: qcom: sm8750: Fix videocc clock inputs Shawn Guo
  2026-10-08  8:10 ` [PATCH v2 4/4] arm64: dts: qcom: nord: " Shawn Guo
  3 siblings, 1 reply; 7+ messages in thread
From: Shawn Guo @ 2026-10-08  8:10 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Abel Vesa, Stephen Boyd, Brian Masney, Jerome Brunet, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Taniya Das,
	Jagadeesh Kona, Bryan O'Donoghue, Bartosz Golaszewski,
	linux-arm-msm, linux-clk, devicetree, linux-kernel, Shawn Guo

The video clock controller binding describes three clock inputs for
Glymur: the board XO, the always-on board XO and the 32 kHz sleep clock.
The videocc node passes only the first two.

Pass the board sleep clock as the third input. No functional change,
the video sleep clock keeps the rate left by the bootloader and has no
rate consumer.

Assisted-by: LLM
Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/glymur.dtsi | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/glymur.dtsi b/arch/arm64/boot/dts/qcom/glymur.dtsi
index 65a398c0a992..b389f953f97f 100644
--- a/arch/arm64/boot/dts/qcom/glymur.dtsi
+++ b/arch/arm64/boot/dts/qcom/glymur.dtsi
@@ -5810,7 +5810,8 @@ videocc: clock-controller@aaf0000 {
 			compatible = "qcom,glymur-videocc";
 			reg = <0x0 0x0aaf0000 0x0 0x10000>;
 			clocks = <&rpmhcc RPMH_CXO_CLK>,
-				 <&rpmhcc RPMH_CXO_CLK_A>;
+				 <&rpmhcc RPMH_CXO_CLK_A>,
+				 <&sleep_clk>;
 
 			power-domains = <&rpmhpd RPMHPD_MMCX>,
 					<&rpmhpd RPMHPD_MXC>;
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 3/4] arm64: dts: qcom: sm8750: Fix videocc clock inputs
  2026-10-08  8:10 [PATCH v2 0/4] qcom: videocc: Fix sleep clock on Glymur/SM8750/Nord Shawn Guo
  2026-10-08  8:10 ` [PATCH v2 1/4] dt-bindings: clock: qcom,sm8450-videocc: Fix clock inputs for Glymur Shawn Guo
  2026-10-08  8:10 ` [PATCH v2 2/4] arm64: dts: qcom: glymur: Add videocc sleep clock Shawn Guo
@ 2026-10-08  8:10 ` Shawn Guo
  2026-10-08  8:10 ` [PATCH v2 4/4] arm64: dts: qcom: nord: " Shawn Guo
  3 siblings, 0 replies; 7+ messages in thread
From: Shawn Guo @ 2026-10-08  8:10 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Abel Vesa, Stephen Boyd, Brian Masney, Jerome Brunet, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Taniya Das,
	Jagadeesh Kona, Bryan O'Donoghue, Bartosz Golaszewski,
	linux-arm-msm, linux-clk, devicetree, linux-kernel, Shawn Guo

The video clock controller binding describes three clock inputs for
SM8750: the board XO, the always-on board XO and the 32 kHz sleep clock.
The videocc node instead passes the board XO and GCC_VIDEO_AHB_CLK,
which is not an input of the controller.

Pass bi_tcxo_ao_div2 and the board sleep clock in place of the AHB
clock. No functional change, GCC_VIDEO_AHB_CLK is enabled independently
of this node.

Assisted-by: LLM
Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm8750.dtsi | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
index cf947acc5760..678e6e167bde 100644
--- a/arch/arm64/boot/dts/qcom/sm8750.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8750.dtsi
@@ -3338,7 +3338,8 @@ videocc: clock-controller@aaf0000 {
 			compatible = "qcom,sm8750-videocc";
 			reg = <0x0 0x0aaf0000 0x0 0x10000>;
 			clocks = <&bi_tcxo_div2>,
-				 <&gcc GCC_VIDEO_AHB_CLK>;
+				 <&bi_tcxo_ao_div2>,
+				 <&sleep_clk>;
 			power-domains = <&rpmhpd RPMHPD_MMCX>,
 					<&rpmhpd RPMHPD_MXC>;
 			required-opps = <&rpmhpd_opp_low_svs>,
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 4/4] arm64: dts: qcom: nord: Fix videocc clock inputs
  2026-10-08  8:10 [PATCH v2 0/4] qcom: videocc: Fix sleep clock on Glymur/SM8750/Nord Shawn Guo
                   ` (2 preceding siblings ...)
  2026-10-08  8:10 ` [PATCH v2 3/4] arm64: dts: qcom: sm8750: Fix videocc clock inputs Shawn Guo
@ 2026-10-08  8:10 ` Shawn Guo
  3 siblings, 0 replies; 7+ messages in thread
From: Shawn Guo @ 2026-10-08  8:10 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Abel Vesa, Stephen Boyd, Brian Masney, Jerome Brunet, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Taniya Das,
	Jagadeesh Kona, Bryan O'Donoghue, Bartosz Golaszewski,
	linux-arm-msm, linux-clk, devicetree, linux-kernel, Shawn Guo

The video clock controller binding describes three clock inputs for
Nord: the board XO, the always-on board XO and the 32 kHz sleep clock.
The videocc node instead passes the board XO and NW_GCC_VIDEO_AHB_CLK,
which is not an input of the controller.

Pass bi_tcxo_ao_div2 and the board sleep clock in place of the AHB
clock. No functional change, NW_GCC_VIDEO_AHB_CLK is kept always on by
the NW GCC driver.

Assisted-by: LLM
Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/nord-embedded.dtsi | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/nord-embedded.dtsi b/arch/arm64/boot/dts/qcom/nord-embedded.dtsi
index 1ab7d9bc3cfe..62d14be55839 100644
--- a/arch/arm64/boot/dts/qcom/nord-embedded.dtsi
+++ b/arch/arm64/boot/dts/qcom/nord-embedded.dtsi
@@ -886,7 +886,8 @@ videocc: clock-controller@aaf0000 {
 		compatible = "qcom,nord-videocc";
 		reg = <0x0 0x0aaf0000 0x0 0x10000>;
 		clocks = <&bi_tcxo_div2>,
-			 <&nwgcc NW_GCC_VIDEO_AHB_CLK>;
+			 <&bi_tcxo_ao_div2>,
+			 <&sleep_clk>;
 		power-domains = <&rpmhpd RPMHPD_MMCX>,
 				<&rpmhpd RPMHPD_MXC>;
 		required-opps = <&rpmhpd_opp_low_svs>,
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 1/4] dt-bindings: clock: qcom,sm8450-videocc: Fix clock inputs for Glymur
  2026-10-08  8:10 ` [PATCH v2 1/4] dt-bindings: clock: qcom,sm8450-videocc: Fix clock inputs for Glymur Shawn Guo
@ 2026-10-08 19:45   ` Rob Herring (Arm)
  0 siblings, 0 replies; 7+ messages in thread
From: Rob Herring (Arm) @ 2026-10-08 19:45 UTC (permalink / raw)
  To: Shawn Guo
  Cc: linux-kernel, Stephen Boyd, Bartosz Golaszewski, Abel Vesa,
	Bryan O'Donoghue, linux-arm-msm, Krzysztof Kozlowski,
	Jagadeesh Kona, linux-clk, devicetree, Konrad Dybcio,
	Conor Dooley, Bjorn Andersson, Jerome Brunet, Brian Masney,
	Taniya Das


On Thu, 08 Oct 2026 16:10:33 +0800, Shawn Guo wrote:
> The schema describes exactly two clock inputs for every compatible it
> covers, a board XO and a video AHB clock from GCC. That does not match
> the video clock controller found on Glymur, Nord and SM8750.
> 
> Per the hardware documentation, the controller on these SoCs has three
> clock inputs: the board XO, the always-on board XO that feeds its PLL
> reference, and the 32 kHz chip sleep clock that sources its sleep clock
> generator. It has no AHB clock input. The AHB clock the controller uses
> for itself is generated inside the block from the XO input.
> 
> Because the schema stops at two items, the sleep clock input cannot be
> described in device tree at all, and the second item is described as a
> clock that is not routed into the controller.
> 
> Describe three inputs for the Glymur, Nord and SM8750 compatibles and
> keep the existing two-input description for the remaining compatibles.
> 
> Assisted-by: LLM
> Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
> ---
>  .../bindings/clock/qcom,sm8450-videocc.yaml   | 26 ++++++++++++++++---
>  1 file changed, 23 insertions(+), 3 deletions(-)
> 

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 2/4] arm64: dts: qcom: glymur: Add videocc sleep clock
  2026-10-08  8:10 ` [PATCH v2 2/4] arm64: dts: qcom: glymur: Add videocc sleep clock Shawn Guo
@ 2026-10-09 17:57   ` Abel Vesa
  0 siblings, 0 replies; 7+ messages in thread
From: Abel Vesa @ 2026-10-09 17:57 UTC (permalink / raw)
  To: Shawn Guo
  Cc: Bjorn Andersson, Abel Vesa, Stephen Boyd, Brian Masney,
	Jerome Brunet, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Konrad Dybcio, Taniya Das, Jagadeesh Kona, Bryan O'Donoghue,
	Bartosz Golaszewski, linux-arm-msm, linux-clk, devicetree,
	linux-kernel

On 26-10-08 16:10:34, Shawn Guo wrote:
> The video clock controller binding describes three clock inputs for
> Glymur: the board XO, the always-on board XO and the 32 kHz sleep clock.
> The videocc node passes only the first two.
> 
> Pass the board sleep clock as the third input. No functional change,
> the video sleep clock keeps the rate left by the bootloader and has no
> rate consumer.
> 
> Assisted-by: LLM
> Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>

Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-10-09 17:57 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-08  8:10 [PATCH v2 0/4] qcom: videocc: Fix sleep clock on Glymur/SM8750/Nord Shawn Guo
2026-10-08  8:10 ` [PATCH v2 1/4] dt-bindings: clock: qcom,sm8450-videocc: Fix clock inputs for Glymur Shawn Guo
2026-10-08 19:45   ` Rob Herring (Arm)
2026-10-08  8:10 ` [PATCH v2 2/4] arm64: dts: qcom: glymur: Add videocc sleep clock Shawn Guo
2026-10-09 17:57   ` Abel Vesa
2026-10-08  8:10 ` [PATCH v2 3/4] arm64: dts: qcom: sm8750: Fix videocc clock inputs Shawn Guo
2026-10-08  8:10 ` [PATCH v2 4/4] arm64: dts: qcom: nord: " Shawn Guo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox