[PATCH 2/8] dt-bindings: devfreq: event: rockchip,dfi: add clocks to rk3588

From: Sebastian Reichel

Date: Thu Sep 17 2026 - 09:50:08 EST


From: Nicolas Frattaroli <nicolas.frattaroli@xxxxxxxxxxxxx>

RK3588's DFI has pclks for each channel. They just weren't noticed as
missing until now because nothing ever gates them, and they're ungated
by default on power-on.

The RK3399 clock situation needs no changes, as there the hardware
really just has one monitoring unit for both channels.

Add these clocks to the binding, so that drivers for this device can
properly know about their existence.

Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@xxxxxxxxxxxxx>
Signed-off-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx>
---
.../bindings/devfreq/event/rockchip,dfi.yaml | 84 ++++++++++++++++++----
1 file changed, 72 insertions(+), 12 deletions(-)

diff --git a/Documentation/devicetree/bindings/devfreq/event/rockchip,dfi.yaml b/Documentation/devicetree/bindings/devfreq/event/rockchip,dfi.yaml
index 50d3fabe958d..d6e06a9bea19 100644
--- a/Documentation/devicetree/bindings/devfreq/event/rockchip,dfi.yaml
+++ b/Documentation/devicetree/bindings/devfreq/event/rockchip,dfi.yaml
@@ -17,11 +17,19 @@ properties:
- rockchip,rk3588-dfi

clocks:
- maxItems: 1
+ minItems: 1
+ maxItems: 4

clock-names:
+ minItems: 1
+ maxItems: 4
items:
- - const: pclk_ddr_mon
+ - enum:
+ - pclk_ddr_mon
+ - pclk_ddr_mon_ch0
+ - const: pclk_ddr_mon_ch1
+ - const: pclk_ddr_mon_ch2
+ - const: pclk_ddr_mon_ch3

interrupts:
minItems: 1
@@ -40,17 +48,50 @@ required:
- interrupts
- reg

-if:
- properties:
- compatible:
- contains:
- enum:
- - rockchip,rk3399-dfi
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - rockchip,rk3399-dfi
+ then:
+ properties:
+ clocks:
+ items:
+ - description:
+ clock driving the DDR monitoring logic for all channels
+ clock-names:
+ items:
+ - const: pclk_ddr_mon
+ required:
+ - clocks
+ - clock-names

-then:
- required:
- - clocks
- - clock-names
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - rockchip,rk3588-dfi
+ then:
+ properties:
+ clocks:
+ items:
+ - description:
+ clock driving the DDR monitoring logic for memory channel 0
+ - description:
+ clock driving the DDR monitoring logic for memory channel 1
+ - description:
+ clock driving the DDR monitoring logic for memory channel 2
+ - description:
+ clock driving the DDR monitoring logic for memory channel 3
+ clock-names:
+ items:
+ - const: pclk_ddr_mon_ch0
+ - const: pclk_ddr_mon_ch1
+ - const: pclk_ddr_mon_ch2
+ - const: pclk_ddr_mon_ch3

additionalProperties: false

@@ -72,3 +113,22 @@ examples:
clock-names = "pclk_ddr_mon";
};
};
+
+ - |
+ bus {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ dfi_rk3588: dfi@fe060000 {
+ compatible = "rockchip,rk3588-dfi";
+ reg = <0x00 0xfe060000 0x00 0x10000>;
+ clocks = <&cru 0x53>, <&cru 0x48>, <&cru 0x49>, <&cru 0x54>;
+ clock-names = "pclk_ddr_mon_ch0", "pclk_ddr_mon_ch1",
+ "pclk_ddr_mon_ch2", "pclk_ddr_mon_ch3";
+ interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
+ rockchip,pmu = <&pmugrf>;
+ };
+ };

--
2.53.0