1 /* 2 * Copyright (C) 2013 Samsung Electronics 3 * 4 * SPDX-License-Identifier: GPL-2.0+ 5 */ 6 7 #include <common.h> 8 #include <asm/arch/pinmux.h> 9 #include <asm/arch/power.h> 10 11 DECLARE_GLOBAL_DATA_PTR; 12 13 int board_init(void) 14 { 15 gd->bd->bi_boot_params = (PHYS_SDRAM_1 + 0x100UL); 16 return 0; 17 } 18 19 int dram_init(void) 20 { 21 int i; 22 u32 addr; 23 24 for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) { 25 addr = CONFIG_SYS_SDRAM_BASE + (i * SDRAM_BANK_SIZE); 26 gd->ram_size += get_ram_size((long *)addr, SDRAM_BANK_SIZE); 27 } 28 return 0; 29 } 30 31 int power_init_board(void) 32 { 33 set_ps_hold_ctrl(); 34 return 0; 35 } 36 37 void dram_init_banksize(void) 38 { 39 int i; 40 u32 addr, size; 41 42 for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) { 43 addr = CONFIG_SYS_SDRAM_BASE + (i * SDRAM_BANK_SIZE); 44 size = get_ram_size((long *)addr, SDRAM_BANK_SIZE); 45 46 gd->bd->bi_dram[i].start = addr; 47 gd->bd->bi_dram[i].size = size; 48 } 49 } 50 51 static int board_uart_init(void) 52 { 53 int err = 0, uart_id; 54 55 for (uart_id = PERIPH_ID_UART0; uart_id <= PERIPH_ID_UART3; uart_id++) { 56 err = exynos_pinmux_config(uart_id, PINMUX_FLAG_NONE); 57 if (err) { 58 debug("UART%d not configured\n", 59 (uart_id - PERIPH_ID_UART0)); 60 return err; 61 } 62 } 63 return err; 64 } 65 66 #ifdef CONFIG_BOARD_EARLY_INIT_F 67 int board_early_init_f(void) 68 { 69 int err; 70 71 err = board_uart_init(); 72 if (err) { 73 debug("UART init failed\n"); 74 return err; 75 } 76 return err; 77 } 78 #endif 79 80 #ifdef CONFIG_DISPLAY_BOARDINFO 81 int checkboard(void) 82 { 83 printf("\nBoard: Arndale\n"); 84 85 return 0; 86 } 87 #endif 88