@ -17,6 +17,7 @@
# include <asm/gpio.h>
# include <asm/imx-common/iomux-v3.h>
# include <asm/imx-common/mxc_i2c.h>
# include <asm/imx-common/sata.h>
# include <asm/imx-common/boot_mode.h>
# include <mmc.h>
# include <fsl_esdhc.h>
@ -71,13 +72,13 @@ int dram_init(void)
}
iomux_v3_cfg_t const uart1_pads [ ] = {
MX6_PAD_SD3_DAT6__UART1_RXD | MUX_PAD_CTRL ( UART_PAD_CTRL ) ,
MX6_PAD_SD3_DAT7__UART1_TXD | MUX_PAD_CTRL ( UART_PAD_CTRL ) ,
MX6_PAD_SD3_DAT6__UART1_RX_ DATA | MUX_PAD_CTRL ( UART_PAD_CTRL ) ,
MX6_PAD_SD3_DAT7__UART1_TX_ DATA | MUX_PAD_CTRL ( UART_PAD_CTRL ) ,
} ;
iomux_v3_cfg_t const uart2_pads [ ] = {
MX6_PAD_EIM_D26__UART2_TXD | MUX_PAD_CTRL ( UART_PAD_CTRL ) ,
MX6_PAD_EIM_D27__UART2_RXD | MUX_PAD_CTRL ( UART_PAD_CTRL ) ,
MX6_PAD_EIM_D26__UART2_TX_ DATA | MUX_PAD_CTRL ( UART_PAD_CTRL ) ,
MX6_PAD_EIM_D27__UART2_RX_ DATA | MUX_PAD_CTRL ( UART_PAD_CTRL ) ,
} ;
# define PC MUX_PAD_CTRL(I2C_PAD_CTRL)
@ -86,12 +87,12 @@ iomux_v3_cfg_t const uart2_pads[] = {
struct i2c_pads_info i2c_pad_info0 = {
. scl = {
. i2c_mode = MX6_PAD_EIM_D21__I2C1_SCL | PC ,
. gpio_mode = MX6_PAD_EIM_D21__GPIO_ 3_21 | PC ,
. gpio_mode = MX6_PAD_EIM_D21__GPIO3_IO 21 | PC ,
. gp = IMX_GPIO_NR ( 3 , 21 )
} ,
. sda = {
. i2c_mode = MX6_PAD_EIM_D28__I2C1_SDA | PC ,
. gpio_mode = MX6_PAD_EIM_D28__GPIO_ 3_28 | PC ,
. gpio_mode = MX6_PAD_EIM_D28__GPIO3_IO 28 | PC ,
. gp = IMX_GPIO_NR ( 3 , 28 )
}
} ;
@ -100,12 +101,12 @@ struct i2c_pads_info i2c_pad_info0 = {
struct i2c_pads_info i2c_pad_info1 = {
. scl = {
. i2c_mode = MX6_PAD_KEY_COL3__I2C2_SCL | PC ,
. gpio_mode = MX6_PAD_KEY_COL3__GPIO_ 4_12 | PC ,
. gpio_mode = MX6_PAD_KEY_COL3__GPIO4_IO 12 | PC ,
. gp = IMX_GPIO_NR ( 4 , 12 )
} ,
. sda = {
. i2c_mode = MX6_PAD_KEY_ROW3__I2C2_SDA | PC ,
. gpio_mode = MX6_PAD_KEY_ROW3__GPIO_ 4_13 | PC ,
. gpio_mode = MX6_PAD_KEY_ROW3__GPIO4_IO 13 | PC ,
. gp = IMX_GPIO_NR ( 4 , 13 )
}
} ;
@ -114,87 +115,87 @@ struct i2c_pads_info i2c_pad_info1 = {
struct i2c_pads_info i2c_pad_info2 = {
. scl = {
. i2c_mode = MX6_PAD_GPIO_5__I2C3_SCL | PC ,
. gpio_mode = MX6_PAD_GPIO_5__GPIO_ 1_5 | PC ,
. gpio_mode = MX6_PAD_GPIO_5__GPIO1_IO0 5 | PC ,
. gp = IMX_GPIO_NR ( 1 , 5 )
} ,
. sda = {
. i2c_mode = MX6_PAD_GPIO_16__I2C3_SDA | PC ,
. gpio_mode = MX6_PAD_GPIO_16__GPIO_ 7_11 | PC ,
. gpio_mode = MX6_PAD_GPIO_16__GPIO7_IO 11 | PC ,
. gp = IMX_GPIO_NR ( 7 , 11 )
}
} ;
iomux_v3_cfg_t const usdhc3_pads [ ] = {
MX6_PAD_SD3_CLK__U SDHC 3_CLK | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD3_CMD__U SDHC 3_CMD | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD3_DAT0__U SDHC 3_DAT0 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD3_DAT1__U SDHC 3_DAT1 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD3_DAT2__U SDHC 3_DAT2 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD3_DAT3__U SDHC 3_DAT3 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD3_DAT5__GPIO_ 7_0 | MUX_PAD_CTRL ( NO_PAD_CTRL ) , /* CD */
MX6_PAD_SD3_CLK__SD3_CLK | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD3_CMD__SD3_CMD | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD3_DAT0__SD3_DATA 0 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD3_DAT1__SD3_DATA 1 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD3_DAT2__SD3_DATA 2 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD3_DAT3__SD3_DATA 3 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD3_DAT5__GPIO7_IO0 0 | MUX_PAD_CTRL ( NO_PAD_CTRL ) , /* CD */
} ;
iomux_v3_cfg_t const usdhc4_pads [ ] = {
MX6_PAD_SD4_CLK__U SDHC 4_CLK | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD4_CMD__U SDHC 4_CMD | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD4_DAT0__U SDHC 4_DAT0 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD4_DAT1__U SDHC 4_DAT1 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD4_DAT2__U SDHC 4_DAT2 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD4_DAT3__U SDHC 4_DAT3 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_NANDF_D6__GPIO_ 2_6 | MUX_PAD_CTRL ( NO_PAD_CTRL ) , /* CD */
MX6_PAD_SD4_CLK__SD4_CLK | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD4_CMD__SD4_CMD | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD4_DAT0__SD4_DATA 0 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD4_DAT1__SD4_DATA 1 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD4_DAT2__SD4_DATA 2 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_SD4_DAT3__SD4_DATA 3 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6_PAD_NANDF_D6__GPIO2_IO0 6 | MUX_PAD_CTRL ( NO_PAD_CTRL ) , /* CD */
} ;
iomux_v3_cfg_t const enet_pads1 [ ] = {
MX6_PAD_ENET_MDIO__ENET_MDIO | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_ENET_MDC__ENET_MDC | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_TXC__ENET_ RGMII_TXC | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_TD0__ENET_ RGMII_TD0 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_TD1__ENET_ RGMII_TD1 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_TD2__ENET_ RGMII_TD2 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_TD3__ENET_ RGMII_TD3 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_TXC__RGMII_TXC | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_TD0__RGMII_TD0 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_TD1__RGMII_TD1 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_TD2__RGMII_TD2 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_TD3__RGMII_TD3 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_TX_CTL__RGMII_TX_CTL | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_ENET_REF_CLK__ENET_TX_CLK | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
/* pin 35 - 1 (PHY_AD2) on reset */
MX6_PAD_RGMII_RXC__GPIO_ 6_30 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6_PAD_RGMII_RXC__GPIO6_IO 30 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
/* pin 32 - 1 - (MODE0) all */
MX6_PAD_RGMII_RD0__GPIO_ 6_25 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6_PAD_RGMII_RD0__GPIO6_IO 25 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
/* pin 31 - 1 - (MODE1) all */
MX6_PAD_RGMII_RD1__GPIO_ 6_27 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6_PAD_RGMII_RD1__GPIO6_IO 27 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
/* pin 28 - 1 - (MODE2) all */
MX6_PAD_RGMII_RD2__GPIO_ 6_28 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6_PAD_RGMII_RD2__GPIO6_IO 28 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
/* pin 27 - 1 - (MODE3) all */
MX6_PAD_RGMII_RD3__GPIO_ 6_29 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6_PAD_RGMII_RD3__GPIO6_IO 29 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
/* pin 33 - 1 - (CLK125_EN) 125Mhz clockout enabled */
MX6_PAD_RGMII_RX_CTL__GPIO_ 6_24 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6_PAD_RGMII_RX_CTL__GPIO6_IO 24 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
/* pin 42 PHY nRST */
MX6_PAD_EIM_D23__GPIO_ 3_23 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6_PAD_ENET_RXD0__GPIO_ 1_27 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6_PAD_EIM_D23__GPIO3_IO 23 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6_PAD_ENET_RXD0__GPIO1_IO 27 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
} ;
iomux_v3_cfg_t const enet_pads2 [ ] = {
MX6_PAD_RGMII_RXC__ENET_ RGMII_RXC | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_RD0__ENET_ RGMII_RD0 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_RD1__ENET_ RGMII_RD1 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_RD2__ENET_ RGMII_RD2 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_RD3__ENET_ RGMII_RD3 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_RXC__RGMII_RXC | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_RD0__RGMII_RD0 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_RD1__RGMII_RD1 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_RD2__RGMII_RD2 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_RD3__RGMII_RD3 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
MX6_PAD_RGMII_RX_CTL__RGMII_RX_CTL | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ,
} ;
static iomux_v3_cfg_t const misc_pads [ ] = {
MX6_PAD_GPIO_1__USB_OTG_ID | MUX_PAD_CTRL ( WEAK_PULLUP ) ,
MX6_PAD_KEY_COL4__USBOH3 _USB OTG_OC | MUX_PAD_CTRL ( WEAK_PULLUP ) ,
MX6_PAD_EIM_D30__USBOH3 _USB H1_OC | MUX_PAD_CTRL ( WEAK_PULLUP ) ,
MX6_PAD_KEY_COL4__USB_OTG_OC | MUX_PAD_CTRL ( WEAK_PULLUP ) ,
MX6_PAD_EIM_D30__USB_H1_OC | MUX_PAD_CTRL ( WEAK_PULLUP ) ,
/* OTG Power enable */
MX6_PAD_EIM_D22__GPIO_ 3_22 | MUX_PAD_CTRL ( OUTPUT_40OHM ) ,
MX6_PAD_EIM_D22__GPIO3_IO 22 | MUX_PAD_CTRL ( OUTPUT_40OHM ) ,
} ;
/* wl1271 pads on nitrogen6x */
iomux_v3_cfg_t const wl12xx_pads [ ] = {
( MX6_PAD_NANDF_CS1__GPIO_ 6_14 & ~ MUX_PAD_CTRL_MASK )
( MX6_PAD_NANDF_CS1__GPIO6_IO 14 & ~ MUX_PAD_CTRL_MASK )
| MUX_PAD_CTRL ( WEAK_PULLDOWN ) ,
( MX6_PAD_NANDF_CS2__GPIO_ 6_15 & ~ MUX_PAD_CTRL_MASK )
( MX6_PAD_NANDF_CS2__GPIO6_IO 15 & ~ MUX_PAD_CTRL_MASK )
| MUX_PAD_CTRL ( OUTPUT_40OHM ) ,
( MX6_PAD_NANDF_CS3__GPIO_ 6_16 & ~ MUX_PAD_CTRL_MASK )
( MX6_PAD_NANDF_CS3__GPIO6_IO 16 & ~ MUX_PAD_CTRL_MASK )
| MUX_PAD_CTRL ( OUTPUT_40OHM ) ,
} ;
# define WL12XX_WL_IRQ_GP IMX_GPIO_NR(6, 14)
@ -204,17 +205,17 @@ iomux_v3_cfg_t const wl12xx_pads[] = {
/* Button assignments for J14 */
static iomux_v3_cfg_t const button_pads [ ] = {
/* Menu */
MX6_PAD_NANDF_D1__GPIO_ 2_1 | MUX_PAD_CTRL ( BUTTON_PAD_CTRL ) ,
MX6_PAD_NANDF_D1__GPIO2_IO0 1 | MUX_PAD_CTRL ( BUTTON_PAD_CTRL ) ,
/* Back */
MX6_PAD_NANDF_D2__GPIO_ 2_2 | MUX_PAD_CTRL ( BUTTON_PAD_CTRL ) ,
MX6_PAD_NANDF_D2__GPIO2_IO0 2 | MUX_PAD_CTRL ( BUTTON_PAD_CTRL ) ,
/* Labelled Search (mapped to Power under Android) */
MX6_PAD_NANDF_D3__GPIO_ 2_3 | MUX_PAD_CTRL ( BUTTON_PAD_CTRL ) ,
MX6_PAD_NANDF_D3__GPIO2_IO0 3 | MUX_PAD_CTRL ( BUTTON_PAD_CTRL ) ,
/* Home */
MX6_PAD_NANDF_D4__GPIO_ 2_4 | MUX_PAD_CTRL ( BUTTON_PAD_CTRL ) ,
MX6_PAD_NANDF_D4__GPIO2_IO0 4 | MUX_PAD_CTRL ( BUTTON_PAD_CTRL ) ,
/* Volume Down */
MX6_PAD_GPIO_19__GPIO_ 4_5 | MUX_PAD_CTRL ( BUTTON_PAD_CTRL ) ,
MX6_PAD_GPIO_19__GPIO4_IO0 5 | MUX_PAD_CTRL ( BUTTON_PAD_CTRL ) ,
/* Volume Up */
MX6_PAD_GPIO_18__GPIO_ 7_13 | MUX_PAD_CTRL ( BUTTON_PAD_CTRL ) ,
MX6_PAD_GPIO_18__GPIO7_IO 13 | MUX_PAD_CTRL ( BUTTON_PAD_CTRL ) ,
} ;
static void setup_iomux_enet ( void )
@ -238,7 +239,7 @@ static void setup_iomux_enet(void)
}
iomux_v3_cfg_t const usb_pads [ ] = {
MX6_PAD_GPIO_17__GPIO_ 7_12 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6_PAD_GPIO_17__GPIO7_IO 12 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
} ;
static void setup_iomux_uart ( void )
@ -330,7 +331,7 @@ int board_mmc_init(bd_t *bis)
# ifdef CONFIG_MXC_SPI
iomux_v3_cfg_t const ecspi1_pads [ ] = {
/* SS1 */
MX6_PAD_EIM_D19__GPIO_ 3_19 | MUX_PAD_CTRL ( SPI_PAD_CTRL ) ,
MX6_PAD_EIM_D19__GPIO3_IO 19 | MUX_PAD_CTRL ( SPI_PAD_CTRL ) ,
MX6_PAD_EIM_D17__ECSPI1_MISO | MUX_PAD_CTRL ( SPI_PAD_CTRL ) ,
MX6_PAD_EIM_D18__ECSPI1_MOSI | MUX_PAD_CTRL ( SPI_PAD_CTRL ) ,
MX6_PAD_EIM_D16__ECSPI1_SCLK | MUX_PAD_CTRL ( SPI_PAD_CTRL ) ,
@ -401,74 +402,48 @@ static void setup_buttons(void)
ARRAY_SIZE ( button_pads ) ) ;
}
# ifdef CONFIG_CMD_SATA
int setup_sata ( void )
{
struct iomuxc_base_regs * const iomuxc_regs
= ( struct iomuxc_base_regs * ) IOMUXC_BASE_ADDR ;
int ret = enable_sata_clock ( ) ;
if ( ret )
return ret ;
clrsetbits_le32 ( & iomuxc_regs - > gpr [ 13 ] ,
IOMUXC_GPR13_SATA_MASK ,
IOMUXC_GPR13_SATA_PHY_8_RXEQ_3P0DB
| IOMUXC_GPR13_SATA_PHY_7_SATA2M
| IOMUXC_GPR13_SATA_SPEED_3G
| ( 3 < < IOMUXC_GPR13_SATA_PHY_6_SHIFT )
| IOMUXC_GPR13_SATA_SATA_PHY_5_SS_DISABLED
| IOMUXC_GPR13_SATA_SATA_PHY_4_ATTEN_9_16
| IOMUXC_GPR13_SATA_PHY_3_TXBOOST_0P00_DB
| IOMUXC_GPR13_SATA_PHY_2_TX_1P104V
| IOMUXC_GPR13_SATA_PHY_1_SLOW ) ;
return 0 ;
}
# endif
# if defined(CONFIG_VIDEO_IPUV3)
static iomux_v3_cfg_t const backlight_pads [ ] = {
/* Backlight on RGB connector: J15 */
MX6_PAD_SD1_DAT3__GPIO_ 1_21 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6_PAD_SD1_DAT3__GPIO1_IO21 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
# define RGB_BACKLIGHT_GP IMX_GPIO_NR(1, 21)
/* Backlight on LVDS connector: J6 */
MX6_PAD_SD1_CMD__GPIO_ 1_18 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6_PAD_SD1_CMD__GPIO1_IO18 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
# define LVDS_BACKLIGHT_GP IMX_GPIO_NR(1, 18)
} ;
static iomux_v3_cfg_t const rgb_pads [ ] = {
MX6_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK ,
MX6_PAD_DI0_PIN15__IPU1_DI0_PIN15 ,
MX6_PAD_DI0_PIN2__IPU1_DI0_PIN2 ,
MX6_PAD_DI0_PIN3__IPU1_DI0_PIN3 ,
MX6_PAD_DI0_PIN4__GPIO_ 4_20 ,
MX6_PAD_DISP0_DAT0__IPU1_DISP0_DAT_ 0 ,
MX6_PAD_DISP0_DAT1__IPU1_DISP0_DAT_ 1 ,
MX6_PAD_DISP0_DAT2__IPU1_DISP0_DAT_ 2 ,
MX6_PAD_DISP0_DAT3__IPU1_DISP0_DAT_ 3 ,
MX6_PAD_DISP0_DAT4__IPU1_DISP0_DAT_ 4 ,
MX6_PAD_DISP0_DAT5__IPU1_DISP0_DAT_ 5 ,
MX6_PAD_DISP0_DAT6__IPU1_DISP0_DAT_ 6 ,
MX6_PAD_DISP0_DAT7__IPU1_DISP0_DAT_ 7 ,
MX6_PAD_DISP0_DAT8__IPU1_DISP0_DAT_ 8 ,
MX6_PAD_DISP0_DAT9__IPU1_DISP0_DAT_ 9 ,
MX6_PAD_DISP0_DAT10__IPU1_DISP0_DAT_ 10 ,
MX6_PAD_DISP0_DAT11__IPU1_DISP0_DAT_ 11 ,
MX6_PAD_DISP0_DAT12__IPU1_DISP0_DAT_ 12 ,
MX6_PAD_DISP0_DAT13__IPU1_DISP0_DAT_ 13 ,
MX6_PAD_DISP0_DAT14__IPU1_DISP0_DAT_ 14 ,
MX6_PAD_DISP0_DAT15__IPU1_DISP0_DAT_ 15 ,
MX6_PAD_DISP0_DAT16__IPU1_DISP0_DAT_ 16 ,
MX6_PAD_DISP0_DAT17__IPU1_DISP0_DAT_ 17 ,
MX6_PAD_DISP0_DAT18__IPU1_DISP0_DAT_ 18 ,
MX6_PAD_DISP0_DAT19__IPU1_DISP0_DAT_ 19 ,
MX6_PAD_DISP0_DAT20__IPU1_DISP0_DAT_ 20 ,
MX6_PAD_DISP0_DAT21__IPU1_DISP0_DAT_ 21 ,
MX6_PAD_DISP0_DAT22__IPU1_DISP0_DAT_ 22 ,
MX6_PAD_DISP0_DAT23__IPU1_DISP0_DAT_ 23 ,
MX6_PAD_DI0_PIN2__IPU1_DI0_PIN02 ,
MX6_PAD_DI0_PIN3__IPU1_DI0_PIN03 ,
MX6_PAD_DI0_PIN4__GPIO4_IO20 ,
MX6_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 ,
MX6_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 ,
MX6_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 ,
MX6_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 ,
MX6_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 ,
MX6_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 ,
MX6_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 ,
MX6_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 ,
MX6_PAD_DISP0_DAT8__IPU1_DISP0_DATA0 8 ,
MX6_PAD_DISP0_DAT9__IPU1_DISP0_DATA0 9 ,
MX6_PAD_DISP0_DAT10__IPU1_DISP0_DATA 10 ,
MX6_PAD_DISP0_DAT11__IPU1_DISP0_DATA 11 ,
MX6_PAD_DISP0_DAT12__IPU1_DISP0_DATA 12 ,
MX6_PAD_DISP0_DAT13__IPU1_DISP0_DATA 13 ,
MX6_PAD_DISP0_DAT14__IPU1_DISP0_DATA 14 ,
MX6_PAD_DISP0_DAT15__IPU1_DISP0_DATA 15 ,
MX6_PAD_DISP0_DAT16__IPU1_DISP0_DATA 16 ,
MX6_PAD_DISP0_DAT17__IPU1_DISP0_DATA 17 ,
MX6_PAD_DISP0_DAT18__IPU1_DISP0_DATA 18 ,
MX6_PAD_DISP0_DAT19__IPU1_DISP0_DATA 19 ,
MX6_PAD_DISP0_DAT20__IPU1_DISP0_DATA 20 ,
MX6_PAD_DISP0_DAT21__IPU1_DISP0_DATA 21 ,
MX6_PAD_DISP0_DAT22__IPU1_DISP0_DATA 22 ,
MX6_PAD_DISP0_DAT23__IPU1_DISP0_DATA 23 ,
} ;
struct display_info_t {