diff options
| author | Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com> | 2008-08-06 14:42:13 +0200 | 
|---|---|---|
| committer | Haavard Skinnemoen <haavard.skinnemoen@atmel.com> | 2008-08-06 15:10:50 +0200 | 
| commit | 0eb5717a85b6cba3f67c11fa89bdde38dcd081b5 (patch) | |
| tree | 9743fee4f55a27e37292ef86d86688c835abf333 /board/earthlcd/favr-32-ezkit/favr-32-ezkit.c | |
| parent | 81091f58f0c58ecd26c5b05de2ae20ca6cdb521c (diff) | |
| download | olio-uboot-2014.01-0eb5717a85b6cba3f67c11fa89bdde38dcd081b5.tar.xz olio-uboot-2014.01-0eb5717a85b6cba3f67c11fa89bdde38dcd081b5.zip | |
avr32: add support for EarthLCD Favr-32 board
This patch adds support for the Favr-32 board made by EarthLCD.
This kit, which is also called ezLCD-101 when running with EarthLCD firmware,
has a 10.4" touch screen LCD panel, 16 MB 32-bit SDRAM, 8 MB parallel flash,
Ethernet, audio out, USB device, SD-card slot, USART and various other
connectors for cennecting stuff to SPI, I2C, GPIO, etc.
Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
Diffstat (limited to 'board/earthlcd/favr-32-ezkit/favr-32-ezkit.c')
| -rw-r--r-- | board/earthlcd/favr-32-ezkit/favr-32-ezkit.c | 96 | 
1 files changed, 96 insertions, 0 deletions
| diff --git a/board/earthlcd/favr-32-ezkit/favr-32-ezkit.c b/board/earthlcd/favr-32-ezkit/favr-32-ezkit.c new file mode 100644 index 000000000..22b698128 --- /dev/null +++ b/board/earthlcd/favr-32-ezkit/favr-32-ezkit.c @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2008 Atmel Corporation + * + * See file CREDITS for list of people who contributed to this project. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., 59 Temple + * Place, Suite 330, Boston, MA 02111-1307 USA + */ +#include <common.h> + +#include <asm/io.h> +#include <asm/sdram.h> +#include <asm/arch/clk.h> +#include <asm/arch/gpio.h> +#include <asm/arch/hmatrix.h> + +DECLARE_GLOBAL_DATA_PTR; + +static const struct sdram_config sdram_config = { +	/* MT48LC4M32B2P-6 (16 MB) */ +	.data_bits	= SDRAM_DATA_32BIT, +	.row_bits	= 12, +	.col_bits	= 8, +	.bank_bits	= 2, +	.cas		= 3, +	.twr		= 2, +	.trc		= 7, +	.trp		= 2, +	.trcd		= 2, +	.tras		= 5, +	.txsr		= 5, +	/* 15.6 us */ +	.refresh_period	= (156 * (SDRAMC_BUS_HZ / 1000)) / 10000, +}; + +int board_early_init_f(void) +{ +	/* Enable SDRAM in the EBI mux */ +	hmatrix_slave_write(EBI, SFR, HMATRIX_BIT(EBI_SDRAM_ENABLE)); + +	gpio_enable_ebi(); +	gpio_enable_usart3(); +#if defined(CONFIG_MACB) +	gpio_enable_macb0(); +#endif +#if defined(CONFIG_MMC) +	gpio_enable_mmci(); +#endif + +	return 0; +} + +phys_size_t initdram(int board_type) +{ +	unsigned long expected_size; +	unsigned long actual_size; +	void *sdram_base; + +	sdram_base = map_physmem(EBI_SDRAM_BASE, EBI_SDRAM_SIZE, MAP_NOCACHE); + +	expected_size = sdram_init(sdram_base, &sdram_config); +	actual_size = get_ram_size(sdram_base, expected_size); + +	unmap_physmem(sdram_base, EBI_SDRAM_SIZE); + +	if (expected_size != actual_size) +		printf("Warning: Only %u of %u MiB SDRAM is working\n", +				actual_size >> 20, expected_size >> 20); + +	return actual_size; +} + +void board_init_info(void) +{ +	gd->bd->bi_phy_id[0] = 0x01; +} + +#if defined(CONFIG_MACB) && defined(CONFIG_CMD_NET) +extern int macb_eth_initialize(int id, void *regs, unsigned int phy_addr); + +int board_eth_init(bd_t *bi) +{ +	return macb_eth_initialize(0, (void *)MACB0_BASE, bi->bi_phy_id[0]); +} +#endif |