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