@ -23,11 +23,18 @@
*/
*/
# include <common.h>
# include <common.h>
# include <asm/arch/gpio.h>
# include <asm/arch/mmc.h>
DECLARE_GLOBAL_DATA_PTR ;
DECLARE_GLOBAL_DATA_PTR ;
static struct s5pc110_gpio * s5pc110_gpio ;
int board_init ( void )
int board_init ( void )
{
{
/* Set Initial global variables */
s5pc110_gpio = ( struct s5pc110_gpio * ) S5PC110_GPIO_BASE ;
gd - > bd - > bi_arch_number = MACH_TYPE_GONI ;
gd - > bd - > bi_arch_number = MACH_TYPE_GONI ;
gd - > bd - > bi_boot_params = PHYS_SDRAM_1 + 0x100 ;
gd - > bd - > bi_boot_params = PHYS_SDRAM_1 + 0x100 ;
@ -53,3 +60,33 @@ int checkboard(void)
return 0 ;
return 0 ;
}
}
# endif
# endif
# ifdef CONFIG_GENERIC_MMC
int board_mmc_init ( bd_t * bis )
{
int i ;
/* MASSMEMORY_EN: XMSMDATA7: GPJ2[7] output high */
gpio_direction_output ( & s5pc110_gpio - > gpio_j2 , 7 , 1 ) ;
/*
* MMC0 GPIO
* GPG0 [ 0 ] SD_0_CLK
* GPG0 [ 1 ] SD_0_CMD
* GPG0 [ 2 ] SD_0_CDn - > Not used
* GPG0 [ 3 : 6 ] SD_0_DATA [ 0 : 3 ]
*/
for ( i = 0 ; i < 7 ; i + + ) {
if ( i = = 2 )
continue ;
/* GPG0[0:6] special function 2 */
gpio_cfg_pin ( & s5pc110_gpio - > gpio_g0 , i , 0x2 ) ;
/* GPG0[0:6] pull disable */
gpio_set_pull ( & s5pc110_gpio - > gpio_g0 , i , GPIO_PULL_NONE ) ;
/* GPG0[0:6] drv 4x */
gpio_set_drv ( & s5pc110_gpio - > gpio_g0 , i , GPIO_DRV_4X ) ;
}
return s5p_mmc_init ( 0 ) ;
}
# endif