xref: /rk3399_rockchip-uboot/board/ti/am3517crane/am3517crane.c (revision b24065c4ef21687787a74eef22dfa9232096f965)
1915162daSSrinath /*
2915162daSSrinath  * am3517crane.c - board file for AM3517 CraneBoard
3915162daSSrinath  *
4915162daSSrinath  * Author: Srinath.R <srinath@mistralsolutions.com>
5915162daSSrinath  *
6915162daSSrinath  * Based on logicpd/am3517evm/am3517evm.c
7915162daSSrinath  *
8915162daSSrinath  * Copyright (C) 2011 Mistral Solutions Pvt Ltd
9915162daSSrinath  *
101a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
11915162daSSrinath  */
12915162daSSrinath 
13915162daSSrinath #include <common.h>
14915162daSSrinath #include <asm/io.h>
15a5a8821cSTom Rini #include <asm/arch/mmc_host_def.h>
16915162daSSrinath #include <asm/arch/mem.h>
17915162daSSrinath #include <asm/arch/mux.h>
18915162daSSrinath #include <asm/arch/sys_proto.h>
19915162daSSrinath #include <asm/mach-types.h>
20915162daSSrinath #include <i2c.h>
21915162daSSrinath #include "am3517crane.h"
22915162daSSrinath 
23915162daSSrinath DECLARE_GLOBAL_DATA_PTR;
24915162daSSrinath 
25915162daSSrinath /*
26915162daSSrinath  * Routine: board_init
27915162daSSrinath  * Description: Early hardware init.
28915162daSSrinath  */
board_init(void)29915162daSSrinath int board_init(void)
30915162daSSrinath {
31915162daSSrinath 	gpmc_init(); /* in SRAM or SDRAM, finish GPMC */
32915162daSSrinath 	/* board id for Linux */
33915162daSSrinath 	gd->bd->bi_arch_number = MACH_TYPE_CRANEBOARD;
34915162daSSrinath 	/* boot param addr */
35915162daSSrinath 	gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100);
36915162daSSrinath 
37915162daSSrinath 	return 0;
38915162daSSrinath }
39915162daSSrinath 
40915162daSSrinath /*
41915162daSSrinath  * Routine: misc_init_r
42915162daSSrinath  * Description: Init i2c, ethernet, etc... (done here so udelay works)
43915162daSSrinath  */
misc_init_r(void)44915162daSSrinath int misc_init_r(void)
45915162daSSrinath {
46*94d50bedSAdam Ford #ifdef CONFIG_SYS_I2C_OMAP24XX
476789e84eSHeiko Schocher 	i2c_init(CONFIG_SYS_OMAP24_I2C_SPEED, CONFIG_SYS_OMAP24_I2C_SLAVE);
48915162daSSrinath #endif
49915162daSSrinath 
50679f82c3SPaul Kocialkowski 	omap_die_id_display();
51915162daSSrinath 
52915162daSSrinath 	return 0;
53915162daSSrinath }
54915162daSSrinath 
55915162daSSrinath /*
56915162daSSrinath  * Routine: set_muxconf_regs
57915162daSSrinath  * Description: Setting up the configuration Mux registers specific to the
58915162daSSrinath  *		hardware. Many pins need to be moved from protect to primary
59915162daSSrinath  *		mode.
60915162daSSrinath  */
set_muxconf_regs(void)61915162daSSrinath void set_muxconf_regs(void)
62915162daSSrinath {
63915162daSSrinath 	MUX_AM3517CRANE();
64915162daSSrinath }
65a5a8821cSTom Rini 
664aa2ba3aSMasahiro Yamada #if defined(CONFIG_MMC)
board_mmc_init(bd_t * bis)67a5a8821cSTom Rini int board_mmc_init(bd_t *bis)
68a5a8821cSTom Rini {
69e3913f56SNikita Kiryanov 	return omap_mmc_init(0, 0, 0, -1, -1);
70a5a8821cSTom Rini }
71a5a8821cSTom Rini #endif
72