Skip to content

Commit 623ba75

Browse files
knaerzchemmind
authored andcommitted
ARM: dts: rockchip: add power controller for RK322x
Add the power controller node and the correspondending qos nodes for RK322x. Also add the power-domain property to the nodes that are already present. Signed-off-by: Alex Bee <knaerzche@gmail.com> Link: https://lore.kernel.org/r/20210527154455.358869-10-knaerzche@gmail.com Signed-off-by: Heiko Stuebner <heiko@sntech.de>
1 parent 1a4eb37 commit 623ba75

1 file changed

Lines changed: 111 additions & 0 deletions

File tree

arch/arm/boot/dts/rk322x.dtsi

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include <dt-bindings/pinctrl/rockchip.h>
77
#include <dt-bindings/clock/rk3228-cru.h>
88
#include <dt-bindings/thermal/thermal.h>
9+
#include <dt-bindings/power/rk3228-power.h>
910

1011
/ {
1112
#address-cells = <1>;
@@ -190,6 +191,64 @@
190191
status = "disabled";
191192
};
192193

194+
power: power-controller {
195+
compatible = "rockchip,rk3228-power-controller";
196+
#power-domain-cells = <1>;
197+
#address-cells = <1>;
198+
#size-cells = <0>;
199+
200+
power-domain@RK3228_PD_VIO {
201+
reg = <RK3228_PD_VIO>;
202+
clocks = <&cru ACLK_HDCP>,
203+
<&cru SCLK_HDCP>,
204+
<&cru ACLK_IEP>,
205+
<&cru HCLK_IEP>,
206+
<&cru ACLK_RGA>,
207+
<&cru HCLK_RGA>,
208+
<&cru SCLK_RGA>;
209+
pm_qos = <&qos_hdcp>,
210+
<&qos_iep>,
211+
<&qos_rga_r>,
212+
<&qos_rga_w>;
213+
#power-domain-cells = <0>;
214+
};
215+
216+
power-domain@RK3228_PD_VOP {
217+
reg = <RK3228_PD_VOP>;
218+
clocks =<&cru ACLK_VOP>,
219+
<&cru DCLK_VOP>,
220+
<&cru HCLK_VOP>;
221+
pm_qos = <&qos_vop>;
222+
#power-domain-cells = <0>;
223+
};
224+
225+
power-domain@RK3228_PD_VPU {
226+
reg = <RK3228_PD_VPU>;
227+
clocks = <&cru ACLK_VPU>,
228+
<&cru HCLK_VPU>;
229+
pm_qos = <&qos_vpu>;
230+
#power-domain-cells = <0>;
231+
};
232+
233+
power-domain@RK3228_PD_RKVDEC {
234+
reg = <RK3228_PD_RKVDEC>;
235+
clocks = <&cru ACLK_RKVDEC>,
236+
<&cru HCLK_RKVDEC>,
237+
<&cru SCLK_VDEC_CABAC>,
238+
<&cru SCLK_VDEC_CORE>;
239+
pm_qos = <&qos_rkvdec_r>,
240+
<&qos_rkvdec_w>;
241+
#power-domain-cells = <0>;
242+
};
243+
244+
power-domain@RK3228_PD_GPU {
245+
reg = <RK3228_PD_GPU>;
246+
clocks = <&cru ACLK_GPU>;
247+
pm_qos = <&qos_gpu>;
248+
#power-domain-cells = <0>;
249+
};
250+
};
251+
193252
u2phy0: usb2phy@760 {
194253
compatible = "rockchip,rk3228-usb2phy";
195254
reg = <0x0760 0x0c>;
@@ -546,6 +605,7 @@
546605
"ppmmu1";
547606
clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
548607
clock-names = "bus", "core";
608+
power-domains = <&power RK3228_PD_GPU>;
549609
resets = <&cru SRST_GPU_A>;
550610
status = "disabled";
551611
};
@@ -556,6 +616,7 @@
556616
interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
557617
clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
558618
clock-names = "aclk", "iface";
619+
power-domains = <&power RK3228_PD_VPU>;
559620
#iommu-cells = <0>;
560621
status = "disabled";
561622
};
@@ -566,6 +627,7 @@
566627
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
567628
clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>;
568629
clock-names = "aclk", "iface";
630+
power-domains = <&power RK3228_PD_RKVDEC>;
569631
#iommu-cells = <0>;
570632
status = "disabled";
571633
};
@@ -579,6 +641,7 @@
579641
resets = <&cru SRST_VOP_A>, <&cru SRST_VOP_H>, <&cru SRST_VOP_D>;
580642
reset-names = "axi", "ahb", "dclk";
581643
iommus = <&vop_mmu>;
644+
power-domains = <&power RK3228_PD_VOP>;
582645
status = "disabled";
583646

584647
vop_out: port {
@@ -598,6 +661,7 @@
598661
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
599662
clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
600663
clock-names = "aclk", "iface";
664+
power-domains = <&power RK3228_PD_VOP>;
601665
#iommu-cells = <0>;
602666
status = "disabled";
603667
};
@@ -608,6 +672,7 @@
608672
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
609673
clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru SCLK_RGA>;
610674
clock-names = "aclk", "hclk", "sclk";
675+
power-domains = <&power RK3228_PD_VIO>;
611676
resets = <&cru SRST_RGA>, <&cru SRST_RGA_A>, <&cru SRST_RGA_H>;
612677
reset-names = "core", "axi", "ahb";
613678
};
@@ -618,6 +683,7 @@
618683
interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
619684
clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>;
620685
clock-names = "aclk", "iface";
686+
power-domains = <&power RK3228_PD_VIO>;
621687
#iommu-cells = <0>;
622688
status = "disabled";
623689
};
@@ -792,6 +858,51 @@
792858
status = "disabled";
793859
};
794860

861+
qos_iep: qos@31030080 {
862+
compatible = "rockchip,rk3228-qos", "syscon";
863+
reg = <0x31030080 0x20>;
864+
};
865+
866+
qos_rga_w: qos@31030100 {
867+
compatible = "rockchip,rk3228-qos", "syscon";
868+
reg = <0x31030100 0x20>;
869+
};
870+
871+
qos_hdcp: qos@31030180 {
872+
compatible = "rockchip,rk3228-qos", "syscon";
873+
reg = <0x31030180 0x20>;
874+
};
875+
876+
qos_rga_r: qos@31030200 {
877+
compatible = "rockchip,rk3228-qos", "syscon";
878+
reg = <0x31030200 0x20>;
879+
};
880+
881+
qos_vpu: qos@31040000 {
882+
compatible = "rockchip,rk3228-qos", "syscon";
883+
reg = <0x31040000 0x20>;
884+
};
885+
886+
qos_gpu: qos@31050000 {
887+
compatible = "rockchip,rk3228-qos", "syscon";
888+
reg = <0x31050000 0x20>;
889+
};
890+
891+
qos_vop: qos@31060000 {
892+
compatible = "rockchip,rk3228-qos", "syscon";
893+
reg = <0x31060000 0x20>;
894+
};
895+
896+
qos_rkvdec_r: qos@31070000 {
897+
compatible = "rockchip,rk3228-qos", "syscon";
898+
reg = <0x31070000 0x20>;
899+
};
900+
901+
qos_rkvdec_w: qos@31070080 {
902+
compatible = "rockchip,rk3228-qos", "syscon";
903+
reg = <0x31070080 0x20>;
904+
};
905+
795906
gic: interrupt-controller@32010000 {
796907
compatible = "arm,gic-400";
797908
interrupt-controller;

0 commit comments

Comments
 (0)