2018-05-19 21:43:54 +03:00
// SPDX-License-Identifier: GPL-2.0+
//
// imx27 pinctrl driver based on imx pinmux core
//
// Copyright (C) 2013 Pengutronix
//
// Author: Markus Pargmann <mpa@pengutronix.de>
2013-10-29 18:32:19 +04:00
# include <linux/err.h>
# include <linux/init.h>
# include <linux/io.h>
# include <linux/of.h>
# include <linux/of_device.h>
# include <linux/pinctrl/pinctrl.h>
# include "pinctrl-imx1.h"
# define PAD_ID(port, pin) (port*32 + pin)
# define PA 0
# define PB 1
# define PC 2
# define PD 3
# define PE 4
# define PF 5
enum imx27_pads {
MX27_PAD_USBH2_CLK = PAD_ID ( PA , 0 ) ,
MX27_PAD_USBH2_DIR = PAD_ID ( PA , 1 ) ,
MX27_PAD_USBH2_DATA7 = PAD_ID ( PA , 2 ) ,
MX27_PAD_USBH2_NXT = PAD_ID ( PA , 3 ) ,
MX27_PAD_USBH2_STP = PAD_ID ( PA , 4 ) ,
MX27_PAD_LSCLK = PAD_ID ( PA , 5 ) ,
MX27_PAD_LD0 = PAD_ID ( PA , 6 ) ,
MX27_PAD_LD1 = PAD_ID ( PA , 7 ) ,
MX27_PAD_LD2 = PAD_ID ( PA , 8 ) ,
MX27_PAD_LD3 = PAD_ID ( PA , 9 ) ,
MX27_PAD_LD4 = PAD_ID ( PA , 10 ) ,
MX27_PAD_LD5 = PAD_ID ( PA , 11 ) ,
MX27_PAD_LD6 = PAD_ID ( PA , 12 ) ,
MX27_PAD_LD7 = PAD_ID ( PA , 13 ) ,
MX27_PAD_LD8 = PAD_ID ( PA , 14 ) ,
MX27_PAD_LD9 = PAD_ID ( PA , 15 ) ,
MX27_PAD_LD10 = PAD_ID ( PA , 16 ) ,
MX27_PAD_LD11 = PAD_ID ( PA , 17 ) ,
MX27_PAD_LD12 = PAD_ID ( PA , 18 ) ,
MX27_PAD_LD13 = PAD_ID ( PA , 19 ) ,
MX27_PAD_LD14 = PAD_ID ( PA , 20 ) ,
MX27_PAD_LD15 = PAD_ID ( PA , 21 ) ,
MX27_PAD_LD16 = PAD_ID ( PA , 22 ) ,
MX27_PAD_LD17 = PAD_ID ( PA , 23 ) ,
MX27_PAD_REV = PAD_ID ( PA , 24 ) ,
MX27_PAD_CLS = PAD_ID ( PA , 25 ) ,
MX27_PAD_PS = PAD_ID ( PA , 26 ) ,
MX27_PAD_SPL_SPR = PAD_ID ( PA , 27 ) ,
MX27_PAD_HSYNC = PAD_ID ( PA , 28 ) ,
MX27_PAD_VSYNC = PAD_ID ( PA , 29 ) ,
MX27_PAD_CONTRAST = PAD_ID ( PA , 30 ) ,
MX27_PAD_OE_ACD = PAD_ID ( PA , 31 ) ,
MX27_PAD_SD2_D0 = PAD_ID ( PB , 4 ) ,
MX27_PAD_SD2_D1 = PAD_ID ( PB , 5 ) ,
MX27_PAD_SD2_D2 = PAD_ID ( PB , 6 ) ,
MX27_PAD_SD2_D3 = PAD_ID ( PB , 7 ) ,
MX27_PAD_SD2_CMD = PAD_ID ( PB , 8 ) ,
MX27_PAD_SD2_CLK = PAD_ID ( PB , 9 ) ,
MX27_PAD_CSI_D0 = PAD_ID ( PB , 10 ) ,
MX27_PAD_CSI_D1 = PAD_ID ( PB , 11 ) ,
MX27_PAD_CSI_D2 = PAD_ID ( PB , 12 ) ,
MX27_PAD_CSI_D3 = PAD_ID ( PB , 13 ) ,
MX27_PAD_CSI_D4 = PAD_ID ( PB , 14 ) ,
MX27_PAD_CSI_MCLK = PAD_ID ( PB , 15 ) ,
MX27_PAD_CSI_PIXCLK = PAD_ID ( PB , 16 ) ,
MX27_PAD_CSI_D5 = PAD_ID ( PB , 17 ) ,
MX27_PAD_CSI_D6 = PAD_ID ( PB , 18 ) ,
MX27_PAD_CSI_D7 = PAD_ID ( PB , 19 ) ,
MX27_PAD_CSI_VSYNC = PAD_ID ( PB , 20 ) ,
MX27_PAD_CSI_HSYNC = PAD_ID ( PB , 21 ) ,
MX27_PAD_USBH1_SUSP = PAD_ID ( PB , 22 ) ,
MX27_PAD_USB_PWR = PAD_ID ( PB , 23 ) ,
MX27_PAD_USB_OC_B = PAD_ID ( PB , 24 ) ,
MX27_PAD_USBH1_RCV = PAD_ID ( PB , 25 ) ,
MX27_PAD_USBH1_FS = PAD_ID ( PB , 26 ) ,
MX27_PAD_USBH1_OE_B = PAD_ID ( PB , 27 ) ,
MX27_PAD_USBH1_TXDM = PAD_ID ( PB , 28 ) ,
MX27_PAD_USBH1_TXDP = PAD_ID ( PB , 29 ) ,
MX27_PAD_USBH1_RXDM = PAD_ID ( PB , 30 ) ,
MX27_PAD_USBH1_RXDP = PAD_ID ( PB , 31 ) ,
MX27_PAD_I2C2_SDA = PAD_ID ( PC , 5 ) ,
MX27_PAD_I2C2_SCL = PAD_ID ( PC , 6 ) ,
MX27_PAD_USBOTG_DATA5 = PAD_ID ( PC , 7 ) ,
MX27_PAD_USBOTG_DATA6 = PAD_ID ( PC , 8 ) ,
MX27_PAD_USBOTG_DATA0 = PAD_ID ( PC , 9 ) ,
MX27_PAD_USBOTG_DATA2 = PAD_ID ( PC , 10 ) ,
MX27_PAD_USBOTG_DATA1 = PAD_ID ( PC , 11 ) ,
MX27_PAD_USBOTG_DATA4 = PAD_ID ( PC , 12 ) ,
MX27_PAD_USBOTG_DATA3 = PAD_ID ( PC , 13 ) ,
MX27_PAD_TOUT = PAD_ID ( PC , 14 ) ,
MX27_PAD_TIN = PAD_ID ( PC , 15 ) ,
MX27_PAD_SSI4_FS = PAD_ID ( PC , 16 ) ,
MX27_PAD_SSI4_RXDAT = PAD_ID ( PC , 17 ) ,
MX27_PAD_SSI4_TXDAT = PAD_ID ( PC , 18 ) ,
MX27_PAD_SSI4_CLK = PAD_ID ( PC , 19 ) ,
MX27_PAD_SSI1_FS = PAD_ID ( PC , 20 ) ,
MX27_PAD_SSI1_RXDAT = PAD_ID ( PC , 21 ) ,
MX27_PAD_SSI1_TXDAT = PAD_ID ( PC , 22 ) ,
MX27_PAD_SSI1_CLK = PAD_ID ( PC , 23 ) ,
MX27_PAD_SSI2_FS = PAD_ID ( PC , 24 ) ,
MX27_PAD_SSI2_RXDAT = PAD_ID ( PC , 25 ) ,
MX27_PAD_SSI2_TXDAT = PAD_ID ( PC , 26 ) ,
MX27_PAD_SSI2_CLK = PAD_ID ( PC , 27 ) ,
MX27_PAD_SSI3_FS = PAD_ID ( PC , 28 ) ,
MX27_PAD_SSI3_RXDAT = PAD_ID ( PC , 29 ) ,
MX27_PAD_SSI3_TXDAT = PAD_ID ( PC , 30 ) ,
MX27_PAD_SSI3_CLK = PAD_ID ( PC , 31 ) ,
MX27_PAD_SD3_CMD = PAD_ID ( PD , 0 ) ,
MX27_PAD_SD3_CLK = PAD_ID ( PD , 1 ) ,
MX27_PAD_ATA_DATA0 = PAD_ID ( PD , 2 ) ,
MX27_PAD_ATA_DATA1 = PAD_ID ( PD , 3 ) ,
MX27_PAD_ATA_DATA2 = PAD_ID ( PD , 4 ) ,
MX27_PAD_ATA_DATA3 = PAD_ID ( PD , 5 ) ,
MX27_PAD_ATA_DATA4 = PAD_ID ( PD , 6 ) ,
MX27_PAD_ATA_DATA5 = PAD_ID ( PD , 7 ) ,
MX27_PAD_ATA_DATA6 = PAD_ID ( PD , 8 ) ,
MX27_PAD_ATA_DATA7 = PAD_ID ( PD , 9 ) ,
MX27_PAD_ATA_DATA8 = PAD_ID ( PD , 10 ) ,
MX27_PAD_ATA_DATA9 = PAD_ID ( PD , 11 ) ,
MX27_PAD_ATA_DATA10 = PAD_ID ( PD , 12 ) ,
MX27_PAD_ATA_DATA11 = PAD_ID ( PD , 13 ) ,
MX27_PAD_ATA_DATA12 = PAD_ID ( PD , 14 ) ,
MX27_PAD_ATA_DATA13 = PAD_ID ( PD , 15 ) ,
MX27_PAD_ATA_DATA14 = PAD_ID ( PD , 16 ) ,
MX27_PAD_I2C_DATA = PAD_ID ( PD , 17 ) ,
MX27_PAD_I2C_CLK = PAD_ID ( PD , 18 ) ,
MX27_PAD_CSPI2_SS2 = PAD_ID ( PD , 19 ) ,
MX27_PAD_CSPI2_SS1 = PAD_ID ( PD , 20 ) ,
MX27_PAD_CSPI2_SS0 = PAD_ID ( PD , 21 ) ,
MX27_PAD_CSPI2_SCLK = PAD_ID ( PD , 22 ) ,
MX27_PAD_CSPI2_MISO = PAD_ID ( PD , 23 ) ,
MX27_PAD_CSPI2_MOSI = PAD_ID ( PD , 24 ) ,
MX27_PAD_CSPI1_RDY = PAD_ID ( PD , 25 ) ,
MX27_PAD_CSPI1_SS2 = PAD_ID ( PD , 26 ) ,
MX27_PAD_CSPI1_SS1 = PAD_ID ( PD , 27 ) ,
MX27_PAD_CSPI1_SS0 = PAD_ID ( PD , 28 ) ,
MX27_PAD_CSPI1_SCLK = PAD_ID ( PD , 29 ) ,
MX27_PAD_CSPI1_MISO = PAD_ID ( PD , 30 ) ,
MX27_PAD_CSPI1_MOSI = PAD_ID ( PD , 31 ) ,
MX27_PAD_USBOTG_NXT = PAD_ID ( PE , 0 ) ,
MX27_PAD_USBOTG_STP = PAD_ID ( PE , 1 ) ,
MX27_PAD_USBOTG_DIR = PAD_ID ( PE , 2 ) ,
MX27_PAD_UART2_CTS = PAD_ID ( PE , 3 ) ,
MX27_PAD_UART2_RTS = PAD_ID ( PE , 4 ) ,
MX27_PAD_PWMO = PAD_ID ( PE , 5 ) ,
MX27_PAD_UART2_TXD = PAD_ID ( PE , 6 ) ,
MX27_PAD_UART2_RXD = PAD_ID ( PE , 7 ) ,
MX27_PAD_UART3_TXD = PAD_ID ( PE , 8 ) ,
MX27_PAD_UART3_RXD = PAD_ID ( PE , 9 ) ,
MX27_PAD_UART3_CTS = PAD_ID ( PE , 10 ) ,
MX27_PAD_UART3_RTS = PAD_ID ( PE , 11 ) ,
MX27_PAD_UART1_TXD = PAD_ID ( PE , 12 ) ,
MX27_PAD_UART1_RXD = PAD_ID ( PE , 13 ) ,
MX27_PAD_UART1_CTS = PAD_ID ( PE , 14 ) ,
MX27_PAD_UART1_RTS = PAD_ID ( PE , 15 ) ,
MX27_PAD_RTCK = PAD_ID ( PE , 16 ) ,
MX27_PAD_RESET_OUT_B = PAD_ID ( PE , 17 ) ,
MX27_PAD_SD1_D0 = PAD_ID ( PE , 18 ) ,
MX27_PAD_SD1_D1 = PAD_ID ( PE , 19 ) ,
MX27_PAD_SD1_D2 = PAD_ID ( PE , 20 ) ,
MX27_PAD_SD1_D3 = PAD_ID ( PE , 21 ) ,
MX27_PAD_SD1_CMD = PAD_ID ( PE , 22 ) ,
MX27_PAD_SD1_CLK = PAD_ID ( PE , 23 ) ,
MX27_PAD_USBOTG_CLK = PAD_ID ( PE , 24 ) ,
MX27_PAD_USBOTG_DATA7 = PAD_ID ( PE , 25 ) ,
MX27_PAD_NFRB = PAD_ID ( PF , 0 ) ,
MX27_PAD_NFCLE = PAD_ID ( PF , 1 ) ,
MX27_PAD_NFWP_B = PAD_ID ( PF , 2 ) ,
MX27_PAD_NFCE_B = PAD_ID ( PF , 3 ) ,
MX27_PAD_NFALE = PAD_ID ( PF , 4 ) ,
MX27_PAD_NFRE_B = PAD_ID ( PF , 5 ) ,
MX27_PAD_NFWE_B = PAD_ID ( PF , 6 ) ,
MX27_PAD_PC_POE = PAD_ID ( PF , 7 ) ,
MX27_PAD_PC_RW_B = PAD_ID ( PF , 8 ) ,
MX27_PAD_IOIS16 = PAD_ID ( PF , 9 ) ,
MX27_PAD_PC_RST = PAD_ID ( PF , 10 ) ,
MX27_PAD_PC_BVD2 = PAD_ID ( PF , 11 ) ,
MX27_PAD_PC_BVD1 = PAD_ID ( PF , 12 ) ,
MX27_PAD_PC_VS2 = PAD_ID ( PF , 13 ) ,
MX27_PAD_PC_VS1 = PAD_ID ( PF , 14 ) ,
MX27_PAD_CLKO = PAD_ID ( PF , 15 ) ,
MX27_PAD_PC_PWRON = PAD_ID ( PF , 16 ) ,
MX27_PAD_PC_READY = PAD_ID ( PF , 17 ) ,
MX27_PAD_PC_WAIT_B = PAD_ID ( PF , 18 ) ,
MX27_PAD_PC_CD2_B = PAD_ID ( PF , 19 ) ,
MX27_PAD_PC_CD1_B = PAD_ID ( PF , 20 ) ,
MX27_PAD_CS4_B = PAD_ID ( PF , 21 ) ,
MX27_PAD_CS5_B = PAD_ID ( PF , 22 ) ,
MX27_PAD_ATA_DATA15 = PAD_ID ( PF , 23 ) ,
} ;
/* Pad names for the pinmux subsystem */
static const struct pinctrl_pin_desc imx27_pinctrl_pads [ ] = {
IMX_PINCTRL_PIN ( MX27_PAD_USBH2_CLK ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBH2_DIR ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBH2_DATA7 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBH2_NXT ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBH2_STP ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LSCLK ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD0 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD1 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD2 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD3 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD4 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD5 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD6 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD7 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD8 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD9 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD10 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD11 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD12 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD13 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD14 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD15 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD16 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_LD17 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_REV ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CLS ) ,
IMX_PINCTRL_PIN ( MX27_PAD_PS ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SPL_SPR ) ,
IMX_PINCTRL_PIN ( MX27_PAD_HSYNC ) ,
IMX_PINCTRL_PIN ( MX27_PAD_VSYNC ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CONTRAST ) ,
IMX_PINCTRL_PIN ( MX27_PAD_OE_ACD ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SD2_D0 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SD2_D1 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SD2_D2 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SD2_D3 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SD2_CMD ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SD2_CLK ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSI_D0 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSI_D1 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSI_D2 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSI_D3 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSI_D4 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSI_MCLK ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSI_PIXCLK ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSI_D5 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSI_D6 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSI_D7 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSI_VSYNC ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSI_HSYNC ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBH1_SUSP ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USB_PWR ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USB_OC_B ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBH1_RCV ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBH1_FS ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBH1_OE_B ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBH1_TXDM ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBH1_TXDP ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBH1_RXDM ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBH1_RXDP ) ,
IMX_PINCTRL_PIN ( MX27_PAD_I2C2_SDA ) ,
IMX_PINCTRL_PIN ( MX27_PAD_I2C2_SCL ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBOTG_DATA5 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBOTG_DATA6 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBOTG_DATA0 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBOTG_DATA2 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBOTG_DATA1 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBOTG_DATA4 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBOTG_DATA3 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_TOUT ) ,
IMX_PINCTRL_PIN ( MX27_PAD_TIN ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SSI4_FS ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SSI4_RXDAT ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SSI4_TXDAT ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SSI4_CLK ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SSI1_FS ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SSI1_RXDAT ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SSI1_TXDAT ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SSI1_CLK ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SSI2_FS ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SSI2_RXDAT ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SSI2_TXDAT ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SSI2_CLK ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SSI3_FS ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SSI3_RXDAT ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SSI3_TXDAT ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SSI3_CLK ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SD3_CMD ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SD3_CLK ) ,
IMX_PINCTRL_PIN ( MX27_PAD_ATA_DATA0 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_ATA_DATA1 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_ATA_DATA2 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_ATA_DATA3 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_ATA_DATA4 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_ATA_DATA5 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_ATA_DATA6 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_ATA_DATA7 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_ATA_DATA8 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_ATA_DATA9 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_ATA_DATA10 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_ATA_DATA11 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_ATA_DATA12 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_ATA_DATA13 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_ATA_DATA14 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_I2C_DATA ) ,
IMX_PINCTRL_PIN ( MX27_PAD_I2C_CLK ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSPI2_SS2 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSPI2_SS1 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSPI2_SS0 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSPI2_SCLK ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSPI2_MISO ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSPI2_MOSI ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSPI1_RDY ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSPI1_SS2 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSPI1_SS1 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSPI1_SS0 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSPI1_SCLK ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSPI1_MISO ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CSPI1_MOSI ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBOTG_NXT ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBOTG_STP ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBOTG_DIR ) ,
IMX_PINCTRL_PIN ( MX27_PAD_UART2_CTS ) ,
IMX_PINCTRL_PIN ( MX27_PAD_UART2_RTS ) ,
IMX_PINCTRL_PIN ( MX27_PAD_PWMO ) ,
IMX_PINCTRL_PIN ( MX27_PAD_UART2_TXD ) ,
IMX_PINCTRL_PIN ( MX27_PAD_UART2_RXD ) ,
IMX_PINCTRL_PIN ( MX27_PAD_UART3_TXD ) ,
IMX_PINCTRL_PIN ( MX27_PAD_UART3_RXD ) ,
IMX_PINCTRL_PIN ( MX27_PAD_UART3_CTS ) ,
IMX_PINCTRL_PIN ( MX27_PAD_UART3_RTS ) ,
IMX_PINCTRL_PIN ( MX27_PAD_UART1_TXD ) ,
IMX_PINCTRL_PIN ( MX27_PAD_UART1_RXD ) ,
IMX_PINCTRL_PIN ( MX27_PAD_UART1_CTS ) ,
IMX_PINCTRL_PIN ( MX27_PAD_UART1_RTS ) ,
IMX_PINCTRL_PIN ( MX27_PAD_RTCK ) ,
IMX_PINCTRL_PIN ( MX27_PAD_RESET_OUT_B ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SD1_D0 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SD1_D1 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SD1_D2 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SD1_D3 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SD1_CMD ) ,
IMX_PINCTRL_PIN ( MX27_PAD_SD1_CLK ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBOTG_CLK ) ,
IMX_PINCTRL_PIN ( MX27_PAD_USBOTG_DATA7 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_NFRB ) ,
IMX_PINCTRL_PIN ( MX27_PAD_NFCLE ) ,
IMX_PINCTRL_PIN ( MX27_PAD_NFWP_B ) ,
IMX_PINCTRL_PIN ( MX27_PAD_NFCE_B ) ,
IMX_PINCTRL_PIN ( MX27_PAD_NFALE ) ,
IMX_PINCTRL_PIN ( MX27_PAD_NFRE_B ) ,
IMX_PINCTRL_PIN ( MX27_PAD_NFWE_B ) ,
IMX_PINCTRL_PIN ( MX27_PAD_PC_POE ) ,
IMX_PINCTRL_PIN ( MX27_PAD_PC_RW_B ) ,
IMX_PINCTRL_PIN ( MX27_PAD_IOIS16 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_PC_RST ) ,
IMX_PINCTRL_PIN ( MX27_PAD_PC_BVD2 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_PC_BVD1 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_PC_VS2 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_PC_VS1 ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CLKO ) ,
IMX_PINCTRL_PIN ( MX27_PAD_PC_PWRON ) ,
IMX_PINCTRL_PIN ( MX27_PAD_PC_READY ) ,
IMX_PINCTRL_PIN ( MX27_PAD_PC_WAIT_B ) ,
IMX_PINCTRL_PIN ( MX27_PAD_PC_CD2_B ) ,
IMX_PINCTRL_PIN ( MX27_PAD_PC_CD1_B ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CS4_B ) ,
IMX_PINCTRL_PIN ( MX27_PAD_CS5_B ) ,
IMX_PINCTRL_PIN ( MX27_PAD_ATA_DATA15 ) ,
} ;
static struct imx1_pinctrl_soc_info imx27_pinctrl_info = {
. pins = imx27_pinctrl_pads ,
. npins = ARRAY_SIZE ( imx27_pinctrl_pads ) ,
} ;
2014-08-11 15:17:50 +04:00
static const struct of_device_id imx27_pinctrl_of_match [ ] = {
2013-10-29 18:32:19 +04:00
{ . compatible = " fsl,imx27-iomuxc " , } ,
{ /* sentinel */ }
} ;
static int imx27_pinctrl_probe ( struct platform_device * pdev )
{
return imx1_pinctrl_core_probe ( pdev , & imx27_pinctrl_info ) ;
}
static struct platform_driver imx27_pinctrl_driver = {
. driver = {
. name = " imx27-pinctrl " ,
. of_match_table = of_match_ptr ( imx27_pinctrl_of_match ) ,
} ,
. probe = imx27_pinctrl_probe ,
} ;
static int __init imx27_pinctrl_init ( void )
{
return platform_driver_register ( & imx27_pinctrl_driver ) ;
}
arch_initcall ( imx27_pinctrl_init ) ;