]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blame - Documentation/devicetree/bindings/soc/rockchip/power_domain.txt
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[mirror_ubuntu-focal-kernel.git] / Documentation / devicetree / bindings / soc / rockchip / power_domain.txt
CommitLineData
d64180fd
CW
1* Rockchip Power Domains
2
3Rockchip processors include support for multiple power domains which can be
4powered up/down by software based on different application scenes to save power.
5
6Required properties for power domain controller:
7- compatible: Should be one of the following.
8 "rockchip,rk3288-power-controller" - for RK3288 SoCs.
825681c8 9 "rockchip,rk3328-power-controller" - for RK3328 SoCs.
ba943433 10 "rockchip,rk3366-power-controller" - for RK3366 SoCs.
1f164bd5 11 "rockchip,rk3368-power-controller" - for RK3368 SoCs.
e6e270ae 12 "rockchip,rk3399-power-controller" - for RK3399 SoCs.
d64180fd
CW
13- #power-domain-cells: Number of cells in a power-domain specifier.
14 Should be 1 for multiple PM domains.
15- #address-cells: Should be 1.
16- #size-cells: Should be 0.
17
18Required properties for power domain sub nodes:
19- reg: index of the power domain, should use macros in:
46813471 20 "include/dt-bindings/power/rk3288-power.h" - for RK3288 type power domain.
825681c8 21 "include/dt-bindings/power/rk3328-power.h" - for RK3328 type power domain.
ba943433 22 "include/dt-bindings/power/rk3366-power.h" - for RK3366 type power domain.
1f164bd5 23 "include/dt-bindings/power/rk3368-power.h" - for RK3368 type power domain.
e6e270ae 24 "include/dt-bindings/power/rk3399-power.h" - for RK3399 type power domain.
d64180fd
CW
25- clocks (optional): phandles to clocks which need to be enabled while power domain
26 switches state.
71daabca
EZ
27- pm_qos (optional): phandles to qos blocks which need to be saved and restored
28 while power domain switches state.
29
30Qos Example:
31
32 qos_gpu: qos_gpu@ffaf0000 {
33 compatible ="syscon";
34 reg = <0x0 0xffaf0000 0x0 0x20>;
35 };
d64180fd
CW
36
37Example:
38
39 power: power-controller {
40 compatible = "rockchip,rk3288-power-controller";
41 #power-domain-cells = <1>;
42 #address-cells = <1>;
43 #size-cells = <0>;
44
45 pd_gpu {
46 reg = <RK3288_PD_GPU>;
47 clocks = <&cru ACLK_GPU>;
71daabca 48 pm_qos = <&qos_gpu>;
d64180fd
CW
49 };
50 };
51
1f164bd5 52 power: power-controller {
53 compatible = "rockchip,rk3368-power-controller";
54 #power-domain-cells = <1>;
55 #address-cells = <1>;
56 #size-cells = <0>;
57
58 pd_gpu_1 {
59 reg = <RK3368_PD_GPU_1>;
60 clocks = <&cru ACLK_GPU_CFG>;
61 };
62 };
63
e6e270ae
EZ
64Example 2:
65 power: power-controller {
66 compatible = "rockchip,rk3399-power-controller";
67 #power-domain-cells = <1>;
68 #address-cells = <1>;
69 #size-cells = <0>;
70
71 pd_vio {
72 #address-cells = <1>;
73 #size-cells = <0>;
74 reg = <RK3399_PD_VIO>;
75
76 pd_vo {
77 #address-cells = <1>;
78 #size-cells = <0>;
79 reg = <RK3399_PD_VO>;
80
81 pd_vopb {
82 reg = <RK3399_PD_VOPB>;
83 };
84
85 pd_vopl {
86 reg = <RK3399_PD_VOPL>;
87 };
88 };
89 };
90 };
91
d64180fd
CW
92Node of a device using power domains must have a power-domains property,
93containing a phandle to the power device node and an index specifying which
94power domain to use.
95The index should use macros in:
46813471 96 "include/dt-bindings/power/rk3288-power.h" - for rk3288 type power domain.
825681c8 97 "include/dt-bindings/power/rk3328-power.h" - for rk3328 type power domain.
ba943433 98 "include/dt-bindings/power/rk3366-power.h" - for rk3366 type power domain.
1f164bd5 99 "include/dt-bindings/power/rk3368-power.h" - for rk3368 type power domain.
e6e270ae 100 "include/dt-bindings/power/rk3399-power.h" - for rk3399 type power domain.
d64180fd
CW
101
102Example of the node using power domain:
103
104 node {
105 /* ... */
106 power-domains = <&power RK3288_PD_GPU>;
107 /* ... */
108 };
1f164bd5 109
110 node {
111 /* ... */
112 power-domains = <&power RK3368_PD_GPU_1>;
113 /* ... */
114 };
e6e270ae
EZ
115
116 node {
117 /* ... */
118 power-domains = <&power RK3399_PD_VOPB>;
119 /* ... */
120 };