18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci// 38c2ecf20Sopenharmony_ci// imx25 pinctrl driver. 48c2ecf20Sopenharmony_ci// 58c2ecf20Sopenharmony_ci// Copyright 2013 Eukréa Electromatique <denis@eukrea.com> 68c2ecf20Sopenharmony_ci// 78c2ecf20Sopenharmony_ci// This driver was mostly copied from the imx51 pinctrl driver which has: 88c2ecf20Sopenharmony_ci// 98c2ecf20Sopenharmony_ci// Copyright (C) 2012 Freescale Semiconductor, Inc. 108c2ecf20Sopenharmony_ci// Copyright (C) 2012 Linaro, Inc. 118c2ecf20Sopenharmony_ci// 128c2ecf20Sopenharmony_ci// Author: Denis Carikli <denis@eukrea.com> 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci#include <linux/err.h> 158c2ecf20Sopenharmony_ci#include <linux/init.h> 168c2ecf20Sopenharmony_ci#include <linux/io.h> 178c2ecf20Sopenharmony_ci#include <linux/of.h> 188c2ecf20Sopenharmony_ci#include <linux/of_device.h> 198c2ecf20Sopenharmony_ci#include <linux/pinctrl/pinctrl.h> 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci#include "pinctrl-imx.h" 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_cienum imx25_pads { 248c2ecf20Sopenharmony_ci MX25_PAD_RESERVE0 = 0, 258c2ecf20Sopenharmony_ci MX25_PAD_RESERVE1 = 1, 268c2ecf20Sopenharmony_ci MX25_PAD_A10 = 2, 278c2ecf20Sopenharmony_ci MX25_PAD_A13 = 3, 288c2ecf20Sopenharmony_ci MX25_PAD_A14 = 4, 298c2ecf20Sopenharmony_ci MX25_PAD_A15 = 5, 308c2ecf20Sopenharmony_ci MX25_PAD_A16 = 6, 318c2ecf20Sopenharmony_ci MX25_PAD_A17 = 7, 328c2ecf20Sopenharmony_ci MX25_PAD_A18 = 8, 338c2ecf20Sopenharmony_ci MX25_PAD_A19 = 9, 348c2ecf20Sopenharmony_ci MX25_PAD_A20 = 10, 358c2ecf20Sopenharmony_ci MX25_PAD_A21 = 11, 368c2ecf20Sopenharmony_ci MX25_PAD_A22 = 12, 378c2ecf20Sopenharmony_ci MX25_PAD_A23 = 13, 388c2ecf20Sopenharmony_ci MX25_PAD_A24 = 14, 398c2ecf20Sopenharmony_ci MX25_PAD_A25 = 15, 408c2ecf20Sopenharmony_ci MX25_PAD_EB0 = 16, 418c2ecf20Sopenharmony_ci MX25_PAD_EB1 = 17, 428c2ecf20Sopenharmony_ci MX25_PAD_OE = 18, 438c2ecf20Sopenharmony_ci MX25_PAD_CS0 = 19, 448c2ecf20Sopenharmony_ci MX25_PAD_CS1 = 20, 458c2ecf20Sopenharmony_ci MX25_PAD_CS4 = 21, 468c2ecf20Sopenharmony_ci MX25_PAD_CS5 = 22, 478c2ecf20Sopenharmony_ci MX25_PAD_NF_CE0 = 23, 488c2ecf20Sopenharmony_ci MX25_PAD_ECB = 24, 498c2ecf20Sopenharmony_ci MX25_PAD_LBA = 25, 508c2ecf20Sopenharmony_ci MX25_PAD_BCLK = 26, 518c2ecf20Sopenharmony_ci MX25_PAD_RW = 27, 528c2ecf20Sopenharmony_ci MX25_PAD_NFWE_B = 28, 538c2ecf20Sopenharmony_ci MX25_PAD_NFRE_B = 29, 548c2ecf20Sopenharmony_ci MX25_PAD_NFALE = 30, 558c2ecf20Sopenharmony_ci MX25_PAD_NFCLE = 31, 568c2ecf20Sopenharmony_ci MX25_PAD_NFWP_B = 32, 578c2ecf20Sopenharmony_ci MX25_PAD_NFRB = 33, 588c2ecf20Sopenharmony_ci MX25_PAD_D15 = 34, 598c2ecf20Sopenharmony_ci MX25_PAD_D14 = 35, 608c2ecf20Sopenharmony_ci MX25_PAD_D13 = 36, 618c2ecf20Sopenharmony_ci MX25_PAD_D12 = 37, 628c2ecf20Sopenharmony_ci MX25_PAD_D11 = 38, 638c2ecf20Sopenharmony_ci MX25_PAD_D10 = 39, 648c2ecf20Sopenharmony_ci MX25_PAD_D9 = 40, 658c2ecf20Sopenharmony_ci MX25_PAD_D8 = 41, 668c2ecf20Sopenharmony_ci MX25_PAD_D7 = 42, 678c2ecf20Sopenharmony_ci MX25_PAD_D6 = 43, 688c2ecf20Sopenharmony_ci MX25_PAD_D5 = 44, 698c2ecf20Sopenharmony_ci MX25_PAD_D4 = 45, 708c2ecf20Sopenharmony_ci MX25_PAD_D3 = 46, 718c2ecf20Sopenharmony_ci MX25_PAD_D2 = 47, 728c2ecf20Sopenharmony_ci MX25_PAD_D1 = 48, 738c2ecf20Sopenharmony_ci MX25_PAD_D0 = 49, 748c2ecf20Sopenharmony_ci MX25_PAD_LD0 = 50, 758c2ecf20Sopenharmony_ci MX25_PAD_LD1 = 51, 768c2ecf20Sopenharmony_ci MX25_PAD_LD2 = 52, 778c2ecf20Sopenharmony_ci MX25_PAD_LD3 = 53, 788c2ecf20Sopenharmony_ci MX25_PAD_LD4 = 54, 798c2ecf20Sopenharmony_ci MX25_PAD_LD5 = 55, 808c2ecf20Sopenharmony_ci MX25_PAD_LD6 = 56, 818c2ecf20Sopenharmony_ci MX25_PAD_LD7 = 57, 828c2ecf20Sopenharmony_ci MX25_PAD_LD8 = 58, 838c2ecf20Sopenharmony_ci MX25_PAD_LD9 = 59, 848c2ecf20Sopenharmony_ci MX25_PAD_LD10 = 60, 858c2ecf20Sopenharmony_ci MX25_PAD_LD11 = 61, 868c2ecf20Sopenharmony_ci MX25_PAD_LD12 = 62, 878c2ecf20Sopenharmony_ci MX25_PAD_LD13 = 63, 888c2ecf20Sopenharmony_ci MX25_PAD_LD14 = 64, 898c2ecf20Sopenharmony_ci MX25_PAD_LD15 = 65, 908c2ecf20Sopenharmony_ci MX25_PAD_HSYNC = 66, 918c2ecf20Sopenharmony_ci MX25_PAD_VSYNC = 67, 928c2ecf20Sopenharmony_ci MX25_PAD_LSCLK = 68, 938c2ecf20Sopenharmony_ci MX25_PAD_OE_ACD = 69, 948c2ecf20Sopenharmony_ci MX25_PAD_CONTRAST = 70, 958c2ecf20Sopenharmony_ci MX25_PAD_PWM = 71, 968c2ecf20Sopenharmony_ci MX25_PAD_CSI_D2 = 72, 978c2ecf20Sopenharmony_ci MX25_PAD_CSI_D3 = 73, 988c2ecf20Sopenharmony_ci MX25_PAD_CSI_D4 = 74, 998c2ecf20Sopenharmony_ci MX25_PAD_CSI_D5 = 75, 1008c2ecf20Sopenharmony_ci MX25_PAD_CSI_D6 = 76, 1018c2ecf20Sopenharmony_ci MX25_PAD_CSI_D7 = 77, 1028c2ecf20Sopenharmony_ci MX25_PAD_CSI_D8 = 78, 1038c2ecf20Sopenharmony_ci MX25_PAD_CSI_D9 = 79, 1048c2ecf20Sopenharmony_ci MX25_PAD_CSI_MCLK = 80, 1058c2ecf20Sopenharmony_ci MX25_PAD_CSI_VSYNC = 81, 1068c2ecf20Sopenharmony_ci MX25_PAD_CSI_HSYNC = 82, 1078c2ecf20Sopenharmony_ci MX25_PAD_CSI_PIXCLK = 83, 1088c2ecf20Sopenharmony_ci MX25_PAD_I2C1_CLK = 84, 1098c2ecf20Sopenharmony_ci MX25_PAD_I2C1_DAT = 85, 1108c2ecf20Sopenharmony_ci MX25_PAD_CSPI1_MOSI = 86, 1118c2ecf20Sopenharmony_ci MX25_PAD_CSPI1_MISO = 87, 1128c2ecf20Sopenharmony_ci MX25_PAD_CSPI1_SS0 = 88, 1138c2ecf20Sopenharmony_ci MX25_PAD_CSPI1_SS1 = 89, 1148c2ecf20Sopenharmony_ci MX25_PAD_CSPI1_SCLK = 90, 1158c2ecf20Sopenharmony_ci MX25_PAD_CSPI1_RDY = 91, 1168c2ecf20Sopenharmony_ci MX25_PAD_UART1_RXD = 92, 1178c2ecf20Sopenharmony_ci MX25_PAD_UART1_TXD = 93, 1188c2ecf20Sopenharmony_ci MX25_PAD_UART1_RTS = 94, 1198c2ecf20Sopenharmony_ci MX25_PAD_UART1_CTS = 95, 1208c2ecf20Sopenharmony_ci MX25_PAD_UART2_RXD = 96, 1218c2ecf20Sopenharmony_ci MX25_PAD_UART2_TXD = 97, 1228c2ecf20Sopenharmony_ci MX25_PAD_UART2_RTS = 98, 1238c2ecf20Sopenharmony_ci MX25_PAD_UART2_CTS = 99, 1248c2ecf20Sopenharmony_ci MX25_PAD_SD1_CMD = 100, 1258c2ecf20Sopenharmony_ci MX25_PAD_SD1_CLK = 101, 1268c2ecf20Sopenharmony_ci MX25_PAD_SD1_DATA0 = 102, 1278c2ecf20Sopenharmony_ci MX25_PAD_SD1_DATA1 = 103, 1288c2ecf20Sopenharmony_ci MX25_PAD_SD1_DATA2 = 104, 1298c2ecf20Sopenharmony_ci MX25_PAD_SD1_DATA3 = 105, 1308c2ecf20Sopenharmony_ci MX25_PAD_KPP_ROW0 = 106, 1318c2ecf20Sopenharmony_ci MX25_PAD_KPP_ROW1 = 107, 1328c2ecf20Sopenharmony_ci MX25_PAD_KPP_ROW2 = 108, 1338c2ecf20Sopenharmony_ci MX25_PAD_KPP_ROW3 = 109, 1348c2ecf20Sopenharmony_ci MX25_PAD_KPP_COL0 = 110, 1358c2ecf20Sopenharmony_ci MX25_PAD_KPP_COL1 = 111, 1368c2ecf20Sopenharmony_ci MX25_PAD_KPP_COL2 = 112, 1378c2ecf20Sopenharmony_ci MX25_PAD_KPP_COL3 = 113, 1388c2ecf20Sopenharmony_ci MX25_PAD_FEC_MDC = 114, 1398c2ecf20Sopenharmony_ci MX25_PAD_FEC_MDIO = 115, 1408c2ecf20Sopenharmony_ci MX25_PAD_FEC_TDATA0 = 116, 1418c2ecf20Sopenharmony_ci MX25_PAD_FEC_TDATA1 = 117, 1428c2ecf20Sopenharmony_ci MX25_PAD_FEC_TX_EN = 118, 1438c2ecf20Sopenharmony_ci MX25_PAD_FEC_RDATA0 = 119, 1448c2ecf20Sopenharmony_ci MX25_PAD_FEC_RDATA1 = 120, 1458c2ecf20Sopenharmony_ci MX25_PAD_FEC_RX_DV = 121, 1468c2ecf20Sopenharmony_ci MX25_PAD_FEC_TX_CLK = 122, 1478c2ecf20Sopenharmony_ci MX25_PAD_RTCK = 123, 1488c2ecf20Sopenharmony_ci MX25_PAD_DE_B = 124, 1498c2ecf20Sopenharmony_ci MX25_PAD_GPIO_A = 125, 1508c2ecf20Sopenharmony_ci MX25_PAD_GPIO_B = 126, 1518c2ecf20Sopenharmony_ci MX25_PAD_GPIO_C = 127, 1528c2ecf20Sopenharmony_ci MX25_PAD_GPIO_D = 128, 1538c2ecf20Sopenharmony_ci MX25_PAD_GPIO_E = 129, 1548c2ecf20Sopenharmony_ci MX25_PAD_GPIO_F = 130, 1558c2ecf20Sopenharmony_ci MX25_PAD_EXT_ARMCLK = 131, 1568c2ecf20Sopenharmony_ci MX25_PAD_UPLL_BYPCLK = 132, 1578c2ecf20Sopenharmony_ci MX25_PAD_VSTBY_REQ = 133, 1588c2ecf20Sopenharmony_ci MX25_PAD_VSTBY_ACK = 134, 1598c2ecf20Sopenharmony_ci MX25_PAD_POWER_FAIL = 135, 1608c2ecf20Sopenharmony_ci MX25_PAD_CLKO = 136, 1618c2ecf20Sopenharmony_ci MX25_PAD_BOOT_MODE0 = 137, 1628c2ecf20Sopenharmony_ci MX25_PAD_BOOT_MODE1 = 138, 1638c2ecf20Sopenharmony_ci}; 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_ci/* Pad names for the pinmux subsystem */ 1668c2ecf20Sopenharmony_cistatic const struct pinctrl_pin_desc imx25_pinctrl_pads[] = { 1678c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_RESERVE0), 1688c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_RESERVE1), 1698c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_A10), 1708c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_A13), 1718c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_A14), 1728c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_A15), 1738c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_A16), 1748c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_A17), 1758c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_A18), 1768c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_A19), 1778c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_A20), 1788c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_A21), 1798c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_A22), 1808c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_A23), 1818c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_A24), 1828c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_A25), 1838c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_EB0), 1848c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_EB1), 1858c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_OE), 1868c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CS0), 1878c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CS1), 1888c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CS4), 1898c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CS5), 1908c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_NF_CE0), 1918c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_ECB), 1928c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LBA), 1938c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_BCLK), 1948c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_RW), 1958c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_NFWE_B), 1968c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_NFRE_B), 1978c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_NFALE), 1988c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_NFCLE), 1998c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_NFWP_B), 2008c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_NFRB), 2018c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_D15), 2028c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_D14), 2038c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_D13), 2048c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_D12), 2058c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_D11), 2068c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_D10), 2078c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_D9), 2088c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_D8), 2098c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_D7), 2108c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_D6), 2118c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_D5), 2128c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_D4), 2138c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_D3), 2148c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_D2), 2158c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_D1), 2168c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_D0), 2178c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LD0), 2188c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LD1), 2198c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LD2), 2208c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LD3), 2218c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LD4), 2228c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LD5), 2238c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LD6), 2248c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LD7), 2258c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LD8), 2268c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LD9), 2278c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LD10), 2288c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LD11), 2298c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LD12), 2308c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LD13), 2318c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LD14), 2328c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LD15), 2338c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_HSYNC), 2348c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_VSYNC), 2358c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_LSCLK), 2368c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_OE_ACD), 2378c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CONTRAST), 2388c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_PWM), 2398c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSI_D2), 2408c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSI_D3), 2418c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSI_D4), 2428c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSI_D5), 2438c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSI_D6), 2448c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSI_D7), 2458c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSI_D8), 2468c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSI_D9), 2478c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSI_MCLK), 2488c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSI_VSYNC), 2498c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSI_HSYNC), 2508c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSI_PIXCLK), 2518c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_I2C1_CLK), 2528c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_I2C1_DAT), 2538c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSPI1_MOSI), 2548c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSPI1_MISO), 2558c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSPI1_SS0), 2568c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSPI1_SS1), 2578c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSPI1_SCLK), 2588c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CSPI1_RDY), 2598c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_UART1_RXD), 2608c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_UART1_TXD), 2618c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_UART1_RTS), 2628c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_UART1_CTS), 2638c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_UART2_RXD), 2648c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_UART2_TXD), 2658c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_UART2_RTS), 2668c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_UART2_CTS), 2678c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_SD1_CMD), 2688c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_SD1_CLK), 2698c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_SD1_DATA0), 2708c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_SD1_DATA1), 2718c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_SD1_DATA2), 2728c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_SD1_DATA3), 2738c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_KPP_ROW0), 2748c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_KPP_ROW1), 2758c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_KPP_ROW2), 2768c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_KPP_ROW3), 2778c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_KPP_COL0), 2788c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_KPP_COL1), 2798c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_KPP_COL2), 2808c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_KPP_COL3), 2818c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_FEC_MDC), 2828c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_FEC_MDIO), 2838c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_FEC_TDATA0), 2848c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_FEC_TDATA1), 2858c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_FEC_TX_EN), 2868c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_FEC_RDATA0), 2878c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_FEC_RDATA1), 2888c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_FEC_RX_DV), 2898c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_FEC_TX_CLK), 2908c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_RTCK), 2918c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_DE_B), 2928c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_GPIO_A), 2938c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_GPIO_B), 2948c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_GPIO_C), 2958c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_GPIO_D), 2968c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_GPIO_E), 2978c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_GPIO_F), 2988c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_EXT_ARMCLK), 2998c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_UPLL_BYPCLK), 3008c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_VSTBY_REQ), 3018c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_VSTBY_ACK), 3028c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_POWER_FAIL), 3038c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_CLKO), 3048c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_BOOT_MODE0), 3058c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX25_PAD_BOOT_MODE1), 3068c2ecf20Sopenharmony_ci}; 3078c2ecf20Sopenharmony_ci 3088c2ecf20Sopenharmony_cistatic const struct imx_pinctrl_soc_info imx25_pinctrl_info = { 3098c2ecf20Sopenharmony_ci .pins = imx25_pinctrl_pads, 3108c2ecf20Sopenharmony_ci .npins = ARRAY_SIZE(imx25_pinctrl_pads), 3118c2ecf20Sopenharmony_ci}; 3128c2ecf20Sopenharmony_ci 3138c2ecf20Sopenharmony_cistatic const struct of_device_id imx25_pinctrl_of_match[] = { 3148c2ecf20Sopenharmony_ci { .compatible = "fsl,imx25-iomuxc", }, 3158c2ecf20Sopenharmony_ci { /* sentinel */ } 3168c2ecf20Sopenharmony_ci}; 3178c2ecf20Sopenharmony_ci 3188c2ecf20Sopenharmony_cistatic int imx25_pinctrl_probe(struct platform_device *pdev) 3198c2ecf20Sopenharmony_ci{ 3208c2ecf20Sopenharmony_ci return imx_pinctrl_probe(pdev, &imx25_pinctrl_info); 3218c2ecf20Sopenharmony_ci} 3228c2ecf20Sopenharmony_ci 3238c2ecf20Sopenharmony_cistatic struct platform_driver imx25_pinctrl_driver = { 3248c2ecf20Sopenharmony_ci .driver = { 3258c2ecf20Sopenharmony_ci .name = "imx25-pinctrl", 3268c2ecf20Sopenharmony_ci .of_match_table = of_match_ptr(imx25_pinctrl_of_match), 3278c2ecf20Sopenharmony_ci }, 3288c2ecf20Sopenharmony_ci .probe = imx25_pinctrl_probe, 3298c2ecf20Sopenharmony_ci}; 3308c2ecf20Sopenharmony_ci 3318c2ecf20Sopenharmony_cistatic int __init imx25_pinctrl_init(void) 3328c2ecf20Sopenharmony_ci{ 3338c2ecf20Sopenharmony_ci return platform_driver_register(&imx25_pinctrl_driver); 3348c2ecf20Sopenharmony_ci} 3358c2ecf20Sopenharmony_ciarch_initcall(imx25_pinctrl_init); 336