Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Alex Bee and committed by
Heiko Stuebner
623ba75a 1a4eb37f

+111
+111
arch/arm/boot/dts/rk322x.dtsi
··· 6 6 #include <dt-bindings/pinctrl/rockchip.h> 7 7 #include <dt-bindings/clock/rk3228-cru.h> 8 8 #include <dt-bindings/thermal/thermal.h> 9 + #include <dt-bindings/power/rk3228-power.h> 9 10 10 11 / { 11 12 #address-cells = <1>; ··· 189 188 io_domains: io-domains { 190 189 compatible = "rockchip,rk3228-io-voltage-domain"; 191 190 status = "disabled"; 191 + }; 192 + 193 + power: power-controller { 194 + compatible = "rockchip,rk3228-power-controller"; 195 + #power-domain-cells = <1>; 196 + #address-cells = <1>; 197 + #size-cells = <0>; 198 + 199 + power-domain@RK3228_PD_VIO { 200 + reg = <RK3228_PD_VIO>; 201 + clocks = <&cru ACLK_HDCP>, 202 + <&cru SCLK_HDCP>, 203 + <&cru ACLK_IEP>, 204 + <&cru HCLK_IEP>, 205 + <&cru ACLK_RGA>, 206 + <&cru HCLK_RGA>, 207 + <&cru SCLK_RGA>; 208 + pm_qos = <&qos_hdcp>, 209 + <&qos_iep>, 210 + <&qos_rga_r>, 211 + <&qos_rga_w>; 212 + #power-domain-cells = <0>; 213 + }; 214 + 215 + power-domain@RK3228_PD_VOP { 216 + reg = <RK3228_PD_VOP>; 217 + clocks =<&cru ACLK_VOP>, 218 + <&cru DCLK_VOP>, 219 + <&cru HCLK_VOP>; 220 + pm_qos = <&qos_vop>; 221 + #power-domain-cells = <0>; 222 + }; 223 + 224 + power-domain@RK3228_PD_VPU { 225 + reg = <RK3228_PD_VPU>; 226 + clocks = <&cru ACLK_VPU>, 227 + <&cru HCLK_VPU>; 228 + pm_qos = <&qos_vpu>; 229 + #power-domain-cells = <0>; 230 + }; 231 + 232 + power-domain@RK3228_PD_RKVDEC { 233 + reg = <RK3228_PD_RKVDEC>; 234 + clocks = <&cru ACLK_RKVDEC>, 235 + <&cru HCLK_RKVDEC>, 236 + <&cru SCLK_VDEC_CABAC>, 237 + <&cru SCLK_VDEC_CORE>; 238 + pm_qos = <&qos_rkvdec_r>, 239 + <&qos_rkvdec_w>; 240 + #power-domain-cells = <0>; 241 + }; 242 + 243 + power-domain@RK3228_PD_GPU { 244 + reg = <RK3228_PD_GPU>; 245 + clocks = <&cru ACLK_GPU>; 246 + pm_qos = <&qos_gpu>; 247 + #power-domain-cells = <0>; 248 + }; 192 249 }; 193 250 194 251 u2phy0: usb2phy@760 { ··· 605 546 "ppmmu1"; 606 547 clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>; 607 548 clock-names = "bus", "core"; 549 + power-domains = <&power RK3228_PD_GPU>; 608 550 resets = <&cru SRST_GPU_A>; 609 551 status = "disabled"; 610 552 }; ··· 616 556 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 617 557 clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; 618 558 clock-names = "aclk", "iface"; 559 + power-domains = <&power RK3228_PD_VPU>; 619 560 #iommu-cells = <0>; 620 561 status = "disabled"; 621 562 }; ··· 627 566 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 628 567 clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>; 629 568 clock-names = "aclk", "iface"; 569 + power-domains = <&power RK3228_PD_RKVDEC>; 630 570 #iommu-cells = <0>; 631 571 status = "disabled"; 632 572 }; ··· 641 579 resets = <&cru SRST_VOP_A>, <&cru SRST_VOP_H>, <&cru SRST_VOP_D>; 642 580 reset-names = "axi", "ahb", "dclk"; 643 581 iommus = <&vop_mmu>; 582 + power-domains = <&power RK3228_PD_VOP>; 644 583 status = "disabled"; 645 584 646 585 vop_out: port { ··· 661 598 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 662 599 clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>; 663 600 clock-names = "aclk", "iface"; 601 + power-domains = <&power RK3228_PD_VOP>; 664 602 #iommu-cells = <0>; 665 603 status = "disabled"; 666 604 }; ··· 672 608 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 673 609 clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru SCLK_RGA>; 674 610 clock-names = "aclk", "hclk", "sclk"; 611 + power-domains = <&power RK3228_PD_VIO>; 675 612 resets = <&cru SRST_RGA>, <&cru SRST_RGA_A>, <&cru SRST_RGA_H>; 676 613 reset-names = "core", "axi", "ahb"; 677 614 }; ··· 683 618 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 684 619 clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>; 685 620 clock-names = "aclk", "iface"; 621 + power-domains = <&power RK3228_PD_VIO>; 686 622 #iommu-cells = <0>; 687 623 status = "disabled"; 688 624 }; ··· 856 790 reset-names = "stmmaceth"; 857 791 rockchip,grf = <&grf>; 858 792 status = "disabled"; 793 + }; 794 + 795 + qos_iep: qos@31030080 { 796 + compatible = "rockchip,rk3228-qos", "syscon"; 797 + reg = <0x31030080 0x20>; 798 + }; 799 + 800 + qos_rga_w: qos@31030100 { 801 + compatible = "rockchip,rk3228-qos", "syscon"; 802 + reg = <0x31030100 0x20>; 803 + }; 804 + 805 + qos_hdcp: qos@31030180 { 806 + compatible = "rockchip,rk3228-qos", "syscon"; 807 + reg = <0x31030180 0x20>; 808 + }; 809 + 810 + qos_rga_r: qos@31030200 { 811 + compatible = "rockchip,rk3228-qos", "syscon"; 812 + reg = <0x31030200 0x20>; 813 + }; 814 + 815 + qos_vpu: qos@31040000 { 816 + compatible = "rockchip,rk3228-qos", "syscon"; 817 + reg = <0x31040000 0x20>; 818 + }; 819 + 820 + qos_gpu: qos@31050000 { 821 + compatible = "rockchip,rk3228-qos", "syscon"; 822 + reg = <0x31050000 0x20>; 823 + }; 824 + 825 + qos_vop: qos@31060000 { 826 + compatible = "rockchip,rk3228-qos", "syscon"; 827 + reg = <0x31060000 0x20>; 828 + }; 829 + 830 + qos_rkvdec_r: qos@31070000 { 831 + compatible = "rockchip,rk3228-qos", "syscon"; 832 + reg = <0x31070000 0x20>; 833 + }; 834 + 835 + qos_rkvdec_w: qos@31070080 { 836 + compatible = "rockchip,rk3228-qos", "syscon"; 837 + reg = <0x31070080 0x20>; 859 838 }; 860 839 861 840 gic: interrupt-controller@32010000 {