335 lines · c
1// SPDX-License-Identifier: GPL-2.0+2/*3 * Copyright (C) 2016 Freescale Semiconductor, Inc.4 * Copyright 2017~2018 NXP5 * Dong Aisheng <aisheng.dong@nxp.com>6 */7 8#include <dt-bindings/pinctrl/pads-imx8qm.h>9#include <linux/err.h>10#include <linux/firmware/imx/sci.h>11#include <linux/init.h>12#include <linux/module.h>13#include <linux/of.h>14#include <linux/pinctrl/pinctrl.h>15#include <linux/platform_device.h>16 17#include "pinctrl-imx.h"18 19static const struct pinctrl_pin_desc imx8qm_pinctrl_pads[] = {20 IMX_PINCTRL_PIN(IMX8QM_SIM0_CLK),21 IMX_PINCTRL_PIN(IMX8QM_SIM0_RST),22 IMX_PINCTRL_PIN(IMX8QM_SIM0_IO),23 IMX_PINCTRL_PIN(IMX8QM_SIM0_PD),24 IMX_PINCTRL_PIN(IMX8QM_SIM0_POWER_EN),25 IMX_PINCTRL_PIN(IMX8QM_SIM0_GPIO0_00),26 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_SIM),27 IMX_PINCTRL_PIN(IMX8QM_M40_I2C0_SCL),28 IMX_PINCTRL_PIN(IMX8QM_M40_I2C0_SDA),29 IMX_PINCTRL_PIN(IMX8QM_M40_GPIO0_00),30 IMX_PINCTRL_PIN(IMX8QM_M40_GPIO0_01),31 IMX_PINCTRL_PIN(IMX8QM_M41_I2C0_SCL),32 IMX_PINCTRL_PIN(IMX8QM_M41_I2C0_SDA),33 IMX_PINCTRL_PIN(IMX8QM_M41_GPIO0_00),34 IMX_PINCTRL_PIN(IMX8QM_M41_GPIO0_01),35 IMX_PINCTRL_PIN(IMX8QM_GPT0_CLK),36 IMX_PINCTRL_PIN(IMX8QM_GPT0_CAPTURE),37 IMX_PINCTRL_PIN(IMX8QM_GPT0_COMPARE),38 IMX_PINCTRL_PIN(IMX8QM_GPT1_CLK),39 IMX_PINCTRL_PIN(IMX8QM_GPT1_CAPTURE),40 IMX_PINCTRL_PIN(IMX8QM_GPT1_COMPARE),41 IMX_PINCTRL_PIN(IMX8QM_UART0_RX),42 IMX_PINCTRL_PIN(IMX8QM_UART0_TX),43 IMX_PINCTRL_PIN(IMX8QM_UART0_RTS_B),44 IMX_PINCTRL_PIN(IMX8QM_UART0_CTS_B),45 IMX_PINCTRL_PIN(IMX8QM_UART1_TX),46 IMX_PINCTRL_PIN(IMX8QM_UART1_RX),47 IMX_PINCTRL_PIN(IMX8QM_UART1_RTS_B),48 IMX_PINCTRL_PIN(IMX8QM_UART1_CTS_B),49 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_GPIOLH),50 IMX_PINCTRL_PIN(IMX8QM_SCU_PMIC_MEMC_ON),51 IMX_PINCTRL_PIN(IMX8QM_SCU_WDOG_OUT),52 IMX_PINCTRL_PIN(IMX8QM_PMIC_I2C_SDA),53 IMX_PINCTRL_PIN(IMX8QM_PMIC_I2C_SCL),54 IMX_PINCTRL_PIN(IMX8QM_PMIC_EARLY_WARNING),55 IMX_PINCTRL_PIN(IMX8QM_PMIC_INT_B),56 IMX_PINCTRL_PIN(IMX8QM_SCU_GPIO0_00),57 IMX_PINCTRL_PIN(IMX8QM_SCU_GPIO0_01),58 IMX_PINCTRL_PIN(IMX8QM_SCU_GPIO0_02),59 IMX_PINCTRL_PIN(IMX8QM_SCU_GPIO0_03),60 IMX_PINCTRL_PIN(IMX8QM_SCU_GPIO0_04),61 IMX_PINCTRL_PIN(IMX8QM_SCU_GPIO0_05),62 IMX_PINCTRL_PIN(IMX8QM_SCU_GPIO0_06),63 IMX_PINCTRL_PIN(IMX8QM_SCU_GPIO0_07),64 IMX_PINCTRL_PIN(IMX8QM_SCU_BOOT_MODE0),65 IMX_PINCTRL_PIN(IMX8QM_SCU_BOOT_MODE1),66 IMX_PINCTRL_PIN(IMX8QM_SCU_BOOT_MODE2),67 IMX_PINCTRL_PIN(IMX8QM_SCU_BOOT_MODE3),68 IMX_PINCTRL_PIN(IMX8QM_SCU_BOOT_MODE4),69 IMX_PINCTRL_PIN(IMX8QM_SCU_BOOT_MODE5),70 IMX_PINCTRL_PIN(IMX8QM_LVDS0_GPIO00),71 IMX_PINCTRL_PIN(IMX8QM_LVDS0_GPIO01),72 IMX_PINCTRL_PIN(IMX8QM_LVDS0_I2C0_SCL),73 IMX_PINCTRL_PIN(IMX8QM_LVDS0_I2C0_SDA),74 IMX_PINCTRL_PIN(IMX8QM_LVDS0_I2C1_SCL),75 IMX_PINCTRL_PIN(IMX8QM_LVDS0_I2C1_SDA),76 IMX_PINCTRL_PIN(IMX8QM_LVDS1_GPIO00),77 IMX_PINCTRL_PIN(IMX8QM_LVDS1_GPIO01),78 IMX_PINCTRL_PIN(IMX8QM_LVDS1_I2C0_SCL),79 IMX_PINCTRL_PIN(IMX8QM_LVDS1_I2C0_SDA),80 IMX_PINCTRL_PIN(IMX8QM_LVDS1_I2C1_SCL),81 IMX_PINCTRL_PIN(IMX8QM_LVDS1_I2C1_SDA),82 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_LVDSGPIO),83 IMX_PINCTRL_PIN(IMX8QM_MIPI_DSI0_I2C0_SCL),84 IMX_PINCTRL_PIN(IMX8QM_MIPI_DSI0_I2C0_SDA),85 IMX_PINCTRL_PIN(IMX8QM_MIPI_DSI0_GPIO0_00),86 IMX_PINCTRL_PIN(IMX8QM_MIPI_DSI0_GPIO0_01),87 IMX_PINCTRL_PIN(IMX8QM_MIPI_DSI1_I2C0_SCL),88 IMX_PINCTRL_PIN(IMX8QM_MIPI_DSI1_I2C0_SDA),89 IMX_PINCTRL_PIN(IMX8QM_MIPI_DSI1_GPIO0_00),90 IMX_PINCTRL_PIN(IMX8QM_MIPI_DSI1_GPIO0_01),91 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_MIPIDSIGPIO),92 IMX_PINCTRL_PIN(IMX8QM_MIPI_CSI0_MCLK_OUT),93 IMX_PINCTRL_PIN(IMX8QM_MIPI_CSI0_I2C0_SCL),94 IMX_PINCTRL_PIN(IMX8QM_MIPI_CSI0_I2C0_SDA),95 IMX_PINCTRL_PIN(IMX8QM_MIPI_CSI0_GPIO0_00),96 IMX_PINCTRL_PIN(IMX8QM_MIPI_CSI0_GPIO0_01),97 IMX_PINCTRL_PIN(IMX8QM_MIPI_CSI1_MCLK_OUT),98 IMX_PINCTRL_PIN(IMX8QM_MIPI_CSI1_GPIO0_00),99 IMX_PINCTRL_PIN(IMX8QM_MIPI_CSI1_GPIO0_01),100 IMX_PINCTRL_PIN(IMX8QM_MIPI_CSI1_I2C0_SCL),101 IMX_PINCTRL_PIN(IMX8QM_MIPI_CSI1_I2C0_SDA),102 IMX_PINCTRL_PIN(IMX8QM_HDMI_TX0_TS_SCL),103 IMX_PINCTRL_PIN(IMX8QM_HDMI_TX0_TS_SDA),104 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_3V3_HDMIGPIO),105 IMX_PINCTRL_PIN(IMX8QM_ESAI1_FSR),106 IMX_PINCTRL_PIN(IMX8QM_ESAI1_FST),107 IMX_PINCTRL_PIN(IMX8QM_ESAI1_SCKR),108 IMX_PINCTRL_PIN(IMX8QM_ESAI1_SCKT),109 IMX_PINCTRL_PIN(IMX8QM_ESAI1_TX0),110 IMX_PINCTRL_PIN(IMX8QM_ESAI1_TX1),111 IMX_PINCTRL_PIN(IMX8QM_ESAI1_TX2_RX3),112 IMX_PINCTRL_PIN(IMX8QM_ESAI1_TX3_RX2),113 IMX_PINCTRL_PIN(IMX8QM_ESAI1_TX4_RX1),114 IMX_PINCTRL_PIN(IMX8QM_ESAI1_TX5_RX0),115 IMX_PINCTRL_PIN(IMX8QM_SPDIF0_RX),116 IMX_PINCTRL_PIN(IMX8QM_SPDIF0_TX),117 IMX_PINCTRL_PIN(IMX8QM_SPDIF0_EXT_CLK),118 IMX_PINCTRL_PIN(IMX8QM_SPI3_SCK),119 IMX_PINCTRL_PIN(IMX8QM_SPI3_SDO),120 IMX_PINCTRL_PIN(IMX8QM_SPI3_SDI),121 IMX_PINCTRL_PIN(IMX8QM_SPI3_CS0),122 IMX_PINCTRL_PIN(IMX8QM_SPI3_CS1),123 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_GPIORHB),124 IMX_PINCTRL_PIN(IMX8QM_ESAI0_FSR),125 IMX_PINCTRL_PIN(IMX8QM_ESAI0_FST),126 IMX_PINCTRL_PIN(IMX8QM_ESAI0_SCKR),127 IMX_PINCTRL_PIN(IMX8QM_ESAI0_SCKT),128 IMX_PINCTRL_PIN(IMX8QM_ESAI0_TX0),129 IMX_PINCTRL_PIN(IMX8QM_ESAI0_TX1),130 IMX_PINCTRL_PIN(IMX8QM_ESAI0_TX2_RX3),131 IMX_PINCTRL_PIN(IMX8QM_ESAI0_TX3_RX2),132 IMX_PINCTRL_PIN(IMX8QM_ESAI0_TX4_RX1),133 IMX_PINCTRL_PIN(IMX8QM_ESAI0_TX5_RX0),134 IMX_PINCTRL_PIN(IMX8QM_MCLK_IN0),135 IMX_PINCTRL_PIN(IMX8QM_MCLK_OUT0),136 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_GPIORHC),137 IMX_PINCTRL_PIN(IMX8QM_SPI0_SCK),138 IMX_PINCTRL_PIN(IMX8QM_SPI0_SDO),139 IMX_PINCTRL_PIN(IMX8QM_SPI0_SDI),140 IMX_PINCTRL_PIN(IMX8QM_SPI0_CS0),141 IMX_PINCTRL_PIN(IMX8QM_SPI0_CS1),142 IMX_PINCTRL_PIN(IMX8QM_SPI2_SCK),143 IMX_PINCTRL_PIN(IMX8QM_SPI2_SDO),144 IMX_PINCTRL_PIN(IMX8QM_SPI2_SDI),145 IMX_PINCTRL_PIN(IMX8QM_SPI2_CS0),146 IMX_PINCTRL_PIN(IMX8QM_SPI2_CS1),147 IMX_PINCTRL_PIN(IMX8QM_SAI1_RXC),148 IMX_PINCTRL_PIN(IMX8QM_SAI1_RXD),149 IMX_PINCTRL_PIN(IMX8QM_SAI1_RXFS),150 IMX_PINCTRL_PIN(IMX8QM_SAI1_TXC),151 IMX_PINCTRL_PIN(IMX8QM_SAI1_TXD),152 IMX_PINCTRL_PIN(IMX8QM_SAI1_TXFS),153 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_GPIORHT),154 IMX_PINCTRL_PIN(IMX8QM_ADC_IN7),155 IMX_PINCTRL_PIN(IMX8QM_ADC_IN6),156 IMX_PINCTRL_PIN(IMX8QM_ADC_IN5),157 IMX_PINCTRL_PIN(IMX8QM_ADC_IN4),158 IMX_PINCTRL_PIN(IMX8QM_ADC_IN3),159 IMX_PINCTRL_PIN(IMX8QM_ADC_IN2),160 IMX_PINCTRL_PIN(IMX8QM_ADC_IN1),161 IMX_PINCTRL_PIN(IMX8QM_ADC_IN0),162 IMX_PINCTRL_PIN(IMX8QM_MLB_SIG),163 IMX_PINCTRL_PIN(IMX8QM_MLB_CLK),164 IMX_PINCTRL_PIN(IMX8QM_MLB_DATA),165 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_GPIOLHT),166 IMX_PINCTRL_PIN(IMX8QM_FLEXCAN0_RX),167 IMX_PINCTRL_PIN(IMX8QM_FLEXCAN0_TX),168 IMX_PINCTRL_PIN(IMX8QM_FLEXCAN1_RX),169 IMX_PINCTRL_PIN(IMX8QM_FLEXCAN1_TX),170 IMX_PINCTRL_PIN(IMX8QM_FLEXCAN2_RX),171 IMX_PINCTRL_PIN(IMX8QM_FLEXCAN2_TX),172 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_GPIOTHR),173 IMX_PINCTRL_PIN(IMX8QM_USB_SS3_TC0),174 IMX_PINCTRL_PIN(IMX8QM_USB_SS3_TC1),175 IMX_PINCTRL_PIN(IMX8QM_USB_SS3_TC2),176 IMX_PINCTRL_PIN(IMX8QM_USB_SS3_TC3),177 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_3V3_USB3IO),178 IMX_PINCTRL_PIN(IMX8QM_USDHC1_RESET_B),179 IMX_PINCTRL_PIN(IMX8QM_USDHC1_VSELECT),180 IMX_PINCTRL_PIN(IMX8QM_USDHC2_RESET_B),181 IMX_PINCTRL_PIN(IMX8QM_USDHC2_VSELECT),182 IMX_PINCTRL_PIN(IMX8QM_USDHC2_WP),183 IMX_PINCTRL_PIN(IMX8QM_USDHC2_CD_B),184 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_VSELSEP),185 IMX_PINCTRL_PIN(IMX8QM_ENET0_MDIO),186 IMX_PINCTRL_PIN(IMX8QM_ENET0_MDC),187 IMX_PINCTRL_PIN(IMX8QM_ENET0_REFCLK_125M_25M),188 IMX_PINCTRL_PIN(IMX8QM_ENET1_REFCLK_125M_25M),189 IMX_PINCTRL_PIN(IMX8QM_ENET1_MDIO),190 IMX_PINCTRL_PIN(IMX8QM_ENET1_MDC),191 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_GPIOCT),192 IMX_PINCTRL_PIN(IMX8QM_QSPI1A_SS0_B),193 IMX_PINCTRL_PIN(IMX8QM_QSPI1A_SS1_B),194 IMX_PINCTRL_PIN(IMX8QM_QSPI1A_SCLK),195 IMX_PINCTRL_PIN(IMX8QM_QSPI1A_DQS),196 IMX_PINCTRL_PIN(IMX8QM_QSPI1A_DATA3),197 IMX_PINCTRL_PIN(IMX8QM_QSPI1A_DATA2),198 IMX_PINCTRL_PIN(IMX8QM_QSPI1A_DATA1),199 IMX_PINCTRL_PIN(IMX8QM_QSPI1A_DATA0),200 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_QSPI1),201 IMX_PINCTRL_PIN(IMX8QM_QSPI0A_DATA0),202 IMX_PINCTRL_PIN(IMX8QM_QSPI0A_DATA1),203 IMX_PINCTRL_PIN(IMX8QM_QSPI0A_DATA2),204 IMX_PINCTRL_PIN(IMX8QM_QSPI0A_DATA3),205 IMX_PINCTRL_PIN(IMX8QM_QSPI0A_DQS),206 IMX_PINCTRL_PIN(IMX8QM_QSPI0A_SS0_B),207 IMX_PINCTRL_PIN(IMX8QM_QSPI0A_SS1_B),208 IMX_PINCTRL_PIN(IMX8QM_QSPI0A_SCLK),209 IMX_PINCTRL_PIN(IMX8QM_QSPI0B_SCLK),210 IMX_PINCTRL_PIN(IMX8QM_QSPI0B_DATA0),211 IMX_PINCTRL_PIN(IMX8QM_QSPI0B_DATA1),212 IMX_PINCTRL_PIN(IMX8QM_QSPI0B_DATA2),213 IMX_PINCTRL_PIN(IMX8QM_QSPI0B_DATA3),214 IMX_PINCTRL_PIN(IMX8QM_QSPI0B_DQS),215 IMX_PINCTRL_PIN(IMX8QM_QSPI0B_SS0_B),216 IMX_PINCTRL_PIN(IMX8QM_QSPI0B_SS1_B),217 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_QSPI0),218 IMX_PINCTRL_PIN(IMX8QM_PCIE_CTRL0_CLKREQ_B),219 IMX_PINCTRL_PIN(IMX8QM_PCIE_CTRL0_WAKE_B),220 IMX_PINCTRL_PIN(IMX8QM_PCIE_CTRL0_PERST_B),221 IMX_PINCTRL_PIN(IMX8QM_PCIE_CTRL1_CLKREQ_B),222 IMX_PINCTRL_PIN(IMX8QM_PCIE_CTRL1_WAKE_B),223 IMX_PINCTRL_PIN(IMX8QM_PCIE_CTRL1_PERST_B),224 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_PCIESEP),225 IMX_PINCTRL_PIN(IMX8QM_USB_HSIC0_DATA),226 IMX_PINCTRL_PIN(IMX8QM_USB_HSIC0_STROBE),227 IMX_PINCTRL_PIN(IMX8QM_CALIBRATION_0_HSIC),228 IMX_PINCTRL_PIN(IMX8QM_CALIBRATION_1_HSIC),229 IMX_PINCTRL_PIN(IMX8QM_EMMC0_CLK),230 IMX_PINCTRL_PIN(IMX8QM_EMMC0_CMD),231 IMX_PINCTRL_PIN(IMX8QM_EMMC0_DATA0),232 IMX_PINCTRL_PIN(IMX8QM_EMMC0_DATA1),233 IMX_PINCTRL_PIN(IMX8QM_EMMC0_DATA2),234 IMX_PINCTRL_PIN(IMX8QM_EMMC0_DATA3),235 IMX_PINCTRL_PIN(IMX8QM_EMMC0_DATA4),236 IMX_PINCTRL_PIN(IMX8QM_EMMC0_DATA5),237 IMX_PINCTRL_PIN(IMX8QM_EMMC0_DATA6),238 IMX_PINCTRL_PIN(IMX8QM_EMMC0_DATA7),239 IMX_PINCTRL_PIN(IMX8QM_EMMC0_STROBE),240 IMX_PINCTRL_PIN(IMX8QM_EMMC0_RESET_B),241 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_SD1FIX),242 IMX_PINCTRL_PIN(IMX8QM_USDHC1_CLK),243 IMX_PINCTRL_PIN(IMX8QM_USDHC1_CMD),244 IMX_PINCTRL_PIN(IMX8QM_USDHC1_DATA0),245 IMX_PINCTRL_PIN(IMX8QM_USDHC1_DATA1),246 IMX_PINCTRL_PIN(IMX8QM_CTL_NAND_RE_P_N),247 IMX_PINCTRL_PIN(IMX8QM_USDHC1_DATA2),248 IMX_PINCTRL_PIN(IMX8QM_USDHC1_DATA3),249 IMX_PINCTRL_PIN(IMX8QM_CTL_NAND_DQS_P_N),250 IMX_PINCTRL_PIN(IMX8QM_USDHC1_DATA4),251 IMX_PINCTRL_PIN(IMX8QM_USDHC1_DATA5),252 IMX_PINCTRL_PIN(IMX8QM_USDHC1_DATA6),253 IMX_PINCTRL_PIN(IMX8QM_USDHC1_DATA7),254 IMX_PINCTRL_PIN(IMX8QM_USDHC1_STROBE),255 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_VSEL2),256 IMX_PINCTRL_PIN(IMX8QM_USDHC2_CLK),257 IMX_PINCTRL_PIN(IMX8QM_USDHC2_CMD),258 IMX_PINCTRL_PIN(IMX8QM_USDHC2_DATA0),259 IMX_PINCTRL_PIN(IMX8QM_USDHC2_DATA1),260 IMX_PINCTRL_PIN(IMX8QM_USDHC2_DATA2),261 IMX_PINCTRL_PIN(IMX8QM_USDHC2_DATA3),262 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_VSEL3),263 IMX_PINCTRL_PIN(IMX8QM_ENET0_RGMII_TXC),264 IMX_PINCTRL_PIN(IMX8QM_ENET0_RGMII_TX_CTL),265 IMX_PINCTRL_PIN(IMX8QM_ENET0_RGMII_TXD0),266 IMX_PINCTRL_PIN(IMX8QM_ENET0_RGMII_TXD1),267 IMX_PINCTRL_PIN(IMX8QM_ENET0_RGMII_TXD2),268 IMX_PINCTRL_PIN(IMX8QM_ENET0_RGMII_TXD3),269 IMX_PINCTRL_PIN(IMX8QM_ENET0_RGMII_RXC),270 IMX_PINCTRL_PIN(IMX8QM_ENET0_RGMII_RX_CTL),271 IMX_PINCTRL_PIN(IMX8QM_ENET0_RGMII_RXD0),272 IMX_PINCTRL_PIN(IMX8QM_ENET0_RGMII_RXD1),273 IMX_PINCTRL_PIN(IMX8QM_ENET0_RGMII_RXD2),274 IMX_PINCTRL_PIN(IMX8QM_ENET0_RGMII_RXD3),275 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB),276 IMX_PINCTRL_PIN(IMX8QM_ENET1_RGMII_TXC),277 IMX_PINCTRL_PIN(IMX8QM_ENET1_RGMII_TX_CTL),278 IMX_PINCTRL_PIN(IMX8QM_ENET1_RGMII_TXD0),279 IMX_PINCTRL_PIN(IMX8QM_ENET1_RGMII_TXD1),280 IMX_PINCTRL_PIN(IMX8QM_ENET1_RGMII_TXD2),281 IMX_PINCTRL_PIN(IMX8QM_ENET1_RGMII_TXD3),282 IMX_PINCTRL_PIN(IMX8QM_ENET1_RGMII_RXC),283 IMX_PINCTRL_PIN(IMX8QM_ENET1_RGMII_RX_CTL),284 IMX_PINCTRL_PIN(IMX8QM_ENET1_RGMII_RXD0),285 IMX_PINCTRL_PIN(IMX8QM_ENET1_RGMII_RXD1),286 IMX_PINCTRL_PIN(IMX8QM_ENET1_RGMII_RXD2),287 IMX_PINCTRL_PIN(IMX8QM_ENET1_RGMII_RXD3),288 IMX_PINCTRL_PIN(IMX8QM_COMP_CTL_GPIO_1V8_3V3_ENET_ENETA),289};290 291static const struct imx_pinctrl_soc_info imx8qm_pinctrl_info = {292 .pins = imx8qm_pinctrl_pads,293 .npins = ARRAY_SIZE(imx8qm_pinctrl_pads),294 .flags = IMX_USE_SCU,295 .imx_pinconf_get = imx_pinconf_get_scu,296 .imx_pinconf_set = imx_pinconf_set_scu,297 .imx_pinctrl_parse_pin = imx_pinctrl_parse_pin_scu,298};299 300static const struct of_device_id imx8qm_pinctrl_of_match[] = {301 { .compatible = "fsl,imx8qm-iomuxc", },302 { /* sentinel */ }303};304MODULE_DEVICE_TABLE(of, imx8qm_pinctrl_of_match);305 306static int imx8qm_pinctrl_probe(struct platform_device *pdev)307{308 int ret;309 310 ret = imx_pinctrl_sc_ipc_init(pdev);311 if (ret)312 return ret;313 314 return imx_pinctrl_probe(pdev, &imx8qm_pinctrl_info);315}316 317static struct platform_driver imx8qm_pinctrl_driver = {318 .driver = {319 .name = "imx8qm-pinctrl",320 .of_match_table = imx8qm_pinctrl_of_match,321 .suppress_bind_attrs = true,322 },323 .probe = imx8qm_pinctrl_probe,324};325 326static int __init imx8qm_pinctrl_init(void)327{328 return platform_driver_register(&imx8qm_pinctrl_driver);329}330arch_initcall(imx8qm_pinctrl_init);331 332MODULE_AUTHOR("Aisheng Dong <aisheng.dong@nxp.com>");333MODULE_DESCRIPTION("NXP i.MX8QM pinctrl driver");334MODULE_LICENSE("GPL v2");335