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