1*debc8b0bSGiulio Benetti // SPDX-License-Identifier: GPL-2.0 2*debc8b0bSGiulio Benetti /* 3*debc8b0bSGiulio Benetti * Copyright (C) 2020 4*debc8b0bSGiulio Benetti * Author(s): Giulio Benetti <giulio.benetti@benettiengineering.com> 5*debc8b0bSGiulio Benetti */ 6*debc8b0bSGiulio Benetti 7*debc8b0bSGiulio Benetti #include <linux/err.h> 8*debc8b0bSGiulio Benetti #include <linux/init.h> 9*debc8b0bSGiulio Benetti #include <linux/of_device.h> 10*debc8b0bSGiulio Benetti #include <linux/pinctrl/pinctrl.h> 11*debc8b0bSGiulio Benetti #include <linux/platform_device.h> 12*debc8b0bSGiulio Benetti 13*debc8b0bSGiulio Benetti #include "pinctrl-imx.h" 14*debc8b0bSGiulio Benetti 15*debc8b0bSGiulio Benetti enum imxrt1050_pads { 16*debc8b0bSGiulio Benetti IMXRT1050_PAD_RESERVE0 = 0, 17*debc8b0bSGiulio Benetti IMXRT1050_PAD_RESERVE1 = 1, 18*debc8b0bSGiulio Benetti IMXRT1050_PAD_RESERVE2 = 2, 19*debc8b0bSGiulio Benetti IMXRT1050_PAD_RESERVE3 = 3, 20*debc8b0bSGiulio Benetti IMXRT1050_PAD_RESERVE4 = 4, 21*debc8b0bSGiulio Benetti IMXRT1050_PAD_RESERVE5 = 5, 22*debc8b0bSGiulio Benetti IMXRT1050_PAD_RESERVE6 = 6, 23*debc8b0bSGiulio Benetti IMXRT1050_PAD_RESERVE7 = 7, 24*debc8b0bSGiulio Benetti IMXRT1050_PAD_RESERVE8 = 8, 25*debc8b0bSGiulio Benetti IMXRT1050_PAD_RESERVE9 = 9, 26*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_GPIO1_IO00 = 10, 27*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_GPIO1_IO01 = 11, 28*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_GPIO1_IO02 = 12, 29*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_GPIO1_IO03 = 13, 30*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_GPIO1_IO04 = 14, 31*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_GPIO1_IO05 = 15, 32*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_GPIO1_IO06 = 16, 33*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_GPIO1_IO07 = 17, 34*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_GPIO1_IO08 = 18, 35*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_GPIO1_IO09 = 19, 36*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_GPIO1_IO10 = 20, 37*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_GPIO1_IO11 = 21, 38*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_GPIO1_IO12 = 22, 39*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_GPIO1_IO13 = 23, 40*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_GPIO1_IO14 = 24, 41*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_GPIO1_IO15 = 25, 42*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ENET_MDC = 26, 43*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ENET_MDIO = 27, 44*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ENET_TD3 = 28, 45*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ENET_TD2 = 29, 46*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ENET_TD1 = 30, 47*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ENET_TD0 = 31, 48*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ENET_TX_CTL = 32, 49*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ENET_TXC = 33, 50*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ENET_RX_CTL = 34, 51*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ENET_RXC = 35, 52*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ENET_RD0 = 36, 53*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ENET_RD1 = 37, 54*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ENET_RD2 = 38, 55*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ENET_RD3 = 39, 56*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD1_CLK = 40, 57*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD1_CMD = 41, 58*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD1_DATA0 = 42, 59*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD1_DATA1 = 43, 60*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD1_DATA2 = 44, 61*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD1_DATA3 = 45, 62*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD1_DATA4 = 46, 63*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD1_DATA5 = 47, 64*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD1_DATA6 = 48, 65*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD1_DATA7 = 49, 66*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD1_RESET_B = 50, 67*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD1_STROBE = 51, 68*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD2_CD_B = 52, 69*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD2_CLK = 53, 70*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD2_CMD = 54, 71*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD2_DATA0 = 55, 72*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD2_DATA1 = 56, 73*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD2_DATA2 = 57, 74*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD2_DATA3 = 58, 75*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD2_RESET_B = 59, 76*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SD2_WP = 60, 77*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_ALE = 61, 78*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_CE0 = 62, 79*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_CE1 = 63, 80*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_CE2 = 64, 81*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_CE3 = 65, 82*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_CLE = 66, 83*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_DATA00 = 67, 84*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_DATA01 = 68, 85*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_DATA02 = 69, 86*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_DATA03 = 70, 87*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_DATA04 = 71, 88*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_DATA05 = 72, 89*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_DATA06 = 73, 90*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_DATA07 = 74, 91*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_DQS = 75, 92*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_RE_B = 76, 93*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_READY_B = 77, 94*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_WE_B = 78, 95*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_NAND_WP_B = 79, 96*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI5_RXFS = 80, 97*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI5_RXC = 81, 98*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI5_RXD0 = 82, 99*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI5_RXD1 = 83, 100*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI5_RXD2 = 84, 101*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI5_RXD3 = 85, 102*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI5_MCLK = 86, 103*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_RXFS = 87, 104*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_RXC = 88, 105*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_RXD0 = 89, 106*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_RXD1 = 90, 107*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_RXD2 = 91, 108*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_RXD3 = 92, 109*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_RXD4 = 93, 110*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_RXD5 = 94, 111*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_RXD6 = 95, 112*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_RXD7 = 96, 113*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_TXFS = 97, 114*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_TXC = 98, 115*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_TXD0 = 99, 116*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_TXD1 = 100, 117*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_TXD2 = 101, 118*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_TXD3 = 102, 119*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_TXD4 = 103, 120*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_TXD5 = 104, 121*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_TXD6 = 105, 122*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_TXD7 = 106, 123*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI1_MCLK = 107, 124*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI2_RXFS = 108, 125*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI2_RXC = 109, 126*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI2_RXD0 = 110, 127*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI2_TXFS = 111, 128*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI2_TXC = 112, 129*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI2_TXD0 = 113, 130*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI2_MCLK = 114, 131*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI3_RXFS = 115, 132*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI3_RXC = 116, 133*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI3_RXD = 117, 134*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI3_TXFS = 118, 135*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI3_TXC = 119, 136*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI3_TXD = 120, 137*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SAI3_MCLK = 121, 138*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SPDIF_TX = 122, 139*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SPDIF_RX = 123, 140*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_SPDIF_EXT_CLK = 124, 141*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ECSPI1_SCLK = 125, 142*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ECSPI1_MOSI = 126, 143*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ECSPI1_MISO = 127, 144*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ECSPI1_SS0 = 128, 145*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ECSPI2_SCLK = 129, 146*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ECSPI2_MOSI = 130, 147*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ECSPI2_MISO = 131, 148*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_ECSPI2_SS0 = 132, 149*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_I2C1_SCL = 133, 150*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_I2C1_SDA = 134, 151*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_I2C2_SCL = 135, 152*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_I2C2_SDA = 136, 153*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_I2C3_SCL = 137, 154*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_I2C3_SDA = 138, 155*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_I2C4_SCL = 139, 156*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_I2C4_SDA = 140, 157*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_UART1_RXD = 141, 158*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_UART1_TXD = 142, 159*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_UART2_RXD = 143, 160*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_UART2_TXD = 144, 161*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_UART3_RXD = 145, 162*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_UART3_TXD = 146, 163*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_UART4_RXD = 147, 164*debc8b0bSGiulio Benetti IMXRT1050_IOMUXC_UART4_TXD = 148, 165*debc8b0bSGiulio Benetti }; 166*debc8b0bSGiulio Benetti 167*debc8b0bSGiulio Benetti /* Pad names for the pinmux subsystem */ 168*debc8b0bSGiulio Benetti static const struct pinctrl_pin_desc imxrt1050_pinctrl_pads[] = { 169*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_PAD_RESERVE0), 170*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_PAD_RESERVE1), 171*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_PAD_RESERVE2), 172*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_PAD_RESERVE3), 173*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_PAD_RESERVE4), 174*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_PAD_RESERVE5), 175*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_PAD_RESERVE6), 176*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_PAD_RESERVE7), 177*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_PAD_RESERVE8), 178*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_PAD_RESERVE9), 179*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_GPIO1_IO00), 180*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_GPIO1_IO01), 181*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_GPIO1_IO02), 182*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_GPIO1_IO03), 183*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_GPIO1_IO04), 184*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_GPIO1_IO05), 185*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_GPIO1_IO06), 186*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_GPIO1_IO07), 187*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_GPIO1_IO08), 188*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_GPIO1_IO09), 189*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_GPIO1_IO10), 190*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_GPIO1_IO11), 191*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_GPIO1_IO12), 192*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_GPIO1_IO13), 193*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_GPIO1_IO14), 194*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_GPIO1_IO15), 195*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ENET_MDC), 196*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ENET_MDIO), 197*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ENET_TD3), 198*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ENET_TD2), 199*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ENET_TD1), 200*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ENET_TD0), 201*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ENET_TX_CTL), 202*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ENET_TXC), 203*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ENET_RX_CTL), 204*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ENET_RXC), 205*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ENET_RD0), 206*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ENET_RD1), 207*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ENET_RD2), 208*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ENET_RD3), 209*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD1_CLK), 210*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD1_CMD), 211*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD1_DATA0), 212*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD1_DATA1), 213*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD1_DATA2), 214*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD1_DATA3), 215*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD1_DATA4), 216*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD1_DATA5), 217*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD1_DATA6), 218*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD1_DATA7), 219*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD1_RESET_B), 220*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD1_STROBE), 221*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD2_CD_B), 222*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD2_CLK), 223*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD2_CMD), 224*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD2_DATA0), 225*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD2_DATA1), 226*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD2_DATA2), 227*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD2_DATA3), 228*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD2_RESET_B), 229*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SD2_WP), 230*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_ALE), 231*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_CE0), 232*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_CE1), 233*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_CE2), 234*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_CE3), 235*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_CLE), 236*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_DATA00), 237*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_DATA01), 238*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_DATA02), 239*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_DATA03), 240*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_DATA04), 241*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_DATA05), 242*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_DATA06), 243*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_DATA07), 244*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_DQS), 245*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_RE_B), 246*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_READY_B), 247*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_WE_B), 248*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_NAND_WP_B), 249*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI5_RXFS), 250*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI5_RXC), 251*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI5_RXD0), 252*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI5_RXD1), 253*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI5_RXD2), 254*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI5_RXD3), 255*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI5_MCLK), 256*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_RXFS), 257*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_RXC), 258*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_RXD0), 259*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_RXD1), 260*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_RXD2), 261*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_RXD3), 262*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_RXD4), 263*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_RXD5), 264*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_RXD6), 265*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_RXD7), 266*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_TXFS), 267*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_TXC), 268*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_TXD0), 269*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_TXD1), 270*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_TXD2), 271*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_TXD3), 272*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_TXD4), 273*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_TXD5), 274*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_TXD6), 275*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_TXD7), 276*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI1_MCLK), 277*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI2_RXFS), 278*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI2_RXC), 279*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI2_RXD0), 280*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI2_TXFS), 281*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI2_TXC), 282*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI2_TXD0), 283*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI2_MCLK), 284*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI3_RXFS), 285*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI3_RXC), 286*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI3_RXD), 287*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI3_TXFS), 288*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI3_TXC), 289*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI3_TXD), 290*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SAI3_MCLK), 291*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SPDIF_TX), 292*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SPDIF_RX), 293*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_SPDIF_EXT_CLK), 294*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ECSPI1_SCLK), 295*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ECSPI1_MOSI), 296*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ECSPI1_MISO), 297*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ECSPI1_SS0), 298*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ECSPI2_SCLK), 299*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ECSPI2_MOSI), 300*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ECSPI2_MISO), 301*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_ECSPI2_SS0), 302*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_I2C1_SCL), 303*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_I2C1_SDA), 304*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_I2C2_SCL), 305*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_I2C2_SDA), 306*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_I2C3_SCL), 307*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_I2C3_SDA), 308*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_I2C4_SCL), 309*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_I2C4_SDA), 310*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_UART1_RXD), 311*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_UART1_TXD), 312*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_UART2_RXD), 313*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_UART2_TXD), 314*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_UART3_RXD), 315*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_UART3_TXD), 316*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_UART4_RXD), 317*debc8b0bSGiulio Benetti IMX_PINCTRL_PIN(IMXRT1050_IOMUXC_UART4_TXD), 318*debc8b0bSGiulio Benetti }; 319*debc8b0bSGiulio Benetti 320*debc8b0bSGiulio Benetti static const struct imx_pinctrl_soc_info imxrt1050_pinctrl_info = { 321*debc8b0bSGiulio Benetti .pins = imxrt1050_pinctrl_pads, 322*debc8b0bSGiulio Benetti .npins = ARRAY_SIZE(imxrt1050_pinctrl_pads), 323*debc8b0bSGiulio Benetti .gpr_compatible = "fsl,imxrt1050-iomuxc-gpr", 324*debc8b0bSGiulio Benetti }; 325*debc8b0bSGiulio Benetti 326*debc8b0bSGiulio Benetti static const struct of_device_id imxrt1050_pinctrl_of_match[] = { 327*debc8b0bSGiulio Benetti { .compatible = "fsl,imxrt1050-iomuxc", .data = &imxrt1050_pinctrl_info, }, 328*debc8b0bSGiulio Benetti { /* sentinel */ } 329*debc8b0bSGiulio Benetti }; 330*debc8b0bSGiulio Benetti 331*debc8b0bSGiulio Benetti static int imxrt1050_pinctrl_probe(struct platform_device *pdev) 332*debc8b0bSGiulio Benetti { 333*debc8b0bSGiulio Benetti return imx_pinctrl_probe(pdev, &imxrt1050_pinctrl_info); 334*debc8b0bSGiulio Benetti } 335*debc8b0bSGiulio Benetti 336*debc8b0bSGiulio Benetti static struct platform_driver imxrt1050_pinctrl_driver = { 337*debc8b0bSGiulio Benetti .driver = { 338*debc8b0bSGiulio Benetti .name = "imxrt1050-pinctrl", 339*debc8b0bSGiulio Benetti .of_match_table = of_match_ptr(imxrt1050_pinctrl_of_match), 340*debc8b0bSGiulio Benetti .suppress_bind_attrs = true, 341*debc8b0bSGiulio Benetti }, 342*debc8b0bSGiulio Benetti .probe = imxrt1050_pinctrl_probe, 343*debc8b0bSGiulio Benetti }; 344*debc8b0bSGiulio Benetti 345*debc8b0bSGiulio Benetti static int __init imxrt1050_pinctrl_init(void) 346*debc8b0bSGiulio Benetti { 347*debc8b0bSGiulio Benetti return platform_driver_register(&imxrt1050_pinctrl_driver); 348*debc8b0bSGiulio Benetti } 349*debc8b0bSGiulio Benetti arch_initcall(imxrt1050_pinctrl_init); 350