Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
2/*
3 * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
4 */
5
6#ifndef _DT_BINDINGS_POWER_QCOM_RPMHPD_H
7#define _DT_BINDINGS_POWER_QCOM_RPMHPD_H
8
9/* Generic RPMH Power Domain Indexes */
10#define RPMHPD_CX 0
11#define RPMHPD_CX_AO 1
12#define RPMHPD_EBI 2
13#define RPMHPD_GFX 3
14#define RPMHPD_LCX 4
15#define RPMHPD_LMX 5
16#define RPMHPD_MMCX 6
17#define RPMHPD_MMCX_AO 7
18#define RPMHPD_MX 8
19#define RPMHPD_MX_AO 9
20#define RPMHPD_MXC 10
21#define RPMHPD_MXC_AO 11
22#define RPMHPD_MSS 12
23#define RPMHPD_NSP 13
24#define RPMHPD_NSP0 14
25#define RPMHPD_NSP1 15
26#define RPMHPD_QPHY 16
27#define RPMHPD_DDR 17
28#define RPMHPD_XO 18
29#define RPMHPD_NSP2 19
30#define RPMHPD_GMXC 20
31#define RPMHPD_DCX 21
32#define RPMHPD_GBX 22
33
34/* RPMh Power Domain performance levels */
35#define RPMH_REGULATOR_LEVEL_RETENTION 16
36#define RPMH_REGULATOR_LEVEL_MIN_SVS 48
37#define RPMH_REGULATOR_LEVEL_LOW_SVS_D3_0 49
38#define RPMH_REGULATOR_LEVEL_LOW_SVS_D3 50
39#define RPMH_REGULATOR_LEVEL_LOW_SVS_D2_1 51
40#define RPMH_REGULATOR_LEVEL_LOW_SVS_D2 52
41#define RPMH_REGULATOR_LEVEL_LOW_SVS_D1_1 54
42#define RPMH_REGULATOR_LEVEL_LOW_SVS_D1_0 55
43#define RPMH_REGULATOR_LEVEL_LOW_SVS_D1 56
44#define RPMH_REGULATOR_LEVEL_LOW_SVS_D0_0 59
45#define RPMH_REGULATOR_LEVEL_LOW_SVS_D0 60
46#define RPMH_REGULATOR_LEVEL_LOW_SVS 64
47#define RPMH_REGULATOR_LEVEL_LOW_SVS_P1 72
48#define RPMH_REGULATOR_LEVEL_LOW_SVS_L0 76
49#define RPMH_REGULATOR_LEVEL_LOW_SVS_L1 80
50#define RPMH_REGULATOR_LEVEL_LOW_SVS_L2 96
51#define RPMH_REGULATOR_LEVEL_SVS 128
52#define RPMH_REGULATOR_LEVEL_SVS_L0 144
53#define RPMH_REGULATOR_LEVEL_SVS_L1 192
54#define RPMH_REGULATOR_LEVEL_SVS_L2 224
55#define RPMH_REGULATOR_LEVEL_SVS_L2_0 225
56#define RPMH_REGULATOR_LEVEL_NOM 256
57#define RPMH_REGULATOR_LEVEL_NOM_L0 288
58#define RPMH_REGULATOR_LEVEL_NOM_L1 320
59#define RPMH_REGULATOR_LEVEL_NOM_L2 336
60#define RPMH_REGULATOR_LEVEL_TURBO 384
61#define RPMH_REGULATOR_LEVEL_TURBO_L0 400
62#define RPMH_REGULATOR_LEVEL_TURBO_L1 416
63#define RPMH_REGULATOR_LEVEL_TURBO_L1_0 417
64#define RPMH_REGULATOR_LEVEL_TURBO_L1_1 418
65#define RPMH_REGULATOR_LEVEL_TURBO_L1_2 419
66#define RPMH_REGULATOR_LEVEL_TURBO_L2 432
67#define RPMH_REGULATOR_LEVEL_TURBO_L3 448
68#define RPMH_REGULATOR_LEVEL_TURBO_L3_0 449
69#define RPMH_REGULATOR_LEVEL_TURBO_L3_1 450
70#define RPMH_REGULATOR_LEVEL_TURBO_L3_2 451
71#define RPMH_REGULATOR_LEVEL_TURBO_L4 452
72#define RPMH_REGULATOR_LEVEL_TURBO_L5 456
73#define RPMH_REGULATOR_LEVEL_SUPER_TURBO 464
74#define RPMH_REGULATOR_LEVEL_SUPER_TURBO_NO_CPR 480
75
76/*
77 * Platform-specific power domain bindings. Don't add new entries here, use
78 * RPMHPD_* above.
79 */
80
81/* SA8775P Power Domain Indexes */
82#define SA8775P_CX 0
83#define SA8775P_CX_AO 1
84#define SA8775P_DDR 2
85#define SA8775P_EBI 3
86#define SA8775P_GFX 4
87#define SA8775P_LCX 5
88#define SA8775P_LMX 6
89#define SA8775P_MMCX 7
90#define SA8775P_MMCX_AO 8
91#define SA8775P_MSS 9
92#define SA8775P_MX 10
93#define SA8775P_MX_AO 11
94#define SA8775P_MXC 12
95#define SA8775P_MXC_AO 13
96#define SA8775P_NSP0 14
97#define SA8775P_NSP1 15
98#define SA8775P_XO 16
99
100/* SDM670 Power Domain Indexes */
101#define SDM670_MX 0
102#define SDM670_MX_AO 1
103#define SDM670_CX 2
104#define SDM670_CX_AO 3
105#define SDM670_LMX 4
106#define SDM670_LCX 5
107#define SDM670_GFX 6
108#define SDM670_MSS 7
109
110/* SDM845 Power Domain Indexes */
111#define SDM845_EBI 0
112#define SDM845_MX 1
113#define SDM845_MX_AO 2
114#define SDM845_CX 3
115#define SDM845_CX_AO 4
116#define SDM845_LMX 5
117#define SDM845_LCX 6
118#define SDM845_GFX 7
119#define SDM845_MSS 8
120
121/* SDX55 Power Domain Indexes */
122#define SDX55_MSS 0
123#define SDX55_MX 1
124#define SDX55_CX 2
125
126/* SDX65 Power Domain Indexes */
127#define SDX65_MSS 0
128#define SDX65_MX 1
129#define SDX65_MX_AO 2
130#define SDX65_CX 3
131#define SDX65_CX_AO 4
132#define SDX65_MXC 5
133
134/* SM6350 Power Domain Indexes */
135#define SM6350_CX 0
136#define SM6350_GFX 1
137#define SM6350_LCX 2
138#define SM6350_LMX 3
139#define SM6350_MSS 4
140#define SM6350_MX 5
141
142/* SM8150 Power Domain Indexes */
143#define SM8150_MSS 0
144#define SM8150_EBI 1
145#define SM8150_LMX 2
146#define SM8150_LCX 3
147#define SM8150_GFX 4
148#define SM8150_MX 5
149#define SM8150_MX_AO 6
150#define SM8150_CX 7
151#define SM8150_CX_AO 8
152#define SM8150_MMCX 9
153#define SM8150_MMCX_AO 10
154
155/* SA8155P is a special case, kept for backwards compatibility */
156#define SA8155P_CX SM8150_CX
157#define SA8155P_CX_AO SM8150_CX_AO
158#define SA8155P_EBI SM8150_EBI
159#define SA8155P_GFX SM8150_GFX
160#define SA8155P_MSS SM8150_MSS
161#define SA8155P_MX SM8150_MX
162#define SA8155P_MX_AO SM8150_MX_AO
163
164/* SM8250 Power Domain Indexes */
165#define SM8250_CX 0
166#define SM8250_CX_AO 1
167#define SM8250_EBI 2
168#define SM8250_GFX 3
169#define SM8250_LCX 4
170#define SM8250_LMX 5
171#define SM8250_MMCX 6
172#define SM8250_MMCX_AO 7
173#define SM8250_MX 8
174#define SM8250_MX_AO 9
175
176/* SM8350 Power Domain Indexes */
177#define SM8350_CX 0
178#define SM8350_CX_AO 1
179#define SM8350_EBI 2
180#define SM8350_GFX 3
181#define SM8350_LCX 4
182#define SM8350_LMX 5
183#define SM8350_MMCX 6
184#define SM8350_MMCX_AO 7
185#define SM8350_MX 8
186#define SM8350_MX_AO 9
187#define SM8350_MXC 10
188#define SM8350_MXC_AO 11
189#define SM8350_MSS 12
190
191/* SM8450 Power Domain Indexes */
192#define SM8450_CX 0
193#define SM8450_CX_AO 1
194#define SM8450_EBI 2
195#define SM8450_GFX 3
196#define SM8450_LCX 4
197#define SM8450_LMX 5
198#define SM8450_MMCX 6
199#define SM8450_MMCX_AO 7
200#define SM8450_MX 8
201#define SM8450_MX_AO 9
202#define SM8450_MXC 10
203#define SM8450_MXC_AO 11
204#define SM8450_MSS 12
205
206/* SM8550 Power Domain Indexes */
207#define SM8550_CX 0
208#define SM8550_CX_AO 1
209#define SM8550_EBI 2
210#define SM8550_GFX 3
211#define SM8550_LCX 4
212#define SM8550_LMX 5
213#define SM8550_MMCX 6
214#define SM8550_MMCX_AO 7
215#define SM8550_MX 8
216#define SM8550_MX_AO 9
217#define SM8550_MXC 10
218#define SM8550_MXC_AO 11
219#define SM8550_MSS 12
220#define SM8550_NSP 13
221
222/* QDU1000/QRU1000 Power Domain Indexes */
223#define QDU1000_EBI 0
224#define QDU1000_MSS 1
225#define QDU1000_CX 2
226#define QDU1000_MX 3
227
228/* SC7180 Power Domain Indexes */
229#define SC7180_CX 0
230#define SC7180_CX_AO 1
231#define SC7180_GFX 2
232#define SC7180_MX 3
233#define SC7180_MX_AO 4
234#define SC7180_LMX 5
235#define SC7180_LCX 6
236#define SC7180_MSS 7
237
238/* SC7280 Power Domain Indexes */
239#define SC7280_CX 0
240#define SC7280_CX_AO 1
241#define SC7280_EBI 2
242#define SC7280_GFX 3
243#define SC7280_MX 4
244#define SC7280_MX_AO 5
245#define SC7280_LMX 6
246#define SC7280_LCX 7
247#define SC7280_MSS 8
248
249/* SC8180X Power Domain Indexes */
250#define SC8180X_CX 0
251#define SC8180X_CX_AO 1
252#define SC8180X_EBI 2
253#define SC8180X_GFX 3
254#define SC8180X_LCX 4
255#define SC8180X_LMX 5
256#define SC8180X_MMCX 6
257#define SC8180X_MMCX_AO 7
258#define SC8180X_MSS 8
259#define SC8180X_MX 9
260#define SC8180X_MX_AO 10
261
262/* SC8280XP Power Domain Indexes */
263#define SC8280XP_CX 0
264#define SC8280XP_CX_AO 1
265#define SC8280XP_DDR 2
266#define SC8280XP_EBI 3
267#define SC8280XP_GFX 4
268#define SC8280XP_LCX 5
269#define SC8280XP_LMX 6
270#define SC8280XP_MMCX 7
271#define SC8280XP_MMCX_AO 8
272#define SC8280XP_MSS 9
273#define SC8280XP_MX 10
274#define SC8280XP_MXC 12
275#define SC8280XP_MX_AO 11
276#define SC8280XP_NSP 13
277#define SC8280XP_QPHY 14
278#define SC8280XP_XO 15
279#define SC8280XP_MXC_AO 16
280
281#endif