OSDN Git Service

smb3: Add defines for new information level, FileIdInformation
[tomoyo/tomoyo-test1.git] / Documentation / devicetree / bindings / power / qcom,rpmpd.txt
1 Qualcomm RPM/RPMh Power domains
2
3 For RPM/RPMh Power domains, we communicate a performance state to RPM/RPMh
4 which then translates it into a corresponding voltage on a rail
5
6 Required Properties:
7  - compatible: Should be one of the following
8         * qcom,msm8976-rpmpd: RPM Power domain for the msm8976 family of SoC
9         * qcom,msm8996-rpmpd: RPM Power domain for the msm8996 family of SoC
10         * qcom,msm8998-rpmpd: RPM Power domain for the msm8998 family of SoC
11         * qcom,qcs404-rpmpd: RPM Power domain for the qcs404 family of SoC
12         * qcom,sdm845-rpmhpd: RPMh Power domain for the sdm845 family of SoC
13  - #power-domain-cells: number of cells in Power domain specifier
14         must be 1.
15  - operating-points-v2: Phandle to the OPP table for the Power domain.
16         Refer to Documentation/devicetree/bindings/power/power_domain.txt
17         and Documentation/devicetree/bindings/opp/opp.txt for more details
18
19 Refer to <dt-bindings/power/qcom-rpmpd.h> for the level values for
20 various OPPs for different platforms as well as Power domain indexes
21
22 Example: rpmh power domain controller and OPP table
23
24 #include <dt-bindings/power/qcom-rpmhpd.h>
25
26 opp-level values specified in the OPP tables for RPMh power domains
27 should use the RPMH_REGULATOR_LEVEL_* constants from
28 <dt-bindings/power/qcom-rpmhpd.h>
29
30         rpmhpd: power-controller {
31                 compatible = "qcom,sdm845-rpmhpd";
32                 #power-domain-cells = <1>;
33                 operating-points-v2 = <&rpmhpd_opp_table>;
34
35                 rpmhpd_opp_table: opp-table {
36                         compatible = "operating-points-v2";
37
38                         rpmhpd_opp_ret: opp1 {
39                                 opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
40                         };
41
42                         rpmhpd_opp_min_svs: opp2 {
43                                 opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
44                         };
45
46                         rpmhpd_opp_low_svs: opp3 {
47                                 opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
48                         };
49
50                         rpmhpd_opp_svs: opp4 {
51                                 opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
52                         };
53
54                         rpmhpd_opp_svs_l1: opp5 {
55                                 opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
56                         };
57
58                         rpmhpd_opp_nom: opp6 {
59                                 opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
60                         };
61
62                         rpmhpd_opp_nom_l1: opp7 {
63                                 opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
64                         };
65
66                         rpmhpd_opp_nom_l2: opp8 {
67                                 opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
68                         };
69
70                         rpmhpd_opp_turbo: opp9 {
71                                 opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
72                         };
73
74                         rpmhpd_opp_turbo_l1: opp10 {
75                                 opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
76                         };
77                 };
78         };
79
80 Example: rpm power domain controller and OPP table
81
82         rpmpd: power-controller {
83                 compatible = "qcom,msm8996-rpmpd";
84                 #power-domain-cells = <1>;
85                 operating-points-v2 = <&rpmpd_opp_table>;
86
87                 rpmpd_opp_table: opp-table {
88                         compatible = "operating-points-v2";
89
90                         rpmpd_opp_low: opp1 {
91                                 opp-level = <1>;
92                         };
93
94                         rpmpd_opp_ret: opp2 {
95                                 opp-level = <2>;
96                         };
97
98                         rpmpd_opp_svs: opp3 {
99                                 opp-level = <3>;
100                         };
101
102                         rpmpd_opp_normal: opp4 {
103                                 opp-level = <4>;
104                         };
105
106                         rpmpd_opp_high: opp5 {
107                                 opp-level = <5>;
108                         };
109
110                         rpmpd_opp_turbo: opp6 {
111                                 opp-level = <6>;
112                         };
113                 };
114         };
115
116 Example: Client/Consumer device using OPP table
117
118         leaky-device0@12350000 {
119                 compatible = "foo,i-leak-current";
120                 reg = <0x12350000 0x1000>;
121                 power-domains = <&rpmhpd SDM845_MX>;
122                 operating-points-v2 = <&leaky_opp_table>;
123         };
124
125
126         leaky_opp_table: opp-table {
127                 compatible = "operating-points-v2";
128
129                 opp1 {
130                         opp-hz = /bits/ 64 <144000>;
131                         required-opps = <&rpmhpd_opp_low>;
132                 };
133
134                 opp2 {
135                         opp-hz = /bits/ 64 <400000>;
136                         required-opps = <&rpmhpd_opp_ret>;
137                 };
138
139                 opp3 {
140                         opp-hz = /bits/ 64 <20000000>;
141                         required-opps = <&rpmpd_opp_svs>;
142                 };
143
144                 opp4 {
145                         opp-hz = /bits/ 64 <25000000>;
146                         required-opps = <&rpmpd_opp_normal>;
147                 };
148         };