#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/power/meson-gxbb-power.h>
 #include <dt-bindings/thermal/thermal.h>
 
 / {
                        compatible = "amlogic,simple-framebuffer",
                                     "simple-framebuffer";
                        amlogic,pipeline = "vpu-cvbs";
-                       power-domains = <&pwrc_vpu>;
+                       power-domains = <&pwrc PWRC_GXBB_VPU_ID>;
                        status = "disabled";
                };
 
                        compatible = "amlogic,simple-framebuffer",
                                     "simple-framebuffer";
                        amlogic,pipeline = "vpu-hdmi";
-                       power-domains = <&pwrc_vpu>;
+                       power-domains = <&pwrc PWRC_GXBB_VPU_ID>;
                        status = "disabled";
                };
        };
                                compatible = "amlogic,meson-gx-ao-sysctrl", "simple-mfd", "syscon";
                                reg =  <0x0 0x0 0x0 0x100>;
 
-                               pwrc_vpu: power-controller-vpu {
-                                       compatible = "amlogic,meson-gx-pwrc-vpu";
-                                       #power-domain-cells = <0>;
-                                       amlogic,hhi-sysctrl = <&sysctrl>;
-                               };
-
                                clkc_AO: clock-controller {
                                        compatible = "amlogic,meson-gx-aoclkc";
                                        #clock-cells = <1>;
                        sysctrl: system-controller@0 {
                                compatible = "amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon";
                                reg = <0 0 0 0x400>;
+
+                               pwrc: power-controller {
+                                       compatible = "amlogic,meson-gxbb-pwrc";
+                                       #power-domain-cells = <1>;
+                                       amlogic,ao-sysctrl = <&sysctrl_AO>;
+                               };
                        };
 
                        mailbox: mailbox@404 {
                        interrupt-names = "macirq";
                        rx-fifo-depth = <4096>;
                        tx-fifo-depth = <2048>;
+                       power-domains = <&pwrc PWRC_GXBB_ETHERNET_MEM_ID>;
                        status = "disabled";
                };
 
 
        };
 };
 
-&pwrc_vpu {
+&pwrc {
        resets = <&reset RESET_VIU>,
                 <&reset RESET_VENC>,
                 <&reset RESET_VCBUS>,
                 <&reset RESET_VDI6>,
                 <&reset RESET_VENCL>,
                 <&reset RESET_VID_LOCK>;
+       reset-names = "viu", "venc", "vcbus", "bt656",
+                     "dvin", "rdma", "venci", "vencp",
+                     "vdac", "vdi6", "vencl", "vid_lock";
        clocks = <&clkc CLKID_VPU>,
                 <&clkc CLKID_VAPB>;
        clock-names = "vpu", "vapb";
 
 &vpu {
        compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-vpu";
-       power-domains = <&pwrc_vpu>;
+       power-domains = <&pwrc PWRC_GXBB_VPU_ID>;
 };
 
 &vdec {
 
        };
 };
 
-&pwrc_vpu {
+&pwrc {
        resets = <&reset RESET_VIU>,
                 <&reset RESET_VENC>,
                 <&reset RESET_VCBUS>,
                 <&reset RESET_VDI6>,
                 <&reset RESET_VENCL>,
                 <&reset RESET_VID_LOCK>;
+       reset-names = "viu", "venc", "vcbus", "bt656",
+                     "dvin", "rdma", "venci", "vencp",
+                     "vdac", "vdi6", "vencl", "vid_lock";
        clocks = <&clkc CLKID_VPU>,
                 <&clkc CLKID_VAPB>;
        clock-names = "vpu", "vapb";
 
 &vpu {
        compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-vpu";
-       power-domains = <&pwrc_vpu>;
+       power-domains = <&pwrc PWRC_GXBB_VPU_ID>;
 };
 
 &vdec {