@ -52,6 +52,9 @@ DECLARE_GLOBAL_DATA_PTR;
PAD_CTL_SPEED_HIGH | \
PAD_CTL_DSE_48ohm | PAD_CTL_SRE_FAST )
# define LCD_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PUS_100K_UP | PAD_CTL_PUE | \
PAD_CTL_PKE | PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm )
# define MDIO_PAD_CTRL (PAD_CTL_PUS_100K_UP | PAD_CTL_PUE | \
PAD_CTL_DSE_48ohm | PAD_CTL_SRE_FAST | PAD_CTL_ODE )
@ -568,6 +571,62 @@ int board_phy_config(struct phy_device *phydev)
}
# endif
# ifdef CONFIG_VIDEO_MXS
static iomux_v3_cfg_t const lcd_pads [ ] = {
MX6_PAD_LCD_CLK__LCDIF_CLK | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_ENABLE__LCDIF_ENABLE | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_HSYNC__LCDIF_HSYNC | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_VSYNC__LCDIF_VSYNC | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA00__LCDIF_DATA00 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA01__LCDIF_DATA01 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA02__LCDIF_DATA02 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA03__LCDIF_DATA03 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA04__LCDIF_DATA04 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA05__LCDIF_DATA05 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA06__LCDIF_DATA06 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA07__LCDIF_DATA07 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA08__LCDIF_DATA08 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA09__LCDIF_DATA09 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA10__LCDIF_DATA10 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA11__LCDIF_DATA11 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA12__LCDIF_DATA12 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA13__LCDIF_DATA13 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA14__LCDIF_DATA14 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA15__LCDIF_DATA15 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA16__LCDIF_DATA16 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA17__LCDIF_DATA17 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA18__LCDIF_DATA18 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA19__LCDIF_DATA19 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA20__LCDIF_DATA20 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA21__LCDIF_DATA21 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA22__LCDIF_DATA22 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
MX6_PAD_LCD_DATA23__LCDIF_DATA23 | MUX_PAD_CTRL ( LCD_PAD_CTRL ) ,
/* LCD_RST */
MX6_PAD_SNVS_TAMPER9__GPIO5_IO09 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
/* Use GPIO for Brightness adjustment, duty cycle = period. */
MX6_PAD_GPIO1_IO08__GPIO1_IO08 | MUX_PAD_CTRL ( NO_PAD_CTRL ) ,
} ;
static int setup_lcd ( void )
{
enable_lcdif_clock ( LCDIF1_BASE_ADDR ) ;
imx_iomux_v3_setup_multiple_pads ( lcd_pads , ARRAY_SIZE ( lcd_pads ) ) ;
/* Reset the LCD */
gpio_direction_output ( IMX_GPIO_NR ( 5 , 9 ) , 0 ) ;
udelay ( 500 ) ;
gpio_direction_output ( IMX_GPIO_NR ( 5 , 9 ) , 1 ) ;
/* Set Brightness to high */
gpio_direction_output ( IMX_GPIO_NR ( 1 , 8 ) , 1 ) ;
return 0 ;
}
# endif
int board_early_init_f ( void )
{
setup_iomux_uart ( ) ;
@ -600,6 +659,10 @@ int board_init(void)
board_qspi_init ( ) ;
# endif
# ifdef CONFIG_VIDEO_MXS
setup_lcd ( ) ;
# endif
return 0 ;
}