xref: /rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_pinctrl.h (revision 2f4bcc08bb2bbeaa261350ac73e99014d96b9beb)
1 /*
2  * Copyright (c) 2018-2020, Arm Limited and Contributors. All rights reserved.
3  * Copyright (c) 2022-2025, Advanced Micro Devices, Inc. All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 /*
9  * ZynqMP system level PM-API functions for pin control.
10  */
11 
12 #ifndef PM_API_PINCTRL_H
13 #define PM_API_PINCTRL_H
14 
15 #include "pm_common.h"
16 
17 #define FUNCTION_NAME_LEN		(16U)
18 #define GROUPS_PAYLOAD_LEN		(12U)
19 #define NUM_GROUPS_PER_RESP		(6U)
20 #define END_OF_FUNCTION			"END_OF_FUNCTION"
21 #define END_OF_GROUPS			-1
22 #define PINCTRL_GRP_RESERVED		-2
23 
24 //pinctrl function ids
25 enum {
26 	PINCTRL_FUNC_CAN0 = (0U),
27 	PINCTRL_FUNC_CAN1 = (1U),
28 	PINCTRL_FUNC_ETHERNET0 = (2U),
29 	PINCTRL_FUNC_ETHERNET1 = (3U),
30 	PINCTRL_FUNC_ETHERNET2 = (4U),
31 	PINCTRL_FUNC_ETHERNET3 = (5U),
32 	PINCTRL_FUNC_GEMTSU0 = (6U),
33 	PINCTRL_FUNC_GPIO0 = (7U),
34 	PINCTRL_FUNC_I2C0 = (8U),
35 	PINCTRL_FUNC_I2C1 = (9U),
36 	PINCTRL_FUNC_MDIO0 = (10U),
37 	PINCTRL_FUNC_MDIO1 = (11U),
38 	PINCTRL_FUNC_MDIO2 = (12U),
39 	PINCTRL_FUNC_MDIO3 = (13U),
40 	PINCTRL_FUNC_QSPI0 = (14U),
41 	PINCTRL_FUNC_QSPI_FBCLK = (15U),
42 	PINCTRL_FUNC_QSPI_SS = (16U),
43 	PINCTRL_FUNC_SPI0 = (17U),
44 	PINCTRL_FUNC_SPI1 = (18U),
45 	PINCTRL_FUNC_SPI0_SS = (19U),
46 	PINCTRL_FUNC_SPI1_SS = (20U),
47 	PINCTRL_FUNC_SDIO0 = (21U),
48 	PINCTRL_FUNC_SDIO0_PC = (22U),
49 	PINCTRL_FUNC_SDIO0_CD = (23U),
50 	PINCTRL_FUNC_SDIO0_WP = (24U),
51 	PINCTRL_FUNC_SDIO1 = (25U),
52 	PINCTRL_FUNC_SDIO1_PC = (26U),
53 	PINCTRL_FUNC_SDIO1_CD = (27U),
54 	PINCTRL_FUNC_SDIO1_WP = (28U),
55 	PINCTRL_FUNC_NAND0 = (29U),
56 	PINCTRL_FUNC_NAND0_CE = (30U),
57 	PINCTRL_FUNC_NAND0_RB = (31U),
58 	PINCTRL_FUNC_NAND0_DQS = (32U),
59 	PINCTRL_FUNC_TTC0_CLK = (33U),
60 	PINCTRL_FUNC_TTC0_WAV = (34U),
61 	PINCTRL_FUNC_TTC1_CLK = (35U),
62 	PINCTRL_FUNC_TTC1_WAV = (36U),
63 	PINCTRL_FUNC_TTC2_CLK = (37U),
64 	PINCTRL_FUNC_TTC2_WAV = (38U),
65 	PINCTRL_FUNC_TTC3_CLK = (39U),
66 	PINCTRL_FUNC_TTC3_WAV = (40U),
67 	PINCTRL_FUNC_UART0 = (41U),
68 	PINCTRL_FUNC_UART1 = (42U),
69 	PINCTRL_FUNC_USB0 = (43U),
70 	PINCTRL_FUNC_USB1 = (44U),
71 	PINCTRL_FUNC_SWDT0_CLK = (45U),
72 	PINCTRL_FUNC_SWDT0_RST = (46U),
73 	PINCTRL_FUNC_SWDT1_CLK = (47U),
74 	PINCTRL_FUNC_SWDT1_RST = (48U),
75 	PINCTRL_FUNC_PMU0 = (49U),
76 	PINCTRL_FUNC_PCIE0 = (50U),
77 	PINCTRL_FUNC_CSU0 = (51U),
78 	PINCTRL_FUNC_DPAUX0 = (52U),
79 	PINCTRL_FUNC_PJTAG0 = (53U),
80 	PINCTRL_FUNC_TRACE0 = (54U),
81 	PINCTRL_FUNC_TRACE0_CLK = (55U),
82 	PINCTRL_FUNC_TESTSCAN0 = (56U),
83 	END_FUNCTION = (57U),
84 };
85 
86 #define MAX_FUNCTION END_FUNCTION
87 
88 // pinctrl pin numbers
89 enum {
90 	PINCTRL_PIN_0,
91 	PINCTRL_PIN_1,
92 	PINCTRL_PIN_2,
93 	PINCTRL_PIN_3,
94 	PINCTRL_PIN_4,
95 	PINCTRL_PIN_5,
96 	PINCTRL_PIN_6,
97 	PINCTRL_PIN_7,
98 	PINCTRL_PIN_8,
99 	PINCTRL_PIN_9,
100 	PINCTRL_PIN_10,
101 	PINCTRL_PIN_11,
102 	PINCTRL_PIN_12,
103 	PINCTRL_PIN_13,
104 	PINCTRL_PIN_14,
105 	PINCTRL_PIN_15,
106 	PINCTRL_PIN_16,
107 	PINCTRL_PIN_17,
108 	PINCTRL_PIN_18,
109 	PINCTRL_PIN_19,
110 	PINCTRL_PIN_20,
111 	PINCTRL_PIN_21,
112 	PINCTRL_PIN_22,
113 	PINCTRL_PIN_23,
114 	PINCTRL_PIN_24,
115 	PINCTRL_PIN_25,
116 	PINCTRL_PIN_26,
117 	PINCTRL_PIN_27,
118 	PINCTRL_PIN_28,
119 	PINCTRL_PIN_29,
120 	PINCTRL_PIN_30,
121 	PINCTRL_PIN_31,
122 	PINCTRL_PIN_32,
123 	PINCTRL_PIN_33,
124 	PINCTRL_PIN_34,
125 	PINCTRL_PIN_35,
126 	PINCTRL_PIN_36,
127 	PINCTRL_PIN_37,
128 	PINCTRL_PIN_38,
129 	PINCTRL_PIN_39,
130 	PINCTRL_PIN_40,
131 	PINCTRL_PIN_41,
132 	PINCTRL_PIN_42,
133 	PINCTRL_PIN_43,
134 	PINCTRL_PIN_44,
135 	PINCTRL_PIN_45,
136 	PINCTRL_PIN_46,
137 	PINCTRL_PIN_47,
138 	PINCTRL_PIN_48,
139 	PINCTRL_PIN_49,
140 	PINCTRL_PIN_50,
141 	PINCTRL_PIN_51,
142 	PINCTRL_PIN_52,
143 	PINCTRL_PIN_53,
144 	PINCTRL_PIN_54,
145 	PINCTRL_PIN_55,
146 	PINCTRL_PIN_56,
147 	PINCTRL_PIN_57,
148 	PINCTRL_PIN_58,
149 	PINCTRL_PIN_59,
150 	PINCTRL_PIN_60,
151 	PINCTRL_PIN_61,
152 	PINCTRL_PIN_62,
153 	PINCTRL_PIN_63,
154 	PINCTRL_PIN_64,
155 	PINCTRL_PIN_65,
156 	PINCTRL_PIN_66,
157 	PINCTRL_PIN_67,
158 	PINCTRL_PIN_68,
159 	PINCTRL_PIN_69,
160 	PINCTRL_PIN_70,
161 	PINCTRL_PIN_71,
162 	PINCTRL_PIN_72,
163 	PINCTRL_PIN_73,
164 	PINCTRL_PIN_74,
165 	PINCTRL_PIN_75,
166 	PINCTRL_PIN_76,
167 	PINCTRL_PIN_77,
168 	END_PINS = (78U),
169 };
170 
171 #define MAX_PIN END_PINS
172 
173 // pinctrl group ids
174 enum  {
175 	PINCTRL_GRP_ETHERNET0_0,
176 	PINCTRL_GRP_ETHERNET1_0,
177 	PINCTRL_GRP_ETHERNET2_0,
178 	PINCTRL_GRP_ETHERNET3_0,
179 	PINCTRL_GRP_GEMTSU0_0,
180 	PINCTRL_GRP_GEMTSU0_1,
181 	PINCTRL_GRP_GEMTSU0_2,
182 	PINCTRL_GRP_MDIO0_0,
183 	PINCTRL_GRP_MDIO1_0,
184 	PINCTRL_GRP_MDIO1_1,
185 	PINCTRL_GRP_MDIO2_0,
186 	PINCTRL_GRP_MDIO3_0,
187 	PINCTRL_GRP_QSPI0_0,
188 	PINCTRL_GRP_QSPI0_1,
189 	PINCTRL_GRP_QSPI_SS,
190 	PINCTRL_GRP_QSPI_SS_1,
191 	PINCTRL_GRP_QSPI_FBCLK,
192 	PINCTRL_GRP_SPI0_0,
193 	PINCTRL_GRP_SPI0_1,
194 	PINCTRL_GRP_SPI0_2,
195 	PINCTRL_GRP_SPI0_3,
196 	PINCTRL_GRP_SPI0_4,
197 	PINCTRL_GRP_SPI0_5,
198 	PINCTRL_GRP_SPI0_0_SS0,
199 	PINCTRL_GRP_SPI0_0_SS1,
200 	PINCTRL_GRP_SPI0_0_SS2,
201 	PINCTRL_GRP_SPI0_1_SS0,
202 	PINCTRL_GRP_SPI0_1_SS1,
203 	PINCTRL_GRP_SPI0_1_SS2,
204 	PINCTRL_GRP_SPI0_2_SS0,
205 	PINCTRL_GRP_SPI0_2_SS1,
206 	PINCTRL_GRP_SPI0_2_SS2,
207 	PINCTRL_GRP_SPI0_3_SS0,
208 	PINCTRL_GRP_SPI0_3_SS1,
209 	PINCTRL_GRP_SPI0_3_SS2,
210 	PINCTRL_GRP_SPI0_4_SS0,
211 	PINCTRL_GRP_SPI0_4_SS1,
212 	PINCTRL_GRP_SPI0_4_SS2,
213 	PINCTRL_GRP_SPI0_5_SS0,
214 	PINCTRL_GRP_SPI0_5_SS1,
215 	PINCTRL_GRP_SPI0_5_SS2,
216 	PINCTRL_GRP_SPI1_0,
217 	PINCTRL_GRP_SPI1_1,
218 	PINCTRL_GRP_SPI1_2,
219 	PINCTRL_GRP_SPI1_3,
220 	PINCTRL_GRP_SPI1_4,
221 	PINCTRL_GRP_SPI1_5,
222 	PINCTRL_GRP_SPI1_0_SS0,
223 	PINCTRL_GRP_SPI1_0_SS1,
224 	PINCTRL_GRP_SPI1_0_SS2,
225 	PINCTRL_GRP_SPI1_1_SS0,
226 	PINCTRL_GRP_SPI1_1_SS1,
227 	PINCTRL_GRP_SPI1_1_SS2,
228 	PINCTRL_GRP_SPI1_2_SS0,
229 	PINCTRL_GRP_SPI1_2_SS1,
230 	PINCTRL_GRP_SPI1_2_SS2,
231 	PINCTRL_GRP_SPI1_3_SS0,
232 	PINCTRL_GRP_SPI1_3_SS1,
233 	PINCTRL_GRP_SPI1_3_SS2,
234 	PINCTRL_GRP_SPI1_4_SS0,
235 	PINCTRL_GRP_SPI1_4_SS1,
236 	PINCTRL_GRP_SPI1_4_SS2,
237 	PINCTRL_GRP_SPI1_5_SS0,
238 	PINCTRL_GRP_SPI1_5_SS1,
239 	PINCTRL_GRP_SPI1_5_SS2,
240 	PINCTRL_GRP_SDIO0_0,
241 	PINCTRL_GRP_SDIO0_1,
242 	PINCTRL_GRP_SDIO0_2,
243 	PINCTRL_GRP_SDIO0_4BIT_0_0,
244 	PINCTRL_GRP_SDIO0_4BIT_0_1,
245 	PINCTRL_GRP_SDIO0_4BIT_1_0,
246 	PINCTRL_GRP_SDIO0_4BIT_1_1,
247 	PINCTRL_GRP_SDIO0_4BIT_2_0,
248 	PINCTRL_GRP_SDIO0_4BIT_2_1,
249 	PINCTRL_GRP_SDIO0_1BIT_0_0,
250 	PINCTRL_GRP_SDIO0_1BIT_0_1,
251 	PINCTRL_GRP_SDIO0_1BIT_0_2,
252 	PINCTRL_GRP_SDIO0_1BIT_0_3,
253 	PINCTRL_GRP_SDIO0_1BIT_0_4,
254 	PINCTRL_GRP_SDIO0_1BIT_0_5,
255 	PINCTRL_GRP_SDIO0_1BIT_0_6,
256 	PINCTRL_GRP_SDIO0_1BIT_0_7,
257 	PINCTRL_GRP_SDIO0_1BIT_1_0,
258 	PINCTRL_GRP_SDIO0_1BIT_1_1,
259 	PINCTRL_GRP_SDIO0_1BIT_1_2,
260 	PINCTRL_GRP_SDIO0_1BIT_1_3,
261 	PINCTRL_GRP_SDIO0_1BIT_1_4,
262 	PINCTRL_GRP_SDIO0_1BIT_1_5,
263 	PINCTRL_GRP_SDIO0_1BIT_1_6,
264 	PINCTRL_GRP_SDIO0_1BIT_1_7,
265 	PINCTRL_GRP_SDIO0_1BIT_2_0,
266 	PINCTRL_GRP_SDIO0_1BIT_2_1,
267 	PINCTRL_GRP_SDIO0_1BIT_2_2,
268 	PINCTRL_GRP_SDIO0_1BIT_2_3,
269 	PINCTRL_GRP_SDIO0_1BIT_2_4,
270 	PINCTRL_GRP_SDIO0_1BIT_2_5,
271 	PINCTRL_GRP_SDIO0_1BIT_2_6,
272 	PINCTRL_GRP_SDIO0_1BIT_2_7,
273 	PINCTRL_GRP_SDIO0_0_PC,
274 	PINCTRL_GRP_SDIO0_1_PC,
275 	PINCTRL_GRP_SDIO0_2_PC,
276 	PINCTRL_GRP_SDIO0_0_CD,
277 	PINCTRL_GRP_SDIO0_1_CD,
278 	PINCTRL_GRP_SDIO0_2_CD,
279 	PINCTRL_GRP_SDIO0_0_WP,
280 	PINCTRL_GRP_SDIO0_1_WP,
281 	PINCTRL_GRP_SDIO0_2_WP,
282 	PINCTRL_GRP_SDIO1_0,
283 	PINCTRL_GRP_SDIO1_4BIT_0_0,
284 	PINCTRL_GRP_SDIO1_4BIT_0_1,
285 	PINCTRL_GRP_SDIO1_4BIT_1_0,
286 	PINCTRL_GRP_SDIO1_1BIT_0_0,
287 	PINCTRL_GRP_SDIO1_1BIT_0_1,
288 	PINCTRL_GRP_SDIO1_1BIT_0_2,
289 	PINCTRL_GRP_SDIO1_1BIT_0_3,
290 	PINCTRL_GRP_SDIO1_1BIT_0_4,
291 	PINCTRL_GRP_SDIO1_1BIT_0_5,
292 	PINCTRL_GRP_SDIO1_1BIT_0_6,
293 	PINCTRL_GRP_SDIO1_1BIT_0_7,
294 	PINCTRL_GRP_SDIO1_1BIT_1_0,
295 	PINCTRL_GRP_SDIO1_1BIT_1_1,
296 	PINCTRL_GRP_SDIO1_1BIT_1_2,
297 	PINCTRL_GRP_SDIO1_1BIT_1_3,
298 	PINCTRL_GRP_SDIO1_0_PC,
299 	PINCTRL_GRP_SDIO1_1_PC,
300 	PINCTRL_GRP_SDIO1_0_CD,
301 	PINCTRL_GRP_SDIO1_1_CD,
302 	PINCTRL_GRP_SDIO1_0_WP,
303 	PINCTRL_GRP_SDIO1_1_WP,
304 	PINCTRL_GRP_NAND0_0,
305 	PINCTRL_GRP_NAND0_0_CE,
306 	PINCTRL_GRP_NAND0_1_CE,
307 	PINCTRL_GRP_NAND0_0_RB,
308 	PINCTRL_GRP_NAND0_1_RB,
309 	PINCTRL_GRP_NAND0_0_DQS,
310 	PINCTRL_GRP_NAND0_1_DQS,
311 	PINCTRL_GRP_CAN0_0,
312 	PINCTRL_GRP_CAN0_1,
313 	PINCTRL_GRP_CAN0_2,
314 	PINCTRL_GRP_CAN0_3,
315 	PINCTRL_GRP_CAN0_4,
316 	PINCTRL_GRP_CAN0_5,
317 	PINCTRL_GRP_CAN0_6,
318 	PINCTRL_GRP_CAN0_7,
319 	PINCTRL_GRP_CAN0_8,
320 	PINCTRL_GRP_CAN0_9,
321 	PINCTRL_GRP_CAN0_10,
322 	PINCTRL_GRP_CAN0_11,
323 	PINCTRL_GRP_CAN0_12,
324 	PINCTRL_GRP_CAN0_13,
325 	PINCTRL_GRP_CAN0_14,
326 	PINCTRL_GRP_CAN0_15,
327 	PINCTRL_GRP_CAN0_16,
328 	PINCTRL_GRP_CAN0_17,
329 	PINCTRL_GRP_CAN0_18,
330 	PINCTRL_GRP_CAN1_0,
331 	PINCTRL_GRP_CAN1_1,
332 	PINCTRL_GRP_CAN1_2,
333 	PINCTRL_GRP_CAN1_3,
334 	PINCTRL_GRP_CAN1_4,
335 	PINCTRL_GRP_CAN1_5,
336 	PINCTRL_GRP_CAN1_6,
337 	PINCTRL_GRP_CAN1_7,
338 	PINCTRL_GRP_CAN1_8,
339 	PINCTRL_GRP_CAN1_9,
340 	PINCTRL_GRP_CAN1_10,
341 	PINCTRL_GRP_CAN1_11,
342 	PINCTRL_GRP_CAN1_12,
343 	PINCTRL_GRP_CAN1_13,
344 	PINCTRL_GRP_CAN1_14,
345 	PINCTRL_GRP_CAN1_15,
346 	PINCTRL_GRP_CAN1_16,
347 	PINCTRL_GRP_CAN1_17,
348 	PINCTRL_GRP_CAN1_18,
349 	PINCTRL_GRP_CAN1_19,
350 	PINCTRL_GRP_UART0_0,
351 	PINCTRL_GRP_UART0_1,
352 	PINCTRL_GRP_UART0_2,
353 	PINCTRL_GRP_UART0_3,
354 	PINCTRL_GRP_UART0_4,
355 	PINCTRL_GRP_UART0_5,
356 	PINCTRL_GRP_UART0_6,
357 	PINCTRL_GRP_UART0_7,
358 	PINCTRL_GRP_UART0_8,
359 	PINCTRL_GRP_UART0_9,
360 	PINCTRL_GRP_UART0_10,
361 	PINCTRL_GRP_UART0_11,
362 	PINCTRL_GRP_UART0_12,
363 	PINCTRL_GRP_UART0_13,
364 	PINCTRL_GRP_UART0_14,
365 	PINCTRL_GRP_UART0_15,
366 	PINCTRL_GRP_UART0_16,
367 	PINCTRL_GRP_UART0_17,
368 	PINCTRL_GRP_UART0_18,
369 	PINCTRL_GRP_UART1_0,
370 	PINCTRL_GRP_UART1_1,
371 	PINCTRL_GRP_UART1_2,
372 	PINCTRL_GRP_UART1_3,
373 	PINCTRL_GRP_UART1_4,
374 	PINCTRL_GRP_UART1_5,
375 	PINCTRL_GRP_UART1_6,
376 	PINCTRL_GRP_UART1_7,
377 	PINCTRL_GRP_UART1_8,
378 	PINCTRL_GRP_UART1_9,
379 	PINCTRL_GRP_UART1_10,
380 	PINCTRL_GRP_UART1_11,
381 	PINCTRL_GRP_UART1_12,
382 	PINCTRL_GRP_UART1_13,
383 	PINCTRL_GRP_UART1_14,
384 	PINCTRL_GRP_UART1_15,
385 	PINCTRL_GRP_UART1_16,
386 	PINCTRL_GRP_UART1_17,
387 	PINCTRL_GRP_UART1_18,
388 	PINCTRL_GRP_I2C0_0,
389 	PINCTRL_GRP_I2C0_1,
390 	PINCTRL_GRP_I2C0_2,
391 	PINCTRL_GRP_I2C0_3,
392 	PINCTRL_GRP_I2C0_4,
393 	PINCTRL_GRP_I2C0_5,
394 	PINCTRL_GRP_I2C0_6,
395 	PINCTRL_GRP_I2C0_7,
396 	PINCTRL_GRP_I2C0_8,
397 	PINCTRL_GRP_I2C0_9,
398 	PINCTRL_GRP_I2C0_10,
399 	PINCTRL_GRP_I2C0_11,
400 	PINCTRL_GRP_I2C0_12,
401 	PINCTRL_GRP_I2C0_13,
402 	PINCTRL_GRP_I2C0_14,
403 	PINCTRL_GRP_I2C0_15,
404 	PINCTRL_GRP_I2C0_16,
405 	PINCTRL_GRP_I2C0_17,
406 	PINCTRL_GRP_I2C0_18,
407 	PINCTRL_GRP_I2C1_0,
408 	PINCTRL_GRP_I2C1_1,
409 	PINCTRL_GRP_I2C1_2,
410 	PINCTRL_GRP_I2C1_3,
411 	PINCTRL_GRP_I2C1_4,
412 	PINCTRL_GRP_I2C1_5,
413 	PINCTRL_GRP_I2C1_6,
414 	PINCTRL_GRP_I2C1_7,
415 	PINCTRL_GRP_I2C1_8,
416 	PINCTRL_GRP_I2C1_9,
417 	PINCTRL_GRP_I2C1_10,
418 	PINCTRL_GRP_I2C1_11,
419 	PINCTRL_GRP_I2C1_12,
420 	PINCTRL_GRP_I2C1_13,
421 	PINCTRL_GRP_I2C1_14,
422 	PINCTRL_GRP_I2C1_15,
423 	PINCTRL_GRP_I2C1_16,
424 	PINCTRL_GRP_I2C1_17,
425 	PINCTRL_GRP_I2C1_18,
426 	PINCTRL_GRP_I2C1_19,
427 	PINCTRL_GRP_TTC0_0_CLK,
428 	PINCTRL_GRP_TTC0_1_CLK,
429 	PINCTRL_GRP_TTC0_2_CLK,
430 	PINCTRL_GRP_TTC0_3_CLK,
431 	PINCTRL_GRP_TTC0_4_CLK,
432 	PINCTRL_GRP_TTC0_5_CLK,
433 	PINCTRL_GRP_TTC0_6_CLK,
434 	PINCTRL_GRP_TTC0_7_CLK,
435 	PINCTRL_GRP_TTC0_8_CLK,
436 	PINCTRL_GRP_TTC0_0_WAV,
437 	PINCTRL_GRP_TTC0_1_WAV,
438 	PINCTRL_GRP_TTC0_2_WAV,
439 	PINCTRL_GRP_TTC0_3_WAV,
440 	PINCTRL_GRP_TTC0_4_WAV,
441 	PINCTRL_GRP_TTC0_5_WAV,
442 	PINCTRL_GRP_TTC0_6_WAV,
443 	PINCTRL_GRP_TTC0_7_WAV,
444 	PINCTRL_GRP_TTC0_8_WAV,
445 	PINCTRL_GRP_TTC1_0_CLK,
446 	PINCTRL_GRP_TTC1_1_CLK,
447 	PINCTRL_GRP_TTC1_2_CLK,
448 	PINCTRL_GRP_TTC1_3_CLK,
449 	PINCTRL_GRP_TTC1_4_CLK,
450 	PINCTRL_GRP_TTC1_5_CLK,
451 	PINCTRL_GRP_TTC1_6_CLK,
452 	PINCTRL_GRP_TTC1_7_CLK,
453 	PINCTRL_GRP_TTC1_8_CLK,
454 	PINCTRL_GRP_TTC1_0_WAV,
455 	PINCTRL_GRP_TTC1_1_WAV,
456 	PINCTRL_GRP_TTC1_2_WAV,
457 	PINCTRL_GRP_TTC1_3_WAV,
458 	PINCTRL_GRP_TTC1_4_WAV,
459 	PINCTRL_GRP_TTC1_5_WAV,
460 	PINCTRL_GRP_TTC1_6_WAV,
461 	PINCTRL_GRP_TTC1_7_WAV,
462 	PINCTRL_GRP_TTC1_8_WAV,
463 	PINCTRL_GRP_TTC2_0_CLK,
464 	PINCTRL_GRP_TTC2_1_CLK,
465 	PINCTRL_GRP_TTC2_2_CLK,
466 	PINCTRL_GRP_TTC2_3_CLK,
467 	PINCTRL_GRP_TTC2_4_CLK,
468 	PINCTRL_GRP_TTC2_5_CLK,
469 	PINCTRL_GRP_TTC2_6_CLK,
470 	PINCTRL_GRP_TTC2_7_CLK,
471 	PINCTRL_GRP_TTC2_8_CLK,
472 	PINCTRL_GRP_TTC2_0_WAV,
473 	PINCTRL_GRP_TTC2_1_WAV,
474 	PINCTRL_GRP_TTC2_2_WAV,
475 	PINCTRL_GRP_TTC2_3_WAV,
476 	PINCTRL_GRP_TTC2_4_WAV,
477 	PINCTRL_GRP_TTC2_5_WAV,
478 	PINCTRL_GRP_TTC2_6_WAV,
479 	PINCTRL_GRP_TTC2_7_WAV,
480 	PINCTRL_GRP_TTC2_8_WAV,
481 	PINCTRL_GRP_TTC3_0_CLK,
482 	PINCTRL_GRP_TTC3_1_CLK,
483 	PINCTRL_GRP_TTC3_2_CLK,
484 	PINCTRL_GRP_TTC3_3_CLK,
485 	PINCTRL_GRP_TTC3_4_CLK,
486 	PINCTRL_GRP_TTC3_5_CLK,
487 	PINCTRL_GRP_TTC3_6_CLK,
488 	PINCTRL_GRP_TTC3_7_CLK,
489 	PINCTRL_GRP_TTC3_8_CLK,
490 	PINCTRL_GRP_TTC3_0_WAV,
491 	PINCTRL_GRP_TTC3_1_WAV,
492 	PINCTRL_GRP_TTC3_2_WAV,
493 	PINCTRL_GRP_TTC3_3_WAV,
494 	PINCTRL_GRP_TTC3_4_WAV,
495 	PINCTRL_GRP_TTC3_5_WAV,
496 	PINCTRL_GRP_TTC3_6_WAV,
497 	PINCTRL_GRP_TTC3_7_WAV,
498 	PINCTRL_GRP_TTC3_8_WAV,
499 	PINCTRL_GRP_SWDT0_0_CLK,
500 	PINCTRL_GRP_SWDT0_1_CLK,
501 	PINCTRL_GRP_SWDT0_2_CLK,
502 	PINCTRL_GRP_SWDT0_3_CLK,
503 	PINCTRL_GRP_SWDT0_4_CLK,
504 	PINCTRL_GRP_SWDT0_5_CLK,
505 	PINCTRL_GRP_SWDT0_6_CLK,
506 	PINCTRL_GRP_SWDT0_7_CLK,
507 	PINCTRL_GRP_SWDT0_8_CLK,
508 	PINCTRL_GRP_SWDT0_9_CLK,
509 	PINCTRL_GRP_SWDT0_10_CLK,
510 	PINCTRL_GRP_SWDT0_11_CLK,
511 	PINCTRL_GRP_SWDT0_12_CLK,
512 	PINCTRL_GRP_SWDT0_0_RST,
513 	PINCTRL_GRP_SWDT0_1_RST,
514 	PINCTRL_GRP_SWDT0_2_RST,
515 	PINCTRL_GRP_SWDT0_3_RST,
516 	PINCTRL_GRP_SWDT0_4_RST,
517 	PINCTRL_GRP_SWDT0_5_RST,
518 	PINCTRL_GRP_SWDT0_6_RST,
519 	PINCTRL_GRP_SWDT0_7_RST,
520 	PINCTRL_GRP_SWDT0_8_RST,
521 	PINCTRL_GRP_SWDT0_9_RST,
522 	PINCTRL_GRP_SWDT0_10_RST,
523 	PINCTRL_GRP_SWDT0_11_RST,
524 	PINCTRL_GRP_SWDT0_12_RST,
525 	PINCTRL_GRP_SWDT1_0_CLK,
526 	PINCTRL_GRP_SWDT1_1_CLK,
527 	PINCTRL_GRP_SWDT1_2_CLK,
528 	PINCTRL_GRP_SWDT1_3_CLK,
529 	PINCTRL_GRP_SWDT1_4_CLK,
530 	PINCTRL_GRP_SWDT1_5_CLK,
531 	PINCTRL_GRP_SWDT1_6_CLK,
532 	PINCTRL_GRP_SWDT1_7_CLK,
533 	PINCTRL_GRP_SWDT1_8_CLK,
534 	PINCTRL_GRP_SWDT1_9_CLK,
535 	PINCTRL_GRP_SWDT1_10_CLK,
536 	PINCTRL_GRP_SWDT1_11_CLK,
537 	PINCTRL_GRP_SWDT1_12_CLK,
538 	PINCTRL_GRP_SWDT1_0_RST,
539 	PINCTRL_GRP_SWDT1_1_RST,
540 	PINCTRL_GRP_SWDT1_2_RST,
541 	PINCTRL_GRP_SWDT1_3_RST,
542 	PINCTRL_GRP_SWDT1_4_RST,
543 	PINCTRL_GRP_SWDT1_5_RST,
544 	PINCTRL_GRP_SWDT1_6_RST,
545 	PINCTRL_GRP_SWDT1_7_RST,
546 	PINCTRL_GRP_SWDT1_8_RST,
547 	PINCTRL_GRP_SWDT1_9_RST,
548 	PINCTRL_GRP_SWDT1_10_RST,
549 	PINCTRL_GRP_SWDT1_11_RST,
550 	PINCTRL_GRP_SWDT1_12_RST,
551 	PINCTRL_GRP_GPIO0_0,
552 	PINCTRL_GRP_GPIO0_1,
553 	PINCTRL_GRP_GPIO0_2,
554 	PINCTRL_GRP_GPIO0_3,
555 	PINCTRL_GRP_GPIO0_4,
556 	PINCTRL_GRP_GPIO0_5,
557 	PINCTRL_GRP_GPIO0_6,
558 	PINCTRL_GRP_GPIO0_7,
559 	PINCTRL_GRP_GPIO0_8,
560 	PINCTRL_GRP_GPIO0_9,
561 	PINCTRL_GRP_GPIO0_10,
562 	PINCTRL_GRP_GPIO0_11,
563 	PINCTRL_GRP_GPIO0_12,
564 	PINCTRL_GRP_GPIO0_13,
565 	PINCTRL_GRP_GPIO0_14,
566 	PINCTRL_GRP_GPIO0_15,
567 	PINCTRL_GRP_GPIO0_16,
568 	PINCTRL_GRP_GPIO0_17,
569 	PINCTRL_GRP_GPIO0_18,
570 	PINCTRL_GRP_GPIO0_19,
571 	PINCTRL_GRP_GPIO0_20,
572 	PINCTRL_GRP_GPIO0_21,
573 	PINCTRL_GRP_GPIO0_22,
574 	PINCTRL_GRP_GPIO0_23,
575 	PINCTRL_GRP_GPIO0_24,
576 	PINCTRL_GRP_GPIO0_25,
577 	PINCTRL_GRP_GPIO0_26,
578 	PINCTRL_GRP_GPIO0_27,
579 	PINCTRL_GRP_GPIO0_28,
580 	PINCTRL_GRP_GPIO0_29,
581 	PINCTRL_GRP_GPIO0_30,
582 	PINCTRL_GRP_GPIO0_31,
583 	PINCTRL_GRP_GPIO0_32,
584 	PINCTRL_GRP_GPIO0_33,
585 	PINCTRL_GRP_GPIO0_34,
586 	PINCTRL_GRP_GPIO0_35,
587 	PINCTRL_GRP_GPIO0_36,
588 	PINCTRL_GRP_GPIO0_37,
589 	PINCTRL_GRP_GPIO0_38,
590 	PINCTRL_GRP_GPIO0_39,
591 	PINCTRL_GRP_GPIO0_40,
592 	PINCTRL_GRP_GPIO0_41,
593 	PINCTRL_GRP_GPIO0_42,
594 	PINCTRL_GRP_GPIO0_43,
595 	PINCTRL_GRP_GPIO0_44,
596 	PINCTRL_GRP_GPIO0_45,
597 	PINCTRL_GRP_GPIO0_46,
598 	PINCTRL_GRP_GPIO0_47,
599 	PINCTRL_GRP_GPIO0_48,
600 	PINCTRL_GRP_GPIO0_49,
601 	PINCTRL_GRP_GPIO0_50,
602 	PINCTRL_GRP_GPIO0_51,
603 	PINCTRL_GRP_GPIO0_52,
604 	PINCTRL_GRP_GPIO0_53,
605 	PINCTRL_GRP_GPIO0_54,
606 	PINCTRL_GRP_GPIO0_55,
607 	PINCTRL_GRP_GPIO0_56,
608 	PINCTRL_GRP_GPIO0_57,
609 	PINCTRL_GRP_GPIO0_58,
610 	PINCTRL_GRP_GPIO0_59,
611 	PINCTRL_GRP_GPIO0_60,
612 	PINCTRL_GRP_GPIO0_61,
613 	PINCTRL_GRP_GPIO0_62,
614 	PINCTRL_GRP_GPIO0_63,
615 	PINCTRL_GRP_GPIO0_64,
616 	PINCTRL_GRP_GPIO0_65,
617 	PINCTRL_GRP_GPIO0_66,
618 	PINCTRL_GRP_GPIO0_67,
619 	PINCTRL_GRP_GPIO0_68,
620 	PINCTRL_GRP_GPIO0_69,
621 	PINCTRL_GRP_GPIO0_70,
622 	PINCTRL_GRP_GPIO0_71,
623 	PINCTRL_GRP_GPIO0_72,
624 	PINCTRL_GRP_GPIO0_73,
625 	PINCTRL_GRP_GPIO0_74,
626 	PINCTRL_GRP_GPIO0_75,
627 	PINCTRL_GRP_GPIO0_76,
628 	PINCTRL_GRP_GPIO0_77,
629 	PINCTRL_GRP_USB0_0,
630 	PINCTRL_GRP_USB1_0,
631 	PINCTRL_GRP_PMU0_0,
632 	PINCTRL_GRP_PMU0_1,
633 	PINCTRL_GRP_PMU0_2,
634 	PINCTRL_GRP_PMU0_3,
635 	PINCTRL_GRP_PMU0_4,
636 	PINCTRL_GRP_PMU0_5,
637 	PINCTRL_GRP_PMU0_6,
638 	PINCTRL_GRP_PMU0_7,
639 	PINCTRL_GRP_PMU0_8,
640 	PINCTRL_GRP_PMU0_9,
641 	PINCTRL_GRP_PMU0_10,
642 	PINCTRL_GRP_PMU0_11,
643 	PINCTRL_GRP_PCIE0_0,
644 	PINCTRL_GRP_PCIE0_1,
645 	PINCTRL_GRP_PCIE0_2,
646 	PINCTRL_GRP_PCIE0_3,
647 	PINCTRL_GRP_PCIE0_4,
648 	PINCTRL_GRP_PCIE0_5,
649 	PINCTRL_GRP_PCIE0_6,
650 	PINCTRL_GRP_PCIE0_7,
651 	PINCTRL_GRP_CSU0_0,
652 	PINCTRL_GRP_CSU0_1,
653 	PINCTRL_GRP_CSU0_2,
654 	PINCTRL_GRP_CSU0_3,
655 	PINCTRL_GRP_CSU0_4,
656 	PINCTRL_GRP_CSU0_5,
657 	PINCTRL_GRP_CSU0_6,
658 	PINCTRL_GRP_CSU0_7,
659 	PINCTRL_GRP_CSU0_8,
660 	PINCTRL_GRP_CSU0_9,
661 	PINCTRL_GRP_CSU0_10,
662 	PINCTRL_GRP_CSU0_11,
663 	PINCTRL_GRP_DPAUX0_0,
664 	PINCTRL_GRP_DPAUX0_1,
665 	PINCTRL_GRP_DPAUX0_2,
666 	PINCTRL_GRP_DPAUX0_3,
667 	PINCTRL_GRP_PJTAG0_0,
668 	PINCTRL_GRP_PJTAG0_1,
669 	PINCTRL_GRP_PJTAG0_2,
670 	PINCTRL_GRP_PJTAG0_3,
671 	PINCTRL_GRP_PJTAG0_4,
672 	PINCTRL_GRP_PJTAG0_5,
673 	PINCTRL_GRP_TRACE0_0,
674 	PINCTRL_GRP_TRACE0_1,
675 	PINCTRL_GRP_TRACE0_2,
676 	PINCTRL_GRP_TRACE0_0_CLK,
677 	PINCTRL_GRP_TRACE0_1_CLK,
678 	PINCTRL_GRP_TRACE0_2_CLK,
679 	PINCTRL_GRP_TESTSCAN0_0,
680 };
681 
682 // pinctrl config parameters
683 enum {
684 	PINCTRL_CONFIG_SLEW_RATE,
685 	PINCTRL_CONFIG_BIAS_STATUS,
686 	PINCTRL_CONFIG_PULL_CTRL,
687 	PINCTRL_CONFIG_SCHMITT_CMOS,
688 	PINCTRL_CONFIG_DRIVE_STRENGTH,
689 	PINCTRL_CONFIG_VOLTAGE_STATUS,
690 	PINCTRL_CONFIG_MAX,
691 };
692 
693 // pinctrl slew rate
694 #define	PINCTRL_SLEW_RATE_FAST 0U
695 #define	PINCTRL_SLEW_RATE_SLOW 1U
696 
697 // pinctrl bias status
698 #define	PINCTRL_BIAS_DISABLE 0U
699 #define	PINCTRL_BIAS_ENABLE 1U
700 
701 // pinctrl pull control
702 #define	PINCTRL_BIAS_PULL_DOWN 0U
703 #define	PINCTRL_BIAS_PULL_UP 1U
704 
705 // pinctrl schmitt cmos type
706 #define PINCTRL_INPUT_TYPE_CMOS 0U
707 #define	PINCTRL_INPUT_TYPE_SCHMITT 1U
708 
709 //pinctrl drive strength values
710 #define	PINCTRL_DRIVE_STRENGTH_2MA 0U
711 #define	PINCTRL_DRIVE_STRENGTH_4MA 1U
712 #define	PINCTRL_DRIVE_STRENGTH_8MA 2U
713 #define	PINCTRL_DRIVE_STRENGTH_12MA 3U
714 
715 void pm_api_pinctrl_get_function_name(uint32_t fid, char *name);
716 enum pm_ret_status pm_api_pinctrl_get_function_groups(uint32_t fid,
717 						      uint32_t index,
718 						      uint16_t *groups);
719 enum pm_ret_status pm_api_pinctrl_get_pin_groups(uint32_t pin,
720 						 uint32_t index,
721 						 uint16_t *groups);
722 enum pm_ret_status pm_api_pinctrl_get_num_pins(uint32_t *npins);
723 enum pm_ret_status pm_api_pinctrl_get_num_functions(uint32_t *nfuncs);
724 enum pm_ret_status pm_api_pinctrl_get_num_func_groups(uint32_t fid,
725 						      uint32_t *ngroups);
726 #endif /* PM_API_PINCTRL_H */
727