1edad3b2aSLinus Walleij /* 2*37824c12SPaul Gortmaker * Freescale i.MX28 pinctrl driver 3*37824c12SPaul Gortmaker * 4*37824c12SPaul Gortmaker * Author: Shawn Guo <shawn.guo@linaro.org> 5edad3b2aSLinus Walleij * Copyright 2012 Freescale Semiconductor, Inc. 6edad3b2aSLinus Walleij * 7edad3b2aSLinus Walleij * The code contained herein is licensed under the GNU General Public 8edad3b2aSLinus Walleij * License. You may obtain a copy of the GNU General Public License 9edad3b2aSLinus Walleij * Version 2 or later at the following locations: 10edad3b2aSLinus Walleij * 11edad3b2aSLinus Walleij * http://www.opensource.org/licenses/gpl-license.html 12edad3b2aSLinus Walleij * http://www.gnu.org/copyleft/gpl.html 13edad3b2aSLinus Walleij */ 14edad3b2aSLinus Walleij 15edad3b2aSLinus Walleij #include <linux/init.h> 16edad3b2aSLinus Walleij #include <linux/of_device.h> 17edad3b2aSLinus Walleij #include <linux/pinctrl/pinctrl.h> 18edad3b2aSLinus Walleij #include "pinctrl-mxs.h" 19edad3b2aSLinus Walleij 20edad3b2aSLinus Walleij enum imx28_pin_enum { 21edad3b2aSLinus Walleij GPMI_D00 = PINID(0, 0), 22edad3b2aSLinus Walleij GPMI_D01 = PINID(0, 1), 23edad3b2aSLinus Walleij GPMI_D02 = PINID(0, 2), 24edad3b2aSLinus Walleij GPMI_D03 = PINID(0, 3), 25edad3b2aSLinus Walleij GPMI_D04 = PINID(0, 4), 26edad3b2aSLinus Walleij GPMI_D05 = PINID(0, 5), 27edad3b2aSLinus Walleij GPMI_D06 = PINID(0, 6), 28edad3b2aSLinus Walleij GPMI_D07 = PINID(0, 7), 29edad3b2aSLinus Walleij GPMI_CE0N = PINID(0, 16), 30edad3b2aSLinus Walleij GPMI_CE1N = PINID(0, 17), 31edad3b2aSLinus Walleij GPMI_CE2N = PINID(0, 18), 32edad3b2aSLinus Walleij GPMI_CE3N = PINID(0, 19), 33edad3b2aSLinus Walleij GPMI_RDY0 = PINID(0, 20), 34edad3b2aSLinus Walleij GPMI_RDY1 = PINID(0, 21), 35edad3b2aSLinus Walleij GPMI_RDY2 = PINID(0, 22), 36edad3b2aSLinus Walleij GPMI_RDY3 = PINID(0, 23), 37edad3b2aSLinus Walleij GPMI_RDN = PINID(0, 24), 38edad3b2aSLinus Walleij GPMI_WRN = PINID(0, 25), 39edad3b2aSLinus Walleij GPMI_ALE = PINID(0, 26), 40edad3b2aSLinus Walleij GPMI_CLE = PINID(0, 27), 41edad3b2aSLinus Walleij GPMI_RESETN = PINID(0, 28), 42edad3b2aSLinus Walleij LCD_D00 = PINID(1, 0), 43edad3b2aSLinus Walleij LCD_D01 = PINID(1, 1), 44edad3b2aSLinus Walleij LCD_D02 = PINID(1, 2), 45edad3b2aSLinus Walleij LCD_D03 = PINID(1, 3), 46edad3b2aSLinus Walleij LCD_D04 = PINID(1, 4), 47edad3b2aSLinus Walleij LCD_D05 = PINID(1, 5), 48edad3b2aSLinus Walleij LCD_D06 = PINID(1, 6), 49edad3b2aSLinus Walleij LCD_D07 = PINID(1, 7), 50edad3b2aSLinus Walleij LCD_D08 = PINID(1, 8), 51edad3b2aSLinus Walleij LCD_D09 = PINID(1, 9), 52edad3b2aSLinus Walleij LCD_D10 = PINID(1, 10), 53edad3b2aSLinus Walleij LCD_D11 = PINID(1, 11), 54edad3b2aSLinus Walleij LCD_D12 = PINID(1, 12), 55edad3b2aSLinus Walleij LCD_D13 = PINID(1, 13), 56edad3b2aSLinus Walleij LCD_D14 = PINID(1, 14), 57edad3b2aSLinus Walleij LCD_D15 = PINID(1, 15), 58edad3b2aSLinus Walleij LCD_D16 = PINID(1, 16), 59edad3b2aSLinus Walleij LCD_D17 = PINID(1, 17), 60edad3b2aSLinus Walleij LCD_D18 = PINID(1, 18), 61edad3b2aSLinus Walleij LCD_D19 = PINID(1, 19), 62edad3b2aSLinus Walleij LCD_D20 = PINID(1, 20), 63edad3b2aSLinus Walleij LCD_D21 = PINID(1, 21), 64edad3b2aSLinus Walleij LCD_D22 = PINID(1, 22), 65edad3b2aSLinus Walleij LCD_D23 = PINID(1, 23), 66edad3b2aSLinus Walleij LCD_RD_E = PINID(1, 24), 67edad3b2aSLinus Walleij LCD_WR_RWN = PINID(1, 25), 68edad3b2aSLinus Walleij LCD_RS = PINID(1, 26), 69edad3b2aSLinus Walleij LCD_CS = PINID(1, 27), 70edad3b2aSLinus Walleij LCD_VSYNC = PINID(1, 28), 71edad3b2aSLinus Walleij LCD_HSYNC = PINID(1, 29), 72edad3b2aSLinus Walleij LCD_DOTCLK = PINID(1, 30), 73edad3b2aSLinus Walleij LCD_ENABLE = PINID(1, 31), 74edad3b2aSLinus Walleij SSP0_DATA0 = PINID(2, 0), 75edad3b2aSLinus Walleij SSP0_DATA1 = PINID(2, 1), 76edad3b2aSLinus Walleij SSP0_DATA2 = PINID(2, 2), 77edad3b2aSLinus Walleij SSP0_DATA3 = PINID(2, 3), 78edad3b2aSLinus Walleij SSP0_DATA4 = PINID(2, 4), 79edad3b2aSLinus Walleij SSP0_DATA5 = PINID(2, 5), 80edad3b2aSLinus Walleij SSP0_DATA6 = PINID(2, 6), 81edad3b2aSLinus Walleij SSP0_DATA7 = PINID(2, 7), 82edad3b2aSLinus Walleij SSP0_CMD = PINID(2, 8), 83edad3b2aSLinus Walleij SSP0_DETECT = PINID(2, 9), 84edad3b2aSLinus Walleij SSP0_SCK = PINID(2, 10), 85edad3b2aSLinus Walleij SSP1_SCK = PINID(2, 12), 86edad3b2aSLinus Walleij SSP1_CMD = PINID(2, 13), 87edad3b2aSLinus Walleij SSP1_DATA0 = PINID(2, 14), 88edad3b2aSLinus Walleij SSP1_DATA3 = PINID(2, 15), 89edad3b2aSLinus Walleij SSP2_SCK = PINID(2, 16), 90edad3b2aSLinus Walleij SSP2_MOSI = PINID(2, 17), 91edad3b2aSLinus Walleij SSP2_MISO = PINID(2, 18), 92edad3b2aSLinus Walleij SSP2_SS0 = PINID(2, 19), 93edad3b2aSLinus Walleij SSP2_SS1 = PINID(2, 20), 94edad3b2aSLinus Walleij SSP2_SS2 = PINID(2, 21), 95edad3b2aSLinus Walleij SSP3_SCK = PINID(2, 24), 96edad3b2aSLinus Walleij SSP3_MOSI = PINID(2, 25), 97edad3b2aSLinus Walleij SSP3_MISO = PINID(2, 26), 98edad3b2aSLinus Walleij SSP3_SS0 = PINID(2, 27), 99edad3b2aSLinus Walleij AUART0_RX = PINID(3, 0), 100edad3b2aSLinus Walleij AUART0_TX = PINID(3, 1), 101edad3b2aSLinus Walleij AUART0_CTS = PINID(3, 2), 102edad3b2aSLinus Walleij AUART0_RTS = PINID(3, 3), 103edad3b2aSLinus Walleij AUART1_RX = PINID(3, 4), 104edad3b2aSLinus Walleij AUART1_TX = PINID(3, 5), 105edad3b2aSLinus Walleij AUART1_CTS = PINID(3, 6), 106edad3b2aSLinus Walleij AUART1_RTS = PINID(3, 7), 107edad3b2aSLinus Walleij AUART2_RX = PINID(3, 8), 108edad3b2aSLinus Walleij AUART2_TX = PINID(3, 9), 109edad3b2aSLinus Walleij AUART2_CTS = PINID(3, 10), 110edad3b2aSLinus Walleij AUART2_RTS = PINID(3, 11), 111edad3b2aSLinus Walleij AUART3_RX = PINID(3, 12), 112edad3b2aSLinus Walleij AUART3_TX = PINID(3, 13), 113edad3b2aSLinus Walleij AUART3_CTS = PINID(3, 14), 114edad3b2aSLinus Walleij AUART3_RTS = PINID(3, 15), 115edad3b2aSLinus Walleij PWM0 = PINID(3, 16), 116edad3b2aSLinus Walleij PWM1 = PINID(3, 17), 117edad3b2aSLinus Walleij PWM2 = PINID(3, 18), 118edad3b2aSLinus Walleij SAIF0_MCLK = PINID(3, 20), 119edad3b2aSLinus Walleij SAIF0_LRCLK = PINID(3, 21), 120edad3b2aSLinus Walleij SAIF0_BITCLK = PINID(3, 22), 121edad3b2aSLinus Walleij SAIF0_SDATA0 = PINID(3, 23), 122edad3b2aSLinus Walleij I2C0_SCL = PINID(3, 24), 123edad3b2aSLinus Walleij I2C0_SDA = PINID(3, 25), 124edad3b2aSLinus Walleij SAIF1_SDATA0 = PINID(3, 26), 125edad3b2aSLinus Walleij SPDIF = PINID(3, 27), 126edad3b2aSLinus Walleij PWM3 = PINID(3, 28), 127edad3b2aSLinus Walleij PWM4 = PINID(3, 29), 128edad3b2aSLinus Walleij LCD_RESET = PINID(3, 30), 129edad3b2aSLinus Walleij ENET0_MDC = PINID(4, 0), 130edad3b2aSLinus Walleij ENET0_MDIO = PINID(4, 1), 131edad3b2aSLinus Walleij ENET0_RX_EN = PINID(4, 2), 132edad3b2aSLinus Walleij ENET0_RXD0 = PINID(4, 3), 133edad3b2aSLinus Walleij ENET0_RXD1 = PINID(4, 4), 134edad3b2aSLinus Walleij ENET0_TX_CLK = PINID(4, 5), 135edad3b2aSLinus Walleij ENET0_TX_EN = PINID(4, 6), 136edad3b2aSLinus Walleij ENET0_TXD0 = PINID(4, 7), 137edad3b2aSLinus Walleij ENET0_TXD1 = PINID(4, 8), 138edad3b2aSLinus Walleij ENET0_RXD2 = PINID(4, 9), 139edad3b2aSLinus Walleij ENET0_RXD3 = PINID(4, 10), 140edad3b2aSLinus Walleij ENET0_TXD2 = PINID(4, 11), 141edad3b2aSLinus Walleij ENET0_TXD3 = PINID(4, 12), 142edad3b2aSLinus Walleij ENET0_RX_CLK = PINID(4, 13), 143edad3b2aSLinus Walleij ENET0_COL = PINID(4, 14), 144edad3b2aSLinus Walleij ENET0_CRS = PINID(4, 15), 145edad3b2aSLinus Walleij ENET_CLK = PINID(4, 16), 146edad3b2aSLinus Walleij JTAG_RTCK = PINID(4, 20), 147edad3b2aSLinus Walleij EMI_D00 = PINID(5, 0), 148edad3b2aSLinus Walleij EMI_D01 = PINID(5, 1), 149edad3b2aSLinus Walleij EMI_D02 = PINID(5, 2), 150edad3b2aSLinus Walleij EMI_D03 = PINID(5, 3), 151edad3b2aSLinus Walleij EMI_D04 = PINID(5, 4), 152edad3b2aSLinus Walleij EMI_D05 = PINID(5, 5), 153edad3b2aSLinus Walleij EMI_D06 = PINID(5, 6), 154edad3b2aSLinus Walleij EMI_D07 = PINID(5, 7), 155edad3b2aSLinus Walleij EMI_D08 = PINID(5, 8), 156edad3b2aSLinus Walleij EMI_D09 = PINID(5, 9), 157edad3b2aSLinus Walleij EMI_D10 = PINID(5, 10), 158edad3b2aSLinus Walleij EMI_D11 = PINID(5, 11), 159edad3b2aSLinus Walleij EMI_D12 = PINID(5, 12), 160edad3b2aSLinus Walleij EMI_D13 = PINID(5, 13), 161edad3b2aSLinus Walleij EMI_D14 = PINID(5, 14), 162edad3b2aSLinus Walleij EMI_D15 = PINID(5, 15), 163edad3b2aSLinus Walleij EMI_ODT0 = PINID(5, 16), 164edad3b2aSLinus Walleij EMI_DQM0 = PINID(5, 17), 165edad3b2aSLinus Walleij EMI_ODT1 = PINID(5, 18), 166edad3b2aSLinus Walleij EMI_DQM1 = PINID(5, 19), 167edad3b2aSLinus Walleij EMI_DDR_OPEN_FB = PINID(5, 20), 168edad3b2aSLinus Walleij EMI_CLK = PINID(5, 21), 169edad3b2aSLinus Walleij EMI_DQS0 = PINID(5, 22), 170edad3b2aSLinus Walleij EMI_DQS1 = PINID(5, 23), 171edad3b2aSLinus Walleij EMI_DDR_OPEN = PINID(5, 26), 172edad3b2aSLinus Walleij EMI_A00 = PINID(6, 0), 173edad3b2aSLinus Walleij EMI_A01 = PINID(6, 1), 174edad3b2aSLinus Walleij EMI_A02 = PINID(6, 2), 175edad3b2aSLinus Walleij EMI_A03 = PINID(6, 3), 176edad3b2aSLinus Walleij EMI_A04 = PINID(6, 4), 177edad3b2aSLinus Walleij EMI_A05 = PINID(6, 5), 178edad3b2aSLinus Walleij EMI_A06 = PINID(6, 6), 179edad3b2aSLinus Walleij EMI_A07 = PINID(6, 7), 180edad3b2aSLinus Walleij EMI_A08 = PINID(6, 8), 181edad3b2aSLinus Walleij EMI_A09 = PINID(6, 9), 182edad3b2aSLinus Walleij EMI_A10 = PINID(6, 10), 183edad3b2aSLinus Walleij EMI_A11 = PINID(6, 11), 184edad3b2aSLinus Walleij EMI_A12 = PINID(6, 12), 185edad3b2aSLinus Walleij EMI_A13 = PINID(6, 13), 186edad3b2aSLinus Walleij EMI_A14 = PINID(6, 14), 187edad3b2aSLinus Walleij EMI_BA0 = PINID(6, 16), 188edad3b2aSLinus Walleij EMI_BA1 = PINID(6, 17), 189edad3b2aSLinus Walleij EMI_BA2 = PINID(6, 18), 190edad3b2aSLinus Walleij EMI_CASN = PINID(6, 19), 191edad3b2aSLinus Walleij EMI_RASN = PINID(6, 20), 192edad3b2aSLinus Walleij EMI_WEN = PINID(6, 21), 193edad3b2aSLinus Walleij EMI_CE0N = PINID(6, 22), 194edad3b2aSLinus Walleij EMI_CE1N = PINID(6, 23), 195edad3b2aSLinus Walleij EMI_CKE = PINID(6, 24), 196edad3b2aSLinus Walleij }; 197edad3b2aSLinus Walleij 198edad3b2aSLinus Walleij static const struct pinctrl_pin_desc imx28_pins[] = { 199edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_D00), 200edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_D01), 201edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_D02), 202edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_D03), 203edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_D04), 204edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_D05), 205edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_D06), 206edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_D07), 207edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_CE0N), 208edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_CE1N), 209edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_CE2N), 210edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_CE3N), 211edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_RDY0), 212edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_RDY1), 213edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_RDY2), 214edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_RDY3), 215edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_RDN), 216edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_WRN), 217edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_ALE), 218edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_CLE), 219edad3b2aSLinus Walleij MXS_PINCTRL_PIN(GPMI_RESETN), 220edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D00), 221edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D01), 222edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D02), 223edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D03), 224edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D04), 225edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D05), 226edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D06), 227edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D07), 228edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D08), 229edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D09), 230edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D10), 231edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D11), 232edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D12), 233edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D13), 234edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D14), 235edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D15), 236edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D16), 237edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D17), 238edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D18), 239edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D19), 240edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D20), 241edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D21), 242edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D22), 243edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_D23), 244edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_RD_E), 245edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_WR_RWN), 246edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_RS), 247edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_CS), 248edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_VSYNC), 249edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_HSYNC), 250edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_DOTCLK), 251edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_ENABLE), 252edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP0_DATA0), 253edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP0_DATA1), 254edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP0_DATA2), 255edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP0_DATA3), 256edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP0_DATA4), 257edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP0_DATA5), 258edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP0_DATA6), 259edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP0_DATA7), 260edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP0_CMD), 261edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP0_DETECT), 262edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP0_SCK), 263edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP1_SCK), 264edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP1_CMD), 265edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP1_DATA0), 266edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP1_DATA3), 267edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP2_SCK), 268edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP2_MOSI), 269edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP2_MISO), 270edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP2_SS0), 271edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP2_SS1), 272edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP2_SS2), 273edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP3_SCK), 274edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP3_MOSI), 275edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP3_MISO), 276edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SSP3_SS0), 277edad3b2aSLinus Walleij MXS_PINCTRL_PIN(AUART0_RX), 278edad3b2aSLinus Walleij MXS_PINCTRL_PIN(AUART0_TX), 279edad3b2aSLinus Walleij MXS_PINCTRL_PIN(AUART0_CTS), 280edad3b2aSLinus Walleij MXS_PINCTRL_PIN(AUART0_RTS), 281edad3b2aSLinus Walleij MXS_PINCTRL_PIN(AUART1_RX), 282edad3b2aSLinus Walleij MXS_PINCTRL_PIN(AUART1_TX), 283edad3b2aSLinus Walleij MXS_PINCTRL_PIN(AUART1_CTS), 284edad3b2aSLinus Walleij MXS_PINCTRL_PIN(AUART1_RTS), 285edad3b2aSLinus Walleij MXS_PINCTRL_PIN(AUART2_RX), 286edad3b2aSLinus Walleij MXS_PINCTRL_PIN(AUART2_TX), 287edad3b2aSLinus Walleij MXS_PINCTRL_PIN(AUART2_CTS), 288edad3b2aSLinus Walleij MXS_PINCTRL_PIN(AUART2_RTS), 289edad3b2aSLinus Walleij MXS_PINCTRL_PIN(AUART3_RX), 290edad3b2aSLinus Walleij MXS_PINCTRL_PIN(AUART3_TX), 291edad3b2aSLinus Walleij MXS_PINCTRL_PIN(AUART3_CTS), 292edad3b2aSLinus Walleij MXS_PINCTRL_PIN(AUART3_RTS), 293edad3b2aSLinus Walleij MXS_PINCTRL_PIN(PWM0), 294edad3b2aSLinus Walleij MXS_PINCTRL_PIN(PWM1), 295edad3b2aSLinus Walleij MXS_PINCTRL_PIN(PWM2), 296edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SAIF0_MCLK), 297edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SAIF0_LRCLK), 298edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SAIF0_BITCLK), 299edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SAIF0_SDATA0), 300edad3b2aSLinus Walleij MXS_PINCTRL_PIN(I2C0_SCL), 301edad3b2aSLinus Walleij MXS_PINCTRL_PIN(I2C0_SDA), 302edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SAIF1_SDATA0), 303edad3b2aSLinus Walleij MXS_PINCTRL_PIN(SPDIF), 304edad3b2aSLinus Walleij MXS_PINCTRL_PIN(PWM3), 305edad3b2aSLinus Walleij MXS_PINCTRL_PIN(PWM4), 306edad3b2aSLinus Walleij MXS_PINCTRL_PIN(LCD_RESET), 307edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET0_MDC), 308edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET0_MDIO), 309edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET0_RX_EN), 310edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET0_RXD0), 311edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET0_RXD1), 312edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET0_TX_CLK), 313edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET0_TX_EN), 314edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET0_TXD0), 315edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET0_TXD1), 316edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET0_RXD2), 317edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET0_RXD3), 318edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET0_TXD2), 319edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET0_TXD3), 320edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET0_RX_CLK), 321edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET0_COL), 322edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET0_CRS), 323edad3b2aSLinus Walleij MXS_PINCTRL_PIN(ENET_CLK), 324edad3b2aSLinus Walleij MXS_PINCTRL_PIN(JTAG_RTCK), 325edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_D00), 326edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_D01), 327edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_D02), 328edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_D03), 329edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_D04), 330edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_D05), 331edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_D06), 332edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_D07), 333edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_D08), 334edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_D09), 335edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_D10), 336edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_D11), 337edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_D12), 338edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_D13), 339edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_D14), 340edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_D15), 341edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_ODT0), 342edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_DQM0), 343edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_ODT1), 344edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_DQM1), 345edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_DDR_OPEN_FB), 346edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_CLK), 347edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_DQS0), 348edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_DQS1), 349edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_DDR_OPEN), 350edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_A00), 351edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_A01), 352edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_A02), 353edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_A03), 354edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_A04), 355edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_A05), 356edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_A06), 357edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_A07), 358edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_A08), 359edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_A09), 360edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_A10), 361edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_A11), 362edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_A12), 363edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_A13), 364edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_A14), 365edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_BA0), 366edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_BA1), 367edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_BA2), 368edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_CASN), 369edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_RASN), 370edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_WEN), 371edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_CE0N), 372edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_CE1N), 373edad3b2aSLinus Walleij MXS_PINCTRL_PIN(EMI_CKE), 374edad3b2aSLinus Walleij }; 375edad3b2aSLinus Walleij 376edad3b2aSLinus Walleij static struct mxs_regs imx28_regs = { 377edad3b2aSLinus Walleij .muxsel = 0x100, 378edad3b2aSLinus Walleij .drive = 0x300, 379edad3b2aSLinus Walleij .pull = 0x600, 380edad3b2aSLinus Walleij }; 381edad3b2aSLinus Walleij 382edad3b2aSLinus Walleij static struct mxs_pinctrl_soc_data imx28_pinctrl_data = { 383edad3b2aSLinus Walleij .regs = &imx28_regs, 384edad3b2aSLinus Walleij .pins = imx28_pins, 385edad3b2aSLinus Walleij .npins = ARRAY_SIZE(imx28_pins), 386edad3b2aSLinus Walleij }; 387edad3b2aSLinus Walleij 388edad3b2aSLinus Walleij static int imx28_pinctrl_probe(struct platform_device *pdev) 389edad3b2aSLinus Walleij { 390edad3b2aSLinus Walleij return mxs_pinctrl_probe(pdev, &imx28_pinctrl_data); 391edad3b2aSLinus Walleij } 392edad3b2aSLinus Walleij 393edad3b2aSLinus Walleij static const struct of_device_id imx28_pinctrl_of_match[] = { 394edad3b2aSLinus Walleij { .compatible = "fsl,imx28-pinctrl", }, 395edad3b2aSLinus Walleij { /* sentinel */ } 396edad3b2aSLinus Walleij }; 397edad3b2aSLinus Walleij 398edad3b2aSLinus Walleij static struct platform_driver imx28_pinctrl_driver = { 399edad3b2aSLinus Walleij .driver = { 400edad3b2aSLinus Walleij .name = "imx28-pinctrl", 401*37824c12SPaul Gortmaker .suppress_bind_attrs = true, 402edad3b2aSLinus Walleij .of_match_table = imx28_pinctrl_of_match, 403edad3b2aSLinus Walleij }, 404edad3b2aSLinus Walleij .probe = imx28_pinctrl_probe, 405edad3b2aSLinus Walleij }; 406edad3b2aSLinus Walleij 407edad3b2aSLinus Walleij static int __init imx28_pinctrl_init(void) 408edad3b2aSLinus Walleij { 409edad3b2aSLinus Walleij return platform_driver_register(&imx28_pinctrl_driver); 410edad3b2aSLinus Walleij } 411edad3b2aSLinus Walleij postcore_initcall(imx28_pinctrl_init); 412