1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3 * NXP S32G pinctrl driver
4 *
5 * Copyright 2015-2016 Freescale Semiconductor, Inc.
6 * Copyright 2017-2018, 2020-2022 NXP
7 * Copyright (C) 2022 SUSE LLC
8 */
9
10 #include <linux/err.h>
11 #include <linux/init.h>
12 #include <linux/io.h>
13 #include <linux/module.h>
14 #include <linux/of.h>
15 #include <linux/platform_device.h>
16 #include <linux/pinctrl/pinctrl.h>
17
18 #include "pinctrl-s32.h"
19
20 enum s32_pins {
21 S32G_MSCR_PA_00 = 0,
22 S32G_MSCR_PA_01 = 1,
23 S32G_MSCR_PA_02 = 2,
24 S32G_MSCR_PA_03 = 3,
25 S32G_MSCR_PA_04 = 4,
26 S32G_MSCR_PA_05 = 5,
27 S32G_MSCR_PA_06 = 6,
28 S32G_MSCR_PA_07 = 7,
29 S32G_MSCR_PA_08 = 8,
30 S32G_MSCR_PA_09 = 9,
31 S32G_MSCR_PA_10 = 10,
32 S32G_MSCR_PA_11 = 11,
33 S32G_MSCR_PA_12 = 12,
34 S32G_MSCR_PA_13 = 13,
35 S32G_MSCR_PA_14 = 14,
36 S32G_MSCR_PA_15 = 15,
37 S32G_MSCR_PB_00 = 16,
38 S32G_MSCR_PB_01 = 17,
39 S32G_MSCR_PB_02 = 18,
40 S32G_MSCR_PB_03 = 19,
41 S32G_MSCR_PB_04 = 20,
42 S32G_MSCR_PB_05 = 21,
43 S32G_MSCR_PB_06 = 22,
44 S32G_MSCR_PB_07 = 23,
45 S32G_MSCR_PB_08 = 24,
46 S32G_MSCR_PB_09 = 25,
47 S32G_MSCR_PB_10 = 26,
48 S32G_MSCR_PB_11 = 27,
49 S32G_MSCR_PB_12 = 28,
50 S32G_MSCR_PB_13 = 29,
51 S32G_MSCR_PB_14 = 30,
52 S32G_MSCR_PB_15 = 31,
53 S32G_MSCR_PC_00 = 32,
54 S32G_MSCR_PC_01 = 33,
55 S32G_MSCR_PC_02 = 34,
56 S32G_MSCR_PC_03 = 35,
57 S32G_MSCR_PC_04 = 36,
58 S32G_MSCR_PC_05 = 37,
59 S32G_MSCR_PC_06 = 38,
60 S32G_MSCR_PC_07 = 39,
61 S32G_MSCR_PC_08 = 40,
62 S32G_MSCR_PC_09 = 41,
63 S32G_MSCR_PC_10 = 42,
64 S32G_MSCR_PC_11 = 43,
65 S32G_MSCR_PC_12 = 44,
66 S32G_MSCR_PC_13 = 45,
67 S32G_MSCR_PC_14 = 46,
68 S32G_MSCR_PC_15 = 47,
69 S32G_MSCR_PD_00 = 48,
70 S32G_MSCR_PD_01 = 49,
71 S32G_MSCR_PD_02 = 50,
72 S32G_MSCR_PD_03 = 51,
73 S32G_MSCR_PD_04 = 52,
74 S32G_MSCR_PD_05 = 53,
75 S32G_MSCR_PD_06 = 54,
76 S32G_MSCR_PD_07 = 55,
77 S32G_MSCR_PD_08 = 56,
78 S32G_MSCR_PD_09 = 57,
79 S32G_MSCR_PD_10 = 58,
80 S32G_MSCR_PD_11 = 59,
81 S32G_MSCR_PD_12 = 60,
82 S32G_MSCR_PD_13 = 61,
83 S32G_MSCR_PD_14 = 62,
84 S32G_MSCR_PD_15 = 63,
85 S32G_MSCR_PE_00 = 64,
86 S32G_MSCR_PE_01 = 65,
87 S32G_MSCR_PE_02 = 66,
88 S32G_MSCR_PE_03 = 67,
89 S32G_MSCR_PE_04 = 68,
90 S32G_MSCR_PE_05 = 69,
91 S32G_MSCR_PE_06 = 70,
92 S32G_MSCR_PE_07 = 71,
93 S32G_MSCR_PE_08 = 72,
94 S32G_MSCR_PE_09 = 73,
95 S32G_MSCR_PE_10 = 74,
96 S32G_MSCR_PE_11 = 75,
97 S32G_MSCR_PE_12 = 76,
98 S32G_MSCR_PE_13 = 77,
99 S32G_MSCR_PE_14 = 78,
100 S32G_MSCR_PE_15 = 79,
101 S32G_MSCR_PF_00 = 80,
102 S32G_MSCR_PF_01 = 81,
103 S32G_MSCR_PF_02 = 82,
104 S32G_MSCR_PF_03 = 83,
105 S32G_MSCR_PF_04 = 84,
106 S32G_MSCR_PF_05 = 85,
107 S32G_MSCR_PF_06 = 86,
108 S32G_MSCR_PF_07 = 87,
109 S32G_MSCR_PF_08 = 88,
110 S32G_MSCR_PF_09 = 89,
111 S32G_MSCR_PF_10 = 90,
112 S32G_MSCR_PF_11 = 91,
113 S32G_MSCR_PF_12 = 92,
114 S32G_MSCR_PF_13 = 93,
115 S32G_MSCR_PF_14 = 94,
116 S32G_MSCR_PF_15 = 95,
117 S32G_MSCR_PG_00 = 96,
118 S32G_MSCR_PG_01 = 97,
119 S32G_MSCR_PG_02 = 98,
120 S32G_MSCR_PG_03 = 99,
121 S32G_MSCR_PG_04 = 100,
122 S32G_MSCR_PG_05 = 101,
123 S32G_MSCR_PH_00 = 112,
124 S32G_MSCR_PH_01 = 113,
125 S32G_MSCR_PH_02 = 114,
126 S32G_MSCR_PH_03 = 115,
127 S32G_MSCR_PH_04 = 116,
128 S32G_MSCR_PH_05 = 117,
129 S32G_MSCR_PH_06 = 118,
130 S32G_MSCR_PH_07 = 119,
131 S32G_MSCR_PH_08 = 120,
132 S32G_MSCR_PH_09 = 121,
133 S32G_MSCR_PH_10 = 122,
134 S32G_MSCR_PJ_00 = 144,
135 S32G_MSCR_PJ_01 = 145,
136 S32G_MSCR_PJ_02 = 146,
137 S32G_MSCR_PJ_03 = 147,
138 S32G_MSCR_PJ_04 = 148,
139 S32G_MSCR_PJ_05 = 149,
140 S32G_MSCR_PJ_06 = 150,
141 S32G_MSCR_PJ_07 = 151,
142 S32G_MSCR_PJ_08 = 152,
143 S32G_MSCR_PJ_09 = 153,
144 S32G_MSCR_PJ_10 = 154,
145 S32G_MSCR_PJ_11 = 155,
146 S32G_MSCR_PJ_12 = 156,
147 S32G_MSCR_PJ_13 = 157,
148 S32G_MSCR_PJ_14 = 158,
149 S32G_MSCR_PJ_15 = 159,
150 S32G_MSCR_PK_00 = 160,
151 S32G_MSCR_PK_01 = 161,
152 S32G_MSCR_PK_02 = 162,
153 S32G_MSCR_PK_03 = 163,
154 S32G_MSCR_PK_04 = 164,
155 S32G_MSCR_PK_05 = 165,
156 S32G_MSCR_PK_06 = 166,
157 S32G_MSCR_PK_07 = 167,
158 S32G_MSCR_PK_08 = 168,
159 S32G_MSCR_PK_09 = 169,
160 S32G_MSCR_PK_10 = 170,
161 S32G_MSCR_PK_11 = 171,
162 S32G_MSCR_PK_12 = 172,
163 S32G_MSCR_PK_13 = 173,
164 S32G_MSCR_PK_14 = 174,
165 S32G_MSCR_PK_15 = 175,
166 S32G_MSCR_PL_00 = 176,
167 S32G_MSCR_PL_01 = 177,
168 S32G_MSCR_PL_02 = 178,
169 S32G_MSCR_PL_03 = 179,
170 S32G_MSCR_PL_04 = 180,
171 S32G_MSCR_PL_05 = 181,
172 S32G_MSCR_PL_06 = 182,
173 S32G_MSCR_PL_07 = 183,
174 S32G_MSCR_PL_08 = 184,
175 S32G_MSCR_PL_09 = 185,
176 S32G_MSCR_PL_10 = 186,
177 S32G_MSCR_PL_11 = 187,
178 S32G_MSCR_PL_12 = 188,
179 S32G_MSCR_PL_13 = 189,
180 S32G_MSCR_PL_14 = 190,
181
182 S32G_IMCR_QSPI_A_DATA0 = 540,
183 S32G_IMCR_QSPI_A_DATA1 = 541,
184 S32G_IMCR_QSPI_A_DATA2 = 542,
185 S32G_IMCR_QSPI_A_DATA3 = 543,
186 S32G_IMCR_QSPI_A_DATA4 = 544,
187 S32G_IMCR_QSPI_A_DATA5 = 545,
188 S32G_IMCR_QSPI_A_DATA6 = 546,
189 S32G_IMCR_QSPI_A_DATA7 = 547,
190 S32G_IMCR_QSPI_DQS_A = 548,
191 S32G_IMCR_QSPI_B_DATA0 = 552,
192 S32G_IMCR_QSPI_B_DATA1 = 554,
193 S32G_IMCR_QSPI_B_DATA2 = 551,
194 S32G_IMCR_QSPI_B_DATA3 = 553,
195 S32G_IMCR_QSPI_B_DATA4 = 557,
196 S32G_IMCR_QSPI_B_DATA5 = 550,
197 S32G_IMCR_QSPI_B_DATA6 = 556,
198 S32G_IMCR_QSPI_B_DATA7 = 555,
199 S32G_IMCR_QSPI_DQS_B = 558,
200 S32G_IMCR_BOOT_BOOTMOD0 = 560,
201 S32G_IMCR_BOOT_BOOTMOD1 = 561,
202 S32G_IMCR_I2C0_SCL = 566,
203 S32G_IMCR_I2C0_SDA = 565,
204 S32G_IMCR_LIN0_RX = 512,
205 S32G_IMCR_USDHC_CMD = 515,
206 S32G_IMCR_USDHC_DAT0 = 516,
207 S32G_IMCR_USDHC_DAT1 = 517,
208 S32G_IMCR_USDHC_DAT2 = 520,
209 S32G_IMCR_USDHC_DAT3 = 521,
210 S32G_IMCR_USDHC_DAT4 = 522,
211 S32G_IMCR_USDHC_DAT5 = 523,
212 S32G_IMCR_USDHC_DAT6 = 519,
213 S32G_IMCR_USDHC_DAT7 = 518,
214 S32G_IMCR_USDHC_DQS = 524,
215 S32G_IMCR_CAN0_RXD = 513,
216 S32G_IMCR_CAN1_RXD = 631,
217 S32G_IMCR_CAN2_RXD = 632,
218 S32G_IMCR_CAN3_RXD = 633,
219
220 /* JTAG IMCRs */
221 S32G_IMCR_JTAG_TMS = 562,
222 S32G_IMCR_JTAG_TCK = 572,
223 S32G_IMCR_JTAG_TDI = 573,
224
225 /* GMAC0 */
226 S32G_IMCR_Ethernet_MDIO = 527,
227 S32G_IMCR_Ethernet_CRS = 526,
228 S32G_IMCR_Ethernet_COL = 525,
229 S32G_IMCR_Ethernet_RX_D0 = 531,
230 S32G_IMCR_Ethernet_RX_D1 = 532,
231 S32G_IMCR_Ethernet_RX_D2 = 533,
232 S32G_IMCR_Ethernet_RX_D3 = 534,
233 S32G_IMCR_Ethernet_RX_ER = 528,
234 S32G_IMCR_Ethernet_RX_CLK = 529,
235 S32G_IMCR_Ethernet_RX_DV = 530,
236 S32G_IMCR_Ethernet_TX_CLK = 538,
237 S32G_IMCR_Ethernet_REF_CLK = 535,
238
239 /* PFE EMAC 0 MII */
240 S32G_IMCR_PFE_EMAC_0_MDIO = 837,
241 S32G_IMCR_PFE_EMAC_0_CRS = 836,
242 S32G_IMCR_PFE_EMAC_0_COL = 835,
243 S32G_IMCR_PFE_EMAC_0_RX_D0 = 841,
244 S32G_IMCR_PFE_EMAC_0_RX_D1 = 842,
245 S32G_IMCR_PFE_EMAC_0_RX_D2 = 843,
246 S32G_IMCR_PFE_EMAC_0_RX_D3 = 844,
247 S32G_IMCR_PFE_EMAC_0_RX_ER = 840,
248 S32G_IMCR_PFE_EMAC_0_RX_CLK = 839,
249 S32G_IMCR_PFE_EMAC_0_RX_DV = 845,
250 S32G_IMCR_PFE_EMAC_0_TX_CLK = 846,
251 S32G_IMCR_PFE_EMAC_0_REF_CLK = 838,
252
253 /* PFE EMAC 1 MII */
254 S32G_IMCR_PFE_EMAC_1_MDIO = 857,
255 S32G_IMCR_PFE_EMAC_1_CRS = 856,
256 S32G_IMCR_PFE_EMAC_1_COL = 855,
257 S32G_IMCR_PFE_EMAC_1_RX_D0 = 861,
258 S32G_IMCR_PFE_EMAC_1_RX_D1 = 862,
259 S32G_IMCR_PFE_EMAC_1_RX_D2 = 863,
260 S32G_IMCR_PFE_EMAC_1_RX_D3 = 864,
261 S32G_IMCR_PFE_EMAC_1_RX_ER = 860,
262 S32G_IMCR_PFE_EMAC_1_RX_CLK = 859,
263 S32G_IMCR_PFE_EMAC_1_RX_DV = 865,
264 S32G_IMCR_PFE_EMAC_1_TX_CLK = 866,
265 S32G_IMCR_PFE_EMAC_1_REF_CLK = 858,
266 /* PFE EMAC 2 MII */
267 S32G_IMCR_PFE_EMAC_2_MDIO = 877,
268 S32G_IMCR_PFE_EMAC_2_CRS = 876,
269 S32G_IMCR_PFE_EMAC_2_COL = 875,
270 S32G_IMCR_PFE_EMAC_2_RX_D0 = 881,
271 S32G_IMCR_PFE_EMAC_2_RX_D1 = 882,
272 S32G_IMCR_PFE_EMAC_2_RX_D2 = 883,
273 S32G_IMCR_PFE_EMAC_2_RX_D3 = 884,
274 S32G_IMCR_PFE_EMAC_2_RX_ER = 880,
275 S32G_IMCR_PFE_EMAC_2_RX_CLK = 879,
276 S32G_IMCR_PFE_EMAC_2_RX_DV = 885,
277 S32G_IMCR_PFE_EMAC_2_TX_CLK = 886,
278 S32G_IMCR_PFE_EMAC_2_REF_CLK = 878,
279
280 S32G_IMCR_FlexRay0_A_RX = 785,
281 S32G_IMCR_FlexRay0_B_RX = 786,
282 S32G_IMCR_FlexTimer0_CH0 = 655,
283 S32G_IMCR_FlexTimer1_CH0 = 665,
284 S32G_IMCR_FlexTimer0_CH1 = 656,
285 S32G_IMCR_FlexTimer1_CH1 = 666,
286 S32G_IMCR_FlexTimer0_CH2 = 657,
287 S32G_IMCR_FlexTimer1_CH2 = 667,
288 S32G_IMCR_FlexTimer0_CH3 = 658,
289 S32G_IMCR_FlexTimer1_CH3 = 668,
290 S32G_IMCR_FlexTimer0_CH4 = 659,
291 S32G_IMCR_FlexTimer1_CH4 = 669,
292 S32G_IMCR_FlexTimer0_CH5 = 660,
293 S32G_IMCR_FlexTimer1_CH5 = 670,
294 S32G_IMCR_FlexTimer0_EXTCLK = 661,
295 S32G_IMCR_FlexTimer1_EXTCLK = 671,
296 S32G_IMCR_I2C1_SCL = 717,
297 S32G_IMCR_I2C1_SDA = 718,
298 S32G_IMCR_I2C2_SCL = 719,
299 S32G_IMCR_I2C2_SDA = 720,
300 S32G_IMCR_I2C3_SCL = 721,
301 S32G_IMCR_I2C3_SDA = 722,
302 S32G_IMCR_I2C4_SCL = 723,
303 S32G_IMCR_I2C4_SDA = 724,
304 S32G_IMCR_LIN1_RX = 736,
305 S32G_IMCR_LIN2_RX = 737,
306 S32G_IMCR_DSPI0_PCS0 = 980,
307 S32G_IMCR_DSPI0_SCK = 981,
308 S32G_IMCR_DSPI0_SIN = 982,
309 S32G_IMCR_DSPI1_PCS0 = 985,
310 S32G_IMCR_DSPI1_SCK = 986,
311 S32G_IMCR_DSPI1_SIN = 987,
312 S32G_IMCR_DSPI2_PCS0 = 990,
313 S32G_IMCR_DSPI2_SCK = 991,
314 S32G_IMCR_DSPI2_SIN = 992,
315 S32G_IMCR_DSPI3_PCS0 = 995,
316 S32G_IMCR_DSPI3_SCK = 996,
317 S32G_IMCR_DSPI3_SIN = 997,
318 S32G_IMCR_DSPI4_PCS0 = 1000,
319 S32G_IMCR_DSPI4_SCK = 1001,
320 S32G_IMCR_DSPI4_SIN = 1002,
321 S32G_IMCR_DSPI5_PCS0 = 1005,
322 S32G_IMCR_DSPI5_SCK = 1006,
323 S32G_IMCR_DSPI5_SIN = 1007,
324 S32G_IMCR_LLCE_CAN0_RXD = 745,
325 S32G_IMCR_LLCE_CAN1_RXD = 746,
326 S32G_IMCR_LLCE_CAN2_RXD = 747,
327 S32G_IMCR_LLCE_CAN3_RXD = 748,
328 S32G_IMCR_LLCE_CAN4_RXD = 749,
329 S32G_IMCR_LLCE_CAN5_RXD = 750,
330 S32G_IMCR_LLCE_CAN6_RXD = 751,
331 S32G_IMCR_LLCE_CAN7_RXD = 752,
332 S32G_IMCR_LLCE_CAN8_RXD = 753,
333 S32G_IMCR_LLCE_CAN9_RXD = 754,
334 S32G_IMCR_LLCE_CAN10_RXD = 755,
335 S32G_IMCR_LLCE_CAN11_RXD = 756,
336 S32G_IMCR_LLCE_CAN12_RXD = 757,
337 S32G_IMCR_LLCE_CAN13_RXD = 758,
338 S32G_IMCR_LLCE_CAN14_RXD = 759,
339 S32G_IMCR_LLCE_CAN15_RXD = 760,
340 S32G_IMCR_LLCE_UART0_RXD = 790,
341 S32G_IMCR_LLCE_UART1_RXD = 791,
342 S32G_IMCR_LLCE_UART2_RXD = 792,
343 S32G_IMCR_LLCE_UART3_RXD = 793,
344 S32G_IMCR_LLCE_LPSPI2_PCS0 = 811,
345 S32G_IMCR_LLCE_LPSPI2_SCK = 816,
346 S32G_IMCR_LLCE_LPSPI2_SIN = 817,
347 S32G_IMCR_USB_CLK = 895,
348 S32G_IMCR_USB_DATA0 = 896,
349 S32G_IMCR_USB_DATA1 = 897,
350 S32G_IMCR_USB_DATA2 = 898,
351 S32G_IMCR_USB_DATA3 = 899,
352 S32G_IMCR_USB_DATA4 = 900,
353 S32G_IMCR_USB_DATA5 = 901,
354 S32G_IMCR_USB_DATA6 = 902,
355 S32G_IMCR_USB_DATA7 = 903,
356 S32G_IMCR_USB_DIR = 904,
357 S32G_IMCR_USB_NXT = 905,
358
359 S32G_IMCR_SIUL_EIRQ0 = 910,
360 S32G_IMCR_SIUL_EIRQ1 = 911,
361 S32G_IMCR_SIUL_EIRQ2 = 912,
362 S32G_IMCR_SIUL_EIRQ3 = 913,
363 S32G_IMCR_SIUL_EIRQ4 = 914,
364 S32G_IMCR_SIUL_EIRQ5 = 915,
365 S32G_IMCR_SIUL_EIRQ6 = 916,
366 S32G_IMCR_SIUL_EIRQ7 = 917,
367 S32G_IMCR_SIUL_EIRQ8 = 918,
368 S32G_IMCR_SIUL_EIRQ9 = 919,
369 S32G_IMCR_SIUL_EIRQ10 = 920,
370 S32G_IMCR_SIUL_EIRQ11 = 921,
371 S32G_IMCR_SIUL_EIRQ12 = 922,
372 S32G_IMCR_SIUL_EIRQ13 = 923,
373 S32G_IMCR_SIUL_EIRQ14 = 924,
374 S32G_IMCR_SIUL_EIRQ15 = 925,
375 S32G_IMCR_SIUL_EIRQ16 = 926,
376 S32G_IMCR_SIUL_EIRQ17 = 927,
377 S32G_IMCR_SIUL_EIRQ18 = 928,
378 S32G_IMCR_SIUL_EIRQ19 = 929,
379 S32G_IMCR_SIUL_EIRQ20 = 930,
380 S32G_IMCR_SIUL_EIRQ21 = 931,
381 S32G_IMCR_SIUL_EIRQ22 = 932,
382 S32G_IMCR_SIUL_EIRQ23 = 933,
383 S32G_IMCR_SIUL_EIRQ24 = 934,
384 S32G_IMCR_SIUL_EIRQ25 = 935,
385 S32G_IMCR_SIUL_EIRQ26 = 936,
386 S32G_IMCR_SIUL_EIRQ27 = 937,
387 S32G_IMCR_SIUL_EIRQ28 = 938,
388 S32G_IMCR_SIUL_EIRQ29 = 939,
389 S32G_IMCR_SIUL_EIRQ30 = 940,
390 S32G_IMCR_SIUL_EIRQ31 = 941,
391 };
392
393 /* Pad names for the pinmux subsystem */
394 static const struct pinctrl_pin_desc s32_pinctrl_pads_siul2[] = {
395
396 /* SIUL2_0 pins. */
397
398 S32_PINCTRL_PIN(S32G_MSCR_PA_00),
399 S32_PINCTRL_PIN(S32G_MSCR_PA_01),
400 S32_PINCTRL_PIN(S32G_MSCR_PA_02),
401 S32_PINCTRL_PIN(S32G_MSCR_PA_03),
402 S32_PINCTRL_PIN(S32G_MSCR_PA_04),
403 S32_PINCTRL_PIN(S32G_MSCR_PA_05),
404 S32_PINCTRL_PIN(S32G_MSCR_PA_06),
405 S32_PINCTRL_PIN(S32G_MSCR_PA_07),
406 S32_PINCTRL_PIN(S32G_MSCR_PA_08),
407 S32_PINCTRL_PIN(S32G_MSCR_PA_09),
408 S32_PINCTRL_PIN(S32G_MSCR_PA_10),
409 S32_PINCTRL_PIN(S32G_MSCR_PA_11),
410 S32_PINCTRL_PIN(S32G_MSCR_PA_12),
411 S32_PINCTRL_PIN(S32G_MSCR_PA_13),
412 S32_PINCTRL_PIN(S32G_MSCR_PA_14),
413 S32_PINCTRL_PIN(S32G_MSCR_PA_15),
414 S32_PINCTRL_PIN(S32G_MSCR_PB_00),
415 S32_PINCTRL_PIN(S32G_MSCR_PB_01),
416 S32_PINCTRL_PIN(S32G_MSCR_PB_02),
417 S32_PINCTRL_PIN(S32G_MSCR_PB_03),
418 S32_PINCTRL_PIN(S32G_MSCR_PB_04),
419 S32_PINCTRL_PIN(S32G_MSCR_PB_05),
420 S32_PINCTRL_PIN(S32G_MSCR_PB_06),
421 S32_PINCTRL_PIN(S32G_MSCR_PB_07),
422 S32_PINCTRL_PIN(S32G_MSCR_PB_08),
423 S32_PINCTRL_PIN(S32G_MSCR_PB_09),
424 S32_PINCTRL_PIN(S32G_MSCR_PB_10),
425 S32_PINCTRL_PIN(S32G_MSCR_PB_11),
426 S32_PINCTRL_PIN(S32G_MSCR_PB_12),
427 S32_PINCTRL_PIN(S32G_MSCR_PB_13),
428 S32_PINCTRL_PIN(S32G_MSCR_PB_14),
429 S32_PINCTRL_PIN(S32G_MSCR_PB_15),
430 S32_PINCTRL_PIN(S32G_MSCR_PC_00),
431 S32_PINCTRL_PIN(S32G_MSCR_PC_01),
432 S32_PINCTRL_PIN(S32G_MSCR_PC_02),
433 S32_PINCTRL_PIN(S32G_MSCR_PC_03),
434 S32_PINCTRL_PIN(S32G_MSCR_PC_04),
435 S32_PINCTRL_PIN(S32G_MSCR_PC_05),
436 S32_PINCTRL_PIN(S32G_MSCR_PC_06),
437 S32_PINCTRL_PIN(S32G_MSCR_PC_07),
438 S32_PINCTRL_PIN(S32G_MSCR_PC_08),
439 S32_PINCTRL_PIN(S32G_MSCR_PC_09),
440 S32_PINCTRL_PIN(S32G_MSCR_PC_10),
441 S32_PINCTRL_PIN(S32G_MSCR_PC_11),
442 S32_PINCTRL_PIN(S32G_MSCR_PC_12),
443 S32_PINCTRL_PIN(S32G_MSCR_PC_13),
444 S32_PINCTRL_PIN(S32G_MSCR_PC_14),
445 S32_PINCTRL_PIN(S32G_MSCR_PC_15),
446 S32_PINCTRL_PIN(S32G_MSCR_PD_00),
447 S32_PINCTRL_PIN(S32G_MSCR_PD_01),
448 S32_PINCTRL_PIN(S32G_MSCR_PD_02),
449 S32_PINCTRL_PIN(S32G_MSCR_PD_03),
450 S32_PINCTRL_PIN(S32G_MSCR_PD_04),
451 S32_PINCTRL_PIN(S32G_MSCR_PD_05),
452 S32_PINCTRL_PIN(S32G_MSCR_PD_06),
453 S32_PINCTRL_PIN(S32G_MSCR_PD_07),
454 S32_PINCTRL_PIN(S32G_MSCR_PD_08),
455 S32_PINCTRL_PIN(S32G_MSCR_PD_09),
456 S32_PINCTRL_PIN(S32G_MSCR_PD_10),
457 S32_PINCTRL_PIN(S32G_MSCR_PD_11),
458 S32_PINCTRL_PIN(S32G_MSCR_PD_12),
459 S32_PINCTRL_PIN(S32G_MSCR_PD_13),
460 S32_PINCTRL_PIN(S32G_MSCR_PD_14),
461 S32_PINCTRL_PIN(S32G_MSCR_PD_15),
462 S32_PINCTRL_PIN(S32G_MSCR_PE_00),
463 S32_PINCTRL_PIN(S32G_MSCR_PE_01),
464 S32_PINCTRL_PIN(S32G_MSCR_PE_02),
465 S32_PINCTRL_PIN(S32G_MSCR_PE_03),
466 S32_PINCTRL_PIN(S32G_MSCR_PE_04),
467 S32_PINCTRL_PIN(S32G_MSCR_PE_05),
468 S32_PINCTRL_PIN(S32G_MSCR_PE_06),
469 S32_PINCTRL_PIN(S32G_MSCR_PE_07),
470 S32_PINCTRL_PIN(S32G_MSCR_PE_08),
471 S32_PINCTRL_PIN(S32G_MSCR_PE_09),
472 S32_PINCTRL_PIN(S32G_MSCR_PE_10),
473 S32_PINCTRL_PIN(S32G_MSCR_PE_11),
474 S32_PINCTRL_PIN(S32G_MSCR_PE_12),
475 S32_PINCTRL_PIN(S32G_MSCR_PE_13),
476 S32_PINCTRL_PIN(S32G_MSCR_PE_14),
477 S32_PINCTRL_PIN(S32G_MSCR_PE_15),
478 S32_PINCTRL_PIN(S32G_MSCR_PF_00),
479 S32_PINCTRL_PIN(S32G_MSCR_PF_01),
480 S32_PINCTRL_PIN(S32G_MSCR_PF_02),
481 S32_PINCTRL_PIN(S32G_MSCR_PF_03),
482 S32_PINCTRL_PIN(S32G_MSCR_PF_04),
483 S32_PINCTRL_PIN(S32G_MSCR_PF_05),
484 S32_PINCTRL_PIN(S32G_MSCR_PF_06),
485 S32_PINCTRL_PIN(S32G_MSCR_PF_07),
486 S32_PINCTRL_PIN(S32G_MSCR_PF_08),
487 S32_PINCTRL_PIN(S32G_MSCR_PF_09),
488 S32_PINCTRL_PIN(S32G_MSCR_PF_10),
489 S32_PINCTRL_PIN(S32G_MSCR_PF_11),
490 S32_PINCTRL_PIN(S32G_MSCR_PF_12),
491 S32_PINCTRL_PIN(S32G_MSCR_PF_13),
492 S32_PINCTRL_PIN(S32G_MSCR_PF_14),
493 S32_PINCTRL_PIN(S32G_MSCR_PF_15),
494 S32_PINCTRL_PIN(S32G_MSCR_PG_00),
495 S32_PINCTRL_PIN(S32G_MSCR_PG_01),
496 S32_PINCTRL_PIN(S32G_MSCR_PG_02),
497 S32_PINCTRL_PIN(S32G_MSCR_PG_03),
498 S32_PINCTRL_PIN(S32G_MSCR_PG_04),
499 S32_PINCTRL_PIN(S32G_MSCR_PG_05),
500
501 S32_PINCTRL_PIN(S32G_IMCR_QSPI_A_DATA0),
502 S32_PINCTRL_PIN(S32G_IMCR_QSPI_A_DATA1),
503 S32_PINCTRL_PIN(S32G_IMCR_QSPI_A_DATA2),
504 S32_PINCTRL_PIN(S32G_IMCR_QSPI_A_DATA3),
505 S32_PINCTRL_PIN(S32G_IMCR_QSPI_A_DATA4),
506 S32_PINCTRL_PIN(S32G_IMCR_QSPI_A_DATA5),
507 S32_PINCTRL_PIN(S32G_IMCR_QSPI_A_DATA6),
508 S32_PINCTRL_PIN(S32G_IMCR_QSPI_A_DATA7),
509 S32_PINCTRL_PIN(S32G_IMCR_QSPI_DQS_A),
510 S32_PINCTRL_PIN(S32G_IMCR_QSPI_B_DATA0),
511 S32_PINCTRL_PIN(S32G_IMCR_QSPI_B_DATA1),
512 S32_PINCTRL_PIN(S32G_IMCR_QSPI_B_DATA2),
513 S32_PINCTRL_PIN(S32G_IMCR_QSPI_B_DATA3),
514 S32_PINCTRL_PIN(S32G_IMCR_QSPI_B_DATA4),
515 S32_PINCTRL_PIN(S32G_IMCR_QSPI_B_DATA5),
516 S32_PINCTRL_PIN(S32G_IMCR_QSPI_B_DATA6),
517 S32_PINCTRL_PIN(S32G_IMCR_QSPI_B_DATA7),
518 S32_PINCTRL_PIN(S32G_IMCR_QSPI_DQS_B),
519 S32_PINCTRL_PIN(S32G_IMCR_I2C0_SCL),
520 S32_PINCTRL_PIN(S32G_IMCR_I2C0_SDA),
521 S32_PINCTRL_PIN(S32G_IMCR_LIN0_RX),
522 S32_PINCTRL_PIN(S32G_IMCR_USDHC_CMD),
523 S32_PINCTRL_PIN(S32G_IMCR_USDHC_DAT0),
524 S32_PINCTRL_PIN(S32G_IMCR_USDHC_DAT1),
525 S32_PINCTRL_PIN(S32G_IMCR_USDHC_DAT2),
526 S32_PINCTRL_PIN(S32G_IMCR_USDHC_DAT3),
527 S32_PINCTRL_PIN(S32G_IMCR_USDHC_DAT4),
528 S32_PINCTRL_PIN(S32G_IMCR_USDHC_DAT5),
529 S32_PINCTRL_PIN(S32G_IMCR_USDHC_DAT6),
530 S32_PINCTRL_PIN(S32G_IMCR_USDHC_DAT7),
531 S32_PINCTRL_PIN(S32G_IMCR_USDHC_DQS),
532 S32_PINCTRL_PIN(S32G_IMCR_CAN0_RXD),
533
534 /* JTAG IMCRs */
535 S32_PINCTRL_PIN(S32G_IMCR_JTAG_TMS),
536 S32_PINCTRL_PIN(S32G_IMCR_JTAG_TCK),
537 S32_PINCTRL_PIN(S32G_IMCR_JTAG_TDI),
538
539 /* GMAC0 */
540 S32_PINCTRL_PIN(S32G_IMCR_Ethernet_MDIO),
541 S32_PINCTRL_PIN(S32G_IMCR_Ethernet_CRS),
542 S32_PINCTRL_PIN(S32G_IMCR_Ethernet_COL),
543 S32_PINCTRL_PIN(S32G_IMCR_Ethernet_RX_D0),
544 S32_PINCTRL_PIN(S32G_IMCR_Ethernet_RX_D1),
545 S32_PINCTRL_PIN(S32G_IMCR_Ethernet_RX_D2),
546 S32_PINCTRL_PIN(S32G_IMCR_Ethernet_RX_D3),
547 S32_PINCTRL_PIN(S32G_IMCR_Ethernet_RX_ER),
548 S32_PINCTRL_PIN(S32G_IMCR_Ethernet_RX_CLK),
549 S32_PINCTRL_PIN(S32G_IMCR_Ethernet_RX_DV),
550 S32_PINCTRL_PIN(S32G_IMCR_Ethernet_TX_CLK),
551 S32_PINCTRL_PIN(S32G_IMCR_Ethernet_REF_CLK),
552
553 /* SIUL2_1 pins. */
554
555 S32_PINCTRL_PIN(S32G_MSCR_PH_00),
556 S32_PINCTRL_PIN(S32G_MSCR_PH_01),
557 S32_PINCTRL_PIN(S32G_MSCR_PH_02),
558 S32_PINCTRL_PIN(S32G_MSCR_PH_03),
559 S32_PINCTRL_PIN(S32G_MSCR_PH_04),
560 S32_PINCTRL_PIN(S32G_MSCR_PH_05),
561 S32_PINCTRL_PIN(S32G_MSCR_PH_06),
562 S32_PINCTRL_PIN(S32G_MSCR_PH_07),
563 S32_PINCTRL_PIN(S32G_MSCR_PH_08),
564 S32_PINCTRL_PIN(S32G_MSCR_PH_09),
565 S32_PINCTRL_PIN(S32G_MSCR_PH_10),
566 S32_PINCTRL_PIN(S32G_MSCR_PJ_00),
567 S32_PINCTRL_PIN(S32G_MSCR_PJ_01),
568 S32_PINCTRL_PIN(S32G_MSCR_PJ_02),
569 S32_PINCTRL_PIN(S32G_MSCR_PJ_03),
570 S32_PINCTRL_PIN(S32G_MSCR_PJ_04),
571 S32_PINCTRL_PIN(S32G_MSCR_PJ_05),
572 S32_PINCTRL_PIN(S32G_MSCR_PJ_06),
573 S32_PINCTRL_PIN(S32G_MSCR_PJ_07),
574 S32_PINCTRL_PIN(S32G_MSCR_PJ_08),
575 S32_PINCTRL_PIN(S32G_MSCR_PJ_09),
576 S32_PINCTRL_PIN(S32G_MSCR_PJ_10),
577 S32_PINCTRL_PIN(S32G_MSCR_PJ_11),
578 S32_PINCTRL_PIN(S32G_MSCR_PJ_12),
579 S32_PINCTRL_PIN(S32G_MSCR_PJ_13),
580 S32_PINCTRL_PIN(S32G_MSCR_PJ_14),
581 S32_PINCTRL_PIN(S32G_MSCR_PJ_15),
582 S32_PINCTRL_PIN(S32G_MSCR_PK_00),
583 S32_PINCTRL_PIN(S32G_MSCR_PK_01),
584 S32_PINCTRL_PIN(S32G_MSCR_PK_02),
585 S32_PINCTRL_PIN(S32G_MSCR_PK_03),
586 S32_PINCTRL_PIN(S32G_MSCR_PK_04),
587 S32_PINCTRL_PIN(S32G_MSCR_PK_05),
588 S32_PINCTRL_PIN(S32G_MSCR_PK_06),
589 S32_PINCTRL_PIN(S32G_MSCR_PK_07),
590 S32_PINCTRL_PIN(S32G_MSCR_PK_08),
591 S32_PINCTRL_PIN(S32G_MSCR_PK_09),
592 S32_PINCTRL_PIN(S32G_MSCR_PK_10),
593 S32_PINCTRL_PIN(S32G_MSCR_PK_11),
594 S32_PINCTRL_PIN(S32G_MSCR_PK_12),
595 S32_PINCTRL_PIN(S32G_MSCR_PK_13),
596 S32_PINCTRL_PIN(S32G_MSCR_PK_14),
597 S32_PINCTRL_PIN(S32G_MSCR_PK_15),
598 S32_PINCTRL_PIN(S32G_MSCR_PL_00),
599 S32_PINCTRL_PIN(S32G_MSCR_PL_01),
600 S32_PINCTRL_PIN(S32G_MSCR_PL_02),
601 S32_PINCTRL_PIN(S32G_MSCR_PL_03),
602 S32_PINCTRL_PIN(S32G_MSCR_PL_04),
603 S32_PINCTRL_PIN(S32G_MSCR_PL_05),
604 S32_PINCTRL_PIN(S32G_MSCR_PL_06),
605 S32_PINCTRL_PIN(S32G_MSCR_PL_07),
606 S32_PINCTRL_PIN(S32G_MSCR_PL_08),
607 S32_PINCTRL_PIN(S32G_MSCR_PL_09),
608 S32_PINCTRL_PIN(S32G_MSCR_PL_10),
609 S32_PINCTRL_PIN(S32G_MSCR_PL_11),
610 S32_PINCTRL_PIN(S32G_MSCR_PL_12),
611 S32_PINCTRL_PIN(S32G_MSCR_PL_13),
612 S32_PINCTRL_PIN(S32G_MSCR_PL_14),
613
614 S32_PINCTRL_PIN(S32G_IMCR_FlexRay0_A_RX),
615 S32_PINCTRL_PIN(S32G_IMCR_FlexRay0_B_RX),
616 S32_PINCTRL_PIN(S32G_IMCR_FlexTimer0_CH0),
617 S32_PINCTRL_PIN(S32G_IMCR_FlexTimer1_CH0),
618 S32_PINCTRL_PIN(S32G_IMCR_FlexTimer0_CH1),
619 S32_PINCTRL_PIN(S32G_IMCR_FlexTimer1_CH1),
620 S32_PINCTRL_PIN(S32G_IMCR_FlexTimer0_CH2),
621 S32_PINCTRL_PIN(S32G_IMCR_FlexTimer1_CH2),
622 S32_PINCTRL_PIN(S32G_IMCR_FlexTimer0_CH3),
623 S32_PINCTRL_PIN(S32G_IMCR_FlexTimer1_CH3),
624 S32_PINCTRL_PIN(S32G_IMCR_FlexTimer0_CH4),
625 S32_PINCTRL_PIN(S32G_IMCR_FlexTimer1_CH4),
626 S32_PINCTRL_PIN(S32G_IMCR_FlexTimer0_CH5),
627 S32_PINCTRL_PIN(S32G_IMCR_FlexTimer1_CH5),
628 S32_PINCTRL_PIN(S32G_IMCR_FlexTimer0_EXTCLK),
629 S32_PINCTRL_PIN(S32G_IMCR_FlexTimer1_EXTCLK),
630 S32_PINCTRL_PIN(S32G_IMCR_I2C1_SCL),
631 S32_PINCTRL_PIN(S32G_IMCR_I2C1_SDA),
632 S32_PINCTRL_PIN(S32G_IMCR_I2C2_SCL),
633 S32_PINCTRL_PIN(S32G_IMCR_I2C2_SDA),
634 S32_PINCTRL_PIN(S32G_IMCR_I2C3_SCL),
635 S32_PINCTRL_PIN(S32G_IMCR_I2C3_SDA),
636 S32_PINCTRL_PIN(S32G_IMCR_I2C4_SCL),
637 S32_PINCTRL_PIN(S32G_IMCR_I2C4_SDA),
638 S32_PINCTRL_PIN(S32G_IMCR_LIN1_RX),
639 S32_PINCTRL_PIN(S32G_IMCR_LIN2_RX),
640 S32_PINCTRL_PIN(S32G_IMCR_DSPI0_PCS0),
641 S32_PINCTRL_PIN(S32G_IMCR_DSPI0_SCK),
642 S32_PINCTRL_PIN(S32G_IMCR_DSPI0_SIN),
643 S32_PINCTRL_PIN(S32G_IMCR_DSPI1_PCS0),
644 S32_PINCTRL_PIN(S32G_IMCR_DSPI1_SCK),
645 S32_PINCTRL_PIN(S32G_IMCR_DSPI1_SIN),
646 S32_PINCTRL_PIN(S32G_IMCR_DSPI2_PCS0),
647 S32_PINCTRL_PIN(S32G_IMCR_DSPI2_SCK),
648 S32_PINCTRL_PIN(S32G_IMCR_DSPI2_SIN),
649 S32_PINCTRL_PIN(S32G_IMCR_DSPI3_PCS0),
650 S32_PINCTRL_PIN(S32G_IMCR_DSPI3_SCK),
651 S32_PINCTRL_PIN(S32G_IMCR_DSPI3_SIN),
652 S32_PINCTRL_PIN(S32G_IMCR_DSPI4_PCS0),
653 S32_PINCTRL_PIN(S32G_IMCR_DSPI4_SCK),
654 S32_PINCTRL_PIN(S32G_IMCR_DSPI4_SIN),
655 S32_PINCTRL_PIN(S32G_IMCR_DSPI5_PCS0),
656 S32_PINCTRL_PIN(S32G_IMCR_DSPI5_SCK),
657 S32_PINCTRL_PIN(S32G_IMCR_DSPI5_SIN),
658 S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN0_RXD),
659 S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN1_RXD),
660 S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN2_RXD),
661 S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN3_RXD),
662 S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN4_RXD),
663 S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN5_RXD),
664 S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN6_RXD),
665 S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN7_RXD),
666 S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN8_RXD),
667 S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN9_RXD),
668 S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN10_RXD),
669 S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN11_RXD),
670 S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN12_RXD),
671 S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN13_RXD),
672 S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN14_RXD),
673 S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN15_RXD),
674 S32_PINCTRL_PIN(S32G_IMCR_LLCE_UART0_RXD),
675 S32_PINCTRL_PIN(S32G_IMCR_LLCE_UART1_RXD),
676 S32_PINCTRL_PIN(S32G_IMCR_LLCE_UART2_RXD),
677 S32_PINCTRL_PIN(S32G_IMCR_LLCE_UART3_RXD),
678 S32_PINCTRL_PIN(S32G_IMCR_LLCE_LPSPI2_PCS0),
679 S32_PINCTRL_PIN(S32G_IMCR_LLCE_LPSPI2_SCK),
680 S32_PINCTRL_PIN(S32G_IMCR_LLCE_LPSPI2_SIN),
681 S32_PINCTRL_PIN(S32G_IMCR_CAN1_RXD),
682 S32_PINCTRL_PIN(S32G_IMCR_CAN2_RXD),
683 S32_PINCTRL_PIN(S32G_IMCR_CAN3_RXD),
684 S32_PINCTRL_PIN(S32G_IMCR_USB_CLK),
685 S32_PINCTRL_PIN(S32G_IMCR_USB_DATA0),
686 S32_PINCTRL_PIN(S32G_IMCR_USB_DATA1),
687 S32_PINCTRL_PIN(S32G_IMCR_USB_DATA2),
688 S32_PINCTRL_PIN(S32G_IMCR_USB_DATA3),
689 S32_PINCTRL_PIN(S32G_IMCR_USB_DATA4),
690 S32_PINCTRL_PIN(S32G_IMCR_USB_DATA5),
691 S32_PINCTRL_PIN(S32G_IMCR_USB_DATA6),
692 S32_PINCTRL_PIN(S32G_IMCR_USB_DATA7),
693 S32_PINCTRL_PIN(S32G_IMCR_USB_DIR),
694 S32_PINCTRL_PIN(S32G_IMCR_USB_NXT),
695 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_MDIO),
696 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_CRS),
697 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_COL),
698 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_D0),
699 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_D1),
700 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_D2),
701 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_D3),
702 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_ER),
703 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_CLK),
704 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_DV),
705 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_TX_CLK),
706 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_REF_CLK),
707 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_MDIO),
708 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_CRS),
709 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_COL),
710 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_RX_D0),
711 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_RX_D1),
712 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_RX_D2),
713 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_RX_D3),
714 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_RX_ER),
715 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_RX_CLK),
716 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_RX_DV),
717 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_TX_CLK),
718 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_REF_CLK),
719 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_2_MDIO),
720 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_2_CRS),
721 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_2_COL),
722 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_2_RX_D0),
723 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_2_RX_D1),
724 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_2_RX_D2),
725 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_2_RX_D3),
726 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_2_RX_ER),
727 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_2_RX_CLK),
728 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_2_RX_DV),
729 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_2_TX_CLK),
730 S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_2_REF_CLK),
731 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ0),
732 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ1),
733 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ2),
734 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ3),
735 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ4),
736 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ5),
737 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ6),
738 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ7),
739 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ8),
740 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ9),
741 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ10),
742 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ11),
743 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ12),
744 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ13),
745 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ14),
746 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ15),
747 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ16),
748 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ17),
749 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ18),
750 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ19),
751 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ20),
752 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ21),
753 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ22),
754 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ23),
755 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ24),
756 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ25),
757 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ26),
758 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ27),
759 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ28),
760 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ29),
761 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ30),
762 S32_PINCTRL_PIN(S32G_IMCR_SIUL_EIRQ31),
763 };
764
765 static const struct s32_pin_range s32_pin_ranges_siul2[] = {
766 /* MSCR pin ID ranges */
767 S32_PIN_RANGE(0, 101),
768 S32_PIN_RANGE(112, 122),
769 S32_PIN_RANGE(144, 190),
770 /* IMCR pin ID ranges */
771 S32_PIN_RANGE(512, 595),
772 S32_PIN_RANGE(631, 909),
773 S32_PIN_RANGE(942, 1007),
774 };
775
776 static const struct s32_pinctrl_soc_data s32_pinctrl_data = {
777 .pins = s32_pinctrl_pads_siul2,
778 .npins = ARRAY_SIZE(s32_pinctrl_pads_siul2),
779 .mem_pin_ranges = s32_pin_ranges_siul2,
780 .mem_regions = ARRAY_SIZE(s32_pin_ranges_siul2),
781 };
782
783 static const struct of_device_id s32_pinctrl_of_match[] = {
784 {
785 .compatible = "nxp,s32g2-siul2-pinctrl",
786 .data = &s32_pinctrl_data,
787 },
788 { /* sentinel */ }
789 };
790 MODULE_DEVICE_TABLE(of, s32_pinctrl_of_match);
791
s32g_pinctrl_probe(struct platform_device * pdev)792 static int s32g_pinctrl_probe(struct platform_device *pdev)
793 {
794 const struct s32_pinctrl_soc_data *soc_data;
795
796 soc_data = of_device_get_match_data(&pdev->dev);
797
798 return s32_pinctrl_probe(pdev, soc_data);
799 }
800
801 static const struct dev_pm_ops s32g_pinctrl_pm_ops = {
802 LATE_SYSTEM_SLEEP_PM_OPS(s32_pinctrl_suspend, s32_pinctrl_resume)
803 };
804
805 static struct platform_driver s32g_pinctrl_driver = {
806 .driver = {
807 .name = "s32g-siul2-pinctrl",
808 .of_match_table = s32_pinctrl_of_match,
809 .pm = pm_sleep_ptr(&s32g_pinctrl_pm_ops),
810 .suppress_bind_attrs = true,
811 },
812 .probe = s32g_pinctrl_probe,
813 };
814 builtin_platform_driver(s32g_pinctrl_driver);
815
816 MODULE_AUTHOR("Matthew Nunez <matthew.nunez@nxp.com>");
817 MODULE_DESCRIPTION("NXP S32G pinctrl driver");
818 MODULE_LICENSE("GPL");
819