~ubuntu-branches/ubuntu/maverick/u-boot-omap3/maverick

« back to all changes in this revision

Viewing changes to board/earthlcd/favr-32-ezkit/favr-32-ezkit.c

  • Committer: Bazaar Package Importer
  • Author(s): Oliver Grawert
  • Date: 2010-03-22 15:06:23 UTC
  • Revision ID: james.westby@ubuntu.com-20100322150623-i21g8rgiyl5dohag
Tags: upstream-2010.3git20100315
ImportĀ upstreamĀ versionĀ 2010.3git20100315

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2008 Atmel Corporation
 
3
 *
 
4
 * See file CREDITS for list of people who contributed to this project.
 
5
 *
 
6
 * This program is free software; you can redistribute it and/or modify it
 
7
 * under the terms of the GNU General Public License as published by the Free
 
8
 * Software Foundation; either version 2 of the License, or (at your option)
 
9
 * any later version.
 
10
 *
 
11
 * This program is distributed in the hope that it will be useful, but WITHOUT
 
12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 
13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 
14
 * more details.
 
15
 *
 
16
 * You should have received a copy of the GNU General Public License along with
 
17
 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
 
18
 * Place, Suite 330, Boston, MA 02111-1307 USA
 
19
 */
 
20
#include <common.h>
 
21
#include <netdev.h>
 
22
 
 
23
#include <asm/io.h>
 
24
#include <asm/sdram.h>
 
25
#include <asm/arch/clk.h>
 
26
#include <asm/arch/hmatrix.h>
 
27
#include <asm/arch/portmux.h>
 
28
 
 
29
DECLARE_GLOBAL_DATA_PTR;
 
30
 
 
31
static const struct sdram_config sdram_config = {
 
32
        /* MT48LC4M32B2P-6 (16 MB) */
 
33
        .data_bits      = SDRAM_DATA_32BIT,
 
34
        .row_bits       = 12,
 
35
        .col_bits       = 8,
 
36
        .bank_bits      = 2,
 
37
        .cas            = 3,
 
38
        .twr            = 2,
 
39
        .trc            = 7,
 
40
        .trp            = 2,
 
41
        .trcd           = 2,
 
42
        .tras           = 5,
 
43
        .txsr           = 5,
 
44
        /* 15.6 us */
 
45
        .refresh_period = (156 * (SDRAMC_BUS_HZ / 1000)) / 10000,
 
46
};
 
47
 
 
48
int board_early_init_f(void)
 
49
{
 
50
        /* Enable SDRAM in the EBI mux */
 
51
        hmatrix_slave_write(EBI, SFR, HMATRIX_BIT(EBI_SDRAM_ENABLE));
 
52
 
 
53
        portmux_enable_ebi(32, 23, 0, PORTMUX_DRIVE_HIGH);
 
54
        portmux_enable_usart3(PORTMUX_DRIVE_MIN);
 
55
#if defined(CONFIG_MACB)
 
56
        portmux_enable_macb0(PORTMUX_MACB_MII, PORTMUX_DRIVE_HIGH);
 
57
#endif
 
58
#if defined(CONFIG_MMC)
 
59
        portmux_enable_mmci(0, PORTMUX_MMCI_4BIT, PORTMUX_DRIVE_LOW);
 
60
#endif
 
61
 
 
62
        return 0;
 
63
}
 
64
 
 
65
phys_size_t initdram(int board_type)
 
66
{
 
67
        unsigned long expected_size;
 
68
        unsigned long actual_size;
 
69
        void *sdram_base;
 
70
 
 
71
        sdram_base = map_physmem(EBI_SDRAM_BASE, EBI_SDRAM_SIZE, MAP_NOCACHE);
 
72
 
 
73
        expected_size = sdram_init(sdram_base, &sdram_config);
 
74
        actual_size = get_ram_size(sdram_base, expected_size);
 
75
 
 
76
        unmap_physmem(sdram_base, EBI_SDRAM_SIZE);
 
77
 
 
78
        if (expected_size != actual_size)
 
79
                printf("Warning: Only %lu of %lu MiB SDRAM is working\n",
 
80
                                actual_size >> 20, expected_size >> 20);
 
81
 
 
82
        return actual_size;
 
83
}
 
84
 
 
85
int board_early_init_r(void)
 
86
{
 
87
        gd->bd->bi_phy_id[0] = 0x01;
 
88
        return 0;
 
89
}
 
90
 
 
91
#if defined(CONFIG_MACB) && defined(CONFIG_CMD_NET)
 
92
int board_eth_init(bd_t *bi)
 
93
{
 
94
        return macb_eth_initialize(0, (void *)MACB0_BASE, bi->bi_phy_id[0]);
 
95
}
 
96
#endif