diff options
-rw-r--r-- | board/samsung/goni/goni.c | 37 | ||||
-rw-r--r-- | include/configs/s5p_goni.h | 6 |
2 files changed, 43 insertions, 0 deletions
diff --git a/board/samsung/goni/goni.c b/board/samsung/goni/goni.c index e512c59..060d5d1 100644 --- a/board/samsung/goni/goni.c +++ b/board/samsung/goni/goni.c @@ -23,11 +23,18 @@ */ #include <common.h> +#include <asm/arch/gpio.h> +#include <asm/arch/mmc.h> DECLARE_GLOBAL_DATA_PTR; +static struct s5pc110_gpio *s5pc110_gpio; + 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_boot_params = PHYS_SDRAM_1 + 0x100; @@ -53,3 +60,33 @@ int checkboard(void) return 0; } #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 diff --git a/include/configs/s5p_goni.h b/include/configs/s5p_goni.h index 171ec94..b2bf96a 100644 --- a/include/configs/s5p_goni.h +++ b/include/configs/s5p_goni.h @@ -67,6 +67,11 @@ #define CONFIG_SERIAL_MULTI 1 #define CONFIG_BAUDRATE 115200 +/* MMC */ +#define CONFIG_GENERIC_MMC 1 +#define CONFIG_MMC 1 +#define CONFIG_S5P_MMC 1 + /* It should define before config_cmd_default.h */ #define CONFIG_SYS_NO_FLASH 1 @@ -82,6 +87,7 @@ #define CONFIG_CMD_REGINFO #define CONFIG_CMD_ONENAND #define CONFIG_CMD_MTDPARTS +#define CONFIG_CMD_MMC #define CONFIG_BOOTDELAY 1 #define CONFIG_ZERO_BOOTDELAY_CHECK |