summaryrefslogtreecommitdiffstats
path: root/dts/Bindings/soc/rockchip/power_domain.txt
blob: 13dc6a3fdb4a1b239a38f1cd19dd0bb1ff2a681d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
* Rockchip Power Domains

Rockchip processors include support for multiple power domains which can be
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,rk3368-power-controller" - for RK3368 SoCs.
- #power-domain-cells: Number of cells in a power-domain specifier.
	Should be 1 for multiple PM domains.
- #address-cells: Should be 1.
- #size-cells: Should be 0.

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/rk3368-power.h" - for RK3368 type power domain.
- clocks (optional): phandles to clocks which need to be enabled while power domain
	switches state.

Example:

	power: power-controller {
		compatible = "rockchip,rk3288-power-controller";
		#power-domain-cells = <1>;
		#address-cells = <1>;
		#size-cells = <0>;

		pd_gpu {
			reg = <RK3288_PD_GPU>;
			clocks = <&cru ACLK_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>;
                };
        };

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/rk3368-power.h" - for rk3368 type power domain.

Example of the node using power domain:

	node {
		/* ... */
		power-domains = <&power RK3288_PD_GPU>;
		/* ... */
	};

	node {
                /* ... */
                power-domains = <&power RK3368_PD_GPU_1>;
                /* ... */
        };