1 /* 2 * Olimex MX23 Olinuxino board 3 * 4 * Copyright (C) 2013 Marek Vasut <marex@denx.de> 5 * 6 * See file CREDITS for list of people who contributed to this 7 * project. 8 * 9 * This program is free software; you can redistribute it and/or 10 * modify it under the terms of the GNU General Public License as 11 * published by the Free Software Foundation; either version 2 of 12 * the License, or (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with this program; if not, write to the Free Software 21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 22 * MA 02111-1307 USA 23 */ 24 25 #include <common.h> 26 #include <asm/gpio.h> 27 #include <asm/io.h> 28 #include <asm/arch/iomux-mx23.h> 29 #include <asm/arch/imx-regs.h> 30 #include <asm/arch/clock.h> 31 #include <asm/arch/sys_proto.h> 32 #ifdef CONFIG_STATUS_LED 33 #include <status_led.h> 34 #endif 35 36 DECLARE_GLOBAL_DATA_PTR; 37 38 /* 39 * Functions 40 */ 41 int board_early_init_f(void) 42 { 43 /* IO0 clock at 480MHz */ 44 mxs_set_ioclk(MXC_IOCLK0, 480000); 45 46 /* SSP0 clock at 96MHz */ 47 mxs_set_sspclk(MXC_SSPCLK0, 96000, 0); 48 49 #ifdef CONFIG_CMD_USB 50 /* Enable LAN9512 */ 51 gpio_direction_output(MX23_PAD_GPMI_ALE__GPIO_0_17, 1); 52 #endif 53 54 return 0; 55 } 56 57 int dram_init(void) 58 { 59 return mxs_dram_init(); 60 } 61 62 #ifdef CONFIG_CMD_MMC 63 static int mx23_olx_mmc_cd(int id) 64 { 65 return 1; /* Card always present */ 66 } 67 68 int board_mmc_init(bd_t *bis) 69 { 70 return mxsmmc_initialize(bis, 0, NULL, mx23_olx_mmc_cd); 71 } 72 #endif 73 74 int board_init(void) 75 { 76 /* Adress of boot parameters */ 77 gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100; 78 79 #if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT) 80 status_led_set(STATUS_LED_BOOT, STATUS_LED_STATE); 81 #endif 82 83 return 0; 84 } 85