xref: /linux/include/dt-bindings/power/qcom-rpmpd.h (revision 07fdad3a93756b872da7b53647715c48d0f4a2d0)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright (c) 2018, The Linux Foundation. All rights reserved. */
3 
4 #ifndef _DT_BINDINGS_POWER_QCOM_RPMPD_H
5 #define _DT_BINDINGS_POWER_QCOM_RPMPD_H
6 
7 #include <dt-bindings/power/qcom,rpmhpd.h>
8 
9 /* Generic RPM Power Domain Indexes */
10 #define RPMPD_VDDCX		0
11 #define RPMPD_VDDCX_AO		1
12 /* VFC and VFL are mutually exclusive and can not be present on the same platform */
13 #define RPMPD_VDDCX_VFC		2
14 #define RPMPD_VDDCX_VFL		2
15 #define RPMPD_VDDMX		3
16 #define RPMPD_VDDMX_AO		4
17 #define RPMPD_VDDMX_VFL		5
18 #define RPMPD_SSCCX		6
19 #define RPMPD_SSCCX_VFL		7
20 #define RPMPD_SSCMX		8
21 #define RPMPD_SSCMX_VFL		9
22 
23 /*
24  * Platform-specific power domain bindings. Don't add new entries here, use
25  * RPMPD_* above.
26  */
27 
28 /* MDM9607 Power Domains */
29 #define MDM9607_VDDCX		RPMPD_VDDCX
30 #define MDM9607_VDDCX_AO	RPMPD_VDDCX_AO
31 #define MDM9607_VDDCX_VFL	RPMPD_VDDCX_VFL
32 #define MDM9607_VDDMX		RPMPD_VDDMX
33 #define MDM9607_VDDMX_AO	RPMPD_VDDMX_AO
34 #define MDM9607_VDDMX_VFL	RPMPD_VDDMX_VFL
35 
36 /* MSM8226 Power Domain Indexes */
37 #define MSM8226_VDDCX		RPMPD_VDDCX
38 #define MSM8226_VDDCX_AO	RPMPD_VDDCX_AO
39 #define MSM8226_VDDCX_VFC	RPMPD_VDDCX_VFC
40 
41 /* MSM8939 Power Domains */
42 #define MSM8939_VDDMDCX		0
43 #define MSM8939_VDDMDCX_AO	1
44 #define MSM8939_VDDMDCX_VFC	2
45 #define MSM8939_VDDCX		3
46 #define MSM8939_VDDCX_AO	4
47 #define MSM8939_VDDCX_VFC	5
48 #define MSM8939_VDDMX		6
49 #define MSM8939_VDDMX_AO	7
50 
51 /* MSM8916 Power Domain Indexes */
52 #define MSM8916_VDDCX		RPMPD_VDDCX
53 #define MSM8916_VDDCX_AO	RPMPD_VDDCX_AO
54 #define MSM8916_VDDCX_VFC	RPMPD_VDDCX_VFC
55 #define MSM8916_VDDMX		RPMPD_VDDMX
56 #define MSM8916_VDDMX_AO	RPMPD_VDDMX_AO
57 
58 /* MSM8909 Power Domain Indexes */
59 #define MSM8909_VDDCX		MSM8916_VDDCX
60 #define MSM8909_VDDCX_AO	MSM8916_VDDCX_AO
61 #define MSM8909_VDDCX_VFC	MSM8916_VDDCX_VFC
62 #define MSM8909_VDDMX		MSM8916_VDDMX
63 #define MSM8909_VDDMX_AO	MSM8916_VDDMX_AO
64 
65 /* MSM8917 Power Domain Indexes */
66 #define MSM8917_VDDCX		RPMPD_VDDCX
67 #define MSM8917_VDDCX_AO	RPMPD_VDDCX_AO
68 #define MSM8917_VDDCX_VFL	RPMPD_VDDCX_VFL
69 #define MSM8917_VDDMX		RPMPD_VDDMX
70 #define MSM8917_VDDMX_AO	RPMPD_VDDMX_AO
71 
72 /* MSM8937 Power Domain Indexes */
73 #define MSM8937_VDDCX		MSM8917_VDDCX
74 #define MSM8937_VDDCX_AO	MSM8917_VDDCX_AO
75 #define MSM8937_VDDCX_VFL	MSM8917_VDDCX_VFL
76 #define MSM8937_VDDMX		MSM8917_VDDMX
77 #define MSM8937_VDDMX_AO	MSM8917_VDDMX_AO
78 
79 /* QM215 Power Domain Indexes */
80 #define QM215_VDDCX		MSM8917_VDDCX
81 #define QM215_VDDCX_AO		MSM8917_VDDCX_AO
82 #define QM215_VDDCX_VFL		MSM8917_VDDCX_VFL
83 #define QM215_VDDMX		MSM8917_VDDMX
84 #define QM215_VDDMX_AO		MSM8917_VDDMX_AO
85 
86 /* MSM8953 Power Domain Indexes */
87 #define MSM8953_VDDMD		0
88 #define MSM8953_VDDMD_AO	1
89 #define MSM8953_VDDCX		2
90 #define MSM8953_VDDCX_AO	3
91 #define MSM8953_VDDCX_VFL	4
92 #define MSM8953_VDDMX		5
93 #define MSM8953_VDDMX_AO	6
94 
95 /* MSM8974 Power Domain Indexes */
96 #define MSM8974_VDDCX		0
97 #define MSM8974_VDDCX_AO	1
98 #define MSM8974_VDDCX_VFC	2
99 #define MSM8974_VDDGFX		3
100 #define MSM8974_VDDGFX_VFC	4
101 
102 /* MSM8976 Power Domain Indexes */
103 #define MSM8976_VDDCX		RPMPD_VDDCX
104 #define MSM8976_VDDCX_AO	RPMPD_VDDCX_AO
105 #define MSM8976_VDDCX_VFL	RPMPD_VDDCX_VFL
106 #define MSM8976_VDDMX		RPMPD_VDDMX
107 #define MSM8976_VDDMX_AO	RPMPD_VDDMX_AO
108 #define MSM8976_VDDMX_VFL	RPMPD_VDDMX_VFL
109 
110 /* MSM8994 Power Domain Indexes */
111 #define MSM8994_VDDCX		0
112 #define MSM8994_VDDCX_AO	1
113 #define MSM8994_VDDCX_VFC	2
114 #define MSM8994_VDDMX		3
115 #define MSM8994_VDDMX_AO	4
116 #define MSM8994_VDDGFX		5
117 #define MSM8994_VDDGFX_VFC	6
118 
119 /* MSM8996 Power Domain Indexes */
120 #define MSM8996_VDDCX		0
121 #define MSM8996_VDDCX_AO	1
122 #define MSM8996_VDDCX_VFC	2
123 #define MSM8996_VDDMX		3
124 #define MSM8996_VDDMX_AO	4
125 #define MSM8996_VDDSSCX		5
126 #define MSM8996_VDDSSCX_VFC	6
127 
128 /* MSM8998 Power Domain Indexes */
129 #define MSM8998_VDDCX		RPMPD_VDDCX
130 #define MSM8998_VDDCX_AO	RPMPD_VDDCX_AO
131 #define MSM8998_VDDCX_VFL	RPMPD_VDDCX_VFL
132 #define MSM8998_VDDMX		RPMPD_VDDMX
133 #define MSM8998_VDDMX_AO	RPMPD_VDDMX_AO
134 #define MSM8998_VDDMX_VFL	RPMPD_VDDMX_VFL
135 #define MSM8998_SSCCX		RPMPD_SSCCX
136 #define MSM8998_SSCCX_VFL	RPMPD_SSCCX_VFL
137 #define MSM8998_SSCMX		RPMPD_SSCMX
138 #define MSM8998_SSCMX_VFL	RPMPD_SSCMX_VFL
139 
140 /* QCM2290 Power Domains */
141 #define QCM2290_VDDCX		0
142 #define QCM2290_VDDCX_AO	1
143 #define QCM2290_VDDCX_VFL	2
144 #define QCM2290_VDDMX		3
145 #define QCM2290_VDDMX_AO	4
146 #define QCM2290_VDDMX_VFL	5
147 #define QCM2290_VDD_LPI_CX	6
148 #define QCM2290_VDD_LPI_MX	7
149 
150 /* QCS404 Power Domains */
151 #define QCS404_VDDMX		0
152 #define QCS404_VDDMX_AO		1
153 #define QCS404_VDDMX_VFL	2
154 #define QCS404_LPICX		3
155 #define QCS404_LPICX_VFL	4
156 #define QCS404_LPIMX		5
157 #define QCS404_LPIMX_VFL	6
158 
159 /* SDM660 Power Domains */
160 #define SDM660_VDDCX		RPMPD_VDDCX
161 #define SDM660_VDDCX_AO		RPMPD_VDDCX_AO
162 #define SDM660_VDDCX_VFL	RPMPD_VDDCX_VFL
163 #define SDM660_VDDMX		RPMPD_VDDMX
164 #define SDM660_VDDMX_AO		RPMPD_VDDMX_AO
165 #define SDM660_VDDMX_VFL	RPMPD_VDDMX_VFL
166 #define SDM660_SSCCX		RPMPD_SSCCX
167 #define SDM660_SSCCX_VFL	RPMPD_SSCCX_VFL
168 #define SDM660_SSCMX		RPMPD_SSCMX
169 #define SDM660_SSCMX_VFL	RPMPD_SSCMX_VFL
170 
171 /* SM6115 Power Domains */
172 #define SM6115_VDDCX		0
173 #define SM6115_VDDCX_AO		1
174 #define SM6115_VDDCX_VFL	2
175 #define SM6115_VDDMX		3
176 #define SM6115_VDDMX_AO		4
177 #define SM6115_VDDMX_VFL	5
178 #define SM6115_VDD_LPI_CX	6
179 #define SM6115_VDD_LPI_MX	7
180 
181 /* SM6125 Power Domains */
182 #define SM6125_VDDCX		RPMPD_VDDCX
183 #define SM6125_VDDCX_AO		RPMPD_VDDCX_AO
184 #define SM6125_VDDCX_VFL	RPMPD_VDDCX_VFL
185 #define SM6125_VDDMX		RPMPD_VDDMX
186 #define SM6125_VDDMX_AO		RPMPD_VDDMX_AO
187 #define SM6125_VDDMX_VFL	RPMPD_VDDMX_VFL
188 
189 /* SM6375 Power Domain Indexes */
190 #define SM6375_VDDCX		0
191 #define SM6375_VDDCX_AO	1
192 #define SM6375_VDDCX_VFL	2
193 #define SM6375_VDDMX		3
194 #define SM6375_VDDMX_AO	4
195 #define SM6375_VDDMX_VFL	5
196 #define SM6375_VDDGX		6
197 #define SM6375_VDDGX_AO	7
198 #define SM6375_VDD_LPI_CX	8
199 #define SM6375_VDD_LPI_MX	9
200 
201 /* RPM SMD Power Domain performance levels */
202 #define RPM_SMD_LEVEL_RETENTION       16
203 #define RPM_SMD_LEVEL_RETENTION_PLUS  32
204 #define RPM_SMD_LEVEL_MIN_SVS         48
205 #define RPM_SMD_LEVEL_LOW_SVS         64
206 #define RPM_SMD_LEVEL_SVS             128
207 #define RPM_SMD_LEVEL_SVS_PLUS        192
208 #define RPM_SMD_LEVEL_NOM             256
209 #define RPM_SMD_LEVEL_NOM_PLUS        320
210 #define RPM_SMD_LEVEL_TURBO           384
211 #define RPM_SMD_LEVEL_TURBO_NO_CPR    416
212 #define RPM_SMD_LEVEL_TURBO_HIGH      448
213 #define RPM_SMD_LEVEL_BINNING         512
214 
215 #endif
216