Re: [PATCH v4 1/4] arm64: dts: rockchip: assign pipe clock to rk356x PCIe lanes

From: Shawn Lin

Date: Wed Mar 04 2026 - 09:26:51 EST


+ Elaine

在 2026/03/04 星期三 19:05, David Heidelberg via B4 Relay 写道:
From: David Heidelberg <david@xxxxxxx>

These clocks are used by PCIe lanes, but we're missing from the
definition.


These missing clocks are needed but PCIe still work fine,because
the clk code for rk3568 didn't actually define them as real clock
gates. So they are always enabled thanks to the default value and out
of the radar of clk_disable_unused().

It's a bit suboptimal and probably need to be improved in clk-rk3568.c

For $subject patch,

Reviewed-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx>


Suggested-by: Charalampos Mitrodimas <charmitro@xxxxxxxxxx>
Signed-off-by: David Heidelberg <david@xxxxxxx>
---
arch/arm64/boot/dts/rockchip/rk3568.dtsi | 12 ++++++++----
arch/arm64/boot/dts/rockchip/rk356x-base.dtsi | 6 ++++--
2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3568.dtsi b/arch/arm64/boot/dts/rockchip/rk3568.dtsi
index 658097ed69714..3bc653f027f1f 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3568.dtsi
@@ -155,9 +155,11 @@ pcie3x1: pcie@fe270000 {
bus-range = <0x10 0x1f>;
clocks = <&cru ACLK_PCIE30X1_MST>, <&cru ACLK_PCIE30X1_SLV>,
<&cru ACLK_PCIE30X1_DBI>, <&cru PCLK_PCIE30X1>,
- <&cru CLK_PCIE30X1_AUX_NDFT>;
+ <&cru CLK_PCIE30X1_AUX_NDFT>,
+ <&cru CLK_PCIE30X1_PIPE_DFT>;
clock-names = "aclk_mst", "aclk_slv",
- "aclk_dbi", "pclk", "aux";
+ "aclk_dbi", "pclk", "aux",
+ "pipe";
device_type = "pci";
interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
@@ -208,9 +210,11 @@ pcie3x2: pcie@fe280000 {
bus-range = <0x20 0x2f>;
clocks = <&cru ACLK_PCIE30X2_MST>, <&cru ACLK_PCIE30X2_SLV>,
<&cru ACLK_PCIE30X2_DBI>, <&cru PCLK_PCIE30X2>,
- <&cru CLK_PCIE30X2_AUX_NDFT>;
+ <&cru CLK_PCIE30X2_AUX_NDFT>,
+ <&cru CLK_PCIE30X2_PIPE_DFT>;
clock-names = "aclk_mst", "aclk_slv",
- "aclk_dbi", "pclk", "aux";
+ "aclk_dbi", "pclk", "aux",
+ "pipe";
device_type = "pci";
interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
diff --git a/arch/arm64/boot/dts/rockchip/rk356x-base.dtsi b/arch/arm64/boot/dts/rockchip/rk356x-base.dtsi
index 68b48606f6010..15741acac6274 100644
--- a/arch/arm64/boot/dts/rockchip/rk356x-base.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk356x-base.dtsi
@@ -1020,9 +1020,11 @@ pcie2x1: pcie@fe260000 {
bus-range = <0x0 0xf>;
clocks = <&cru ACLK_PCIE20_MST>, <&cru ACLK_PCIE20_SLV>,
<&cru ACLK_PCIE20_DBI>, <&cru PCLK_PCIE20>,
- <&cru CLK_PCIE20_AUX_NDFT>;
+ <&cru CLK_PCIE20_AUX_NDFT>,
+ <&cru CLK_PCIE20_PIPE_DFT>;
clock-names = "aclk_mst", "aclk_slv",
- "aclk_dbi", "pclk", "aux";
+ "aclk_dbi", "pclk", "aux",
+ "pipe";
device_type = "pci";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 7>;