dt-bindings: add binding for rk3328 power domains
[firefly-linux-kernel-4.4.55.git] / Documentation / devicetree / bindings / soc / rockchip / power_domain.txt
index 112756e11802c7ccfbaccca4462e0987f88e0053..301d2a9bc1b8bb2ab0e213e6656b03691c2c71e8 100644 (file)
@@ -6,6 +6,10 @@ powered up/down by software based on different application scenes to save power.
 Required properties for power domain controller:
 - compatible: Should be one of the following.
        "rockchip,rk3288-power-controller" - for RK3288 SoCs.
+       "rockchip,rk3328-power-controller" - for RK3328 SoCs.
+       "rockchip,rk3366-power-controller" - for RK3366 SoCs.
+       "rockchip,rk3368-power-controller" - for RK3368 SoCs.
+       "rockchip,rk3399-power-controller" - for RK3399 SoCs.
 - #power-domain-cells: Number of cells in a power-domain specifier.
        Should be 1 for multiple PM domains.
 - #address-cells: Should be 1.
@@ -14,8 +18,21 @@ Required properties for power domain controller:
 Required properties for power domain sub nodes:
 - reg: index of the power domain, should use macros in:
        "include/dt-bindings/power/rk3288-power.h" - for RK3288 type power domain.
+       "include/dt-bindings/power/rk3328-power.h" - for RK3328 type power domain.
+       "include/dt-bindings/power/rk3366-power.h" - for RK3366 type power domain.
+       "include/dt-bindings/power/rk3368-power.h" - for RK3368 type power domain.
+       "include/dt-bindings/power/rk3399-power.h" - for RK3399 type power domain.
 - clocks (optional): phandles to clocks which need to be enabled while power domain
        switches state.
+- pm_qos (optional): phandles to qos blocks which need to be saved and restored
+       while power domain switches state.
+
+Qos Example:
+
+       qos_gpu: qos_gpu@ffaf0000 {
+               compatible ="syscon";
+               reg = <0x0 0xffaf0000 0x0 0x20>;
+       };
 
 Example:
 
@@ -28,14 +45,59 @@ Example:
                pd_gpu {
                        reg = <RK3288_PD_GPU>;
                        clocks = <&cru ACLK_GPU>;
+                       pm_qos = <&qos_gpu>;
                };
        };
 
+        power: power-controller {
+                compatible = "rockchip,rk3368-power-controller";
+                #power-domain-cells = <1>;
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                pd_gpu_1 {
+                        reg = <RK3368_PD_GPU_1>;
+                        clocks = <&cru ACLK_GPU_CFG>;
+                };
+        };
+
+Example 2:
+               power: power-controller {
+                       compatible = "rockchip,rk3399-power-controller";
+                       #power-domain-cells = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       pd_vio {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <RK3399_PD_VIO>;
+
+                               pd_vo {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <RK3399_PD_VO>;
+
+                                       pd_vopb {
+                                               reg = <RK3399_PD_VOPB>;
+                                       };
+
+                                       pd_vopl {
+                                               reg = <RK3399_PD_VOPL>;
+                                       };
+                               };
+                       };
+               };
+
 Node of a device using power domains must have a power-domains property,
 containing a phandle to the power device node and an index specifying which
 power domain to use.
 The index should use macros in:
        "include/dt-bindings/power/rk3288-power.h" - for rk3288 type power domain.
+       "include/dt-bindings/power/rk3328-power.h" - for rk3328 type power domain.
+       "include/dt-bindings/power/rk3366-power.h" - for rk3366 type power domain.
+       "include/dt-bindings/power/rk3368-power.h" - for rk3368 type power domain.
+       "include/dt-bindings/power/rk3399-power.h" - for rk3399 type power domain.
 
 Example of the node using power domain:
 
@@ -44,3 +106,15 @@ Example of the node using power domain:
                power-domains = <&power RK3288_PD_GPU>;
                /* ... */
        };
+
+       node {
+                /* ... */
+                power-domains = <&power RK3368_PD_GPU_1>;
+                /* ... */
+        };
+
+       node {
+               /* ... */
+               power-domains = <&power RK3399_PD_VOPB>;
+               /* ... */
+       };