@ -38,6 +38,7 @@
# include <asm/arch/sys_proto.h>
# include <asm/arch/sys_proto.h>
# endif
# endif
# include <dm.h>
# include <dm.h>
# include <asm/arch-omap3/mux.h>
DECLARE_GLOBAL_DATA_PTR ;
DECLARE_GLOBAL_DATA_PTR ;
@ -102,6 +103,9 @@ static unsigned char mmc_board_init(struct mmc *mmc)
t2_t * t2_base = ( t2_t * ) T2_BASE ;
t2_t * t2_base = ( t2_t * ) T2_BASE ;
struct prcm * prcm_base = ( struct prcm * ) PRCM_BASE ;
struct prcm * prcm_base = ( struct prcm * ) PRCM_BASE ;
u32 pbias_lite ;
u32 pbias_lite ;
# ifdef CONFIG_MMC_OMAP36XX_PINS
u32 wkup_ctrl = readl ( OMAP34XX_CTRL_WKUP_CTRL ) ;
# endif
pbias_lite = readl ( & t2_base - > pbias_lite ) ;
pbias_lite = readl ( & t2_base - > pbias_lite ) ;
pbias_lite & = ~ ( PBIASLITEPWRDNZ1 | PBIASLITEPWRDNZ0 ) ;
pbias_lite & = ~ ( PBIASLITEPWRDNZ1 | PBIASLITEPWRDNZ0 ) ;
@ -109,12 +113,26 @@ static unsigned char mmc_board_init(struct mmc *mmc)
/* for cairo board, we need to set up 1.8 Volt bias level on MMC1 */
/* for cairo board, we need to set up 1.8 Volt bias level on MMC1 */
pbias_lite & = ~ PBIASLITEVMODE0 ;
pbias_lite & = ~ PBIASLITEVMODE0 ;
# endif
# endif
# ifdef CONFIG_MMC_OMAP36XX_PINS
if ( get_cpu_family ( ) = = CPU_OMAP36XX ) {
/* Disable extended drain IO before changing PBIAS */
wkup_ctrl & = ~ OMAP34XX_CTRL_WKUP_CTRL_GPIO_IO_PWRDNZ ;
writel ( wkup_ctrl , OMAP34XX_CTRL_WKUP_CTRL ) ;
}
# endif
writel ( pbias_lite , & t2_base - > pbias_lite ) ;
writel ( pbias_lite , & t2_base - > pbias_lite ) ;
writel ( pbias_lite | PBIASLITEPWRDNZ1 |
writel ( pbias_lite | PBIASLITEPWRDNZ1 |
PBIASSPEEDCTRL0 | PBIASLITEPWRDNZ0 ,
PBIASSPEEDCTRL0 | PBIASLITEPWRDNZ0 ,
& t2_base - > pbias_lite ) ;
& t2_base - > pbias_lite ) ;
# ifdef CONFIG_MMC_OMAP36XX_PINS
if ( get_cpu_family ( ) = = CPU_OMAP36XX )
/* Enable extended drain IO after changing PBIAS */
writel ( wkup_ctrl |
OMAP34XX_CTRL_WKUP_CTRL_GPIO_IO_PWRDNZ ,
OMAP34XX_CTRL_WKUP_CTRL ) ;
# endif
writel ( readl ( & t2_base - > devconf0 ) | MMCSDIO1ADPCLKISEL ,
writel ( readl ( & t2_base - > devconf0 ) | MMCSDIO1ADPCLKISEL ,
& t2_base - > devconf0 ) ;
& t2_base - > devconf0 ) ;