uboot/board/samsung/goni/goni.c
<<
>>
Prefs
   1/*
   2 *  Copyright (C) 2008-2009 Samsung Electronics
   3 *  Minkyu Kang <mk7.kang@samsung.com>
   4 *  Kyungmin Park <kyungmin.park@samsung.com>
   5 *
   6 * See file CREDITS for list of people who contributed to this
   7 * project.
   8 *
   9 * This program is free software; you can redistribute it and/or
  10 * modify it under the terms of the GNU General Public License as
  11 * published by the Free Software Foundation; either version 2 of
  12 * the License, or (at your option) any later version.
  13 *
  14 * This program is distributed in the hope that it will be useful,
  15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17 * GNU General Public License for more details.
  18 *
  19 * You should have received a copy of the GNU General Public License
  20 * along with this program; if not, write to the Free Software
  21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  22 * MA 02111-1307 USA
  23 */
  24
  25#include <common.h>
  26#include <asm/arch/gpio.h>
  27#include <asm/arch/mmc.h>
  28
  29DECLARE_GLOBAL_DATA_PTR;
  30
  31static struct s5pc110_gpio *s5pc110_gpio;
  32
  33int board_init(void)
  34{
  35        /* Set Initial global variables */
  36        s5pc110_gpio = (struct s5pc110_gpio *)S5PC110_GPIO_BASE;
  37
  38        gd->bd->bi_arch_number = MACH_TYPE_GONI;
  39        gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
  40
  41        return 0;
  42}
  43
  44int dram_init(void)
  45{
  46        gd->ram_size = PHYS_SDRAM_1_SIZE + PHYS_SDRAM_2_SIZE +
  47                        PHYS_SDRAM_3_SIZE;
  48
  49        return 0;
  50}
  51
  52void dram_init_banksize(void)
  53{
  54        gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
  55        gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
  56        gd->bd->bi_dram[1].start = PHYS_SDRAM_2;
  57        gd->bd->bi_dram[1].size = PHYS_SDRAM_2_SIZE;
  58        gd->bd->bi_dram[2].start = PHYS_SDRAM_3;
  59        gd->bd->bi_dram[2].size = PHYS_SDRAM_3_SIZE;
  60}
  61
  62#ifdef CONFIG_DISPLAY_BOARDINFO
  63int checkboard(void)
  64{
  65        puts("Board:\tGoni\n");
  66        return 0;
  67}
  68#endif
  69
  70#ifdef CONFIG_GENERIC_MMC
  71int board_mmc_init(bd_t *bis)
  72{
  73        int i;
  74
  75        /* MASSMEMORY_EN: XMSMDATA7: GPJ2[7] output high */
  76        gpio_direction_output(&s5pc110_gpio->j2, 7, 1);
  77
  78        /*
  79         * MMC0 GPIO
  80         * GPG0[0]      SD_0_CLK
  81         * GPG0[1]      SD_0_CMD
  82         * GPG0[2]      SD_0_CDn        -> Not used
  83         * GPG0[3:6]    SD_0_DATA[0:3]
  84         */
  85        for (i = 0; i < 7; i++) {
  86                if (i == 2)
  87                        continue;
  88                /* GPG0[0:6] special function 2 */
  89                gpio_cfg_pin(&s5pc110_gpio->g0, i, 0x2);
  90                /* GPG0[0:6] pull disable */
  91                gpio_set_pull(&s5pc110_gpio->g0, i, GPIO_PULL_NONE);
  92                /* GPG0[0:6] drv 4x */
  93                gpio_set_drv(&s5pc110_gpio->g0, i, GPIO_DRV_4X);
  94        }
  95
  96        return s5p_mmc_init(0, 4);
  97}
  98#endif
  99