xref: /rk3399_rockchip-uboot/board/timll/devkit3250/devkit3250.c (revision 1a4596601fd395f3afb8f82f3f840c5e00bdd57a)
1463ec1caSVladimir Zapolskiy /*
2463ec1caSVladimir Zapolskiy  * Embest/Timll DevKit3250 board support
3463ec1caSVladimir Zapolskiy  *
4463ec1caSVladimir Zapolskiy  * Copyright (C) 2011 Vladimir Zapolskiy <vz@mleia.com>
5463ec1caSVladimir Zapolskiy  *
6*1a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
7463ec1caSVladimir Zapolskiy  */
8463ec1caSVladimir Zapolskiy 
9463ec1caSVladimir Zapolskiy #include <common.h>
10463ec1caSVladimir Zapolskiy #include <asm/arch/sys_proto.h>
11463ec1caSVladimir Zapolskiy #include <asm/arch/cpu.h>
12463ec1caSVladimir Zapolskiy #include <asm/arch/emc.h>
13463ec1caSVladimir Zapolskiy 
14463ec1caSVladimir Zapolskiy DECLARE_GLOBAL_DATA_PTR;
15463ec1caSVladimir Zapolskiy 
16463ec1caSVladimir Zapolskiy static struct emc_regs *emc = (struct emc_regs *)EMC_BASE;
17463ec1caSVladimir Zapolskiy 
18463ec1caSVladimir Zapolskiy int board_early_init_f(void)
19463ec1caSVladimir Zapolskiy {
20463ec1caSVladimir Zapolskiy 	lpc32xx_uart_init(CONFIG_SYS_LPC32XX_UART);
21463ec1caSVladimir Zapolskiy 
22463ec1caSVladimir Zapolskiy 	return 0;
23463ec1caSVladimir Zapolskiy }
24463ec1caSVladimir Zapolskiy 
25463ec1caSVladimir Zapolskiy int board_init(void)
26463ec1caSVladimir Zapolskiy {
27463ec1caSVladimir Zapolskiy 	/* adress of boot parameters */
28463ec1caSVladimir Zapolskiy 	gd->bd->bi_boot_params  = CONFIG_SYS_SDRAM_BASE + 0x100;
29463ec1caSVladimir Zapolskiy 
30463ec1caSVladimir Zapolskiy #ifdef CONFIG_SYS_FLASH_CFI
31463ec1caSVladimir Zapolskiy 	/* Use 16-bit memory interface for NOR Flash */
32463ec1caSVladimir Zapolskiy 	emc->stat[0].config	= EMC_STAT_CONFIG_PB | EMC_STAT_CONFIG_16BIT;
33463ec1caSVladimir Zapolskiy 
34463ec1caSVladimir Zapolskiy 	/* Change the NOR timings to optimum value to get maximum bandwidth */
35463ec1caSVladimir Zapolskiy 	emc->stat[0].waitwen	= EMC_STAT_WAITWEN(1);
36463ec1caSVladimir Zapolskiy 	emc->stat[0].waitoen	= EMC_STAT_WAITOEN(1);
37463ec1caSVladimir Zapolskiy 	emc->stat[0].waitrd	= EMC_STAT_WAITRD(12);
38463ec1caSVladimir Zapolskiy 	emc->stat[0].waitpage	= EMC_STAT_WAITPAGE(12);
39463ec1caSVladimir Zapolskiy 	emc->stat[0].waitwr	= EMC_STAT_WAITWR(5);
40463ec1caSVladimir Zapolskiy 	emc->stat[0].waitturn	= EMC_STAT_WAITTURN(2);
41463ec1caSVladimir Zapolskiy #endif
42463ec1caSVladimir Zapolskiy 
43463ec1caSVladimir Zapolskiy 	return 0;
44463ec1caSVladimir Zapolskiy }
45463ec1caSVladimir Zapolskiy 
46463ec1caSVladimir Zapolskiy int dram_init(void)
47463ec1caSVladimir Zapolskiy {
48463ec1caSVladimir Zapolskiy 	gd->ram_size = get_ram_size((void *)CONFIG_SYS_SDRAM_BASE,
49463ec1caSVladimir Zapolskiy 				    CONFIG_SYS_SDRAM_SIZE);
50463ec1caSVladimir Zapolskiy 
51463ec1caSVladimir Zapolskiy 	return 0;
52463ec1caSVladimir Zapolskiy }
53