[PATCH v4 1/4] arm64: dts: rockchip: assign pipe clock to rk356x PCIe lanes
Shawn Lin
shawn.lin at rock-chips.com
Wed Mar 4 05:36:15 PST 2026
+ Elaine
在 2026/03/04 星期三 19:05, David Heidelberg via B4 Relay 写道:
> From: David Heidelberg <david at ixit.cz>
>
> 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 at rock-chips.com>
> Suggested-by: Charalampos Mitrodimas <charmitro at posteo.net>
> Signed-off-by: David Heidelberg <david at ixit.cz>
> ---
> 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 at 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 at 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 at 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>;
>
More information about the Linux-rockchip
mailing list