Hi Chukun, On 2025-03-06 13:38, Chukun Pan wrote: > The Quality-of-Service (QsS) node stores/restores specific > register contents when the power domains is turned off/on. > Add QoS node so that they can connect to the power domain. > > Signed-off-by: Chukun Pan <amadeus@xxxxxxxxxx> > --- > arch/arm64/boot/dts/rockchip/rk3528.dtsi | 160 +++++++++++++++++++++++ > 1 file changed, 160 insertions(+) > > diff --git a/arch/arm64/boot/dts/rockchip/rk3528.dtsi b/arch/arm64/boot/dts/rockchip/rk3528.dtsi > index b1713ed4d7e2..0c0e7f151462 100644 > --- a/arch/arm64/boot/dts/rockchip/rk3528.dtsi > +++ b/arch/arm64/boot/dts/rockchip/rk3528.dtsi > @@ -129,6 +129,166 @@ gic: interrupt-controller@fed01000 { > #interrupt-cells = <3>; > }; > > + qos_crypto_a: qos@ff200000 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff200000 0x0 0x20>; > + }; > + > + qos_crypto_p: qos@ff200080 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff200080 0x0 0x20>; > + }; > + > + qos_dcf: qos@ff200100 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff200100 0x0 0x20>; > + }; > + > + qos_dft2apb: qos@ff200200 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff200200 0x0 0x20>; > + }; > + > + qos_dma2ddr: qos@ff200280 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff200280 0x0 0x20>; > + }; > + > + qos_dmac: qos@ff200300 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff200300 0x0 0x20>; > + }; > + > + qos_keyreader: qos@ff200380 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff200380 0x0 0x20>; > + }; > + > + qos_cpu: qos@ff210000 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff210000 0x0 0x20>; > + }; > + > + qos_debug: qos@ff210080 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff210080 0x0 0x20>; > + }; > + > + qos_gpu_m0: qos@ff220000 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff220000 0x0 0x20>; > + }; > + > + qos_gpu_m1: qos@ff220080 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff220080 0x0 0x20>; > + }; > + > + qos_pmu_mcu: qos@ff240000 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff240000 0x0 0x20>; > + }; > + > + qos_rkvdec: qos@ff250000 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff250000 0x0 0x20>; > + }; > + > + qos_rkvenc: qos@ff260000 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff260000 0x0 0x20>; > + }; > + > + qos_gmac0: qos@ff270000 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff270000 0x0 0x20>; > + }; > + > + qos_hdcp: qos@ff270080 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff270080 0x0 0x20>; > + }; > + > + qos_jpegdec: qos@ff270100 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff270100 0x0 0x20>; > + }; > + > + qos_rga2_m0ro: qos@ff270200 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff270200 0x0 0x20>; > + }; > + > + qos_rga2_m0wo: qos@ff270280 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff270280 0x0 0x20>; > + }; > + > + qos_sdmmc0: qos@ff270300 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff270300 0x0 0x20>; > + }; > + > + qos_usb2host: qos@ff270380 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff270380 0x0 0x20>; > + }; > + > + qos_vdpp: qos@ff270480 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff270480 0x0 0x20>; > + }; > + > + qos_vop: qos@ff270500 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff270500 0x0 0x20>; > + }; > + > + qos_emmc: qos@ff280000 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff280000 0x0 0x20>; > + }; > + > + qos_fspi: qos@ff280080 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff280080 0x0 0x20>; > + }; > + > + qos_gmac1: qos@ff280100 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff280100 0x0 0x20>; > + }; > + > + qos_pcie: qos@ff280180 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff280180 0x0 0x20>; > + }; > + > + qos_sdio0: qos@ff280200 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff280200 0x0 0x20>; > + }; > + > + qos_sdio1: qos@ff280280 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff280280 0x0 0x20>; > + }; > + > + qos_tsp: qos@ff280300 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff280300 0x0 0x20>; > + }; > + > + qos_usb3otg: qos@ff280380 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff280380 0x0 0x20>; > + }; > + > + qos_vpu: qos@ff280400 { > + compatible = "rockchip,rk3528-qos", "syscon"; > + reg = <0x0 0xff280400 0x0 0x20>; > + }; These QoS node are typically referenced from power domains so that the PMU driver know what QoS to save/restore when a power domain is power cycled. Vendor kernel only reference the two qos_gpu nodes in it's power domains, do you have any documentation or knowledge about what power domain the remaining QoS are related to? It would have been helpful to include PMU support to help understand the QoS <-> PD relationship, on their own they do not tell us that much :-) Regards, Jonas > + > cru: clock-controller@ff4a0000 { > compatible = "rockchip,rk3528-cru"; > reg = <0x0 0xff4a0000 0x0 0x30000>;