18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+ 28c2ecf20Sopenharmony_ci// 38c2ecf20Sopenharmony_ci// i.MX21 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#define PE 4 208c2ecf20Sopenharmony_ci#define PF 5 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_cienum imx21_pads { 238c2ecf20Sopenharmony_ci MX21_PAD_LSCLK = PAD_ID(PA, 5), 248c2ecf20Sopenharmony_ci MX21_PAD_LD0 = PAD_ID(PA, 6), 258c2ecf20Sopenharmony_ci MX21_PAD_LD1 = PAD_ID(PA, 7), 268c2ecf20Sopenharmony_ci MX21_PAD_LD2 = PAD_ID(PA, 8), 278c2ecf20Sopenharmony_ci MX21_PAD_LD3 = PAD_ID(PA, 9), 288c2ecf20Sopenharmony_ci MX21_PAD_LD4 = PAD_ID(PA, 10), 298c2ecf20Sopenharmony_ci MX21_PAD_LD5 = PAD_ID(PA, 11), 308c2ecf20Sopenharmony_ci MX21_PAD_LD6 = PAD_ID(PA, 12), 318c2ecf20Sopenharmony_ci MX21_PAD_LD7 = PAD_ID(PA, 13), 328c2ecf20Sopenharmony_ci MX21_PAD_LD8 = PAD_ID(PA, 14), 338c2ecf20Sopenharmony_ci MX21_PAD_LD9 = PAD_ID(PA, 15), 348c2ecf20Sopenharmony_ci MX21_PAD_LD10 = PAD_ID(PA, 16), 358c2ecf20Sopenharmony_ci MX21_PAD_LD11 = PAD_ID(PA, 17), 368c2ecf20Sopenharmony_ci MX21_PAD_LD12 = PAD_ID(PA, 18), 378c2ecf20Sopenharmony_ci MX21_PAD_LD13 = PAD_ID(PA, 19), 388c2ecf20Sopenharmony_ci MX21_PAD_LD14 = PAD_ID(PA, 20), 398c2ecf20Sopenharmony_ci MX21_PAD_LD15 = PAD_ID(PA, 21), 408c2ecf20Sopenharmony_ci MX21_PAD_LD16 = PAD_ID(PA, 22), 418c2ecf20Sopenharmony_ci MX21_PAD_LD17 = PAD_ID(PA, 23), 428c2ecf20Sopenharmony_ci MX21_PAD_REV = PAD_ID(PA, 24), 438c2ecf20Sopenharmony_ci MX21_PAD_CLS = PAD_ID(PA, 25), 448c2ecf20Sopenharmony_ci MX21_PAD_PS = PAD_ID(PA, 26), 458c2ecf20Sopenharmony_ci MX21_PAD_SPL_SPR = PAD_ID(PA, 27), 468c2ecf20Sopenharmony_ci MX21_PAD_HSYNC = PAD_ID(PA, 28), 478c2ecf20Sopenharmony_ci MX21_PAD_VSYNC = PAD_ID(PA, 29), 488c2ecf20Sopenharmony_ci MX21_PAD_CONTRAST = PAD_ID(PA, 30), 498c2ecf20Sopenharmony_ci MX21_PAD_OE_ACD = PAD_ID(PA, 31), 508c2ecf20Sopenharmony_ci MX21_PAD_SD2_D0 = PAD_ID(PB, 4), 518c2ecf20Sopenharmony_ci MX21_PAD_SD2_D1 = PAD_ID(PB, 5), 528c2ecf20Sopenharmony_ci MX21_PAD_SD2_D2 = PAD_ID(PB, 6), 538c2ecf20Sopenharmony_ci MX21_PAD_SD2_D3 = PAD_ID(PB, 7), 548c2ecf20Sopenharmony_ci MX21_PAD_SD2_CMD = PAD_ID(PB, 8), 558c2ecf20Sopenharmony_ci MX21_PAD_SD2_CLK = PAD_ID(PB, 9), 568c2ecf20Sopenharmony_ci MX21_PAD_CSI_D0 = PAD_ID(PB, 10), 578c2ecf20Sopenharmony_ci MX21_PAD_CSI_D1 = PAD_ID(PB, 11), 588c2ecf20Sopenharmony_ci MX21_PAD_CSI_D2 = PAD_ID(PB, 12), 598c2ecf20Sopenharmony_ci MX21_PAD_CSI_D3 = PAD_ID(PB, 13), 608c2ecf20Sopenharmony_ci MX21_PAD_CSI_D4 = PAD_ID(PB, 14), 618c2ecf20Sopenharmony_ci MX21_PAD_CSI_MCLK = PAD_ID(PB, 15), 628c2ecf20Sopenharmony_ci MX21_PAD_CSI_PIXCLK = PAD_ID(PB, 16), 638c2ecf20Sopenharmony_ci MX21_PAD_CSI_D5 = PAD_ID(PB, 17), 648c2ecf20Sopenharmony_ci MX21_PAD_CSI_D6 = PAD_ID(PB, 18), 658c2ecf20Sopenharmony_ci MX21_PAD_CSI_D7 = PAD_ID(PB, 19), 668c2ecf20Sopenharmony_ci MX21_PAD_CSI_VSYNC = PAD_ID(PB, 20), 678c2ecf20Sopenharmony_ci MX21_PAD_CSI_HSYNC = PAD_ID(PB, 21), 688c2ecf20Sopenharmony_ci MX21_PAD_USB_BYP = PAD_ID(PB, 22), 698c2ecf20Sopenharmony_ci MX21_PAD_USB_PWR = PAD_ID(PB, 23), 708c2ecf20Sopenharmony_ci MX21_PAD_USB_OC = PAD_ID(PB, 24), 718c2ecf20Sopenharmony_ci MX21_PAD_USBH_ON = PAD_ID(PB, 25), 728c2ecf20Sopenharmony_ci MX21_PAD_USBH1_FS = PAD_ID(PB, 26), 738c2ecf20Sopenharmony_ci MX21_PAD_USBH1_OE = PAD_ID(PB, 27), 748c2ecf20Sopenharmony_ci MX21_PAD_USBH1_TXDM = PAD_ID(PB, 28), 758c2ecf20Sopenharmony_ci MX21_PAD_USBH1_TXDP = PAD_ID(PB, 29), 768c2ecf20Sopenharmony_ci MX21_PAD_USBH1_RXDM = PAD_ID(PB, 30), 778c2ecf20Sopenharmony_ci MX21_PAD_USBH1_RXDP = PAD_ID(PB, 31), 788c2ecf20Sopenharmony_ci MX21_PAD_USBG_SDA = PAD_ID(PC, 5), 798c2ecf20Sopenharmony_ci MX21_PAD_USBG_SCL = PAD_ID(PC, 6), 808c2ecf20Sopenharmony_ci MX21_PAD_USBG_ON = PAD_ID(PC, 7), 818c2ecf20Sopenharmony_ci MX21_PAD_USBG_FS = PAD_ID(PC, 8), 828c2ecf20Sopenharmony_ci MX21_PAD_USBG_OE = PAD_ID(PC, 9), 838c2ecf20Sopenharmony_ci MX21_PAD_USBG_TXDM = PAD_ID(PC, 10), 848c2ecf20Sopenharmony_ci MX21_PAD_USBG_TXDP = PAD_ID(PC, 11), 858c2ecf20Sopenharmony_ci MX21_PAD_USBG_RXDM = PAD_ID(PC, 12), 868c2ecf20Sopenharmony_ci MX21_PAD_USBG_RXDP = PAD_ID(PC, 13), 878c2ecf20Sopenharmony_ci MX21_PAD_TOUT = PAD_ID(PC, 14), 888c2ecf20Sopenharmony_ci MX21_PAD_TIN = PAD_ID(PC, 15), 898c2ecf20Sopenharmony_ci MX21_PAD_SAP_FS = PAD_ID(PC, 16), 908c2ecf20Sopenharmony_ci MX21_PAD_SAP_RXD = PAD_ID(PC, 17), 918c2ecf20Sopenharmony_ci MX21_PAD_SAP_TXD = PAD_ID(PC, 18), 928c2ecf20Sopenharmony_ci MX21_PAD_SAP_CLK = PAD_ID(PC, 19), 938c2ecf20Sopenharmony_ci MX21_PAD_SSI1_FS = PAD_ID(PC, 20), 948c2ecf20Sopenharmony_ci MX21_PAD_SSI1_RXD = PAD_ID(PC, 21), 958c2ecf20Sopenharmony_ci MX21_PAD_SSI1_TXD = PAD_ID(PC, 22), 968c2ecf20Sopenharmony_ci MX21_PAD_SSI1_CLK = PAD_ID(PC, 23), 978c2ecf20Sopenharmony_ci MX21_PAD_SSI2_FS = PAD_ID(PC, 24), 988c2ecf20Sopenharmony_ci MX21_PAD_SSI2_RXD = PAD_ID(PC, 25), 998c2ecf20Sopenharmony_ci MX21_PAD_SSI2_TXD = PAD_ID(PC, 26), 1008c2ecf20Sopenharmony_ci MX21_PAD_SSI2_CLK = PAD_ID(PC, 27), 1018c2ecf20Sopenharmony_ci MX21_PAD_SSI3_FS = PAD_ID(PC, 28), 1028c2ecf20Sopenharmony_ci MX21_PAD_SSI3_RXD = PAD_ID(PC, 29), 1038c2ecf20Sopenharmony_ci MX21_PAD_SSI3_TXD = PAD_ID(PC, 30), 1048c2ecf20Sopenharmony_ci MX21_PAD_SSI3_CLK = PAD_ID(PC, 31), 1058c2ecf20Sopenharmony_ci MX21_PAD_I2C_DATA = PAD_ID(PD, 17), 1068c2ecf20Sopenharmony_ci MX21_PAD_I2C_CLK = PAD_ID(PD, 18), 1078c2ecf20Sopenharmony_ci MX21_PAD_CSPI2_SS2 = PAD_ID(PD, 19), 1088c2ecf20Sopenharmony_ci MX21_PAD_CSPI2_SS1 = PAD_ID(PD, 20), 1098c2ecf20Sopenharmony_ci MX21_PAD_CSPI2_SS0 = PAD_ID(PD, 21), 1108c2ecf20Sopenharmony_ci MX21_PAD_CSPI2_SCLK = PAD_ID(PD, 22), 1118c2ecf20Sopenharmony_ci MX21_PAD_CSPI2_MISO = PAD_ID(PD, 23), 1128c2ecf20Sopenharmony_ci MX21_PAD_CSPI2_MOSI = PAD_ID(PD, 24), 1138c2ecf20Sopenharmony_ci MX21_PAD_CSPI1_RDY = PAD_ID(PD, 25), 1148c2ecf20Sopenharmony_ci MX21_PAD_CSPI1_SS2 = PAD_ID(PD, 26), 1158c2ecf20Sopenharmony_ci MX21_PAD_CSPI1_SS1 = PAD_ID(PD, 27), 1168c2ecf20Sopenharmony_ci MX21_PAD_CSPI1_SS0 = PAD_ID(PD, 28), 1178c2ecf20Sopenharmony_ci MX21_PAD_CSPI1_SCLK = PAD_ID(PD, 29), 1188c2ecf20Sopenharmony_ci MX21_PAD_CSPI1_MISO = PAD_ID(PD, 30), 1198c2ecf20Sopenharmony_ci MX21_PAD_CSPI1_MOSI = PAD_ID(PD, 31), 1208c2ecf20Sopenharmony_ci MX21_PAD_TEST_WB2 = PAD_ID(PE, 0), 1218c2ecf20Sopenharmony_ci MX21_PAD_TEST_WB1 = PAD_ID(PE, 1), 1228c2ecf20Sopenharmony_ci MX21_PAD_TEST_WB0 = PAD_ID(PE, 2), 1238c2ecf20Sopenharmony_ci MX21_PAD_UART2_CTS = PAD_ID(PE, 3), 1248c2ecf20Sopenharmony_ci MX21_PAD_UART2_RTS = PAD_ID(PE, 4), 1258c2ecf20Sopenharmony_ci MX21_PAD_PWMO = PAD_ID(PE, 5), 1268c2ecf20Sopenharmony_ci MX21_PAD_UART2_TXD = PAD_ID(PE, 6), 1278c2ecf20Sopenharmony_ci MX21_PAD_UART2_RXD = PAD_ID(PE, 7), 1288c2ecf20Sopenharmony_ci MX21_PAD_UART3_TXD = PAD_ID(PE, 8), 1298c2ecf20Sopenharmony_ci MX21_PAD_UART3_RXD = PAD_ID(PE, 9), 1308c2ecf20Sopenharmony_ci MX21_PAD_UART3_CTS = PAD_ID(PE, 10), 1318c2ecf20Sopenharmony_ci MX21_PAD_UART3_RTS = PAD_ID(PE, 11), 1328c2ecf20Sopenharmony_ci MX21_PAD_UART1_TXD = PAD_ID(PE, 12), 1338c2ecf20Sopenharmony_ci MX21_PAD_UART1_RXD = PAD_ID(PE, 13), 1348c2ecf20Sopenharmony_ci MX21_PAD_UART1_CTS = PAD_ID(PE, 14), 1358c2ecf20Sopenharmony_ci MX21_PAD_UART1_RTS = PAD_ID(PE, 15), 1368c2ecf20Sopenharmony_ci MX21_PAD_RTCK = PAD_ID(PE, 16), 1378c2ecf20Sopenharmony_ci MX21_PAD_RESET_OUT = PAD_ID(PE, 17), 1388c2ecf20Sopenharmony_ci MX21_PAD_SD1_D0 = PAD_ID(PE, 18), 1398c2ecf20Sopenharmony_ci MX21_PAD_SD1_D1 = PAD_ID(PE, 19), 1408c2ecf20Sopenharmony_ci MX21_PAD_SD1_D2 = PAD_ID(PE, 20), 1418c2ecf20Sopenharmony_ci MX21_PAD_SD1_D3 = PAD_ID(PE, 21), 1428c2ecf20Sopenharmony_ci MX21_PAD_SD1_CMD = PAD_ID(PE, 22), 1438c2ecf20Sopenharmony_ci MX21_PAD_SD1_CLK = PAD_ID(PE, 23), 1448c2ecf20Sopenharmony_ci MX21_PAD_NFRB = PAD_ID(PF, 0), 1458c2ecf20Sopenharmony_ci MX21_PAD_NFCE = PAD_ID(PF, 1), 1468c2ecf20Sopenharmony_ci MX21_PAD_NFWP = PAD_ID(PF, 2), 1478c2ecf20Sopenharmony_ci MX21_PAD_NFCLE = PAD_ID(PF, 3), 1488c2ecf20Sopenharmony_ci MX21_PAD_NFALE = PAD_ID(PF, 4), 1498c2ecf20Sopenharmony_ci MX21_PAD_NFRE = PAD_ID(PF, 5), 1508c2ecf20Sopenharmony_ci MX21_PAD_NFWE = PAD_ID(PF, 6), 1518c2ecf20Sopenharmony_ci MX21_PAD_NFIO0 = PAD_ID(PF, 7), 1528c2ecf20Sopenharmony_ci MX21_PAD_NFIO1 = PAD_ID(PF, 8), 1538c2ecf20Sopenharmony_ci MX21_PAD_NFIO2 = PAD_ID(PF, 9), 1548c2ecf20Sopenharmony_ci MX21_PAD_NFIO3 = PAD_ID(PF, 10), 1558c2ecf20Sopenharmony_ci MX21_PAD_NFIO4 = PAD_ID(PF, 11), 1568c2ecf20Sopenharmony_ci MX21_PAD_NFIO5 = PAD_ID(PF, 12), 1578c2ecf20Sopenharmony_ci MX21_PAD_NFIO6 = PAD_ID(PF, 13), 1588c2ecf20Sopenharmony_ci MX21_PAD_NFIO7 = PAD_ID(PF, 14), 1598c2ecf20Sopenharmony_ci MX21_PAD_CLKO = PAD_ID(PF, 15), 1608c2ecf20Sopenharmony_ci MX21_PAD_RESERVED = PAD_ID(PF, 16), 1618c2ecf20Sopenharmony_ci MX21_PAD_CS4 = PAD_ID(PF, 21), 1628c2ecf20Sopenharmony_ci MX21_PAD_CS5 = PAD_ID(PF, 22), 1638c2ecf20Sopenharmony_ci}; 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_ci/* Pad names for the pinmux subsystem */ 1668c2ecf20Sopenharmony_cistatic const struct pinctrl_pin_desc imx21_pinctrl_pads[] = { 1678c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LSCLK), 1688c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD0), 1698c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD1), 1708c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD2), 1718c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD3), 1728c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD4), 1738c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD5), 1748c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD6), 1758c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD7), 1768c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD8), 1778c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD9), 1788c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD10), 1798c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD11), 1808c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD12), 1818c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD13), 1828c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD14), 1838c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD15), 1848c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD16), 1858c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_LD17), 1868c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_REV), 1878c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CLS), 1888c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_PS), 1898c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SPL_SPR), 1908c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_HSYNC), 1918c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_VSYNC), 1928c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CONTRAST), 1938c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_OE_ACD), 1948c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SD2_D0), 1958c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SD2_D1), 1968c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SD2_D2), 1978c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SD2_D3), 1988c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SD2_CMD), 1998c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SD2_CLK), 2008c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSI_D0), 2018c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSI_D1), 2028c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSI_D2), 2038c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSI_D3), 2048c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSI_D4), 2058c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSI_MCLK), 2068c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSI_PIXCLK), 2078c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSI_D5), 2088c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSI_D6), 2098c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSI_D7), 2108c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSI_VSYNC), 2118c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSI_HSYNC), 2128c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USB_BYP), 2138c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USB_PWR), 2148c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USB_OC), 2158c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USBH_ON), 2168c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USBH1_FS), 2178c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USBH1_OE), 2188c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USBH1_TXDM), 2198c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USBH1_TXDP), 2208c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USBH1_RXDM), 2218c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USBH1_RXDP), 2228c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USBG_SDA), 2238c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USBG_SCL), 2248c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USBG_ON), 2258c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USBG_FS), 2268c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USBG_OE), 2278c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USBG_TXDM), 2288c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USBG_TXDP), 2298c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USBG_RXDM), 2308c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_USBG_RXDP), 2318c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_TOUT), 2328c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_TIN), 2338c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SAP_FS), 2348c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SAP_RXD), 2358c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SAP_TXD), 2368c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SAP_CLK), 2378c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SSI1_FS), 2388c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SSI1_RXD), 2398c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SSI1_TXD), 2408c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SSI1_CLK), 2418c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SSI2_FS), 2428c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SSI2_RXD), 2438c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SSI2_TXD), 2448c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SSI2_CLK), 2458c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SSI3_FS), 2468c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SSI3_RXD), 2478c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SSI3_TXD), 2488c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SSI3_CLK), 2498c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_I2C_DATA), 2508c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_I2C_CLK), 2518c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSPI2_SS2), 2528c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSPI2_SS1), 2538c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSPI2_SS0), 2548c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSPI2_SCLK), 2558c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSPI2_MISO), 2568c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSPI2_MOSI), 2578c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSPI1_RDY), 2588c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSPI1_SS2), 2598c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSPI1_SS1), 2608c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSPI1_SS0), 2618c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSPI1_SCLK), 2628c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSPI1_MISO), 2638c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CSPI1_MOSI), 2648c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_TEST_WB2), 2658c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_TEST_WB1), 2668c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_TEST_WB0), 2678c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_UART2_CTS), 2688c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_UART2_RTS), 2698c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_PWMO), 2708c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_UART2_TXD), 2718c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_UART2_RXD), 2728c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_UART3_TXD), 2738c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_UART3_RXD), 2748c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_UART3_CTS), 2758c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_UART3_RTS), 2768c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_UART1_TXD), 2778c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_UART1_RXD), 2788c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_UART1_CTS), 2798c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_UART1_RTS), 2808c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_RTCK), 2818c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_RESET_OUT), 2828c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SD1_D0), 2838c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SD1_D1), 2848c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SD1_D2), 2858c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SD1_D3), 2868c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SD1_CMD), 2878c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_SD1_CLK), 2888c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_NFRB), 2898c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_NFCE), 2908c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_NFWP), 2918c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_NFCLE), 2928c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_NFALE), 2938c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_NFRE), 2948c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_NFWE), 2958c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_NFIO0), 2968c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_NFIO1), 2978c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_NFIO2), 2988c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_NFIO3), 2998c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_NFIO4), 3008c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_NFIO5), 3018c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_NFIO6), 3028c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_NFIO7), 3038c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CLKO), 3048c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_RESERVED), 3058c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CS4), 3068c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX21_PAD_CS5), 3078c2ecf20Sopenharmony_ci}; 3088c2ecf20Sopenharmony_ci 3098c2ecf20Sopenharmony_cistatic struct imx1_pinctrl_soc_info imx21_pinctrl_info = { 3108c2ecf20Sopenharmony_ci .pins = imx21_pinctrl_pads, 3118c2ecf20Sopenharmony_ci .npins = ARRAY_SIZE(imx21_pinctrl_pads), 3128c2ecf20Sopenharmony_ci}; 3138c2ecf20Sopenharmony_ci 3148c2ecf20Sopenharmony_cistatic int __init imx21_pinctrl_probe(struct platform_device *pdev) 3158c2ecf20Sopenharmony_ci{ 3168c2ecf20Sopenharmony_ci return imx1_pinctrl_core_probe(pdev, &imx21_pinctrl_info); 3178c2ecf20Sopenharmony_ci} 3188c2ecf20Sopenharmony_ci 3198c2ecf20Sopenharmony_cistatic const struct of_device_id imx21_pinctrl_of_match[] = { 3208c2ecf20Sopenharmony_ci { .compatible = "fsl,imx21-iomuxc", }, 3218c2ecf20Sopenharmony_ci { } 3228c2ecf20Sopenharmony_ci}; 3238c2ecf20Sopenharmony_ci 3248c2ecf20Sopenharmony_cistatic struct platform_driver imx21_pinctrl_driver = { 3258c2ecf20Sopenharmony_ci .driver = { 3268c2ecf20Sopenharmony_ci .name = "imx21-pinctrl", 3278c2ecf20Sopenharmony_ci .of_match_table = imx21_pinctrl_of_match, 3288c2ecf20Sopenharmony_ci }, 3298c2ecf20Sopenharmony_ci}; 3308c2ecf20Sopenharmony_cibuiltin_platform_driver_probe(imx21_pinctrl_driver, imx21_pinctrl_probe); 331