0001
0002
0003
0004
0005
0006
0007
0008
0009 #include <linux/err.h>
0010 #include <linux/init.h>
0011 #include <linux/io.h>
0012 #include <linux/of.h>
0013 #include <linux/of_device.h>
0014 #include <linux/pinctrl/pinctrl.h>
0015
0016 #include "pinctrl-imx.h"
0017
0018 enum imx50_pads {
0019 MX50_PAD_RESERVE0 = 0,
0020 MX50_PAD_RESERVE1 = 1,
0021 MX50_PAD_RESERVE2 = 2,
0022 MX50_PAD_RESERVE3 = 3,
0023 MX50_PAD_RESERVE4 = 4,
0024 MX50_PAD_RESERVE5 = 5,
0025 MX50_PAD_RESERVE6 = 6,
0026 MX50_PAD_RESERVE7 = 7,
0027 MX50_PAD_KEY_COL0 = 8,
0028 MX50_PAD_KEY_ROW0 = 9,
0029 MX50_PAD_KEY_COL1 = 10,
0030 MX50_PAD_KEY_ROW1 = 11,
0031 MX50_PAD_KEY_COL2 = 12,
0032 MX50_PAD_KEY_ROW2 = 13,
0033 MX50_PAD_KEY_COL3 = 14,
0034 MX50_PAD_KEY_ROW3 = 15,
0035 MX50_PAD_I2C1_SCL = 16,
0036 MX50_PAD_I2C1_SDA = 17,
0037 MX50_PAD_I2C2_SCL = 18,
0038 MX50_PAD_I2C2_SDA = 19,
0039 MX50_PAD_I2C3_SCL = 20,
0040 MX50_PAD_I2C3_SDA = 21,
0041 MX50_PAD_PWM1 = 22,
0042 MX50_PAD_PWM2 = 23,
0043 MX50_PAD_0WIRE = 24,
0044 MX50_PAD_EPITO = 25,
0045 MX50_PAD_WDOG = 26,
0046 MX50_PAD_SSI_TXFS = 27,
0047 MX50_PAD_SSI_TXC = 28,
0048 MX50_PAD_SSI_TXD = 29,
0049 MX50_PAD_SSI_RXD = 30,
0050 MX50_PAD_SSI_RXF = 31,
0051 MX50_PAD_SSI_RXC = 32,
0052 MX50_PAD_UART1_TXD = 33,
0053 MX50_PAD_UART1_RXD = 34,
0054 MX50_PAD_UART1_CTS = 35,
0055 MX50_PAD_UART1_RTS = 36,
0056 MX50_PAD_UART2_TXD = 37,
0057 MX50_PAD_UART2_RXD = 38,
0058 MX50_PAD_UART2_CTS = 39,
0059 MX50_PAD_UART2_RTS = 40,
0060 MX50_PAD_UART3_TXD = 41,
0061 MX50_PAD_UART3_RXD = 42,
0062 MX50_PAD_UART4_TXD = 43,
0063 MX50_PAD_UART4_RXD = 44,
0064 MX50_PAD_CSPI_CLK = 45,
0065 MX50_PAD_CSPI_MOSI = 46,
0066 MX50_PAD_CSPI_MISO = 47,
0067 MX50_PAD_CSPI_SS0 = 48,
0068 MX50_PAD_ECSPI1_CLK = 49,
0069 MX50_PAD_ECSPI1_MOSI = 50,
0070 MX50_PAD_ECSPI1_MISO = 51,
0071 MX50_PAD_ECSPI1_SS0 = 52,
0072 MX50_PAD_ECSPI2_CLK = 53,
0073 MX50_PAD_ECSPI2_MOSI = 54,
0074 MX50_PAD_ECSPI2_MISO = 55,
0075 MX50_PAD_ECSPI2_SS0 = 56,
0076 MX50_PAD_SD1_CLK = 57,
0077 MX50_PAD_SD1_CMD = 58,
0078 MX50_PAD_SD1_D0 = 59,
0079 MX50_PAD_SD1_D1 = 60,
0080 MX50_PAD_SD1_D2 = 61,
0081 MX50_PAD_SD1_D3 = 62,
0082 MX50_PAD_SD2_CLK = 63,
0083 MX50_PAD_SD2_CMD = 64,
0084 MX50_PAD_SD2_D0 = 65,
0085 MX50_PAD_SD2_D1 = 66,
0086 MX50_PAD_SD2_D2 = 67,
0087 MX50_PAD_SD2_D3 = 68,
0088 MX50_PAD_SD2_D4 = 69,
0089 MX50_PAD_SD2_D5 = 70,
0090 MX50_PAD_SD2_D6 = 71,
0091 MX50_PAD_SD2_D7 = 72,
0092 MX50_PAD_SD2_WP = 73,
0093 MX50_PAD_SD2_CD = 74,
0094 MX50_PAD_DISP_D0 = 75,
0095 MX50_PAD_DISP_D1 = 76,
0096 MX50_PAD_DISP_D2 = 77,
0097 MX50_PAD_DISP_D3 = 78,
0098 MX50_PAD_DISP_D4 = 79,
0099 MX50_PAD_DISP_D5 = 80,
0100 MX50_PAD_DISP_D6 = 81,
0101 MX50_PAD_DISP_D7 = 82,
0102 MX50_PAD_DISP_WR = 83,
0103 MX50_PAD_DISP_RD = 84,
0104 MX50_PAD_DISP_RS = 85,
0105 MX50_PAD_DISP_CS = 86,
0106 MX50_PAD_DISP_BUSY = 87,
0107 MX50_PAD_DISP_RESET = 88,
0108 MX50_PAD_SD3_CLK = 89,
0109 MX50_PAD_SD3_CMD = 90,
0110 MX50_PAD_SD3_D0 = 91,
0111 MX50_PAD_SD3_D1 = 92,
0112 MX50_PAD_SD3_D2 = 93,
0113 MX50_PAD_SD3_D3 = 94,
0114 MX50_PAD_SD3_D4 = 95,
0115 MX50_PAD_SD3_D5 = 96,
0116 MX50_PAD_SD3_D6 = 97,
0117 MX50_PAD_SD3_D7 = 98,
0118 MX50_PAD_SD3_WP = 99,
0119 MX50_PAD_DISP_D8 = 100,
0120 MX50_PAD_DISP_D9 = 101,
0121 MX50_PAD_DISP_D10 = 102,
0122 MX50_PAD_DISP_D11 = 103,
0123 MX50_PAD_DISP_D12 = 104,
0124 MX50_PAD_DISP_D13 = 105,
0125 MX50_PAD_DISP_D14 = 106,
0126 MX50_PAD_DISP_D15 = 107,
0127 MX50_PAD_EPDC_D0 = 108,
0128 MX50_PAD_EPDC_D1 = 109,
0129 MX50_PAD_EPDC_D2 = 110,
0130 MX50_PAD_EPDC_D3 = 111,
0131 MX50_PAD_EPDC_D4 = 112,
0132 MX50_PAD_EPDC_D5 = 113,
0133 MX50_PAD_EPDC_D6 = 114,
0134 MX50_PAD_EPDC_D7 = 115,
0135 MX50_PAD_EPDC_D8 = 116,
0136 MX50_PAD_EPDC_D9 = 117,
0137 MX50_PAD_EPDC_D10 = 118,
0138 MX50_PAD_EPDC_D11 = 119,
0139 MX50_PAD_EPDC_D12 = 120,
0140 MX50_PAD_EPDC_D13 = 121,
0141 MX50_PAD_EPDC_D14 = 122,
0142 MX50_PAD_EPDC_D15 = 123,
0143 MX50_PAD_EPDC_GDCLK = 124,
0144 MX50_PAD_EPDC_GDSP = 125,
0145 MX50_PAD_EPDC_GDOE = 126,
0146 MX50_PAD_EPDC_GDRL = 127,
0147 MX50_PAD_EPDC_SDCLK = 128,
0148 MX50_PAD_EPDC_SDOEZ = 129,
0149 MX50_PAD_EPDC_SDOED = 130,
0150 MX50_PAD_EPDC_SDOE = 131,
0151 MX50_PAD_EPDC_SDLE = 132,
0152 MX50_PAD_EPDC_SDCLKN = 133,
0153 MX50_PAD_EPDC_SDSHR = 134,
0154 MX50_PAD_EPDC_PWRCOM = 135,
0155 MX50_PAD_EPDC_PWRSTAT = 136,
0156 MX50_PAD_EPDC_PWRCTRL0 = 137,
0157 MX50_PAD_EPDC_PWRCTRL1 = 138,
0158 MX50_PAD_EPDC_PWRCTRL2 = 139,
0159 MX50_PAD_EPDC_PWRCTRL3 = 140,
0160 MX50_PAD_EPDC_VCOM0 = 141,
0161 MX50_PAD_EPDC_VCOM1 = 142,
0162 MX50_PAD_EPDC_BDR0 = 143,
0163 MX50_PAD_EPDC_BDR1 = 144,
0164 MX50_PAD_EPDC_SDCE0 = 145,
0165 MX50_PAD_EPDC_SDCE1 = 146,
0166 MX50_PAD_EPDC_SDCE2 = 147,
0167 MX50_PAD_EPDC_SDCE3 = 148,
0168 MX50_PAD_EPDC_SDCE4 = 149,
0169 MX50_PAD_EPDC_SDCE5 = 150,
0170 MX50_PAD_EIM_DA0 = 151,
0171 MX50_PAD_EIM_DA1 = 152,
0172 MX50_PAD_EIM_DA2 = 153,
0173 MX50_PAD_EIM_DA3 = 154,
0174 MX50_PAD_EIM_DA4 = 155,
0175 MX50_PAD_EIM_DA5 = 156,
0176 MX50_PAD_EIM_DA6 = 157,
0177 MX50_PAD_EIM_DA7 = 158,
0178 MX50_PAD_EIM_DA8 = 159,
0179 MX50_PAD_EIM_DA9 = 160,
0180 MX50_PAD_EIM_DA10 = 161,
0181 MX50_PAD_EIM_DA11 = 162,
0182 MX50_PAD_EIM_DA12 = 163,
0183 MX50_PAD_EIM_DA13 = 164,
0184 MX50_PAD_EIM_DA14 = 165,
0185 MX50_PAD_EIM_DA15 = 166,
0186 MX50_PAD_EIM_CS2 = 167,
0187 MX50_PAD_EIM_CS1 = 168,
0188 MX50_PAD_EIM_CS0 = 169,
0189 MX50_PAD_EIM_EB0 = 170,
0190 MX50_PAD_EIM_EB1 = 171,
0191 MX50_PAD_EIM_WAIT = 172,
0192 MX50_PAD_EIM_BCLK = 173,
0193 MX50_PAD_EIM_RDY = 174,
0194 MX50_PAD_EIM_OE = 175,
0195 MX50_PAD_EIM_RW = 176,
0196 MX50_PAD_EIM_LBA = 177,
0197 MX50_PAD_EIM_CRE = 178,
0198 };
0199
0200
0201 static const struct pinctrl_pin_desc imx50_pinctrl_pads[] = {
0202 IMX_PINCTRL_PIN(MX50_PAD_RESERVE0),
0203 IMX_PINCTRL_PIN(MX50_PAD_RESERVE1),
0204 IMX_PINCTRL_PIN(MX50_PAD_RESERVE2),
0205 IMX_PINCTRL_PIN(MX50_PAD_RESERVE3),
0206 IMX_PINCTRL_PIN(MX50_PAD_RESERVE4),
0207 IMX_PINCTRL_PIN(MX50_PAD_RESERVE5),
0208 IMX_PINCTRL_PIN(MX50_PAD_RESERVE6),
0209 IMX_PINCTRL_PIN(MX50_PAD_RESERVE7),
0210 IMX_PINCTRL_PIN(MX50_PAD_KEY_COL0),
0211 IMX_PINCTRL_PIN(MX50_PAD_KEY_ROW0),
0212 IMX_PINCTRL_PIN(MX50_PAD_KEY_COL1),
0213 IMX_PINCTRL_PIN(MX50_PAD_KEY_ROW1),
0214 IMX_PINCTRL_PIN(MX50_PAD_KEY_COL2),
0215 IMX_PINCTRL_PIN(MX50_PAD_KEY_ROW2),
0216 IMX_PINCTRL_PIN(MX50_PAD_KEY_COL3),
0217 IMX_PINCTRL_PIN(MX50_PAD_KEY_ROW3),
0218 IMX_PINCTRL_PIN(MX50_PAD_I2C1_SCL),
0219 IMX_PINCTRL_PIN(MX50_PAD_I2C1_SDA),
0220 IMX_PINCTRL_PIN(MX50_PAD_I2C2_SCL),
0221 IMX_PINCTRL_PIN(MX50_PAD_I2C2_SDA),
0222 IMX_PINCTRL_PIN(MX50_PAD_I2C3_SCL),
0223 IMX_PINCTRL_PIN(MX50_PAD_I2C3_SDA),
0224 IMX_PINCTRL_PIN(MX50_PAD_PWM1),
0225 IMX_PINCTRL_PIN(MX50_PAD_PWM2),
0226 IMX_PINCTRL_PIN(MX50_PAD_0WIRE),
0227 IMX_PINCTRL_PIN(MX50_PAD_EPITO),
0228 IMX_PINCTRL_PIN(MX50_PAD_WDOG),
0229 IMX_PINCTRL_PIN(MX50_PAD_SSI_TXFS),
0230 IMX_PINCTRL_PIN(MX50_PAD_SSI_TXC),
0231 IMX_PINCTRL_PIN(MX50_PAD_SSI_TXD),
0232 IMX_PINCTRL_PIN(MX50_PAD_SSI_RXD),
0233 IMX_PINCTRL_PIN(MX50_PAD_SSI_RXF),
0234 IMX_PINCTRL_PIN(MX50_PAD_SSI_RXC),
0235 IMX_PINCTRL_PIN(MX50_PAD_UART1_TXD),
0236 IMX_PINCTRL_PIN(MX50_PAD_UART1_RXD),
0237 IMX_PINCTRL_PIN(MX50_PAD_UART1_CTS),
0238 IMX_PINCTRL_PIN(MX50_PAD_UART1_RTS),
0239 IMX_PINCTRL_PIN(MX50_PAD_UART2_TXD),
0240 IMX_PINCTRL_PIN(MX50_PAD_UART2_RXD),
0241 IMX_PINCTRL_PIN(MX50_PAD_UART2_CTS),
0242 IMX_PINCTRL_PIN(MX50_PAD_UART2_RTS),
0243 IMX_PINCTRL_PIN(MX50_PAD_UART3_TXD),
0244 IMX_PINCTRL_PIN(MX50_PAD_UART3_RXD),
0245 IMX_PINCTRL_PIN(MX50_PAD_UART4_TXD),
0246 IMX_PINCTRL_PIN(MX50_PAD_UART4_RXD),
0247 IMX_PINCTRL_PIN(MX50_PAD_CSPI_CLK),
0248 IMX_PINCTRL_PIN(MX50_PAD_CSPI_MOSI),
0249 IMX_PINCTRL_PIN(MX50_PAD_CSPI_MISO),
0250 IMX_PINCTRL_PIN(MX50_PAD_CSPI_SS0),
0251 IMX_PINCTRL_PIN(MX50_PAD_ECSPI1_CLK),
0252 IMX_PINCTRL_PIN(MX50_PAD_ECSPI1_MOSI),
0253 IMX_PINCTRL_PIN(MX50_PAD_ECSPI1_MISO),
0254 IMX_PINCTRL_PIN(MX50_PAD_ECSPI1_SS0),
0255 IMX_PINCTRL_PIN(MX50_PAD_ECSPI2_CLK),
0256 IMX_PINCTRL_PIN(MX50_PAD_ECSPI2_MOSI),
0257 IMX_PINCTRL_PIN(MX50_PAD_ECSPI2_MISO),
0258 IMX_PINCTRL_PIN(MX50_PAD_ECSPI2_SS0),
0259 IMX_PINCTRL_PIN(MX50_PAD_SD1_CLK),
0260 IMX_PINCTRL_PIN(MX50_PAD_SD1_CMD),
0261 IMX_PINCTRL_PIN(MX50_PAD_SD1_D0),
0262 IMX_PINCTRL_PIN(MX50_PAD_SD1_D1),
0263 IMX_PINCTRL_PIN(MX50_PAD_SD1_D2),
0264 IMX_PINCTRL_PIN(MX50_PAD_SD1_D3),
0265 IMX_PINCTRL_PIN(MX50_PAD_SD2_CLK),
0266 IMX_PINCTRL_PIN(MX50_PAD_SD2_CMD),
0267 IMX_PINCTRL_PIN(MX50_PAD_SD2_D0),
0268 IMX_PINCTRL_PIN(MX50_PAD_SD2_D1),
0269 IMX_PINCTRL_PIN(MX50_PAD_SD2_D2),
0270 IMX_PINCTRL_PIN(MX50_PAD_SD2_D3),
0271 IMX_PINCTRL_PIN(MX50_PAD_SD2_D4),
0272 IMX_PINCTRL_PIN(MX50_PAD_SD2_D5),
0273 IMX_PINCTRL_PIN(MX50_PAD_SD2_D6),
0274 IMX_PINCTRL_PIN(MX50_PAD_SD2_D7),
0275 IMX_PINCTRL_PIN(MX50_PAD_SD2_WP),
0276 IMX_PINCTRL_PIN(MX50_PAD_SD2_CD),
0277 IMX_PINCTRL_PIN(MX50_PAD_DISP_D0),
0278 IMX_PINCTRL_PIN(MX50_PAD_DISP_D1),
0279 IMX_PINCTRL_PIN(MX50_PAD_DISP_D2),
0280 IMX_PINCTRL_PIN(MX50_PAD_DISP_D3),
0281 IMX_PINCTRL_PIN(MX50_PAD_DISP_D4),
0282 IMX_PINCTRL_PIN(MX50_PAD_DISP_D5),
0283 IMX_PINCTRL_PIN(MX50_PAD_DISP_D6),
0284 IMX_PINCTRL_PIN(MX50_PAD_DISP_D7),
0285 IMX_PINCTRL_PIN(MX50_PAD_DISP_WR),
0286 IMX_PINCTRL_PIN(MX50_PAD_DISP_RD),
0287 IMX_PINCTRL_PIN(MX50_PAD_DISP_RS),
0288 IMX_PINCTRL_PIN(MX50_PAD_DISP_CS),
0289 IMX_PINCTRL_PIN(MX50_PAD_DISP_BUSY),
0290 IMX_PINCTRL_PIN(MX50_PAD_DISP_RESET),
0291 IMX_PINCTRL_PIN(MX50_PAD_SD3_CLK),
0292 IMX_PINCTRL_PIN(MX50_PAD_SD3_CMD),
0293 IMX_PINCTRL_PIN(MX50_PAD_SD3_D0),
0294 IMX_PINCTRL_PIN(MX50_PAD_SD3_D1),
0295 IMX_PINCTRL_PIN(MX50_PAD_SD3_D2),
0296 IMX_PINCTRL_PIN(MX50_PAD_SD3_D3),
0297 IMX_PINCTRL_PIN(MX50_PAD_SD3_D4),
0298 IMX_PINCTRL_PIN(MX50_PAD_SD3_D5),
0299 IMX_PINCTRL_PIN(MX50_PAD_SD3_D6),
0300 IMX_PINCTRL_PIN(MX50_PAD_SD3_D7),
0301 IMX_PINCTRL_PIN(MX50_PAD_SD3_WP),
0302 IMX_PINCTRL_PIN(MX50_PAD_DISP_D8),
0303 IMX_PINCTRL_PIN(MX50_PAD_DISP_D9),
0304 IMX_PINCTRL_PIN(MX50_PAD_DISP_D10),
0305 IMX_PINCTRL_PIN(MX50_PAD_DISP_D11),
0306 IMX_PINCTRL_PIN(MX50_PAD_DISP_D12),
0307 IMX_PINCTRL_PIN(MX50_PAD_DISP_D13),
0308 IMX_PINCTRL_PIN(MX50_PAD_DISP_D14),
0309 IMX_PINCTRL_PIN(MX50_PAD_DISP_D15),
0310 IMX_PINCTRL_PIN(MX50_PAD_EPDC_D0),
0311 IMX_PINCTRL_PIN(MX50_PAD_EPDC_D1),
0312 IMX_PINCTRL_PIN(MX50_PAD_EPDC_D2),
0313 IMX_PINCTRL_PIN(MX50_PAD_EPDC_D3),
0314 IMX_PINCTRL_PIN(MX50_PAD_EPDC_D4),
0315 IMX_PINCTRL_PIN(MX50_PAD_EPDC_D5),
0316 IMX_PINCTRL_PIN(MX50_PAD_EPDC_D6),
0317 IMX_PINCTRL_PIN(MX50_PAD_EPDC_D7),
0318 IMX_PINCTRL_PIN(MX50_PAD_EPDC_D8),
0319 IMX_PINCTRL_PIN(MX50_PAD_EPDC_D9),
0320 IMX_PINCTRL_PIN(MX50_PAD_EPDC_D10),
0321 IMX_PINCTRL_PIN(MX50_PAD_EPDC_D11),
0322 IMX_PINCTRL_PIN(MX50_PAD_EPDC_D12),
0323 IMX_PINCTRL_PIN(MX50_PAD_EPDC_D13),
0324 IMX_PINCTRL_PIN(MX50_PAD_EPDC_D14),
0325 IMX_PINCTRL_PIN(MX50_PAD_EPDC_D15),
0326 IMX_PINCTRL_PIN(MX50_PAD_EPDC_GDCLK),
0327 IMX_PINCTRL_PIN(MX50_PAD_EPDC_GDSP),
0328 IMX_PINCTRL_PIN(MX50_PAD_EPDC_GDOE),
0329 IMX_PINCTRL_PIN(MX50_PAD_EPDC_GDRL),
0330 IMX_PINCTRL_PIN(MX50_PAD_EPDC_SDCLK),
0331 IMX_PINCTRL_PIN(MX50_PAD_EPDC_SDOEZ),
0332 IMX_PINCTRL_PIN(MX50_PAD_EPDC_SDOED),
0333 IMX_PINCTRL_PIN(MX50_PAD_EPDC_SDOE),
0334 IMX_PINCTRL_PIN(MX50_PAD_EPDC_SDLE),
0335 IMX_PINCTRL_PIN(MX50_PAD_EPDC_SDCLKN),
0336 IMX_PINCTRL_PIN(MX50_PAD_EPDC_SDSHR),
0337 IMX_PINCTRL_PIN(MX50_PAD_EPDC_PWRCOM),
0338 IMX_PINCTRL_PIN(MX50_PAD_EPDC_PWRSTAT),
0339 IMX_PINCTRL_PIN(MX50_PAD_EPDC_PWRCTRL0),
0340 IMX_PINCTRL_PIN(MX50_PAD_EPDC_PWRCTRL1),
0341 IMX_PINCTRL_PIN(MX50_PAD_EPDC_PWRCTRL2),
0342 IMX_PINCTRL_PIN(MX50_PAD_EPDC_PWRCTRL3),
0343 IMX_PINCTRL_PIN(MX50_PAD_EPDC_VCOM0),
0344 IMX_PINCTRL_PIN(MX50_PAD_EPDC_VCOM1),
0345 IMX_PINCTRL_PIN(MX50_PAD_EPDC_BDR0),
0346 IMX_PINCTRL_PIN(MX50_PAD_EPDC_BDR1),
0347 IMX_PINCTRL_PIN(MX50_PAD_EPDC_SDCE0),
0348 IMX_PINCTRL_PIN(MX50_PAD_EPDC_SDCE1),
0349 IMX_PINCTRL_PIN(MX50_PAD_EPDC_SDCE2),
0350 IMX_PINCTRL_PIN(MX50_PAD_EPDC_SDCE3),
0351 IMX_PINCTRL_PIN(MX50_PAD_EPDC_SDCE4),
0352 IMX_PINCTRL_PIN(MX50_PAD_EPDC_SDCE5),
0353 IMX_PINCTRL_PIN(MX50_PAD_EIM_DA0),
0354 IMX_PINCTRL_PIN(MX50_PAD_EIM_DA1),
0355 IMX_PINCTRL_PIN(MX50_PAD_EIM_DA2),
0356 IMX_PINCTRL_PIN(MX50_PAD_EIM_DA3),
0357 IMX_PINCTRL_PIN(MX50_PAD_EIM_DA4),
0358 IMX_PINCTRL_PIN(MX50_PAD_EIM_DA5),
0359 IMX_PINCTRL_PIN(MX50_PAD_EIM_DA6),
0360 IMX_PINCTRL_PIN(MX50_PAD_EIM_DA7),
0361 IMX_PINCTRL_PIN(MX50_PAD_EIM_DA8),
0362 IMX_PINCTRL_PIN(MX50_PAD_EIM_DA9),
0363 IMX_PINCTRL_PIN(MX50_PAD_EIM_DA10),
0364 IMX_PINCTRL_PIN(MX50_PAD_EIM_DA11),
0365 IMX_PINCTRL_PIN(MX50_PAD_EIM_DA12),
0366 IMX_PINCTRL_PIN(MX50_PAD_EIM_DA13),
0367 IMX_PINCTRL_PIN(MX50_PAD_EIM_DA14),
0368 IMX_PINCTRL_PIN(MX50_PAD_EIM_DA15),
0369 IMX_PINCTRL_PIN(MX50_PAD_EIM_CS2),
0370 IMX_PINCTRL_PIN(MX50_PAD_EIM_CS1),
0371 IMX_PINCTRL_PIN(MX50_PAD_EIM_CS0),
0372 IMX_PINCTRL_PIN(MX50_PAD_EIM_EB0),
0373 IMX_PINCTRL_PIN(MX50_PAD_EIM_EB1),
0374 IMX_PINCTRL_PIN(MX50_PAD_EIM_WAIT),
0375 IMX_PINCTRL_PIN(MX50_PAD_EIM_BCLK),
0376 IMX_PINCTRL_PIN(MX50_PAD_EIM_RDY),
0377 IMX_PINCTRL_PIN(MX50_PAD_EIM_OE),
0378 IMX_PINCTRL_PIN(MX50_PAD_EIM_RW),
0379 IMX_PINCTRL_PIN(MX50_PAD_EIM_LBA),
0380 IMX_PINCTRL_PIN(MX50_PAD_EIM_CRE),
0381 };
0382
0383 static const struct imx_pinctrl_soc_info imx50_pinctrl_info = {
0384 .pins = imx50_pinctrl_pads,
0385 .npins = ARRAY_SIZE(imx50_pinctrl_pads),
0386 .gpr_compatible = "fsl,imx50-iomuxc-gpr",
0387 };
0388
0389 static const struct of_device_id imx50_pinctrl_of_match[] = {
0390 { .compatible = "fsl,imx50-iomuxc", },
0391 { }
0392 };
0393
0394 static int imx50_pinctrl_probe(struct platform_device *pdev)
0395 {
0396 return imx_pinctrl_probe(pdev, &imx50_pinctrl_info);
0397 }
0398
0399 static struct platform_driver imx50_pinctrl_driver = {
0400 .driver = {
0401 .name = "imx50-pinctrl",
0402 .of_match_table = imx50_pinctrl_of_match,
0403 .suppress_bind_attrs = true,
0404 },
0405 .probe = imx50_pinctrl_probe,
0406 };
0407
0408 static int __init imx50_pinctrl_init(void)
0409 {
0410 return platform_driver_register(&imx50_pinctrl_driver);
0411 }
0412 arch_initcall(imx50_pinctrl_init);