Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux...
[linux/fpc-iii.git] / Documentation / devicetree / bindings / soc / rockchip / power_domain.txt
blob13dc6a3fdb4a1b239a38f1cd19dd0bb1ff2a681d
1 * Rockchip Power Domains
3 Rockchip processors include support for multiple power domains which can be
4 powered up/down by software based on different application scenes to save power.
6 Required properties for power domain controller:
7 - compatible: Should be one of the following.
8         "rockchip,rk3288-power-controller" - for RK3288 SoCs.
9         "rockchip,rk3368-power-controller" - for RK3368 SoCs.
10 - #power-domain-cells: Number of cells in a power-domain specifier.
11         Should be 1 for multiple PM domains.
12 - #address-cells: Should be 1.
13 - #size-cells: Should be 0.
15 Required properties for power domain sub nodes:
16 - reg: index of the power domain, should use macros in:
17         "include/dt-bindings/power/rk3288-power.h" - for RK3288 type power domain.
18         "include/dt-bindings/power/rk3368-power.h" - for RK3368 type power domain.
19 - clocks (optional): phandles to clocks which need to be enabled while power domain
20         switches state.
22 Example:
24         power: power-controller {
25                 compatible = "rockchip,rk3288-power-controller";
26                 #power-domain-cells = <1>;
27                 #address-cells = <1>;
28                 #size-cells = <0>;
30                 pd_gpu {
31                         reg = <RK3288_PD_GPU>;
32                         clocks = <&cru ACLK_GPU>;
33                 };
34         };
36          power: power-controller {
37                 compatible = "rockchip,rk3368-power-controller";
38                 #power-domain-cells = <1>;
39                 #address-cells = <1>;
40                 #size-cells = <0>;
42                 pd_gpu_1 {
43                         reg = <RK3368_PD_GPU_1>;
44                         clocks = <&cru ACLK_GPU_CFG>;
45                 };
46         };
48 Node of a device using power domains must have a power-domains property,
49 containing a phandle to the power device node and an index specifying which
50 power domain to use.
51 The index should use macros in:
52         "include/dt-bindings/power/rk3288-power.h" - for rk3288 type power domain.
53         "include/dt-bindings/power/rk3368-power.h" - for rk3368 type power domain.
55 Example of the node using power domain:
57         node {
58                 /* ... */
59                 power-domains = <&power RK3288_PD_GPU>;
60                 /* ... */
61         };
63         node {
64                 /* ... */
65                 power-domains = <&power RK3368_PD_GPU_1>;
66                 /* ... */
67         };