xref: /rk3399_rockchip-uboot/board/ti/omap5_uevm/evm.c (revision 2c2a9f3a1f8c92bee8b009db0d6187bfcbea661d)
1*2c2a9f3aSSRICHARAN R /*
2*2c2a9f3aSSRICHARAN R  * (C) Copyright 2010
3*2c2a9f3aSSRICHARAN R  * Texas Instruments Incorporated, <www.ti.com>
4*2c2a9f3aSSRICHARAN R  * Aneesh V       <aneesh@ti.com>
5*2c2a9f3aSSRICHARAN R  * Steve Sakoman  <steve@sakoman.com>
6*2c2a9f3aSSRICHARAN R  *
7*2c2a9f3aSSRICHARAN R  * See file CREDITS for list of people who contributed to this
8*2c2a9f3aSSRICHARAN R  * project.
9*2c2a9f3aSSRICHARAN R  *
10*2c2a9f3aSSRICHARAN R  * This program is free software; you can redistribute it and/or
11*2c2a9f3aSSRICHARAN R  * modify it under the terms of the GNU General Public License as
12*2c2a9f3aSSRICHARAN R  * published by the Free Software Foundation; either version 2 of
13*2c2a9f3aSSRICHARAN R  * the License, or (at your option) any later version.
14*2c2a9f3aSSRICHARAN R  *
15*2c2a9f3aSSRICHARAN R  * This program is distributed in the hope that it will be useful,
16*2c2a9f3aSSRICHARAN R  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*2c2a9f3aSSRICHARAN R  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18*2c2a9f3aSSRICHARAN R  * GNU General Public License for more details.
19*2c2a9f3aSSRICHARAN R  *
20*2c2a9f3aSSRICHARAN R  * You should have received a copy of the GNU General Public License
21*2c2a9f3aSSRICHARAN R  * along with this program; if not, write to the Free Software
22*2c2a9f3aSSRICHARAN R  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
23*2c2a9f3aSSRICHARAN R  * MA 02111-1307 USA
24*2c2a9f3aSSRICHARAN R  */
25*2c2a9f3aSSRICHARAN R #include <common.h>
26*2c2a9f3aSSRICHARAN R #include <twl6035.h>
27*2c2a9f3aSSRICHARAN R #include <asm/arch/sys_proto.h>
28*2c2a9f3aSSRICHARAN R #include <asm/arch/mmc_host_def.h>
29*2c2a9f3aSSRICHARAN R 
30*2c2a9f3aSSRICHARAN R #include "mux_data.h"
31*2c2a9f3aSSRICHARAN R 
32*2c2a9f3aSSRICHARAN R DECLARE_GLOBAL_DATA_PTR;
33*2c2a9f3aSSRICHARAN R 
34*2c2a9f3aSSRICHARAN R const struct omap_sysinfo sysinfo = {
35*2c2a9f3aSSRICHARAN R 	"Board: OMAP5430 EVM\n"
36*2c2a9f3aSSRICHARAN R };
37*2c2a9f3aSSRICHARAN R 
38*2c2a9f3aSSRICHARAN R /**
39*2c2a9f3aSSRICHARAN R  * @brief board_init
40*2c2a9f3aSSRICHARAN R  *
41*2c2a9f3aSSRICHARAN R  * @return 0
42*2c2a9f3aSSRICHARAN R  */
43*2c2a9f3aSSRICHARAN R int board_init(void)
44*2c2a9f3aSSRICHARAN R {
45*2c2a9f3aSSRICHARAN R 	gpmc_init();
46*2c2a9f3aSSRICHARAN R 	gd->bd->bi_arch_number = MACH_TYPE_OMAP5_SEVM;
47*2c2a9f3aSSRICHARAN R 	gd->bd->bi_boot_params = (0x80000000 + 0x100); /* boot param addr */
48*2c2a9f3aSSRICHARAN R 
49*2c2a9f3aSSRICHARAN R 	return 0;
50*2c2a9f3aSSRICHARAN R }
51*2c2a9f3aSSRICHARAN R 
52*2c2a9f3aSSRICHARAN R int board_eth_init(bd_t *bis)
53*2c2a9f3aSSRICHARAN R {
54*2c2a9f3aSSRICHARAN R 	return 0;
55*2c2a9f3aSSRICHARAN R }
56*2c2a9f3aSSRICHARAN R 
57*2c2a9f3aSSRICHARAN R /**
58*2c2a9f3aSSRICHARAN R  * @brief misc_init_r - Configure EVM board specific configurations
59*2c2a9f3aSSRICHARAN R  * such as power configurations, ethernet initialization as phase2 of
60*2c2a9f3aSSRICHARAN R  * boot sequence
61*2c2a9f3aSSRICHARAN R  *
62*2c2a9f3aSSRICHARAN R  * @return 0
63*2c2a9f3aSSRICHARAN R  */
64*2c2a9f3aSSRICHARAN R int misc_init_r(void)
65*2c2a9f3aSSRICHARAN R {
66*2c2a9f3aSSRICHARAN R #ifdef CONFIG_TWL6035_POWER
67*2c2a9f3aSSRICHARAN R 	twl6035_init_settings();
68*2c2a9f3aSSRICHARAN R #endif
69*2c2a9f3aSSRICHARAN R 	return 0;
70*2c2a9f3aSSRICHARAN R }
71*2c2a9f3aSSRICHARAN R 
72*2c2a9f3aSSRICHARAN R void set_muxconf_regs_essential(void)
73*2c2a9f3aSSRICHARAN R {
74*2c2a9f3aSSRICHARAN R 	do_set_mux(CONTROL_PADCONF_CORE, core_padconf_array_essential,
75*2c2a9f3aSSRICHARAN R 		   sizeof(core_padconf_array_essential) /
76*2c2a9f3aSSRICHARAN R 		   sizeof(struct pad_conf_entry));
77*2c2a9f3aSSRICHARAN R 
78*2c2a9f3aSSRICHARAN R 	do_set_mux(CONTROL_PADCONF_WKUP, wkup_padconf_array_essential,
79*2c2a9f3aSSRICHARAN R 		   sizeof(wkup_padconf_array_essential) /
80*2c2a9f3aSSRICHARAN R 		   sizeof(struct pad_conf_entry));
81*2c2a9f3aSSRICHARAN R }
82*2c2a9f3aSSRICHARAN R 
83*2c2a9f3aSSRICHARAN R void set_muxconf_regs_non_essential(void)
84*2c2a9f3aSSRICHARAN R {
85*2c2a9f3aSSRICHARAN R 	do_set_mux(CONTROL_PADCONF_CORE, core_padconf_array_non_essential,
86*2c2a9f3aSSRICHARAN R 		   sizeof(core_padconf_array_non_essential) /
87*2c2a9f3aSSRICHARAN R 		   sizeof(struct pad_conf_entry));
88*2c2a9f3aSSRICHARAN R 
89*2c2a9f3aSSRICHARAN R 	do_set_mux(CONTROL_PADCONF_WKUP, wkup_padconf_array_non_essential,
90*2c2a9f3aSSRICHARAN R 		   sizeof(wkup_padconf_array_non_essential) /
91*2c2a9f3aSSRICHARAN R 		   sizeof(struct pad_conf_entry));
92*2c2a9f3aSSRICHARAN R }
93*2c2a9f3aSSRICHARAN R 
94*2c2a9f3aSSRICHARAN R #if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_GENERIC_MMC)
95*2c2a9f3aSSRICHARAN R int board_mmc_init(bd_t *bis)
96*2c2a9f3aSSRICHARAN R {
97*2c2a9f3aSSRICHARAN R 	omap_mmc_init(0, 0, 0, -1, -1);
98*2c2a9f3aSSRICHARAN R 	omap_mmc_init(1, 0, 0, -1, -1);
99*2c2a9f3aSSRICHARAN R 	return 0;
100*2c2a9f3aSSRICHARAN R }
101*2c2a9f3aSSRICHARAN R #endif
102