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/* SA8775P Power Domain Indexes */
8#define SA8775P_CX	0
9#define SA8775P_CX_AO	1
10#define SA8775P_DDR	2
11#define SA8775P_EBI	3
12#define SA8775P_GFX	4
13#define SA8775P_LCX	5
14#define SA8775P_LMX	6
15#define SA8775P_MMCX	7
16#define SA8775P_MMCX_AO	8
17#define SA8775P_MSS	9
18#define SA8775P_MX	10
19#define SA8775P_MX_AO	11
20#define SA8775P_MXC	12
21#define SA8775P_MXC_AO	13
22#define SA8775P_NSP0	14
23#define SA8775P_NSP1	15
24#define SA8775P_XO	16
25
26/* SDM670 Power Domain Indexes */
27#define SDM670_MX	0
28#define SDM670_MX_AO	1
29#define SDM670_CX	2
30#define SDM670_CX_AO	3
31#define SDM670_LMX	4
32#define SDM670_LCX	5
33#define SDM670_GFX	6
34#define SDM670_MSS	7
35
36/* SDM845 Power Domain Indexes */
37#define SDM845_EBI	0
38#define SDM845_MX	1
39#define SDM845_MX_AO	2
40#define SDM845_CX	3
41#define SDM845_CX_AO	4
42#define SDM845_LMX	5
43#define SDM845_LCX	6
44#define SDM845_GFX	7
45#define SDM845_MSS	8
46
47/* SDX55 Power Domain Indexes */
48#define SDX55_MSS	0
49#define SDX55_MX	1
50#define SDX55_CX	2
51
52/* SDX65 Power Domain Indexes */
53#define SDX65_MSS	0
54#define SDX65_MX	1
55#define SDX65_MX_AO	2
56#define SDX65_CX	3
57#define SDX65_CX_AO	4
58#define SDX65_MXC	5
59
60/* SM6350 Power Domain Indexes */
61#define SM6350_CX	0
62#define SM6350_GFX	1
63#define SM6350_LCX	2
64#define SM6350_LMX	3
65#define SM6350_MSS	4
66#define SM6350_MX	5
67
68/* SM6350 Power Domain Indexes */
69#define SM6375_VDDCX		0
70#define SM6375_VDDCX_AO	1
71#define SM6375_VDDCX_VFL	2
72#define SM6375_VDDMX		3
73#define SM6375_VDDMX_AO	4
74#define SM6375_VDDMX_VFL	5
75#define SM6375_VDDGX		6
76#define SM6375_VDDGX_AO	7
77#define SM6375_VDD_LPI_CX	8
78#define SM6375_VDD_LPI_MX	9
79
80/* SM8150 Power Domain Indexes */
81#define SM8150_MSS	0
82#define SM8150_EBI	1
83#define SM8150_LMX	2
84#define SM8150_LCX	3
85#define SM8150_GFX	4
86#define SM8150_MX	5
87#define SM8150_MX_AO	6
88#define SM8150_CX	7
89#define SM8150_CX_AO	8
90#define SM8150_MMCX	9
91#define SM8150_MMCX_AO	10
92
93/* SA8155P is a special case, kept for backwards compatibility */
94#define SA8155P_CX	SM8150_CX
95#define SA8155P_CX_AO	SM8150_CX_AO
96#define SA8155P_EBI	SM8150_EBI
97#define SA8155P_GFX	SM8150_GFX
98#define SA8155P_MSS	SM8150_MSS
99#define SA8155P_MX	SM8150_MX
100#define SA8155P_MX_AO	SM8150_MX_AO
101
102/* SM8250 Power Domain Indexes */
103#define SM8250_CX	0
104#define SM8250_CX_AO	1
105#define SM8250_EBI	2
106#define SM8250_GFX	3
107#define SM8250_LCX	4
108#define SM8250_LMX	5
109#define SM8250_MMCX	6
110#define SM8250_MMCX_AO	7
111#define SM8250_MX	8
112#define SM8250_MX_AO	9
113
114/* SM8350 Power Domain Indexes */
115#define SM8350_CX	0
116#define SM8350_CX_AO	1
117#define SM8350_EBI	2
118#define SM8350_GFX	3
119#define SM8350_LCX	4
120#define SM8350_LMX	5
121#define SM8350_MMCX	6
122#define SM8350_MMCX_AO	7
123#define SM8350_MX	8
124#define SM8350_MX_AO	9
125#define SM8350_MXC	10
126#define SM8350_MXC_AO	11
127#define SM8350_MSS	12
128
129/* SM8450 Power Domain Indexes */
130#define SM8450_CX	0
131#define SM8450_CX_AO	1
132#define SM8450_EBI	2
133#define SM8450_GFX	3
134#define SM8450_LCX	4
135#define SM8450_LMX	5
136#define SM8450_MMCX	6
137#define SM8450_MMCX_AO	7
138#define SM8450_MX	8
139#define SM8450_MX_AO	9
140#define SM8450_MXC	10
141#define SM8450_MXC_AO	11
142#define SM8450_MSS	12
143
144/* SM8550 Power Domain Indexes */
145#define SM8550_CX	0
146#define SM8550_CX_AO	1
147#define SM8550_EBI	2
148#define SM8550_GFX	3
149#define SM8550_LCX	4
150#define SM8550_LMX	5
151#define SM8550_MMCX	6
152#define SM8550_MMCX_AO	7
153#define SM8550_MX	8
154#define SM8550_MX_AO	9
155#define SM8550_MXC	10
156#define SM8550_MXC_AO	11
157#define SM8550_MSS	12
158#define SM8550_NSP	13
159
160/* QDU1000/QRU1000 Power Domain Indexes */
161#define QDU1000_EBI	0
162#define QDU1000_MSS	1
163#define QDU1000_CX	2
164#define QDU1000_MX	3
165
166/* SC7180 Power Domain Indexes */
167#define SC7180_CX	0
168#define SC7180_CX_AO	1
169#define SC7180_GFX	2
170#define SC7180_MX	3
171#define SC7180_MX_AO	4
172#define SC7180_LMX	5
173#define SC7180_LCX	6
174#define SC7180_MSS	7
175
176/* SC7280 Power Domain Indexes */
177#define SC7280_CX	0
178#define SC7280_CX_AO	1
179#define SC7280_EBI	2
180#define SC7280_GFX	3
181#define SC7280_MX	4
182#define SC7280_MX_AO	5
183#define SC7280_LMX	6
184#define SC7280_LCX	7
185#define SC7280_MSS	8
186
187/* SC8180X Power Domain Indexes */
188#define SC8180X_CX	0
189#define SC8180X_CX_AO	1
190#define SC8180X_EBI	2
191#define SC8180X_GFX	3
192#define SC8180X_LCX	4
193#define SC8180X_LMX	5
194#define SC8180X_MMCX	6
195#define SC8180X_MMCX_AO	7
196#define SC8180X_MSS	8
197#define SC8180X_MX	9
198#define SC8180X_MX_AO	10
199
200/* SC8280XP Power Domain Indexes */
201#define SC8280XP_CX		0
202#define SC8280XP_CX_AO		1
203#define SC8280XP_DDR		2
204#define SC8280XP_EBI		3
205#define SC8280XP_GFX		4
206#define SC8280XP_LCX		5
207#define SC8280XP_LMX		6
208#define SC8280XP_MMCX		7
209#define SC8280XP_MMCX_AO	8
210#define SC8280XP_MSS		9
211#define SC8280XP_MX		10
212#define SC8280XP_MXC		12
213#define SC8280XP_MX_AO		11
214#define SC8280XP_NSP		13
215#define SC8280XP_QPHY		14
216#define SC8280XP_XO		15
217
218/* SDM845 Power Domain performance levels */
219#define RPMH_REGULATOR_LEVEL_RETENTION		16
220#define RPMH_REGULATOR_LEVEL_MIN_SVS		48
221#define RPMH_REGULATOR_LEVEL_LOW_SVS_D2		52
222#define RPMH_REGULATOR_LEVEL_LOW_SVS_D1		56
223#define RPMH_REGULATOR_LEVEL_LOW_SVS_D0		60
224#define RPMH_REGULATOR_LEVEL_LOW_SVS		64
225#define RPMH_REGULATOR_LEVEL_LOW_SVS_P1		72
226#define RPMH_REGULATOR_LEVEL_LOW_SVS_L1		80
227#define RPMH_REGULATOR_LEVEL_LOW_SVS_L2		96
228#define RPMH_REGULATOR_LEVEL_SVS		128
229#define RPMH_REGULATOR_LEVEL_SVS_L0		144
230#define RPMH_REGULATOR_LEVEL_SVS_L1		192
231#define RPMH_REGULATOR_LEVEL_SVS_L2		224
232#define RPMH_REGULATOR_LEVEL_NOM		256
233#define RPMH_REGULATOR_LEVEL_NOM_L0		288
234#define RPMH_REGULATOR_LEVEL_NOM_L1		320
235#define RPMH_REGULATOR_LEVEL_NOM_L2		336
236#define RPMH_REGULATOR_LEVEL_TURBO		384
237#define RPMH_REGULATOR_LEVEL_TURBO_L0		400
238#define RPMH_REGULATOR_LEVEL_TURBO_L1		416
239#define RPMH_REGULATOR_LEVEL_TURBO_L2		432
240#define RPMH_REGULATOR_LEVEL_TURBO_L3		448
241#define RPMH_REGULATOR_LEVEL_SUPER_TURBO 	464
242#define RPMH_REGULATOR_LEVEL_SUPER_TURBO_NO_CPR	480
243
244/* MDM9607 Power Domains */
245#define MDM9607_VDDCX		0
246#define MDM9607_VDDCX_AO	1
247#define MDM9607_VDDCX_VFL	2
248#define MDM9607_VDDMX		3
249#define MDM9607_VDDMX_AO	4
250#define MDM9607_VDDMX_VFL	5
251
252/* MSM8226 Power Domain Indexes */
253#define MSM8226_VDDCX		0
254#define MSM8226_VDDCX_AO	1
255#define MSM8226_VDDCX_VFC	2
256
257/* MSM8939 Power Domains */
258#define MSM8939_VDDMDCX		0
259#define MSM8939_VDDMDCX_AO	1
260#define MSM8939_VDDMDCX_VFC	2
261#define MSM8939_VDDCX		3
262#define MSM8939_VDDCX_AO	4
263#define MSM8939_VDDCX_VFC	5
264#define MSM8939_VDDMX		6
265#define MSM8939_VDDMX_AO	7
266
267/* MSM8916 Power Domain Indexes */
268#define MSM8916_VDDCX		0
269#define MSM8916_VDDCX_AO	1
270#define MSM8916_VDDCX_VFC	2
271#define MSM8916_VDDMX		3
272#define MSM8916_VDDMX_AO	4
273
274/* MSM8909 Power Domain Indexes */
275#define MSM8909_VDDCX		MSM8916_VDDCX
276#define MSM8909_VDDCX_AO	MSM8916_VDDCX_AO
277#define MSM8909_VDDCX_VFC	MSM8916_VDDCX_VFC
278#define MSM8909_VDDMX		MSM8916_VDDMX
279#define MSM8909_VDDMX_AO	MSM8916_VDDMX_AO
280
281/* MSM8917 Power Domain Indexes */
282#define MSM8917_VDDCX		0
283#define MSM8917_VDDCX_AO	1
284#define MSM8917_VDDCX_VFL	2
285#define MSM8917_VDDMX		3
286#define MSM8917_VDDMX_AO	4
287
288/* MSM8937 Power Domain Indexes */
289#define MSM8937_VDDCX		MSM8917_VDDCX
290#define MSM8937_VDDCX_AO	MSM8917_VDDCX_AO
291#define MSM8937_VDDCX_VFL	MSM8917_VDDCX_VFL
292#define MSM8937_VDDMX		MSM8917_VDDMX
293#define MSM8937_VDDMX_AO	MSM8917_VDDMX_AO
294
295/* QM215 Power Domain Indexes */
296#define QM215_VDDCX		MSM8917_VDDCX
297#define QM215_VDDCX_AO		MSM8917_VDDCX_AO
298#define QM215_VDDCX_VFL		MSM8917_VDDCX_VFL
299#define QM215_VDDMX		MSM8917_VDDMX
300#define QM215_VDDMX_AO		MSM8917_VDDMX_AO
301
302/* MSM8953 Power Domain Indexes */
303#define MSM8953_VDDMD		0
304#define MSM8953_VDDMD_AO	1
305#define MSM8953_VDDCX		2
306#define MSM8953_VDDCX_AO	3
307#define MSM8953_VDDCX_VFL	4
308#define MSM8953_VDDMX		5
309#define MSM8953_VDDMX_AO	6
310
311/* MSM8974 Power Domain Indexes */
312#define MSM8974_VDDCX		0
313#define MSM8974_VDDCX_AO	1
314#define MSM8974_VDDCX_VFC	2
315#define MSM8974_VDDGFX		3
316#define MSM8974_VDDGFX_VFC	4
317
318/* MSM8976 Power Domain Indexes */
319#define MSM8976_VDDCX		0
320#define MSM8976_VDDCX_AO	1
321#define MSM8976_VDDCX_VFL	2
322#define MSM8976_VDDMX		3
323#define MSM8976_VDDMX_AO	4
324#define MSM8976_VDDMX_VFL	5
325
326/* MSM8994 Power Domain Indexes */
327#define MSM8994_VDDCX		0
328#define MSM8994_VDDCX_AO	1
329#define MSM8994_VDDCX_VFC	2
330#define MSM8994_VDDMX		3
331#define MSM8994_VDDMX_AO	4
332#define MSM8994_VDDGFX		5
333#define MSM8994_VDDGFX_VFC	6
334
335/* MSM8996 Power Domain Indexes */
336#define MSM8996_VDDCX		0
337#define MSM8996_VDDCX_AO	1
338#define MSM8996_VDDCX_VFC	2
339#define MSM8996_VDDMX		3
340#define MSM8996_VDDMX_AO	4
341#define MSM8996_VDDSSCX		5
342#define MSM8996_VDDSSCX_VFC	6
343
344/* MSM8998 Power Domain Indexes */
345#define MSM8998_VDDCX		0
346#define MSM8998_VDDCX_AO	1
347#define MSM8998_VDDCX_VFL	2
348#define MSM8998_VDDMX		3
349#define MSM8998_VDDMX_AO	4
350#define MSM8998_VDDMX_VFL	5
351#define MSM8998_SSCCX		6
352#define MSM8998_SSCCX_VFL	7
353#define MSM8998_SSCMX		8
354#define MSM8998_SSCMX_VFL	9
355
356/* QCS404 Power Domains */
357#define QCS404_VDDMX		0
358#define QCS404_VDDMX_AO		1
359#define QCS404_VDDMX_VFL	2
360#define QCS404_LPICX		3
361#define QCS404_LPICX_VFL	4
362#define QCS404_LPIMX		5
363#define QCS404_LPIMX_VFL	6
364
365/* SDM660 Power Domains */
366#define SDM660_VDDCX		0
367#define SDM660_VDDCX_AO		1
368#define SDM660_VDDCX_VFL	2
369#define SDM660_VDDMX		3
370#define SDM660_VDDMX_AO		4
371#define SDM660_VDDMX_VFL	5
372#define SDM660_SSCCX		6
373#define SDM660_SSCCX_VFL	7
374#define SDM660_SSCMX		8
375#define SDM660_SSCMX_VFL	9
376
377/* SM6115 Power Domains */
378#define SM6115_VDDCX		0
379#define SM6115_VDDCX_AO		1
380#define SM6115_VDDCX_VFL	2
381#define SM6115_VDDMX		3
382#define SM6115_VDDMX_AO		4
383#define SM6115_VDDMX_VFL	5
384#define SM6115_VDD_LPI_CX	6
385#define SM6115_VDD_LPI_MX	7
386
387/* SM6125 Power Domains */
388#define SM6125_VDDCX		0
389#define SM6125_VDDCX_AO		1
390#define SM6125_VDDCX_VFL	2
391#define SM6125_VDDMX		3
392#define SM6125_VDDMX_AO		4
393#define SM6125_VDDMX_VFL	5
394
395/* QCM2290 Power Domains */
396#define QCM2290_VDDCX		0
397#define QCM2290_VDDCX_AO	1
398#define QCM2290_VDDCX_VFL	2
399#define QCM2290_VDDMX		3
400#define QCM2290_VDDMX_AO	4
401#define QCM2290_VDDMX_VFL	5
402#define QCM2290_VDD_LPI_CX	6
403#define QCM2290_VDD_LPI_MX	7
404
405/* RPM SMD Power Domain performance levels */
406#define RPM_SMD_LEVEL_RETENTION       16
407#define RPM_SMD_LEVEL_RETENTION_PLUS  32
408#define RPM_SMD_LEVEL_MIN_SVS         48
409#define RPM_SMD_LEVEL_LOW_SVS         64
410#define RPM_SMD_LEVEL_SVS             128
411#define RPM_SMD_LEVEL_SVS_PLUS        192
412#define RPM_SMD_LEVEL_NOM             256
413#define RPM_SMD_LEVEL_NOM_PLUS        320
414#define RPM_SMD_LEVEL_TURBO           384
415#define RPM_SMD_LEVEL_TURBO_NO_CPR    416
416#define RPM_SMD_LEVEL_TURBO_HIGH      448
417#define RPM_SMD_LEVEL_BINNING         512
418
419#endif
420