18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci// 38c2ecf20Sopenharmony_ci// Freescale imx6sl pinctrl driver 48c2ecf20Sopenharmony_ci// 58c2ecf20Sopenharmony_ci// Author: Shawn Guo <shawn.guo@linaro.org> 68c2ecf20Sopenharmony_ci// Copyright (C) 2013 Freescale Semiconductor, Inc. 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <linux/err.h> 98c2ecf20Sopenharmony_ci#include <linux/init.h> 108c2ecf20Sopenharmony_ci#include <linux/io.h> 118c2ecf20Sopenharmony_ci#include <linux/of.h> 128c2ecf20Sopenharmony_ci#include <linux/of_device.h> 138c2ecf20Sopenharmony_ci#include <linux/pinctrl/pinctrl.h> 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci#include "pinctrl-imx.h" 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_cienum imx6sl_pads { 188c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE0 = 0, 198c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE1 = 1, 208c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE2 = 2, 218c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE3 = 3, 228c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE4 = 4, 238c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE5 = 5, 248c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE6 = 6, 258c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE7 = 7, 268c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE8 = 8, 278c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE9 = 9, 288c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE10 = 10, 298c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE11 = 11, 308c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE12 = 12, 318c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE13 = 13, 328c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE14 = 14, 338c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE15 = 15, 348c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE16 = 16, 358c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE17 = 17, 368c2ecf20Sopenharmony_ci MX6SL_PAD_RESERVE18 = 18, 378c2ecf20Sopenharmony_ci MX6SL_PAD_AUD_MCLK = 19, 388c2ecf20Sopenharmony_ci MX6SL_PAD_AUD_RXC = 20, 398c2ecf20Sopenharmony_ci MX6SL_PAD_AUD_RXD = 21, 408c2ecf20Sopenharmony_ci MX6SL_PAD_AUD_RXFS = 22, 418c2ecf20Sopenharmony_ci MX6SL_PAD_AUD_TXC = 23, 428c2ecf20Sopenharmony_ci MX6SL_PAD_AUD_TXD = 24, 438c2ecf20Sopenharmony_ci MX6SL_PAD_AUD_TXFS = 25, 448c2ecf20Sopenharmony_ci MX6SL_PAD_ECSPI1_MISO = 26, 458c2ecf20Sopenharmony_ci MX6SL_PAD_ECSPI1_MOSI = 27, 468c2ecf20Sopenharmony_ci MX6SL_PAD_ECSPI1_SCLK = 28, 478c2ecf20Sopenharmony_ci MX6SL_PAD_ECSPI1_SS0 = 29, 488c2ecf20Sopenharmony_ci MX6SL_PAD_ECSPI2_MISO = 30, 498c2ecf20Sopenharmony_ci MX6SL_PAD_ECSPI2_MOSI = 31, 508c2ecf20Sopenharmony_ci MX6SL_PAD_ECSPI2_SCLK = 32, 518c2ecf20Sopenharmony_ci MX6SL_PAD_ECSPI2_SS0 = 33, 528c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_BDR0 = 34, 538c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_BDR1 = 35, 548c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_D0 = 36, 558c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_D1 = 37, 568c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_D10 = 38, 578c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_D11 = 39, 588c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_D12 = 40, 598c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_D13 = 41, 608c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_D14 = 42, 618c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_D15 = 43, 628c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_D2 = 44, 638c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_D3 = 45, 648c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_D4 = 46, 658c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_D5 = 47, 668c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_D6 = 48, 678c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_D7 = 49, 688c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_D8 = 50, 698c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_D9 = 51, 708c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_GDCLK = 52, 718c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_GDOE = 53, 728c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_GDRL = 54, 738c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_GDSP = 55, 748c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_PWRCOM = 56, 758c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_PWRCTRL0 = 57, 768c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_PWRCTRL1 = 58, 778c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_PWRCTRL2 = 59, 788c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_PWRCTRL3 = 60, 798c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_PWRINT = 61, 808c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_PWRSTAT = 62, 818c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_PWRWAKEUP = 63, 828c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_SDCE0 = 64, 838c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_SDCE1 = 65, 848c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_SDCE2 = 66, 858c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_SDCE3 = 67, 868c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_SDCLK = 68, 878c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_SDLE = 69, 888c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_SDOE = 70, 898c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_SDSHR = 71, 908c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_VCOM0 = 72, 918c2ecf20Sopenharmony_ci MX6SL_PAD_EPDC_VCOM1 = 73, 928c2ecf20Sopenharmony_ci MX6SL_PAD_FEC_CRS_DV = 74, 938c2ecf20Sopenharmony_ci MX6SL_PAD_FEC_MDC = 75, 948c2ecf20Sopenharmony_ci MX6SL_PAD_FEC_MDIO = 76, 958c2ecf20Sopenharmony_ci MX6SL_PAD_FEC_REF_CLK = 77, 968c2ecf20Sopenharmony_ci MX6SL_PAD_FEC_RX_ER = 78, 978c2ecf20Sopenharmony_ci MX6SL_PAD_FEC_RXD0 = 79, 988c2ecf20Sopenharmony_ci MX6SL_PAD_FEC_RXD1 = 80, 998c2ecf20Sopenharmony_ci MX6SL_PAD_FEC_TX_CLK = 81, 1008c2ecf20Sopenharmony_ci MX6SL_PAD_FEC_TX_EN = 82, 1018c2ecf20Sopenharmony_ci MX6SL_PAD_FEC_TXD0 = 83, 1028c2ecf20Sopenharmony_ci MX6SL_PAD_FEC_TXD1 = 84, 1038c2ecf20Sopenharmony_ci MX6SL_PAD_HSIC_DAT = 85, 1048c2ecf20Sopenharmony_ci MX6SL_PAD_HSIC_STROBE = 86, 1058c2ecf20Sopenharmony_ci MX6SL_PAD_I2C1_SCL = 87, 1068c2ecf20Sopenharmony_ci MX6SL_PAD_I2C1_SDA = 88, 1078c2ecf20Sopenharmony_ci MX6SL_PAD_I2C2_SCL = 89, 1088c2ecf20Sopenharmony_ci MX6SL_PAD_I2C2_SDA = 90, 1098c2ecf20Sopenharmony_ci MX6SL_PAD_KEY_COL0 = 91, 1108c2ecf20Sopenharmony_ci MX6SL_PAD_KEY_COL1 = 92, 1118c2ecf20Sopenharmony_ci MX6SL_PAD_KEY_COL2 = 93, 1128c2ecf20Sopenharmony_ci MX6SL_PAD_KEY_COL3 = 94, 1138c2ecf20Sopenharmony_ci MX6SL_PAD_KEY_COL4 = 95, 1148c2ecf20Sopenharmony_ci MX6SL_PAD_KEY_COL5 = 96, 1158c2ecf20Sopenharmony_ci MX6SL_PAD_KEY_COL6 = 97, 1168c2ecf20Sopenharmony_ci MX6SL_PAD_KEY_COL7 = 98, 1178c2ecf20Sopenharmony_ci MX6SL_PAD_KEY_ROW0 = 99, 1188c2ecf20Sopenharmony_ci MX6SL_PAD_KEY_ROW1 = 100, 1198c2ecf20Sopenharmony_ci MX6SL_PAD_KEY_ROW2 = 101, 1208c2ecf20Sopenharmony_ci MX6SL_PAD_KEY_ROW3 = 102, 1218c2ecf20Sopenharmony_ci MX6SL_PAD_KEY_ROW4 = 103, 1228c2ecf20Sopenharmony_ci MX6SL_PAD_KEY_ROW5 = 104, 1238c2ecf20Sopenharmony_ci MX6SL_PAD_KEY_ROW6 = 105, 1248c2ecf20Sopenharmony_ci MX6SL_PAD_KEY_ROW7 = 106, 1258c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_CLK = 107, 1268c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT0 = 108, 1278c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT1 = 109, 1288c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT10 = 110, 1298c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT11 = 111, 1308c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT12 = 112, 1318c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT13 = 113, 1328c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT14 = 114, 1338c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT15 = 115, 1348c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT16 = 116, 1358c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT17 = 117, 1368c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT18 = 118, 1378c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT19 = 119, 1388c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT2 = 120, 1398c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT20 = 121, 1408c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT21 = 122, 1418c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT22 = 123, 1428c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT23 = 124, 1438c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT3 = 125, 1448c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT4 = 126, 1458c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT5 = 127, 1468c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT6 = 128, 1478c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT7 = 129, 1488c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT8 = 130, 1498c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_DAT9 = 131, 1508c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_ENABLE = 132, 1518c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_HSYNC = 133, 1528c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_RESET = 134, 1538c2ecf20Sopenharmony_ci MX6SL_PAD_LCD_VSYNC = 135, 1548c2ecf20Sopenharmony_ci MX6SL_PAD_PWM1 = 136, 1558c2ecf20Sopenharmony_ci MX6SL_PAD_REF_CLK_24M = 137, 1568c2ecf20Sopenharmony_ci MX6SL_PAD_REF_CLK_32K = 138, 1578c2ecf20Sopenharmony_ci MX6SL_PAD_SD1_CLK = 139, 1588c2ecf20Sopenharmony_ci MX6SL_PAD_SD1_CMD = 140, 1598c2ecf20Sopenharmony_ci MX6SL_PAD_SD1_DAT0 = 141, 1608c2ecf20Sopenharmony_ci MX6SL_PAD_SD1_DAT1 = 142, 1618c2ecf20Sopenharmony_ci MX6SL_PAD_SD1_DAT2 = 143, 1628c2ecf20Sopenharmony_ci MX6SL_PAD_SD1_DAT3 = 144, 1638c2ecf20Sopenharmony_ci MX6SL_PAD_SD1_DAT4 = 145, 1648c2ecf20Sopenharmony_ci MX6SL_PAD_SD1_DAT5 = 146, 1658c2ecf20Sopenharmony_ci MX6SL_PAD_SD1_DAT6 = 147, 1668c2ecf20Sopenharmony_ci MX6SL_PAD_SD1_DAT7 = 148, 1678c2ecf20Sopenharmony_ci MX6SL_PAD_SD2_CLK = 149, 1688c2ecf20Sopenharmony_ci MX6SL_PAD_SD2_CMD = 150, 1698c2ecf20Sopenharmony_ci MX6SL_PAD_SD2_DAT0 = 151, 1708c2ecf20Sopenharmony_ci MX6SL_PAD_SD2_DAT1 = 152, 1718c2ecf20Sopenharmony_ci MX6SL_PAD_SD2_DAT2 = 153, 1728c2ecf20Sopenharmony_ci MX6SL_PAD_SD2_DAT3 = 154, 1738c2ecf20Sopenharmony_ci MX6SL_PAD_SD2_DAT4 = 155, 1748c2ecf20Sopenharmony_ci MX6SL_PAD_SD2_DAT5 = 156, 1758c2ecf20Sopenharmony_ci MX6SL_PAD_SD2_DAT6 = 157, 1768c2ecf20Sopenharmony_ci MX6SL_PAD_SD2_DAT7 = 158, 1778c2ecf20Sopenharmony_ci MX6SL_PAD_SD2_RST = 159, 1788c2ecf20Sopenharmony_ci MX6SL_PAD_SD3_CLK = 160, 1798c2ecf20Sopenharmony_ci MX6SL_PAD_SD3_CMD = 161, 1808c2ecf20Sopenharmony_ci MX6SL_PAD_SD3_DAT0 = 162, 1818c2ecf20Sopenharmony_ci MX6SL_PAD_SD3_DAT1 = 163, 1828c2ecf20Sopenharmony_ci MX6SL_PAD_SD3_DAT2 = 164, 1838c2ecf20Sopenharmony_ci MX6SL_PAD_SD3_DAT3 = 165, 1848c2ecf20Sopenharmony_ci MX6SL_PAD_UART1_RXD = 166, 1858c2ecf20Sopenharmony_ci MX6SL_PAD_UART1_TXD = 167, 1868c2ecf20Sopenharmony_ci MX6SL_PAD_WDOG_B = 168, 1878c2ecf20Sopenharmony_ci}; 1888c2ecf20Sopenharmony_ci 1898c2ecf20Sopenharmony_ci/* Pad names for the pinmux subsystem */ 1908c2ecf20Sopenharmony_cistatic const struct pinctrl_pin_desc imx6sl_pinctrl_pads[] = { 1918c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE0), 1928c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE1), 1938c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE2), 1948c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE3), 1958c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE4), 1968c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE5), 1978c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE6), 1988c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE7), 1998c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE8), 2008c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE9), 2018c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE10), 2028c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE11), 2038c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE12), 2048c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE13), 2058c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE14), 2068c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE15), 2078c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE16), 2088c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE17), 2098c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_RESERVE18), 2108c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_AUD_MCLK), 2118c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_AUD_RXC), 2128c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_AUD_RXD), 2138c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_AUD_RXFS), 2148c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_AUD_TXC), 2158c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_AUD_TXD), 2168c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_AUD_TXFS), 2178c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_ECSPI1_MISO), 2188c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_ECSPI1_MOSI), 2198c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_ECSPI1_SCLK), 2208c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_ECSPI1_SS0), 2218c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_ECSPI2_MISO), 2228c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_ECSPI2_MOSI), 2238c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_ECSPI2_SCLK), 2248c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_ECSPI2_SS0), 2258c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_BDR0), 2268c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_BDR1), 2278c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_D0), 2288c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_D1), 2298c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_D10), 2308c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_D11), 2318c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_D12), 2328c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_D13), 2338c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_D14), 2348c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_D15), 2358c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_D2), 2368c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_D3), 2378c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_D4), 2388c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_D5), 2398c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_D6), 2408c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_D7), 2418c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_D8), 2428c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_D9), 2438c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_GDCLK), 2448c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_GDOE), 2458c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_GDRL), 2468c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_GDSP), 2478c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_PWRCOM), 2488c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_PWRCTRL0), 2498c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_PWRCTRL1), 2508c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_PWRCTRL2), 2518c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_PWRCTRL3), 2528c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_PWRINT), 2538c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_PWRSTAT), 2548c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_PWRWAKEUP), 2558c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_SDCE0), 2568c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_SDCE1), 2578c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_SDCE2), 2588c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_SDCE3), 2598c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_SDCLK), 2608c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_SDLE), 2618c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_SDOE), 2628c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_SDSHR), 2638c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_VCOM0), 2648c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_EPDC_VCOM1), 2658c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_FEC_CRS_DV), 2668c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_FEC_MDC), 2678c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_FEC_MDIO), 2688c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_FEC_REF_CLK), 2698c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_FEC_RX_ER), 2708c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_FEC_RXD0), 2718c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_FEC_RXD1), 2728c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_FEC_TX_CLK), 2738c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_FEC_TX_EN), 2748c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_FEC_TXD0), 2758c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_FEC_TXD1), 2768c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_HSIC_DAT), 2778c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_HSIC_STROBE), 2788c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_I2C1_SCL), 2798c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_I2C1_SDA), 2808c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_I2C2_SCL), 2818c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_I2C2_SDA), 2828c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_KEY_COL0), 2838c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_KEY_COL1), 2848c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_KEY_COL2), 2858c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_KEY_COL3), 2868c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_KEY_COL4), 2878c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_KEY_COL5), 2888c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_KEY_COL6), 2898c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_KEY_COL7), 2908c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_KEY_ROW0), 2918c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_KEY_ROW1), 2928c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_KEY_ROW2), 2938c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_KEY_ROW3), 2948c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_KEY_ROW4), 2958c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_KEY_ROW5), 2968c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_KEY_ROW6), 2978c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_KEY_ROW7), 2988c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_CLK), 2998c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT0), 3008c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT1), 3018c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT10), 3028c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT11), 3038c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT12), 3048c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT13), 3058c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT14), 3068c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT15), 3078c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT16), 3088c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT17), 3098c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT18), 3108c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT19), 3118c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT2), 3128c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT20), 3138c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT21), 3148c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT22), 3158c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT23), 3168c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT3), 3178c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT4), 3188c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT5), 3198c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT6), 3208c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT7), 3218c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT8), 3228c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_DAT9), 3238c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_ENABLE), 3248c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_HSYNC), 3258c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_RESET), 3268c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_LCD_VSYNC), 3278c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_PWM1), 3288c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_REF_CLK_24M), 3298c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_REF_CLK_32K), 3308c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD1_CLK), 3318c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD1_CMD), 3328c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD1_DAT0), 3338c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD1_DAT1), 3348c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD1_DAT2), 3358c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD1_DAT3), 3368c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD1_DAT4), 3378c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD1_DAT5), 3388c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD1_DAT6), 3398c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD1_DAT7), 3408c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD2_CLK), 3418c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD2_CMD), 3428c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD2_DAT0), 3438c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD2_DAT1), 3448c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD2_DAT2), 3458c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD2_DAT3), 3468c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD2_DAT4), 3478c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD2_DAT5), 3488c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD2_DAT6), 3498c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD2_DAT7), 3508c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD2_RST), 3518c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD3_CLK), 3528c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD3_CMD), 3538c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD3_DAT0), 3548c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD3_DAT1), 3558c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD3_DAT2), 3568c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_SD3_DAT3), 3578c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_UART1_RXD), 3588c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_UART1_TXD), 3598c2ecf20Sopenharmony_ci IMX_PINCTRL_PIN(MX6SL_PAD_WDOG_B), 3608c2ecf20Sopenharmony_ci}; 3618c2ecf20Sopenharmony_ci 3628c2ecf20Sopenharmony_cistatic const struct imx_pinctrl_soc_info imx6sl_pinctrl_info = { 3638c2ecf20Sopenharmony_ci .pins = imx6sl_pinctrl_pads, 3648c2ecf20Sopenharmony_ci .npins = ARRAY_SIZE(imx6sl_pinctrl_pads), 3658c2ecf20Sopenharmony_ci .gpr_compatible = "fsl,imx6sl-iomuxc-gpr", 3668c2ecf20Sopenharmony_ci}; 3678c2ecf20Sopenharmony_ci 3688c2ecf20Sopenharmony_cistatic const struct of_device_id imx6sl_pinctrl_of_match[] = { 3698c2ecf20Sopenharmony_ci { .compatible = "fsl,imx6sl-iomuxc", }, 3708c2ecf20Sopenharmony_ci { /* sentinel */ } 3718c2ecf20Sopenharmony_ci}; 3728c2ecf20Sopenharmony_ci 3738c2ecf20Sopenharmony_cistatic int imx6sl_pinctrl_probe(struct platform_device *pdev) 3748c2ecf20Sopenharmony_ci{ 3758c2ecf20Sopenharmony_ci return imx_pinctrl_probe(pdev, &imx6sl_pinctrl_info); 3768c2ecf20Sopenharmony_ci} 3778c2ecf20Sopenharmony_ci 3788c2ecf20Sopenharmony_cistatic struct platform_driver imx6sl_pinctrl_driver = { 3798c2ecf20Sopenharmony_ci .driver = { 3808c2ecf20Sopenharmony_ci .name = "imx6sl-pinctrl", 3818c2ecf20Sopenharmony_ci .of_match_table = imx6sl_pinctrl_of_match, 3828c2ecf20Sopenharmony_ci }, 3838c2ecf20Sopenharmony_ci .probe = imx6sl_pinctrl_probe, 3848c2ecf20Sopenharmony_ci}; 3858c2ecf20Sopenharmony_ci 3868c2ecf20Sopenharmony_cistatic int __init imx6sl_pinctrl_init(void) 3878c2ecf20Sopenharmony_ci{ 3888c2ecf20Sopenharmony_ci return platform_driver_register(&imx6sl_pinctrl_driver); 3898c2ecf20Sopenharmony_ci} 3908c2ecf20Sopenharmony_ciarch_initcall(imx6sl_pinctrl_init); 391