18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+ 28c2ecf20Sopenharmony_ci// 38c2ecf20Sopenharmony_ci// i.MX1 pinctrl driver based on imx pinmux core 48c2ecf20Sopenharmony_ci// 58c2ecf20Sopenharmony_ci// Copyright (C) 2014 Alexander Shiyan <shc_work@mail.ru> 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci#include <linux/init.h> 88c2ecf20Sopenharmony_ci#include <linux/of.h> 98c2ecf20Sopenharmony_ci#include <linux/platform_device.h> 108c2ecf20Sopenharmony_ci#include <linux/pinctrl/pinctrl.h> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#include "pinctrl-imx1.h" 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci#define PAD_ID(port, pin) ((port) * 32 + (pin)) 158c2ecf20Sopenharmony_ci#define PA 0 168c2ecf20Sopenharmony_ci#define PB 1 178c2ecf20Sopenharmony_ci#define PC 2 188c2ecf20Sopenharmony_ci#define PD 3 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_cienum imx1_pads { 218c2ecf20Sopenharmony_ci MX1_PAD_A24 = PAD_ID(PA, 0), 228c2ecf20Sopenharmony_ci MX1_PAD_TIN = PAD_ID(PA, 1), 238c2ecf20Sopenharmony_ci MX1_PAD_PWMO = PAD_ID(PA, 2), 248c2ecf20Sopenharmony_ci MX1_PAD_CSI_MCLK = PAD_ID(PA, 3), 258c2ecf20Sopenharmony_ci MX1_PAD_CSI_D0 = PAD_ID(PA, 4), 268c2ecf20Sopenharmony_ci MX1_PAD_CSI_D1 = PAD_ID(PA, 5), 278c2ecf20Sopenharmony_ci MX1_PAD_CSI_D2 = PAD_ID(PA, 6), 288c2ecf20Sopenharmony_ci MX1_PAD_CSI_D3 = PAD_ID(PA, 7), 298c2ecf20Sopenharmony_ci MX1_PAD_CSI_D4 = PAD_ID(PA, 8), 308c2ecf20Sopenharmony_ci MX1_PAD_CSI_D5 = PAD_ID(PA, 9), 318c2ecf20Sopenharmony_ci MX1_PAD_CSI_D6 = PAD_ID(PA, 10), 328c2ecf20Sopenharmony_ci MX1_PAD_CSI_D7 = PAD_ID(PA, 11), 338c2ecf20Sopenharmony_ci MX1_PAD_CSI_VSYNC = PAD_ID(PA, 12), 348c2ecf20Sopenharmony_ci MX1_PAD_CSI_HSYNC = PAD_ID(PA, 13), 358c2ecf20Sopenharmony_ci MX1_PAD_CSI_PIXCLK = PAD_ID(PA, 14), 368c2ecf20Sopenharmony_ci MX1_PAD_I2C_SDA = PAD_ID(PA, 15), 378c2ecf20Sopenharmony_ci MX1_PAD_I2C_SCL = PAD_ID(PA, 16), 388c2ecf20Sopenharmony_ci MX1_PAD_DTACK = PAD_ID(PA, 17), 398c2ecf20Sopenharmony_ci MX1_PAD_BCLK = PAD_ID(PA, 18), 408c2ecf20Sopenharmony_ci MX1_PAD_LBA = PAD_ID(PA, 19), 418c2ecf20Sopenharmony_ci MX1_PAD_ECB = PAD_ID(PA, 20), 428c2ecf20Sopenharmony_ci MX1_PAD_A0 = PAD_ID(PA, 21), 438c2ecf20Sopenharmony_ci MX1_PAD_CS4 = PAD_ID(PA, 22), 448c2ecf20Sopenharmony_ci MX1_PAD_CS5 = PAD_ID(PA, 23), 458c2ecf20Sopenharmony_ci MX1_PAD_A16 = PAD_ID(PA, 24), 468c2ecf20Sopenharmony_ci MX1_PAD_A17 = PAD_ID(PA, 25), 478c2ecf20Sopenharmony_ci MX1_PAD_A18 = PAD_ID(PA, 26), 488c2ecf20Sopenharmony_ci MX1_PAD_A19 = PAD_ID(PA, 27), 498c2ecf20Sopenharmony_ci MX1_PAD_A20 = PAD_ID(PA, 28), 508c2ecf20Sopenharmony_ci MX1_PAD_A21 = PAD_ID(PA, 29), 518c2ecf20Sopenharmony_ci MX1_PAD_A22 = PAD_ID(PA, 30), 528c2ecf20Sopenharmony_ci MX1_PAD_A23 = PAD_ID(PA, 31), 538c2ecf20Sopenharmony_ci MX1_PAD_SD_DAT0 = PAD_ID(PB, 8), 548c2ecf20Sopenharmony_ci MX1_PAD_SD_DAT1 = PAD_ID(PB, 9), 558c2ecf20Sopenharmony_ci MX1_PAD_SD_DAT2 = PAD_ID(PB, 10), 568c2ecf20Sopenharmony_ci MX1_PAD_SD_DAT3 = PAD_ID(PB, 11), 578c2ecf20Sopenharmony_ci MX1_PAD_SD_SCLK = PAD_ID(PB, 12), 588c2ecf20Sopenharmony_ci MX1_PAD_SD_CMD = PAD_ID(PB, 13), 598c2ecf20Sopenharmony_ci MX1_PAD_SIM_SVEN = PAD_ID(PB, 14), 608c2ecf20Sopenharmony_ci MX1_PAD_SIM_PD = PAD_ID(PB, 15), 618c2ecf20Sopenharmony_ci MX1_PAD_SIM_TX = PAD_ID(PB, 16), 628c2ecf20Sopenharmony_ci MX1_PAD_SIM_RX = PAD_ID(PB, 17), 638c2ecf20Sopenharmony_ci MX1_PAD_SIM_RST = PAD_ID(PB, 18), 648c2ecf20Sopenharmony_ci MX1_PAD_SIM_CLK = PAD_ID(PB, 19), 658c2ecf20Sopenharmony_ci MX1_PAD_USBD_AFE = PAD_ID(PB, 20), 668c2ecf20Sopenharmony_ci MX1_PAD_USBD_OE = PAD_ID(PB, 21), 678c2ecf20Sopenharmony_ci MX1_PAD_USBD_RCV = PAD_ID(PB, 22), 688c2ecf20Sopenharmony_ci MX1_PAD_USBD_SUSPND = PAD_ID(PB, 23), 698c2ecf20Sopenharmony_ci MX1_PAD_USBD_VP = PAD_ID(PB, 24), 708c2ecf20Sopenharmony_ci MX1_PAD_USBD_VM = PAD_ID(PB, 25), 718c2ecf20Sopenharmony_ci MX1_PAD_USBD_VPO = PAD_ID(PB, 26), 728c2ecf20Sopenharmony_ci MX1_PAD_USBD_VMO = PAD_ID(PB, 27), 738c2ecf20Sopenharmony_ci MX1_PAD_UART2_CTS = PAD_ID(PB, 28), 748c2ecf20Sopenharmony_ci MX1_PAD_UART2_RTS = PAD_ID(PB, 29), 758c2ecf20Sopenharmony_ci MX1_PAD_UART2_TXD = PAD_ID(PB, 30), 768c2ecf20Sopenharmony_ci MX1_PAD_UART2_RXD = PAD_ID(PB, 31), 778c2ecf20Sopenharmony_ci MX1_PAD_SSI_RXFS = PAD_ID(PC, 3), 788c2ecf20Sopenharmony_ci MX1_PAD_SSI_RXCLK = PAD_ID(PC, 4), 798c2ecf20Sopenharmony_ci MX1_PAD_SSI_RXDAT = PAD_ID(PC, 5), 808c2ecf20Sopenharmony_ci MX1_PAD_SSI_TXDAT = PAD_ID(PC, 6), 818c2ecf20Sopenharmony_ci MX1_PAD_SSI_TXFS = PAD_ID(PC, 7), 828c2ecf20Sopenharmony_ci MX1_PAD_SSI_TXCLK = PAD_ID(PC, 8), 838c2ecf20Sopenharmony_ci MX1_PAD_UART1_CTS = PAD_ID(PC, 9), 848c2ecf20Sopenharmony_ci MX1_PAD_UART1_RTS = PAD_ID(PC, 10), 858c2ecf20Sopenharmony_ci MX1_PAD_UART1_TXD = PAD_ID(PC, 11), 868c2ecf20Sopenharmony_ci MX1_PAD_UART1_RXD = PAD_ID(PC, 12), 878c2ecf20Sopenharmony_ci MX1_PAD_SPI1_RDY = PAD_ID(PC, 13), 888c2ecf20Sopenharmony_ci MX1_PAD_SPI1_SCLK = PAD_ID(PC, 14), 898c2ecf20Sopenharmony_ci MX1_PAD_SPI1_SS = PAD_ID(PC, 15), 908c2ecf20Sopenharmony_ci MX1_PAD_SPI1_MISO = PAD_ID(PC, 16), 918c2ecf20Sopenharmony_ci MX1_PAD_SPI1_MOSI = PAD_ID(PC, 17), 928c2ecf20Sopenharmony_ci MX1_PAD_BT13 = PAD_ID(PC, 19), 938c2ecf20Sopenharmony_ci MX1_PAD_BT12 = PAD_ID(PC, 20), 948c2ecf20Sopenharmony_ci MX1_PAD_BT11 = PAD_ID(PC, 21), 958c2ecf20Sopenharmony_ci MX1_PAD_BT10 = PAD_ID(PC, 22), 968c2ecf20Sopenharmony_ci MX1_PAD_BT9 = PAD_ID(PC, 23), 978c2ecf20Sopenharmony_ci MX1_PAD_BT8 = PAD_ID(PC, 24), 988c2ecf20Sopenharmony_ci MX1_PAD_BT7 = PAD_ID(PC, 25), 998c2ecf20Sopenharmony_ci MX1_PAD_BT6 = PAD_ID(PC, 26), 1008c2ecf20Sopenharmony_ci MX1_PAD_BT5 = PAD_ID(PC, 27), 1018c2ecf20Sopenharmony_ci MX1_PAD_BT4 = PAD_ID(PC, 28), 1028c2ecf20Sopenharmony_ci MX1_PAD_BT3 = PAD_ID(PC, 29), 1038c2ecf20Sopenharmony_ci MX1_PAD_BT2 = PAD_ID(PC, 30), 1048c2ecf20Sopenharmony_ci MX1_PAD_BT1 = PAD_ID(PC, 31), 1058c2ecf20Sopenharmony_ci MX1_PAD_LSCLK = PAD_ID(PD, 6), 1068c2ecf20Sopenharmony_ci MX1_PAD_REV = PAD_ID(PD, 7), 1078c2ecf20Sopenharmony_ci MX1_PAD_CLS = PAD_ID(PD, 8), 1088c2ecf20Sopenharmony_ci MX1_PAD_PS = PAD_ID(PD, 9), 1098c2ecf20Sopenharmony_ci MX1_PAD_SPL_SPR = PAD_ID(PD, 10), 1108c2ecf20Sopenharmony_ci MX1_PAD_CONTRAST = PAD_ID(PD, 11), 1118c2ecf20Sopenharmony_ci MX1_PAD_ACD_OE = PAD_ID(PD, 12), 1128c2ecf20Sopenharmony_ci MX1_PAD_LP_HSYNC = PAD_ID(PD, 13), 1138c2ecf20Sopenharmony_ci MX1_PAD_FLM_VSYNC = PAD_ID(PD, 14), 1148c2ecf20Sopenharmony_ci MX1_PAD_LD0 = PAD_ID(PD, 15), 1158c2ecf20Sopenharmony_ci MX1_PAD_LD1 = PAD_ID(PD, 16), 1168c2ecf20Sopenharmony_ci MX1_PAD_LD2 = PAD_ID(PD, 17), 1178c2ecf20Sopenharmony_ci MX1_PAD_LD3 = PAD_ID(PD, 18), 1188c2ecf20Sopenharmony_ci MX1_PAD_LD4 = PAD_ID(PD, 19), 1198c2ecf20Sopenharmony_ci MX1_PAD_LD5 = PAD_ID(PD, 20), 1208c2ecf20Sopenharmony_ci MX1_PAD_LD6 = PAD_ID(PD, 21), 1218c2ecf20Sopenharmony_ci MX1_PAD_LD7 = PAD_ID(PD, 22), 1228c2ecf20Sopenharmony_ci MX1_PAD_LD8 = PAD_ID(PD, 23), 1238c2ecf20Sopenharmony_ci MX1_PAD_LD9 = PAD_ID(PD, 24), 1248c2ecf20Sopenharmony_ci MX1_PAD_LD10 = PAD_ID(PD, 25), 1258c2ecf20Sopenharmony_ci MX1_PAD_LD11 = PAD_ID(PD, 26), 1268c2ecf20Sopenharmony_ci MX1_PAD_LD12 = PAD_ID(PD, 27), 1278c2ecf20Sopenharmony_ci MX1_PAD_LD13 = PAD_ID(PD, 28), 1288c2ecf20Sopenharmony_ci MX1_PAD_LD14 = PAD_ID(PD, 29), 1298c2ecf20Sopenharmony_ci MX1_PAD_LD15 = PAD_ID(PD, 30), 1308c2ecf20Sopenharmony_ci MX1_PAD_TMR2OUT = PAD_ID(PD, 31), 1318c2ecf20Sopenharmony_ci}; 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ci/* Pad names for the pinmux subsystem */ 1348c2ecf20Sopenharmony_cistatic const struct pinctrl_pin_desc imx1_pinctrl_pads[] = { 1358c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_A24), 1368c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_TIN), 1378c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_PWMO), 1388c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_CSI_MCLK), 1398c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_CSI_D0), 1408c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_CSI_D1), 1418c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_CSI_D2), 1428c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_CSI_D3), 1438c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_CSI_D4), 1448c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_CSI_D5), 1458c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_CSI_D6), 1468c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_CSI_D7), 1478c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_CSI_VSYNC), 1488c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_CSI_HSYNC), 1498c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_CSI_PIXCLK), 1508c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_I2C_SDA), 1518c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_I2C_SCL), 1528c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_DTACK), 1538c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_BCLK), 1548c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LBA), 1558c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_ECB), 1568c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_A0), 1578c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_CS4), 1588c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_CS5), 1598c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_A16), 1608c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_A17), 1618c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_A18), 1628c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_A19), 1638c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_A20), 1648c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_A21), 1658c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_A22), 1668c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_A23), 1678c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SD_DAT0), 1688c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SD_DAT1), 1698c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SD_DAT2), 1708c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SD_DAT3), 1718c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SD_SCLK), 1728c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SD_CMD), 1738c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SIM_SVEN), 1748c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SIM_PD), 1758c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SIM_TX), 1768c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SIM_RX), 1778c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SIM_CLK), 1788c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_USBD_AFE), 1798c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_USBD_OE), 1808c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_USBD_RCV), 1818c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_USBD_SUSPND), 1828c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_USBD_VP), 1838c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_USBD_VM), 1848c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_USBD_VPO), 1858c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_USBD_VMO), 1868c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_UART2_CTS), 1878c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_UART2_RTS), 1888c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_UART2_TXD), 1898c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_UART2_RXD), 1908c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SSI_RXFS), 1918c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SSI_RXCLK), 1928c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SSI_RXDAT), 1938c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SSI_TXDAT), 1948c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SSI_TXFS), 1958c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SSI_TXCLK), 1968c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_UART1_CTS), 1978c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_UART1_RTS), 1988c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_UART1_TXD), 1998c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_UART1_RXD), 2008c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SPI1_RDY), 2018c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SPI1_SCLK), 2028c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SPI1_SS), 2038c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SPI1_MISO), 2048c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SPI1_MOSI), 2058c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_BT13), 2068c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_BT12), 2078c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_BT11), 2088c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_BT10), 2098c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_BT9), 2108c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_BT8), 2118c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_BT7), 2128c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_BT6), 2138c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_BT5), 2148c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_BT4), 2158c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_BT3), 2168c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_BT2), 2178c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_BT1), 2188c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LSCLK), 2198c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_REV), 2208c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_CLS), 2218c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_PS), 2228c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_SPL_SPR), 2238c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_CONTRAST), 2248c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_ACD_OE), 2258c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LP_HSYNC), 2268c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_FLM_VSYNC), 2278c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LD0), 2288c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LD1), 2298c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LD2), 2308c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LD3), 2318c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LD4), 2328c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LD5), 2338c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LD6), 2348c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LD7), 2358c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LD8), 2368c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LD9), 2378c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LD10), 2388c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LD11), 2398c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LD12), 2408c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LD13), 2418c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LD14), 2428c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_LD15), 2438c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX1_PAD_TMR2OUT), 2448c2ecf20Sopenharmony_ci}; 2458c2ecf20Sopenharmony_ci 2468c2ecf20Sopenharmony_cistatic struct imx1_pinctrl_soc_info imx1_pinctrl_info = { 2478c2ecf20Sopenharmony_ci .pins = imx1_pinctrl_pads, 2488c2ecf20Sopenharmony_ci .npins = ARRAY_SIZE(imx1_pinctrl_pads), 2498c2ecf20Sopenharmony_ci}; 2508c2ecf20Sopenharmony_ci 2518c2ecf20Sopenharmony_cistatic int __init imx1_pinctrl_probe(struct platform_device *pdev) 2528c2ecf20Sopenharmony_ci{ 2538c2ecf20Sopenharmony_ci return imx1_pinctrl_core_probe(pdev, &imx1_pinctrl_info); 2548c2ecf20Sopenharmony_ci} 2558c2ecf20Sopenharmony_ci 2568c2ecf20Sopenharmony_cistatic const struct of_device_id imx1_pinctrl_of_match[] = { 2578c2ecf20Sopenharmony_ci { .compatible = "fsl,imx1-iomuxc", }, 2588c2ecf20Sopenharmony_ci { } 2598c2ecf20Sopenharmony_ci}; 2608c2ecf20Sopenharmony_ci 2618c2ecf20Sopenharmony_cistatic struct platform_driver imx1_pinctrl_driver = { 2628c2ecf20Sopenharmony_ci .driver = { 2638c2ecf20Sopenharmony_ci .name = "imx1-pinctrl", 2648c2ecf20Sopenharmony_ci .of_match_table = imx1_pinctrl_of_match, 2658c2ecf20Sopenharmony_ci }, 2668c2ecf20Sopenharmony_ci}; 2678c2ecf20Sopenharmony_cibuiltin_platform_driver_probe(imx1_pinctrl_driver, imx1_pinctrl_probe); 268