@ -28,7 +28,6 @@
# include <power/pmic.h>
# include <power/pfuze100_pmic.h>
# include "../common/pfuze.h"
# include <asm/arch/mx6-ddr.h>
# include <usb.h>
DECLARE_GLOBAL_DATA_PTR ;
@ -66,33 +65,33 @@ int dram_init(void)
}
static iomux_v3_cfg_t const uart1_pads [ ] = {
MX6 _PAD_CSI0_DAT10__UART1_TX_DATA | MUX_PAD_CTRL ( UART_PAD_CTRL ) ,
MX6 _PAD_CSI0_DAT11__UART1_RX_DATA | MUX_PAD_CTRL ( UART_PAD_CTRL ) ,
IO MU X_PADS ( PAD_CSI0_DAT10__UART1_TX_DATA | MUX_PAD_CTRL ( UART_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_CSI0_DAT11__UART1_RX_DATA | MUX_PAD_CTRL ( UART_PAD_CTRL ) ) ,
} ;
static iomux_v3_cfg_t const enet_pads [ ] = {
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__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 ) ,
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 ) ,
IO MU X_PADS ( PAD _ENET_MDIO__ENET_MDIO | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD _ENET_MDC__ENET_MDC | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_RGMII_TXC__RGMII_TXC | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_RGMII_TD0__RGMII_TD0 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_RGMII_TD1__RGMII_TD1 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_RGMII_TD2__RGMII_TD2 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_RGMII_TD3__RGMII_TD3 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_RGMII_TX_CTL__RGMII_TX_CTL | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_ENET_REF_CLK__ENET_TX_CLK | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_RGMII_RXC__RGMII_RXC | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_RGMII_RD0__RGMII_RD0 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_RGMII_RD1__RGMII_RD1 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_RGMII_RD2__RGMII_RD2 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_RGMII_RD3__RGMII_RD3 | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_RGMII_RX_CTL__RGMII_RX_CTL | MUX_PAD_CTRL ( ENET_PAD_CTRL ) ) ,
/* AR8031 PHY Reset */
MX6 _PAD_ENET_CRS_DV__GPIO1_IO25 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
IO MU X_PADS ( PAD _ENET_CRS_DV__GPIO1_IO25 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
} ;
static void setup_iomux_enet ( void )
{
imx_iomux_v3_setup_multiple_pads ( enet_pads , ARRAY_SIZE ( enet_pads ) ) ;
SETUP_IOMUX_PADS ( enet_pads ) ;
/* Reset AR8031 PHY */
gpio_direction_output ( IMX_GPIO_NR ( 1 , 25 ) , 0 ) ;
@ -102,98 +101,98 @@ static void setup_iomux_enet(void)
}
static iomux_v3_cfg_t const usdhc2_pads [ ] = {
MX6 _PAD_SD2_CLK__SD2_CLK | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD2_CMD__SD2_CMD | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD2_DAT0__SD2_DATA0 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD2_DAT1__SD2_DATA1 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD2_DAT2__SD2_DATA2 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD2_DAT3__SD2_DATA3 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_NANDF_D4__SD2_DATA4 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_NANDF_D5__SD2_DATA5 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_NANDF_D6__SD2_DATA6 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_NANDF_D7__SD2_DATA7 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_NANDF_D2__GPIO2_IO02 | MUX_PAD_CTRL ( NO_PAD_CTRL ) , /* CD */
IO MU X_PADS ( PAD_SD2_CLK__SD2_CLK | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD2_CMD__SD2_CMD | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD2_DAT0__SD2_DATA0 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD2_DAT1__SD2_DATA1 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD2_DAT2__SD2_DATA2 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD2_DAT3__SD2_DATA3 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_NANDF_D4__SD2_DATA4 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_NANDF_D5__SD2_DATA5 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_NANDF_D6__SD2_DATA6 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_NANDF_D7__SD2_DATA7 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_NANDF_D2__GPIO2_IO02 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) , /* CD */
} ;
static iomux_v3_cfg_t const usdhc3_pads [ ] = {
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_DATA0 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD3_DAT1__SD3_DATA1 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD3_DAT2__SD3_DATA2 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD3_DAT3__SD3_DATA3 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD3_DAT4__SD3_DATA4 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD3_DAT5__SD3_DATA5 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD3_DAT6__SD3_DATA6 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD3_DAT7__SD3_DATA7 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_NANDF_D0__GPIO2_IO00 | MUX_PAD_CTRL ( NO_PAD_CTRL ) , /* CD */
IO MU X_PADS ( PAD_SD3_CLK__SD3_CLK | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD3_CMD__SD3_CMD | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD3_DAT0__SD3_DATA0 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD3_DAT1__SD3_DATA1 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD3_DAT2__SD3_DATA2 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD3_DAT3__SD3_DATA3 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD3_DAT4__SD3_DATA4 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD3_DAT5__SD3_DATA5 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD3_DAT6__SD3_DATA6 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD3_DAT7__SD3_DATA7 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_NANDF_D0__GPIO2_IO00 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) , /* CD */
} ;
static iomux_v3_cfg_t const usdhc4_pads [ ] = {
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_DATA0 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD4_DAT1__SD4_DATA1 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD4_DAT2__SD4_DATA2 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD4_DAT3__SD4_DATA3 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD4_DAT4__SD4_DATA4 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD4_DAT5__SD4_DATA5 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD4_DAT6__SD4_DATA6 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
MX6 _PAD_SD4_DAT7__SD4_DATA7 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ,
IO MU X_PADS ( PAD_SD4_CLK__SD4_CLK | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD4_CMD__SD4_CMD | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD4_DAT0__SD4_DATA0 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD4_DAT1__SD4_DATA1 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD4_DAT2__SD4_DATA2 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD4_DAT3__SD4_DATA3 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD4_DAT4__SD4_DATA4 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD4_DAT5__SD4_DATA5 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD4_DAT6__SD4_DATA6 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_SD4_DAT7__SD4_DATA7 | MUX_PAD_CTRL ( USDHC_PAD_CTRL ) ) ,
} ;
static iomux_v3_cfg_t const ecspi1_pads [ ] = {
MX6 _PAD_KEY_COL0__ECSPI1_SCLK | MUX_PAD_CTRL ( SPI_PAD_CTRL ) ,
MX6 _PAD_KEY_COL1__ECSPI1_MISO | MUX_PAD_CTRL ( SPI_PAD_CTRL ) ,
MX6 _PAD_KEY_ROW0__ECSPI1_MOSI | MUX_PAD_CTRL ( SPI_PAD_CTRL ) ,
MX6 _PAD_KEY_ROW1__GPIO4_IO09 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
IO MU X_PADS ( PAD_KEY_COL0__ECSPI1_SCLK | MUX_PAD_CTRL ( SPI_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_KEY_COL1__ECSPI1_MISO | MUX_PAD_CTRL ( SPI_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_KEY_ROW0__ECSPI1_MOSI | MUX_PAD_CTRL ( SPI_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_KEY_ROW1__GPIO4_IO09 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
} ;
static iomux_v3_cfg_t const rgb_pads [ ] = {
MX6 _PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DI0_PIN15__IPU1_DI0_PIN15 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DI0_PIN2__IPU1_DI0_PIN02 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DI0_PIN3__IPU1_DI0_PIN03 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DI0_PIN4__IPU1_DI0_PIN04 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT0__IPU1_DISP0_DATA00 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT1__IPU1_DISP0_DATA01 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT2__IPU1_DISP0_DATA02 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT3__IPU1_DISP0_DATA03 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT4__IPU1_DISP0_DATA04 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT5__IPU1_DISP0_DATA05 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT6__IPU1_DISP0_DATA06 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT7__IPU1_DISP0_DATA07 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT8__IPU1_DISP0_DATA08 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT9__IPU1_DISP0_DATA09 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT10__IPU1_DISP0_DATA10 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT11__IPU1_DISP0_DATA11 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT12__IPU1_DISP0_DATA12 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT13__IPU1_DISP0_DATA13 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT14__IPU1_DISP0_DATA14 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT15__IPU1_DISP0_DATA15 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT16__IPU1_DISP0_DATA16 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT17__IPU1_DISP0_DATA17 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT18__IPU1_DISP0_DATA18 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT19__IPU1_DISP0_DATA19 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT20__IPU1_DISP0_DATA20 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT21__IPU1_DISP0_DATA21 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT22__IPU1_DISP0_DATA22 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_DISP0_DAT23__IPU1_DISP0_DATA23 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
IO MU X_PADS ( PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DI0_PIN15__IPU1_DI0_PIN15 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DI0_PIN2__IPU1_DI0_PIN02 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DI0_PIN3__IPU1_DI0_PIN03 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DI0_PIN4__IPU1_DI0_PIN04 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT0__IPU1_DISP0_DATA00 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT1__IPU1_DISP0_DATA01 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT2__IPU1_DISP0_DATA02 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT3__IPU1_DISP0_DATA03 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT4__IPU1_DISP0_DATA04 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT5__IPU1_DISP0_DATA05 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT6__IPU1_DISP0_DATA06 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT7__IPU1_DISP0_DATA07 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT8__IPU1_DISP0_DATA08 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT9__IPU1_DISP0_DATA09 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT10__IPU1_DISP0_DATA10 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT11__IPU1_DISP0_DATA11 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT12__IPU1_DISP0_DATA12 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT13__IPU1_DISP0_DATA13 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT14__IPU1_DISP0_DATA14 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT15__IPU1_DISP0_DATA15 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT16__IPU1_DISP0_DATA16 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT17__IPU1_DISP0_DATA17 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT18__IPU1_DISP0_DATA18 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT19__IPU1_DISP0_DATA19 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT20__IPU1_DISP0_DATA20 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT21__IPU1_DISP0_DATA21 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT22__IPU1_DISP0_DATA22 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_DISP0_DAT23__IPU1_DISP0_DATA23 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
} ;
static iomux_v3_cfg_t const bl_pads [ ] = {
MX6 _PAD_SD1_DAT3__GPIO1_IO21 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
IO MU X_PADS ( PAD_SD1_DAT3__GPIO1_IO21 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
} ;
static void enable_backlight ( void )
{
imx_iomux_v3_setup_multiple_pads ( bl_pads , ARRAY_SIZE ( bl_pads ) ) ;
SETUP_IOMUX_PADS ( bl_pads ) ;
gpio_direction_output ( DISP0_PWR_EN , 1 ) ;
}
static void enable_rgb ( struct display_info_t const * dev )
{
imx_iomux_v3_setup_multiple_pads ( rgb_pads , ARRAY_SIZE ( rgb_pads ) ) ;
SETUP_IOMUX_PADS ( rgb_pads ) ;
enable_backlight ( ) ;
}
@ -202,43 +201,56 @@ static void enable_lvds(struct display_info_t const *dev)
enable_backlight ( ) ;
}
static struct i2c_pads_info i2c_pad_info1 = {
static struct i2c_pads_info mx6q_ i2c_pad_info1 = {
. scl = {
. i2c_mode = MX6_PAD_KEY_COL3__I2C2_SCL | I2C_PAD ,
. gpio_mode = MX6_PAD_KEY_COL3__GPIO4_IO12 | I2C_PAD ,
. i2c_mode = MX6Q _PAD_KEY_COL3__I2C2_SCL | I2C_PAD ,
. gpio_mode = MX6Q _PAD_KEY_COL3__GPIO4_IO12 | I2C_PAD ,
. gp = IMX_GPIO_NR ( 4 , 12 )
} ,
. sda = {
. i2c_mode = MX6_PAD_KEY_ROW3__I2C2_SDA | I2C_PAD ,
. gpio_mode = MX6_PAD_KEY_ROW3__GPIO4_IO13 | I2C_PAD ,
. i2c_mode = MX6Q_PAD_KEY_ROW3__I2C2_SDA | I2C_PAD ,
. gpio_mode = MX6Q_PAD_KEY_ROW3__GPIO4_IO13 | I2C_PAD ,
. gp = IMX_GPIO_NR ( 4 , 13 )
}
} ;
static struct i2c_pads_info mx6dl_i2c_pad_info1 = {
. scl = {
. i2c_mode = MX6DL_PAD_KEY_COL3__I2C2_SCL | I2C_PAD ,
. gpio_mode = MX6DL_PAD_KEY_COL3__GPIO4_IO12 | I2C_PAD ,
. gp = IMX_GPIO_NR ( 4 , 12 )
} ,
. sda = {
. i2c_mode = MX6DL_PAD_KEY_ROW3__I2C2_SDA | I2C_PAD ,
. gpio_mode = MX6DL_PAD_KEY_ROW3__GPIO4_IO13 | I2C_PAD ,
. gp = IMX_GPIO_NR ( 4 , 13 )
}
} ;
static void setup_spi ( void )
{
imx_iomux_v3_setup_multiple_pads ( ecspi1_pads , ARRAY_SIZE ( ecspi1_pads ) ) ;
SETUP_IOMUX_PADS ( ecspi1_pads ) ;
}
iomux_v3_cfg_t const pcie_pads [ ] = {
MX6_PAD_EIM_D19__GPIO3_IO19 | MUX_PAD_CTRL ( NO_PAD_CTRL ) , /* POWER */
MX6_PAD_GPIO_17__GPIO7_IO12 | MUX_PAD_CTRL ( NO_PAD_CTRL ) , /* RESET */
IO MU X_PADS ( PAD_EIM_D19__GPIO3_IO19 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) , /* POWER */
IO MU X_PADS ( PAD_GPIO_17__GPIO7_IO12 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) , /* RESET */
} ;
static void setup_pcie ( void )
{
imx_iomux_v3_setup_multiple_pads ( pcie_pads , ARRAY_SIZE ( pcie_pads ) ) ;
SETUP_IOMUX_PADS ( pcie_pads ) ;
}
iomux_v3_cfg_t const di0_pads [ ] = {
MX6 _PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK , /* DISP0_CLK */
MX6 _PAD_DI0_PIN2__IPU1_DI0_PIN02 , /* DISP0_HSYNC */
MX6 _PAD_DI0_PIN3__IPU1_DI0_PIN03 , /* DISP0_VSYNC */
IO MU X_PADS ( PAD _DI0_DISP_CLK__IPU1_DI0_DISP_CLK) , /* DISP0_CLK */
IO MU X_PADS ( PAD _DI0_PIN2__IPU1_DI0_PIN02) , /* DISP0_HSYNC */
IO MU X_PADS ( PAD _DI0_PIN3__IPU1_DI0_PIN03) , /* DISP0_VSYNC */
} ;
static void setup_iomux_uart ( void )
{
imx_iomux_v3_setup_multiple_pads ( uart1_pads , ARRAY_SIZE ( uart1_pads ) ) ;
SETUP_IOMUX_PADS ( uart1_pads ) ;
}
# ifdef CONFIG_FSL_ESDHC
@ -292,20 +304,17 @@ int board_mmc_init(bd_t *bis)
for ( i = 0 ; i < CONFIG_SYS_FSL_USDHC_NUM ; i + + ) {
switch ( i ) {
case 0 :
imx_iomux_v3_setup_multiple_pads (
usdhc2_pads , ARRAY_SIZE ( usdhc2_pads ) ) ;
SETUP_IOMUX_PADS ( usdhc2_pads ) ;
gpio_direction_input ( USDHC2_CD_GPIO ) ;
usdhc_cfg [ 0 ] . sdhc_clk = mxc_get_clock ( MXC_ESDHC2_CLK ) ;
break ;
case 1 :
imx_iomux_v3_setup_multiple_pads (
usdhc3_pads , ARRAY_SIZE ( usdhc3_pads ) ) ;
SETUP_IOMUX_PADS ( usdhc3_pads ) ;
gpio_direction_input ( USDHC3_CD_GPIO ) ;
usdhc_cfg [ 1 ] . sdhc_clk = mxc_get_clock ( MXC_ESDHC3_CLK ) ;
break ;
case 2 :
imx_iomux_v3_setup_multiple_pads (
usdhc4_pads , ARRAY_SIZE ( usdhc4_pads ) ) ;
SETUP_IOMUX_PADS ( usdhc4_pads ) ;
usdhc_cfg [ 2 ] . sdhc_clk = mxc_get_clock ( MXC_ESDHC4_CLK ) ;
break ;
default :
@ -335,22 +344,19 @@ int board_mmc_init(bd_t *bis)
switch ( reg & 0x3 ) {
case 0x1 :
imx_iomux_v3_setup_multiple_pads (
usdhc2_pads , ARRAY_SIZE ( usdhc2_pads ) ) ;
SETUP_IOMUX_PADS ( usdhc2_pads ) ;
usdhc_cfg [ 0 ] . esdhc_base = USDHC2_BASE_ADDR ;
usdhc_cfg [ 0 ] . sdhc_clk = mxc_get_clock ( MXC_ESDHC2_CLK ) ;
gd - > arch . sdhc_clk = usdhc_cfg [ 0 ] . sdhc_clk ;
break ;
case 0x2 :
imx_iomux_v3_setup_multiple_pads (
usdhc3_pads , ARRAY_SIZE ( usdhc3_pads ) ) ;
SETUP_IOMUX_PADS ( usdhc3_pads ) ;
usdhc_cfg [ 0 ] . esdhc_base = USDHC3_BASE_ADDR ;
usdhc_cfg [ 0 ] . sdhc_clk = mxc_get_clock ( MXC_ESDHC3_CLK ) ;
gd - > arch . sdhc_clk = usdhc_cfg [ 0 ] . sdhc_clk ;
break ;
case 0x3 :
imx_iomux_v3_setup_multiple_pads (
usdhc4_pads , ARRAY_SIZE ( usdhc4_pads ) ) ;
SETUP_IOMUX_PADS ( usdhc4_pads ) ;
usdhc_cfg [ 0 ] . esdhc_base = USDHC4_BASE_ADDR ;
usdhc_cfg [ 0 ] . sdhc_clk = mxc_get_clock ( MXC_ESDHC4_CLK ) ;
gd - > arch . sdhc_clk = usdhc_cfg [ 0 ] . sdhc_clk ;
@ -484,7 +490,7 @@ static void setup_display(void)
int reg ;
/* Setup HSYNC, VSYNC, DISP_CLK for debugging purposes */
imx_iomux_v3_setup_multiple_pads ( di0_pads , ARRAY_SIZE ( di0_pads ) ) ;
SETUP_IOMUX_PADS ( di0_pads ) ;
enable_ipu_clock ( ) ;
imx_setup_hdmi ( ) ;
@ -555,18 +561,17 @@ int board_eth_init(bd_t *bis)
# define UCTRL_PWR_POL (1 << 9)
static iomux_v3_cfg_t const usb_otg_pads [ ] = {
MX6 _PAD_EIM_D22__USB_OTG_PWR | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
MX6 _PAD_ENET_RX_ER__USB_OTG_ID | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
IO MU X_PADS ( PAD_EIM_D22__USB_OTG_PWR | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
IO MU X_PADS ( PAD_ENET_RX_ER__USB_OTG_ID | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
} ;
static iomux_v3_cfg_t const usb_hc1_pads [ ] = {
MX6 _PAD_ENET_TXD1__GPIO1_IO29 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
IO MU X_PADS ( PAD_ENET_TXD1__GPIO1_IO29 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ) ,
} ;
static void setup_usb ( void )
{
imx_iomux_v3_setup_multiple_pads ( usb_otg_pads ,
ARRAY_SIZE ( usb_otg_pads ) ) ;
SETUP_IOMUX_PADS ( usb_otg_pads ) ;
/*
* set daisy chain for otg_pin_id on 6 q .
@ -574,8 +579,7 @@ static void setup_usb(void)
*/
imx_iomux_set_gpr_register ( 1 , 13 , 1 , 0 ) ;
imx_iomux_v3_setup_multiple_pads ( usb_hc1_pads ,
ARRAY_SIZE ( usb_hc1_pads ) ) ;
SETUP_IOMUX_PADS ( usb_hc1_pads ) ;
}
int board_ehci_hcd_init ( int port )
@ -631,8 +635,10 @@ int board_init(void)
# ifdef CONFIG_MXC_SPI
setup_spi ( ) ;
# endif
setup_i2c ( 1 , CONFIG_SYS_I2C_SPEED , 0x7f , & i2c_pad_info1 ) ;
if ( is_mx6dq ( ) | | is_mx6dqp ( ) )
setup_i2c ( 1 , CONFIG_SYS_I2C_SPEED , 0x7f , & mx6q_i2c_pad_info1 ) ;
else
setup_i2c ( 1 , CONFIG_SYS_I2C_SPEED , 0x7f , & mx6dl_i2c_pad_info1 ) ;
# ifdef CONFIG_USB_EHCI_MX6
setup_usb ( ) ;
# endif
@ -714,6 +720,7 @@ int checkboard(void)
}
# ifdef CONFIG_SPL_BUILD
# include <asm/arch/mx6-ddr.h>
# include <spl.h>
# include <libfdt.h>