|
@@ -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
|